Apakah ada perintah untuk membatalkan operasi terakhir yang dilakukan saat dalam mode insert?
Saya baru saja menempelkan teks dari register yang salah menggunakan <C-r>
, dan saya punya dua opsi:
- Hapus dengan tangan apa yang baru saja saya tempel dan mulai lagi dari awal.
- Beralih ke mode normal, tekan
u
dan kehilangan teks yang saya ketik sebelum memukul<C-r>
.
Apakah ada cara yang lebih baik?
insert-mode
undo-redo
zool
sumber
sumber
<C-O>u
dan melihat hasilnya di layar (sekitar 4 detik), ada ide tentang bagaimana saya bisa menyingkirkan itu?:help i_CTRL-G_u
.Dari mode penyisipan:
Jika teks yang Anda tempel lebih kecil dari satu baris (yang menyiratkan poin kedua Anda), cukup tekan
<C-u>
untuk menghapus semua karakter sebelum kursor di baris saat ini.Jika teks disisipkan lebih dari satu baris, solusi 2 Anda akan bekerja lebih baik, diadaptasi sebagai berikut:
<C-o>u
.Kedua poin di atas akan mulai dan tetap - atau selesai - dalam mode insert; mereka sebenarnya sama dengan solusi yang Anda usulkan, hanya dibuat lebih pendek :)
sumber
Anda bisa mencoba
<C-w>
(menghapus kata ke kiri) atau<C-u>
(menghapus karakter sebelum kursor saat ditekan sekali, menghapus linebreak saat ditekan kedua kalinya). Lihat:help i_CTRL-W
dan:help i_CTRL-U
.Jika Anda menempel banyak dari register, tentu saja ini lebih cepat untuk membatalkan perubahan Anda, Anda dapat menggunakan mode insert-normal-
<C-o>
for untuk itu (jalankan satu perintah mode normal kemudian kembali ke mode insert).Secara umum akan sangat membantu untuk memotong editan Anda menjadi potongan-potongan kecil dengan sering kembali ke mode normal, sehingga Anda memiliki kemungkinan undo berbutir halus.
sumber