Saya sering menemukan diri saya mengetik perintah seperti gg"+yG
atau ggdG
dan ingin cara yang lebih efisien untuk melakukan ini tanpa harus memindahkan kursor dua kali. Apakah ada perintah yang bisa saya gunakan misalnya y[movement]
untuk menyalin seluruh buffer tanpa memindahkan kursor?
cut-copy-paste
cursor-motions
custom-text-object
Random832
sumber
sumber
mmgg"+yG`m
dan tidak pernah memikirkan hal ini. Terima kasih, ini benar di .vimrc.C-o
dua kali untuk kembali.Solusi lain adalah dengan menggunakan plugin yang disebut vim-textobj-whole . Secara default, plugin ini menyediakan objek teks
ae
untuk seluruh buffer,ie
untuk seluruh buffer kecuali memimpin dan mengikuti baris kosong.Plugin ini tergantung pada vim-textobj-user oleh penulis yang sama, yang memungkinkan pengguna mendefinisikan objek teks dengan nyaman. Ada banyak plugin yang memanfaatkan ini.
sumber
Tidak ada objek teks untuk seluruh file secara default, tetapi dimungkinkan untuk membuatnya menggunakan
omap
. Dalam hal ini, akan terlihat seperti ini:Berikut ini rincian cara kerjanya:
Catatan:
Ctrludapat digunakan dalam mode baris perintah untuk menghapus semuanya di sebelah kiri posisi kursor. Alasan mengapa ini dilakukan adalah karena jika Anda memasukkan baris perintah langsung dari mode visual, itu akan secara otomatis memasukkan
'<,'>
pada baris perintah, dan itu bukan yang kita inginkan. Saya juga menyarankan Anda menggunakan sesuatu selainf
, karenaf
biasanya digunakan untuk pindah ke karakter yang dicari berikutnya di telepon. Misalnya,fi
akan menuju ke yang berikutnyai
pada baris saat ini.Topik bantuan yang relevan:
sumber
``
ke ujung akan mengembalikan kursor ke lokasi sebelumnya.Berikut adalah beberapa pemetaan cepat dan kotor untuk menyelesaikan tugas:
Sekarang Anda dapat menggunakan
yY
dandD
untuk menarik / menghapus masing-masing. Ini tidak sebagus menggunakan objek teks penuh, tetapi kadang-kadang solusi paling sederhana adalah yang terbaik.Untuk bantuan lebih lanjut lihat:
sumber