Saya sedang mempertimbangkan apakah saya harus mulai menggunakan VIM lagi daripada IDE. Apa saja fitur VIM paling berguna yang tidak standar dalam IDE?
ide
vim
comparison
Casebash
sumber
sumber
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.
sumber
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:
akan mencantumkan setiap baris yang berisi teks "TODO:"
ubah 'Mickey' menjadi 'Minnie' di baris mana pun yang juga mengandung kata 'Mouse'
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":
sumber
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.sumber
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.
sumber
^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.sumber
=
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
sumber
The
c
perintah. Misalnya,ci"
untuk mengubah kutipan di dalam.cw
untuk mengubah kata. Banyak trik berguna dengannya.sumber
The
.
perintah. Itu mengulangi perintah terakhir.sumber
Esc ! }
akan mendorong paragraf saat ini ke filter baris perintah sepertifmt
atauwc
atauwhich
dan mengembalikan hasil ke editor.sumber
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.
sumber
:!/bin/bash
. Saya:!
cukup sering menggunakan .:sh
Itu bisa saya gunakan
hjkl
untuk memindahkan kursor tanpa harus meninggalkan homerow keyboard. Saya memiliki sebagian besar program (seperti pembaca PDF), yang memungkinkan Anda mengubah ikatan kunci, diatur untuk menggunakan tombol gerakan Vim untuk menggulir dll.sumber
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).
sumber
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.
sumber
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
sumber
Pilih Kolom Tabel
Ini sepertinya tidak ada dalam IDE yang populer, dan jika itu mereka tetap menyembunyikannya dengan baik. Ini sangat berguna untuk menguji regex terhadap kolom dalam file data CSV.
sumber
Sebagian besar IDE tidak memungkinkan Anda untuk membagi layar. Saya suka fitur itu di VIM.
sumber
<C-w>