Apa alat pemrograman tujuan umum terbaik untuk melengkapi Vim? [Tutup]

22

Saya telah menggunakan Vim sebagai editor teks saya untuk sementara waktu sekarang dan saya merasa seperti saya mengambil jalan panjang untuk melakukan apa pun. Saya menggunakan ctag untuk menandai basis kode saya untuk navigasi dan saya menggunakan grep (walaupun tidak efisien) untuk menemukan di mana metode tertentu digunakan. Tetapi saya merasa ada beberapa alat yang sangat berguna di luar sana yang tidak saya ketahui yang bisa membuat saya lebih produktif.

Apa tumpukan perangkat lunak terbaik yang dapat saya gunakan untuk pemrograman umum yang akan melengkapi Vim? Bagaimana Anda menavigasi basis kode, menjalankan make, mendorong perubahan ke sistem kontrol sumber Anda, dll? Apakah Anda memiliki konsol ke-2 yang terbuka di sebelah Vim?

Louis Salin
sumber
2
Vim sendiri. Mungkin Anda tidak menggunakan plugin / skrip yang benar untuk pekerjaan itu. Tergantung pada jenis pemrograman yang Anda lakukan, bahasa apa, alat apa yang Anda butuhkan dan sebagainya.
bitek
Saya tidak menentukan bahasa apa pun agar tidak memengaruhi respons yang akan saya terima. Saya tidak benar-benar mencari plugin Vim, walaupun mereka berguna.
Louis Salin
Saya menemukan presentasi ini sangat berguna: zmievski.org/2010/06/vim-for-programmers-on-slideshare
gabe.
Saya membuat ini sebagai wiki komunitas. Saya menyadari tidak ada jawaban terbaik untuk pertanyaan saya. Terima kasih untuk semua jawaban Anda!
Louis Salin

Jawaban:

8

Fitur hebat vim adalah kemudahan integrasi dengan perintah shell yang ada. Beberapa yang paling alat eksternal berguna adalah orang-orang yang termasuk dalam coreutils dan alat-alat maniplulation teks sederhana lainnya. Misalnya, kita bisa mendapatkan jumlah baris dalam file dengan:

:! wc -l %

atau jumlah kata:

:! wc -w %

Perintah apa pun yang bekerja pada shell akan bekerja di sini. Ini dapat dikombinasikan dengan kuat dengan perintah :read( :r) untuk memasukkan output dari perintah ke dalam file. Sebagai contoh:

:r !wc -l %

Akan menempatkan jumlah baris kata ke dalam file yang sedang Anda edit.

Keuntungan lain dari ini adalah mengganti teks yang sedang Anda edit dengan output dari salah satu perintah ini. Misalnya, Anda dapat memformat seluruh file dengan pardengan menjalankan perintah:

:% !par
xoebus
sumber
5

Saya menemukan NERDtree sangat diperlukan untuk navigasi melalui basis kode saya. Selain itu, menginvestasikan waktu untuk menjadi mahir dalam bergerak di sekitar buffer / windows Anda benar-benar bermanfaat.

aryeh
sumber
+1 untuk referensi plugin yang fantastis ini. ( github.com/scrooloose/nerdtree )
noffle
4

Apa pun bahasa Anda, Anda ingin menggunakan fitur yang disebut ctag yang memungkinkan untuk menelusuri definisi sumber. Ini membutuhkan alat eksternal untuk menghasilkan file TAGS yang digunakan oleh VIM untuk menemukan lokasi berbagai definisi kode dalam suatu proyek.

Dapatkan alat ctag bersemangat , ini berfungsi untuk banyak bahasa dan sangat mudah digunakan.

dari VIM :help ctags

ctags akan membuat indeks dari semua pengidentifikasi di pohon sumber. Anda kemudian dapat menggunakan perintah tag untuk bernavigasi di sekitar pohon sumber Anda. lihat :help tag-commands. Cara termudah adalah menempatkan kursor di atas kata kunci dan tekan CTRL- ]. Untuk kembali ke tempat asal Anda dari pers CTRL-T

Di luar ini, Anda mungkin ingin melihat beberapa tips dan peningkatan VIM yang dibahas di sini , ini adalah diskusi yang sangat komprehensif tentang beberapa hal daripada yang dapat dilakukan untuk meningkatkan pengalaman vimmer.

chillitom
sumber
Saya memang menyebutkan dalam pertanyaan saya menggunakan ctag, tapi terima kasih atas jawabannya! :)
Louis Salin
4

Vim adalah alat yang sangat kuat, saya yakin Anda semua sudah tahu itu. Anda akan mulai mendapatkan peningkatan produktivitas dengan menggunakan vim dalam beberapa minggu. Tetapi Anda tidak akan pernah menjenuhkan pengetahuan Anda tentang Vim. Jadi, saya selalu mencari cara-cara baru dan efisien dalam melakukan sesuatu di Vim. Ada seorang pria bernama Derek Wyatt yang telah melakukan beberapa screencasts besar tentang penggunaan Vim, dan juga pada plugin yang dia gunakan.

Beberapa plugin yang saya gunakan

  1. command-t Ini membuat penjelajahan file menjadi sangat mudah, dan sangat cerdas .

    Plug-in Command-T menyediakan mekanisme intuitif yang sangat cepat untuk membuka file dengan sedikit penekanan tombol. Ini bernama "Command-T" karena terinspirasi oleh jendela "Pergi ke File" terikat ke Command-T di TextMate.

  2. fuzzyfinder Saya menggunakan ini sebagian besar untuk buffer broswer dan mengubah direktori saat ini.

    FuzzyFinder menyediakan cara mudah untuk dengan cepat mencapai buffer / file / command / bookmark / tag yang Anda inginkan. FuzzyFinder mencari dengan pola fuzzy / parsial yang dikonversi menjadi pola yang dimasukkan

  3. NERDTree Ini adalah plugin browser file terbaik untuk vim.

    Pohon NERD memungkinkan Anda untuk menjelajahi sistem file Anda dan untuk membuka file dan direktori. Ini menyajikan sistem file kepada Anda dalam bentuk pohon yang Anda manipulasi dengan keyboard dan / atau mouse. Ini juga memungkinkan Anda untuk melakukan operasi sistem file sederhana.

  4. XPTemplate Plugin templating terbaik di dunia.

    Mesin cuplikan kode untuk Vim, dengan pustaka cuplikan. XPTemplate memungkinkan Anda menulis kode dengan mulus, cepat dan nyaman.

  5. rails.vim Jika Anda melakukan hal-hal dev kereta, ini sangat diperlukan.

    TextMate mungkin merupakan kegemaran terbaru untuk mengembangkan aplikasi Ruby on Rails, tetapi Vim selamanya. Plugin ini menawarkan fitur berikut untuk pengembangan aplikasi Ruby on Rails.

  6. NerdCommenter Memudahkan mengomentari segala jenis kode.

Dan itu hanyalah beberapa plugin yang saya gunakan, Untuk mengunduh semua plugin dengan vimrc saya, checkout dotfiles saya

Khaja Minhajuddin
sumber
3

Ada plugin yang bagus untuk VIM yang melakukan sintaks memeriksa Syntastic . Ada banyak alat lain yang tersedia juga untuk manajemen file, bangunan, dll. Pergi ke IRC #vim di freenode.net, ada banyak orang yang membantu di sana.

Keris
sumber
3

favorit saya adalah cscope. Jika Anda telah mengkompilasi vim dengan dukungan cscope, Anda dapat langsung menggunakan perintah cscope dari VIM. mis. mencari file yang disertakan, fungsi yang dipanggil oleh fungsi xyz, dll. Saya telah mencobanya dengan repositori kode sumber yang sangat besar. Ini sangat membantu.

http://cscope.sourceforge.net/cscope_vim_tutorial.html

Hemant
sumber
1

Jika Anda memprogram dalam salah satu bahasa yang didukung oleh GCC (C, C ++, Java, Fortran) maka Clewn adalah plugin yang hebat yang mengintegrasikan debugger GDB ke VIM. Saya benar-benar menemukan itu menjadi salah satu antarmuka terbaik untuk GDB yang ada.

chillitom
sumber
0

Saya biasanya mengatur screensesi untuk setiap proyek. Vim ada di jendela 0, dan saya menggunakan jendela 1 untuk sesi shell. Jika saya mengkode dalam bahasa yang memiliki REPL yang layak, saya biasanya menjalankannya di jendela 2. Tentu saja, Anda tidak perlu screenmelakukan ini; Anda bisa melakukannya dengan jendela terminal yang berbeda atau dengan tab di terminal multitab. Saya memang menemukan screenlebih stabil daripada alternatif lain: jika aplikasi terminal Anda crash, Anda bisa memulai terminal lain dan menyambung kembali ke screensesi Anda yang masih berjalan . screenjuga sangat cepat dinavigasi setelah Anda mempelajarinya (seperti vim itu sendiri).

Saya sebagian besar akhirnya menggunakan sesi shell untuk kegiatan kontrol versi yang rumit seperti rebasing atau penggabungan: hal-hal sederhana dapat dilakukan dari baris perintah vim (misalnya :!git commit % -m 'Added info aboutlayar .') atau dengan menggunakan addon buron . Saya menemukan pelarian :Gmove(ganti nama buffer saat ini baik dalam vim dan indeks git) dan :Gdiff(aktifkan vimdiff pada buffer saat ini dengan titik sebelumnya dalam sejarahnya) sangat berguna. Anda juga dapat melakukan hal-hal seperti membangun pesan komit dalam buffer awal, menyalin teks dari berbagai bagian kode Anda, dan kemudian melakukan dengan:%!git commit -F /dev/stdin

Saya juga akan menggunakan sesi shell untuk pengujian fungsional / integrasi jika itu berlaku untuk apa pun yang saya kerjakan, misalnya jika saya sedang menulis utilitas baris perintah.

Fungsionalitas quickfix Vim berguna untuk debugging, meskipun tampaknya ada addon berbeda yang diperlukan untuk setiap bahasa yang Anda mungkin ingin bekerja. Mereka juga tampaknya menggunakan berbagai teknik doa, pemetaan tombol fungsi atau urutan tombol dimulai dengan \atau ,, atau untuk perintah khusus, atau dengan secara otomatis dipanggil ketika buffer disimpan. Sejauh ini saya belum benar-benar repot untuk membahas ini, dan hanya membaca unit test atau hasil serat ke dalam buffer awal menggunakan misalnya :r !python -m doctest whatever.py. Ubah kode, kembali ke penyangga awal, uuntuk membatalkan, lalu tekan :rdan panah atas (sebagian besar waktu) untuk mendapatkan perintah itu kembali. Tetapi mungkin ada baiknya Anda mencari tambahan untuk ini, tergantung pada bahasa tempat Anda bekerja.

Untuk bahasa yang dikompilasi populer seperti C, java, dll, :makeakan melakukan build, dan dukungan untuk daftar perbaikan cepat sudah mapan. Jadi Anda bisa lakukan :copenuntuk menampilkan buffer perbaikan cepat. Ini akan menampilkan daftar kesalahan, satu per baris; Memukul Enterbaris akan melompati jendela Anda yang lain ke titik itu di file itu.

Jika Anda bekerja dengan beberapa proyek sekaligus, Anda dapat :lmakemengatur daftar kesalahan yang akan disimpan di daftar lokasi : ini seperti daftar perbaikan cepat tetapi dikaitkan dengan satu jendela daripada menjadi tunggal dalam Anda contoh vim. :lopenakan membuka daftar lokasi untuk jendela saat ini.

intuisi
sumber