Saya telah menggunakan vim selama beberapa waktu dan saya sadar bahwa memilih blok teks dalam mode visual adalah semudah SHIFT+ Vdan menggerakkan tombol panah ke atas atau ke bawah baris demi baris sampai saya mencapai ujung blok teks yang saya ingin dipilih.
Pertanyaan saya adalah - apakah ada cara yang lebih cepat dalam mode visual untuk memilih blok teks misalnya dengan SHIFT+ Vdiikuti dengan menentukan nomor baris di mana saya ingin seleksi dihentikan? (via :35
misalnya, di mana 35 adalah nomor baris yang ingin saya pilih - ini jelas tidak berfungsi jadi pertanyaan saya adalah menemukan bagaimana jika sesuatu yang mirip dengan ini dapat dilakukan ...)
v%
atauv/pattern
atau sesuatu yang lain?V35G
akan memilih secara visual dari baris saat ini ke baris 35, jugaV10j
atauV10k
akan secara visual memilih 10 baris berikutnya atau sebelumnyannoremap <Space> V
. Ketika dalam mode garis visual klik kanan dengan mouse untuk menentukan pilihan (setidaknya di linux begitu). Lagi pula, lebih efektif daripada dengan keyboard saja.Jawaban:
Selain apa yang dikatakan orang lain, Anda juga dapat memperluas pilihan menggunakan pencarian pola.
Misalnya, v/fooakan memilih dari posisi Anda saat ini ke instance "foo." Jika Anda benar-benar ingin memperluas ke instance "foo" berikutnya , pada baris 35, misalnya, cukup tekan nuntuk memperluas pilihan ke instance berikutnya, dan seterusnya.
memperbarui
Saya tidak sering melakukannya, tetapi saya tahu bahwa beberapa orang menggunakan tanda secara luas untuk membuat pilihan visual. Misalnya, jika saya di jalur 5 dan saya ingin memilih ke jalur 35, saya mungkin menekan mauntuk menempatkan tanda
a
di jalur 5, kemudian :35untuk pindah ke jalur 35. Shift+ vuntuk masuk ke mode visual yang linier, dan akhirnya `auntuk memilih kembali untuk menandaia
.sumber
v/foo/e
. Thee
singkatan dari "akhir" dari pola cocok.v
i
w
. Jika Anda ingin memilih non-spasi yang berdekatan saat ini, gunakanv
i
Shift
+w
. Perbedaannya adalah ketika tanda sisipan ada di siniMyCla|ss.Method
, kombo pertama akan memilihMyClass
dan yang kedua akan memilih semuanya.v i w s
memungkinkan Anda untuk melakukan operasi "penggantian" secara efektif.V35G mencapai apa yang Anda inginkan
sumber
Vim adalah bahasa. Untuk benar-benar mengerti Vim, Anda harus tahu bahasanya. Banyak perintah adalah kata kerja, dan vim juga memiliki objek dan preposisi.
Ini berarti "pilih garis saat ini hingga dan termasuk garis 100."
Objek teks adalah tempat di mana banyak daya berada. Mereka memperkenalkan lebih banyak objek dengan preposisi.
Ini berarti "pilih di sekitar paragraf saat ini", yaitu pilih paragraf saat ini dan baris kosong yang mengikutinya.
Ini berarti "pilih di sekitar paragraf saat ini dan paragraf berikutnya."
Ini berarti "pergi ke akhir paragraf saat ini dan kemudian pilih secara visual dan paragraf sebelumnya."
Memahami Vim sebagai bahasa akan membantu Anda mendapatkan jarak tempuh terbaik dari itu.
Setelah memilih ke bawah, maka Anda dapat menggabungkan dengan perintah lain:
Dengan perintah di atas, Anda dapat memilih di sekitar paragraf dan menghapusnya. Ubah
d
ke menjadiy
untuk menyalin atau kec
untuk mengubah atau kep
untuk menyisipkan.Setelah Anda memahami bagaimana semua perintah ini bekerja bersama, maka pada akhirnya Anda tidak perlu memilih apa pun secara visual. Alih-alih memilih secara visual dan kemudian menghapus paragraf, Anda bisa menghapus paragraf dengan
dap
perintah.sumber
v35G
akan memilih semuanya mulai dari kursor hingga baris 35.v
menempatkan Anda dalam mode pilih,35
menentukan nomor baris yang ingin AndaG
tuju.Anda juga dapat menggunakan
v}
yang akan memilih semuanya hingga awal paragraf berikutnya.sumber
Untuk memilih jumlah garis:
shift + v 9j - pilih 10 baris
sumber
:set rnu
Shift+V n j
atauShift+V n k
Ini memilih baris saat ini dan baris berikutnya / sebelumnya
n
. Saya merasa sangat berguna.sumber
v 35 j
teks ditambahkan untuk minimum 30 karakter
sumber
v%
akan memilih seluruh blok.
Main dengan juga:
v}
,vp
,vs
, DllLihat bantuan:
:help text-objects
yang mencantumkan berbagai cara untuk memilih huruf, kata, kalimat, paragraf, blok, dan sebagainya.
sumber
Objek teks: http://vim.wikia.com/wiki/Creating_new_text_objects
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
sumber
Anda dapat menekan
vi}
untuk memilih blok yang dikelilingi{}
tanda kurung di mana kursor Anda saat ini berada.Tidak masalah di mana Anda berada di dalam blok itu (pastikan Anda berada di blok terluar). Anda juga dapat mengubah
{
apa pun yang memiliki pasangan seperti)
atau]
.sumber
Anda selalu bisa menggunakan angka anteseden untuk mengulangi tindakan:
sumber
cukup tekan saja Shift v line number gg
contoh: baris Anda saat ini ke baris 41 Cukup tekan Shift v 41 gg
sumber
} berarti memindahkan kursor ke paragraf berikutnya. jadi, gunakan
v}
untuk memilih seluruh paragraf.sumber
Untuk memilih semua dalam visual: Ketik Esc untuk memastikan Anda berada dalam mode normal
ketik ENTER untuk pergi ke awal file
sumber
gg
dalam mode normal untuk menuju ke baris pertama juga.Mungkin berguna untuk mengetahui:
Untuk memilih jumlah baris yang sama misalnya, gunakan
1v
Anda harus melakukan beberapa modifikasi untuk dapat digunakan1v
, secara blok atau lancip.Hari ini saya melihat tip yang luar biasa ini dari sini :
Anda juga dapat mengatur ulang batas blok visual dengan melakukannya:
sumber
Saya menggunakan ini dengan flip dalam mode indent:
v buka mode Visual di mana saja di blok
zaza toogle itu dua kali
sumber