Saya setuju dengan paradigma 'Vim is not an IDE'. Tetapi ada kalanya tidak ada IDE. Inilah yang saya gunakan dalam situasi tersebut:
: grep,: vimgrep,: Ag,: Ggrep
Refactoring yang lebih berkaitan dengan penggantian biasa Saya biasanya menggunakan : grep pada pohon proyek saya dan kemudian merekam makro untuk melakukan refactor -: g dan: s tidak punya otak. Biasanya saya akan dengan cepat mengubah sejumlah besar file dengan sedikit usaha. Sejujurnya, saya menggunakan metode ini lebih dari yang lain.
Bergantung pada alur kerja Anda, perintah bawaan mungkin lambat / tidak nyaman. Jika Anda menggunakan git, Anda akan ingin menggunakan plugin Fugitive yang sangat baik dan :Ggrep
perintahnya untuk hanya mencari file yang diperiksa di git. Saya juga menyukai Pencari Perak karena kecepatannya.
: argdo,: cdo, dan: bufdo
: cdo dan : argdo berguna untuk menjalankan perintah vim pada satu set file.
garis komando
Ketika lebih sulit untuk menentukan daftar file yang perlu diubah melalui :vimgrep
saya menggunakan baris perintah grep / find perintah untuk lebih dekat mengatur daftar file yang perlu saya refactor. Simpan daftar ke file teks dan gunakan :e
serta gabungan rekaman makro untuk membuat perubahan yang perlu saya buat.
Saya menemukan bahwa semakin tidak berkarat saya menjaga keterampilan perekaman makro saya semakin berguna saya menemukan Vim untuk refactoring: merasa nyaman menyimpan / memulihkan dari register, menambah / mengurangi variabel penghitung register, membersihkan / menyimpan rekaman makro ke file untuk digunakan nanti, dll.
Memperbarui
Sejak menulis ini, lebih banyak videocast untuk metode yang saya jelaskan telah diterbitkan di vimcasts.org (Saya mendorong Anda untuk menonton SEMUA Vimcast! ). Untuk refactoring, jam tangan ini:
Vimgolf juga merupakan cara yang bagus untuk berlatih.
Keberadaan server Language Server Protocol sejak saya menulis jawaban ini juga membawa beberapa kemampuan refactoring ke Vim (dan editor lain). IMO mereka masih jauh dari kemampuan menyamakan kemampuan refactoring yang akan Anda lihat dalam IDE yang dibuat khusus (saya menggunakannya, dan lebih suka coc dan ALE). Lihat jawaban lain untuk pertanyaan ini untuk info lebih lanjut!