Karena sebagian besar dari Anda mungkin tahu, Anda dapat menggunakan %
untuk mencari maju pada baris untuk menemukan penjepit / braket / paren berikutnya dan pindah ke pasangan yang cocok:
|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
Saya berharap ada kunci serupa yang mencari mundur di telepon, misalnya:
array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
Kebanyakan perintah vim memiliki perintah mundur dan maju, jadi sepertinya ini harus dilakukan. Apakah itu tidak memiliki pasangan? Jika demikian, apakah itu karena setelah itu pada karakter dipasangkan mereka akan bertindak sama?
vim
keyboard-shortcuts
Kevin
sumber
sumber
%
tidak hanya mencari braket berpasangan pada baris yang sama, tetapi lebih jauh ke bawah file. Saya menyukainya terutama untuk loop dll dalam bahasa pilihan program.g%
perintah yang tampaknya mirip dengan yang Anda cari.Jawaban:
Jika Anda benar - benar ingin mencari ke belakang untuk menemukan karakter umum yang cocok, Anda dapat menggunakan salah satu dari
vim
perintah - spesifik ini :[(
... (buka(
karakter sebelumnya yang tidak cocok )[{
... (buka{
karakter sebelumnya yang tidak cocok )Dua perintah ini memiliki mitra penyerang yang cocok:
])
... (buka)
karakter berikutnya yang tidak cocok )]}
... (buka}
karakter berikutnya yang tidak cocok )Ada perintah serupa lainnya untuk
#ifdef
dan untuk komentar C.Anda dapat menemukan lebih banyak ketika masuk
vim
dengan menggunakan perintah:help %
.sumber
%
maka keduanya berjalan - menemukan pasangan yang cocok. Juga, jika di dalam blok, maka perintah di atas akan menemukan kecocokan yang sesuai.% menemukan braket yang cocok. Jadi jika Anda aktif (atau {itu akan mencari maju.
Jika Anda menggunakan} atau) itu akan mencari mundur.
% bukan arah, itu hanya menemukan braket yang cocok.
sumber
Saya baru saja mencoba
:map ^] ^%%
(dengan^]
= Ctrl+ v Ctrl+ di 5sini, sebagai analogi dengan%
= Shift+ 5).Ini berfungsi untuk kasus tertentu yang diberikan, tetapi karena ia tidak mencari mundur dari kursor, itu akan selalu memilih kurung buka pertama di baris, dan meninggalkan kursor Anda di awal baris jika tidak menemukan kecocokan apa pun .
Ini adalah solusi yang lebih baik; itu jelek dan mungkin ada banyak ruang untuk disederhanakan, tapi saya pikir semantiknya benar (tidak memindahkan kursor jika tidak ada paren terbuka, dan pindah ke paren terbuka pertama sebelum kolom saat ini).
untuk
^]
= Ctrl+ v Ctrl+5^[
= Ctrl+v Esc^M
= Ctrl+v Returnsumber
[(
akan berfungsi dengan baik dan tidak memerlukanmap
.