Saya baru-baru ini menghapus plugin YankRing dari pengaturan saya sebagian karena itu menyebabkan beberapa masalah dengan makro, tetapi kebanyakan karena saya memutuskan akan lebih baik untuk melatih diri saya sendiri untuk menggunakan register Vim - khususnya, cara teks yang dihapus disimpan pada awalnya di register. "1
dan kemudian bergeser melalui "2
, "3
, dll sebagai penghapusan lanjut yang dibuat sangat berguna.
Namun, ketika penghapusan / perubahan menghapus kurang dari satu baris teks, alih-alih disimpan dalam "-
register penghapusan kecil (dengan beberapa pengecualian untuk perintah gerakan tertentu). Jika penghapusan kecil berikutnya dilakukan, potongan teks itu hilang.
Apakah mungkin untuk membuat Vim menyimpan semua penghapusan dalam daftar "1
?
nnoremap d "1d
hampir berfungsi, tetapi Anda berakhir dengan teks di kedua register "1
dan "2
.
Saya tidak keberatan apakah fungsi register hapus yang kecil terpengaruh atau tidak. Menyarankan saya mengubah perilaku saya untuk menyimpan penghapusan kecil ke register bernama pasti tidak akan menjadi jawaban yang membantu - itulah yang saya lakukan saat ini.
Saya punya solusi proof-of-concept yang berfungsi untuk
d
perintah dengan gerakan dan dalam mode visual. Ini belum merupakan solusi yang sepenuhnya kuat (misalnya,d[count]d
tidak berfungsi , dan tidak juga[count]D
), tetapi hampir mencakup semua kasus penggunaan aktual saya.Ini bekerja dengan menetapkan fungsi operator pelanggan yang:
Lihat
:help map-operator
penjelasan tentang cara kerja fungsi operator.sumber
y
danc
tetapi untukc
nvim saya tidak masuk ke mode memasukkan setelah tindakan ... Saat ini saya harusexecute l
danstartinsert
yang bukan perbaikan yang tepat (sepertic$
akan meletakkan kursor di posisi yang salah). Ada ide?Lihatlah Permintaan Tarik ke dalam editor neovim :
[RFC] Tambahkan opsi untuk menggunakan register bernomor untuk penghapusan yang lebih kecil # 8169
Saya telah mencoba untuk menambahkan
smalldel
opsi, yang memungkinkan Anda untuk mengkonfigurasi jumlah minimum karakter yang dihapus untuk dimasukkan ke dalam register bernomor "1 .." 9Rilis neovim berikutnya setelah PR ini digabungkan (jika ini terjadi) akan berisi opsi ini.
sumber