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?
utilities
programming
vim
Louis Salin
sumber
sumber
Jawaban:
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:
atau jumlah kata:
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: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
par
dengan menjalankan perintah:sumber
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.
sumber
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-TDi 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.
sumber
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
command-t Ini membuat penjelajahan file menjadi sangat mudah, dan sangat cerdas .
fuzzyfinder Saya menggunakan ini sebagian besar untuk buffer broswer dan mengubah direktori saat ini.
NERDTree Ini adalah plugin browser file terbaik untuk vim.
XPTemplate Plugin templating terbaik di dunia.
rails.vim Jika Anda melakukan hal-hal dev kereta, ini sangat diperlukan.
NerdCommenter Memudahkan mengomentari segala jenis kode.
Dan itu hanyalah beberapa plugin yang saya gunakan, Untuk mengunduh semua plugin dengan vimrc saya, checkout dotfiles saya
sumber
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.
sumber
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
sumber
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.
sumber
Saya biasanya mengatur
screen
sesi 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 perluscreen
melakukan ini; Anda bisa melakukannya dengan jendela terminal yang berbeda atau dengan tab di terminal multitab. Saya memang menemukanscreen
lebih stabil daripada alternatif lain: jika aplikasi terminal Anda crash, Anda bisa memulai terminal lain dan menyambung kembali kescreen
sesi Anda yang masih berjalan .screen
juga 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 about
layar.'
) 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,u
untuk membatalkan, lalu tekan:r
dan 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,
:make
akan melakukan build, dan dukungan untuk daftar perbaikan cepat sudah mapan. Jadi Anda bisa lakukan:copen
untuk 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
:lmake
mengatur 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.:lopen
akan membuka daftar lokasi untuk jendela saat ini.sumber