Pada titik tertentu Vim saya akan membatalkan seluruh kata ketika saya menekan u
.
[i]typing some words[C-c][u]
Akan menghasilkan
typing some
Namun, membatalkan perincian tampaknya telah berubah untuk menghapus satu huruf sekaligus.
[i]typing some words[C-c][u]
Hasil dalam
typing some word
Saya ingat pernah membaca sesuatu tentang menyesuaikan undian granularity di Practical Vim, tetapi saya tidak ingat bagaimana cara mengendalikannya. Bantuan apa pun dihargai!
:help
file tentang itu ... Lihat: Bagaimana cara saya debug file vimrc saya? ... Juga, menggunakan<C-c>
untuk keluar dari mode penyisipan mungkin memiliki efek samping ( lihat ini ) dan mungkin menjadi bagian dari masalah ... Saya akan menyarankan menggunakanEsc
atau<C-[>
( lihat ini )Jawaban:
Memecah urutan undo secara manual
Anda dapat memecahkan urutan undo secara manual dalam mode Insert with
<C-G>u
. Dari bantuan :Contoh
Ini akan meninggalkan Anda dengan teks
Kerusakan perintah
Solusi otomatis
Kontrol undo-level berbutir halus
Berikut ini adalah potongan kecil VimScript yang digunakan
<C-G>u
untuk membuat jeda ketika Anda mulai menghapus teks, dan juga ketika Anda mulai memasukkan teks lagi setelah penghapusan.Catatan
Ini akan berfungsi untuk
<BS>
,<C-W>
(menghapus kata), dan<C-U>
(hapus ke awal baris). Jika ada lebih banyak cara untuk menghapus dalam mode Sisipkan, mereka dapat didukung dengan menambahkaninoremap
panggilan tambahan di akhir.sumber
<C-G>u
, yang sudah terlambat.i
diikuti oleh kalimat panjang diikuti oleh backspace untuk menghapus bagian dari apa yang saya tulis (semua dalam mode insert). Kemudian saya menyadari bahwa saya seharusnya tidak mundur dan apa yang saya tulis baik-baik saja. Saya membatalkan, tetapi kemudian seluruh teks yang dimasukkan dibatalkan. Jadi entah saya tidak memiliki kalimat yang panjang, atau bagian yang tidak mundur. Tidak mungkin mendapatkan bagian backspace kembali. Apakah ada cara untuk memberitahu vim untuk memutus urutan undo pada backspace? (Sekarang saya katakan itu,map
backspace adalah pilihan tentu saja).inoremap <CR> <C-G>u<CR>
agar setiap undo dimuat dalam satu baris (tidak lagi membatalkan seluruh paragraf yang Anda ketikkan tanpa henti).