Saya punya satu pertanyaan tentang Vim. Saya memahami peta hanya sebagai perintah yang sama sampai sekarang. Inilah masalahnya. Saya meletakkan imap <c-o> <esc>o di file .vimrc saya untuk memulai baris baru. Adapun alasan mengapa tidak hanya memetakan <CR> adalah karena saya mengikuti saran oleh Drew Neil bahwa menggunakan perintah esc dan o untuk menggantikan sehingga saya dapat menggunakan baris perintah undo per baris. Namun, ketika saya menggunakan <c-o> untuk memulai baris, perintah undo tidak berfungsi, yang berarti Vim tidak mengubah mode bahkan saya memetakan <esc> ! Saya tidak tahu apakah itu fitur atau bug dari Vim? Saya akan menghargainya jika Anda membantu saya dalam beberapa hal.

0
Xue Xu 19 November 2017, 18:26

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan inoremap <c-o> <c-g>u<esc>o untuk mendapatkan perilaku yang Anda inginkan. <c-g>u memecah urutan pembatalan saat ini (lihat :h i_CTRL-G_u).

Saya sebenarnya tidak pernah memikirkan mengapa memiliki <esc> di pemetaan sisipan tidak dihitung sebagai melanggar urutan batalkan. Saya pasti bisa berteori mengapa tetapi melakukannya berbahaya dalam jawaban SO, jadi saya tidak akan :)

Diedit untuk menambahkan: Lebih sederhana adalah: inoremap <c-o> <c-g>u<cr>

0
Andrew Haust 20 November 2017, 21:35