Fitur VIM paling berguna yang tidak standar dalam IDE [tertutup]


30

Saya sedang mempertimbangkan apakah saya harus mulai menggunakan VIM lagi daripada IDE. Apa saja fitur VIM paling berguna yang tidak standar dalam IDE?


3
IDE mana yang Anda gunakan? Banyak IDE memiliki plugin VIM sehingga Anda dapat mengedit seolah-olah Anda menggunakan VIM.
Brian R. Bondy

2
@ Brian: Tentunya mereka tidak meniru semua fitur canggih?
Casebash

1
Mungkin tidak semua kecuali yang saya gunakan bagus untuk VS. Setidaknya ada 2 dari mereka. viemu.com dan github.com/jaredpar/VsVim
Brian R. Bondy

2
@Brian R Bondy: Tidak satupun dari mereka yang mendekati semua fitur vim. Mereka menggaruk permukaan dan tidak benar-benar melakukan lagi
Daenyth

2
Atau Anda bisa benar-benar masuk akal dan mulai menggunakannya emacs. ;-)
Orbling

Jawaban:


32

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.


3
Jawaban ini mungkin adalah fitur yang paling berguna untuk Vim, ini juga satu-satunya. Apa pun yang diprogram untuk Vim dapat dengan mudah diterapkan pada IDE juga, itu hanya pemrosesan teks saja ...
Tamara Wijsman

4
+1 Sementara saya adalah penggemar emacs, argumen yang sama berlaku. IDE modern terlalu "grafis", untuk editor teks .
Orbling

22

Bagi saya, :globalperintahnya 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/

Trik hebat dengan perintah global! Saya tidak pernah berpikir untuk menggunakannya seperti itu.
Xavier T.

Eclipse mendukung pencarian regex file, baik sebagai file individual, proyek, atau seluruh proyek di ruang kerja yang sama. Penggantian regex juga didukung sampai batas tertentu, tetapi saya percaya vim memiliki kemampuan regex yang jauh lebih kuat.
Thomas Owens

16

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.


12
Bahkan lebih baik, ci"menghapus, dan menempatkan kursor dalam mode penyisipan sehingga Anda dapat segera mulai menulis.
Konrad Rudolph

9

'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.


2
Anda juga memiliki penyelesaian kode yang tepat jika Anda mau, menggunakan omni-complete. ^X^Oomni-selesai dalam mode penyisipan, jika Anda mengaktifkannya. Tapi Anda benar, saya menemukan diri saya menggunakan penyelesaian kata kunci jauh lebih dari omni-complete.
Chinmay Kanchi

@ Cinmay: Saya pikir Anda memiliki arti "tepat" mundur. Penyelesaian kode yang tepat menyelesaikan apa pun menggunakan prinsip lokalitas, bahkan jika Anda menulis teks alih-alih kode.
ninjalj

SlickEdit memiliki fitur serupa; dan itu sangat seperti IDE
user281377

8
Saya sangat tidak setuju. IDE modern (Visual Studio, Eclipse, ...) memiliki semacam penyelesaian kode yang menyaingi (dan bahkan melampaui!) Ctrl-N dengan mudah . Jika Anda belum melihat ini di IDE, lihat lagi di versi saat ini. Dan Omni-Complete sayangnya tidak berfungsi dengan baik.
Konrad Rudolph

8

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.


Walaupun saya menyukai fitur ini, hampir setiap IDE memiliki blok indent (dan dedent).
Sean McMillan

Saya menemukan =sama, jika tidak lebih, berguna daripada <<dan >>.
greyfade

6

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


Netbeans hampir memiliki ini, ^ X tanpa pilihan akan memotong garis saat ini.
Alan Pearce

@Lan: Tidak, NetBeans punya jVi :)
dr Hannibal Lecter

^ K menghapus baris dan ^ u3 ^ k akan menghapus 3 baris di emacs. shift-delete melakukan hal yang sama di studio visual.
Raoul

Alan: dd juga memotong garis saat ini dalam arti bahwa itu dapat dimasukkan dengan p nanti
user281377

3
@ Raoul, kita tahu ada serangkaian emacs kombinasi n-tombol 3 untuk mereplikasi setiap perintah vim - masih, 3dd adalah puisi.
cbrandolino

6

The cperintah. Misalnya, ci"untuk mengubah kutipan di dalam. cwuntuk mengubah kata. Banyak trik berguna dengannya.



3

Esc ! }akan mendorong paragraf saat ini ke filter baris perintah seperti fmtatau wcatau whichdan mengembalikan hasil ke editor.


3

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.


1
+1 Itu sedikit terakhir adalah bagian penting untuk hampir semua manfaat: tanpa tangan saya meninggalkan keyboard
Orbling

... Atau :!/bin/bash. Saya :!cukup sering menggunakan .
greyfade

Saya biasanya menggunakan:sh
David Brown

3

Itu bisa saya gunakan hjkluntuk 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.


1

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).


1

Tahukah Anda bahwa ada plugin vi untuk gerhana ? Harganya 15 euro (US $ 20-an) tetapi sangat berharga. Tidak ada lagi dddi tengah-tengah dokumen, dan kehilangan semua hal-hal kecil yang bermanfaat.

Mungkin sedikit keluar dari topik tetapi saya pikir itu layak untuk ditunjukkan.


0

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


3
Ini omong kosong. Ya, refactoring adalah alat yang penting, tetapi kode tidak menulis sendiri. Sebuah editor yang baik teks kontribusi jauh lebih banyak untuk produktivitas programmer daripada alat yang baik refactoring.
Chinmay Kanchi

-1

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.


-3

Sebagian besar IDE tidak memungkinkan Anda untuk membagi layar. Saya suka fitur itu di VIM.


5
Kebanyakan IDE tidak? Saya pikir sebagian besar benar-benar melakukannya, setidaknya yang telah saya gunakan.
Anto

Bisakah Anda memberikan beberapa contoh?
projecktzero

1
Sebagian besar pegangan layar IDE berbeda dari Vim / Emacs. Mereka melakukannya dengan tab biasanya. Ini lebih sulit / mustahil untuk dimanipulasi dengan keyboard (bandingkan memiliki 50 file terbuka di Emacs vs memiliki 50 file terbuka di Eclipse dan Anda akan segera melihat Emacs menang).
jsternberg

Sebagian besar IDE yang memiliki splitscreen tidak menyediakan metode navigasi / penyesuaian a-la yang mudah<C-w>
Wayne Werner
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.