Saya sedang mempertimbangkan apakah saya harus mulai menggunakan VIM lagi daripada IDE. Apa saja fitur VIM paling berguna yang tidak standar dalam IDE?
emacs
. ;-)
Saya sedang mempertimbangkan apakah saya harus mulai menggunakan VIM lagi daripada IDE. Apa saja fitur VIM paling berguna yang tidak standar dalam IDE?
emacs
. ;-)
Jawaban:
Saya tidak berpikir itu fitur canggih VIM yang membuatnya begitu kuat. Ini adalah fakta bahwa Anda tidak perlu melepaskan keyboard untuk melakukan apa pun. Menemukan sesuatu dalam file besar sesederhana beberapa penekanan tombol. Membuka dan menutup banyak file di jendela yang sama juga sangat cepat.
Meskipun awalnya tidak tampak intuitif, ini sepadan dengan waktu Anda. Bahkan jika Anda tidak menggunakannya sebagai IDE standar Anda (saya biasanya menggunakan Visual Studio atau Eclipse), Anda akan menemukan diri Anda menggunakan VIM untuk dengan cepat membuka dan mengedit file karena itu menjadi jauh lebih cepat daripada menunggu IDE untuk beban.
Investasikan waktu untuk mempelajari cara menggunakan VIM dengan baik dan Anda tidak akan pernah menyesalinya. Saya akan mengatakan itu sebanding dengan belajar untuk tipe sentuh.
Bagi saya, :global
perintahnya adalah aplikasi pembunuh. Ini akan menjalankan perintah vim arbitrer pada baris apa pun yang cocok (atau tidak cocok) dengan regex.
Berikut ini beberapa contohnya:
Perilaku default adalah mencantumkan setiap baris yang cocok, jadi:
:g/TODO:/
akan mencantumkan setiap baris yang berisi teks "TODO:"
ubah 'Mickey' menjadi 'Minnie' di baris mana pun yang juga mengandung kata 'Mouse'
:g/Mouse/ s/Mickey/Minnie/
Perintah dapat memiliki jangkauannya sendiri, jadi ini akan dihapus dari setiap baris dengan "TODO:" ke baris kosong berikutnya:
: g / TODO: /., / ^ $ / d
Gunakan: g! untuk mengeksekusi pada setiap baris yang TIDAK cocok dengan regex, misalnya untuk mengganti "emacs" dengan "vim" kecuali pada baris yang mengandung kata "sucks":
:g!/sucks/ s/emacs/vim/
Saya menemukan kemampuan untuk menghapus semuanya di antara satu set simbol pasangan yang sangat berguna. Misalnya, cukup sering, saya akan menemukan diri saya ingin mengganti string dalam kode. Jadi, di"
saat kursor berada di blok akan menghapus string, sambil menjaga ""
intak, dan menempatkan kursor di antara dua karakter kutipan. da"
melakukan hal yang sama, tetapi menghapus karakter kutipan juga.
ci"
menghapus, dan menempatkan kursor dalam mode penyisipan sehingga Anda dapat segera mulai menulis.
'Penyelesaian kata kunci mode penyisipan'. Ctrl-P dan Ctrl-N dalam mode sisipkan untuk mencari melalui teks untuk mencoba dan menyelesaikan nama variabel apa pun yang Anda ketikkan. Saya belum pernah melihat ini di IDE lain dan saya sangat merindukannya. Kelengkapan kode di IDE tidak sama.
^X^O
omni-selesai dalam mode penyisipan, jika Anda mengaktifkannya. Tapi Anda benar, saya menemukan diri saya menggunakan penyelesaian kata kunci jauh lebih dari omni-complete.
Fitur lain yang saya temukan sangat berguna adalah kemampuan untuk mengubah indentasi. :15,30>>
indentasi semua baris dari 15-30 (termasuk) dua kali, sedangkan :15,30<<
de-indentasi baris yang sama dua kali.
=
sama, jika tidak lebih, berguna daripada <<
dan >>
.
perintah dd (hapus baris saat ini). Saya menggunakan ini begitu banyak.
Juga, bisa mengetikkan sesuatu seperti 3dd dan menghapus 3 baris berikutnya sangat bagus. Saya belum pernah melihat ini di editor lain = D
The .
perintah. Itu mengulangi perintah terakhir.
Akses cepat ke baris perintah. CTRL + Z atau: wqa akan memberi saya baris perintah dalam waktu kurang dari 1 detik tanpa tangan saya meninggalkan keyboard.
:!/bin/bash
. Saya :!
cukup sering menggunakan .
:sh
Ini agak sulit untuk dijawab, karena agak ketidakjelasan pertanyaan, dan agak karena fakta bahwa IDE berbeda, dan banyak yang menyediakan fitur yang tidak (dan fakta bahwa saya hanya beberapa dari mereka).
Namun, apa yang saya yakini membedakan Vim dari editor lain (ya, bahkan Emacs, untuk yang satu ini) adalah bahwa ia benar-benar editor hebat . Saya telah melewati waktu, menggunakan banyak editor, dan dapat dengan jujur mengatakan bahwa sangat sedikit yang datang dengan seperangkat fitur lengkap untuk memanipulasi teks, seperti yang dilakukan Vim.
Gaya saya memanipulasi teks misalnya, termasuk sangat sering menggunakan duplikasi (baris / pemilihan beberapa baris), dan bergerak (baris / pemilihan beberapa baris) ke atas dan ke bawah, yang sudah lama saya tentukan cara pintas cepat. Saya kehilangan fitur-fitur di sebagian besar IDE (walaupun saya pernah mendengar ReSharper untuk VS memiliki sesuatu yang serupa).
Tahukah Anda bahwa ada plugin vi untuk gerhana ? Harganya 15 euro (US $ 20-an) tetapi sangat berharga. Tidak ada lagi dd
di tengah-tengah dokumen, dan kehilangan semua hal-hal kecil yang bermanfaat.
Mungkin sedikit keluar dari topik tetapi saya pikir itu layak untuk ditunjukkan.
Bergantung pada bahasa apa yang Anda pemrograman, tetap dengan ide, atau mendapatkan ide yang menawarkan refactoring paling banyak yang dapat Anda temukan, dapatkan resharper untuk studio visual jika Anda melakukan c #, intellij untuk java, atau bantuan visual untuk studio visual, maks refactorings dalam gerhana atau netbeans.
Kita harus beralih dari memanipulasi teks ke memanipulasi kode, alat refactoring memberi Anda kemampuan itu. Jika vim memang memberi Anda semua fitur baik-baik saja, saya untuk satu tidak benar-benar ingin berurusan dengan editor teks lagi
Sebagian besar IDE tidak memungkinkan Anda untuk membagi layar. Saya suka fitur itu di VIM.
<C-w>