Berbagai Gerakan:%
The %
perintah melompat ke pertandingan item di bawah kursor. Posisikan kursor pada paren pembuka (atau penutup) dan gunakan y%
untuk menarik atau d%
menghapus semuanya dari kursor ke paren yang cocok.
Ini berfungsi karena %
merupakan "perintah gerak", sehingga dapat digunakan di mana saja vim mengharapkan perintah seperti itu. Dari :help y
:
["x]y{motion} Yank {motion} text [into register x]. When no
characters are to be yanked (e.g., "y0" in column 1),
this is an error when 'cpoptions' includes the 'E'
flag.
Secara default, "item" termasuk tanda kurung, kawat gigi, paren, komentar gaya-C dan berbagai pernyataan precompiler ( #ifdef
, dll.).
Ada plugin untuk "extended% matching" yang dapat Anda temukan di beranda Vim .
Anda dapat membaca dokumentasi %
dan perintah gerakan terkait dengan memasukkan :help various-motions
dalam mode perintah.
objek-pilih
Ada satu set perintah gerak yang dapat Anda gunakan dalam mode Visual untuk memilih berbagai objek teks.
Untuk mengatasi masalah spesifik Anda, Anda akan melakukan hal berikut:
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^
Katakanlah kursor Anda diposisikan di ^
. Masukkan urutan berikut untuk memilih bagian yang Anda cari:
v2a)
Pertama v
memasuki mode Visual, maka Anda menentukan bahwa Anda ingin naik 2
tingkat parens. Akhirnya a)
memilih "blok". Setelah itu Anda bisa menggunakan d
atau x
menghapus, dll.
Jika Anda tidak ingin memasukkan paren luar, Anda dapat menggunakan "blok dalam" sebagai gantinya:
v2i)
Lihat :help object-select
daftar lengkap perintah terkait.
a
berarti "di sekitar" daripada "a". Merasa seperti itu melengkapi "batin" dengan lebih baik. Sepertinya tidak ada hari berlalu dengan tidak mempelajari sesuatu yang baru tentang Vim.Bagaimana dengan
dib
ataudi(
.Ini akan menghapus blok bagian dalam (...) tempat kursor berada.
Saya suka gerakan dan pilihan objek teks !
sumber
dab
=> hapus satu blok (termasuk tanda kurung)Untuk menghapus semua yang ada di dalam tanda kurung, Anda selalu dapat mengeluarkan
di(
dan turunannya.Catatan :
Seperti yang disarankan @porglezomb dalam komentarnya, Anda dapat menggunakan
a
("bersama dengan") alih-alihi
("di dalam") untuk memasukkan tanda kurung. Jadi, menggunakanda(
menghapus semua yang ada di dalamnya(
dan)
termasuk(
dan)
.Menghapus teks di dalam pasangan kurung langsung di luar:
Jadi, untuk baris kode ini
dengan asumsi bahwa kursor Anda berada di dalam kisaran kursor yang disebutkan di atas, Anda dapat mengeluarkan perintah berikut:
Menghapus teks di dalam pasangan kurung luar ke-n:
Untuk mengambil semua yang ada di dalam pasangan kurung luar ke-n, cukup tambahkan
n
sebelum perintah di atas. Jadi, dengan posisi kursor yang sama seperti di atas,sumber
a
sebagai lawan bicarai
, karena itu mungkin membantu banyak orang.%
untuk masalah ini, tetapi ini membutuhkan lebih banyak waktu dan, menurut saya, seharusnya hanya digunakan untuk skenario yang lebih kompleks. Menghapus sesuatu di dalam lingkup tertentu adalah persis use-casedi
dibuat.Anda dapat menggunakannya
d%
untuk menghapus dany%
untuk menarik.sumber
Tempatkan kursor Anda pada tanda kurung pertama, lalu tekan
v%y
atauv%d
.sumber
Coba ci [blok-surrounder]
Dalam kasus Anda, tempatkan kursor di mana saja di antara tanda kurung 2 yang Anda sorot dan coba tombol: ci (
sumber
Seperti jawaban David Norman,
Tempatkan kursor Anda pada tanda kurung pertama, lalu tekan
v%y
atauv%d
.Penjelasan dari http://vimdoc.sourceforge.net/htmldoc/vimindex.html :
Ini berarti ia akan memilih segala sesuatu di antara dan termasuk dua tanda kurung (
%
) sambil menunjukkan pilihan kepada Anda secara visual (v
) dan kemudian menarik / menyaliny
atau menghapus / memotongnyad
. (Ke buffer default.)Anda dapat menempatkan / menempel dengan
p
.Membuat jawaban ini untuk "belajar sendiri untuk memancing" .
sumber