Kadang-kadang dalam mode insert saya terkena <CR>
kesalahan dan saya harus menekan backspace beberapa kali (tergantung pada indentasi) untuk kembali ke tempat saya sebelumnya.
misalnya
<div>
<p> This is some text []</p>
</div>
Kursornya []
dan saya tekan <CR>
:
<div>
<p> This is some text
[]</p>
</div>
Sekarang saya harus menekan backspace dua kali untuk kembali ke baris sebelumnya (case ini tidak terlalu buruk tetapi tidak memiliki banyak indentasi).
Apakah Anda tahu cara yang lebih baik untuk dilakukan?
insert-mode
nobe4
sumber
sumber
ctrl+w
dua kali tampaknya bekerja dan cukup mudahJawaban:
Bagaimana tentang:
<C-o>
akan menjalankan perintah mode normal (:left 0
), yang akan menghapus semua indent, ini juga akan meletakkan kursor Anda di awal baris.<BS>
akan membuat Anda kembali ke baris terakhir.Ini agak seperti "mundur
J
".Sayangnya, pemetaan Shift + Enter atau Ctrl + Enter sepertinya tidak mungkin, jadi saya memilih
<C-\>
, sebagai "dekat enter".sumber
<C-u>
bukan<C-o>:left 0<CR>
?J
": Jadifoo<CR>bar<C-\>
akan meninggalkan Anda denganfoobar
. IMHO itu lebih berguna, tapi YMMV.<C-u>
(yaitu, i_CTRL-U ) harus sama dengan<C-o>:left 0<CR>
.foo<CR>bar<C-u>
akan memberi Andafoo<CR>
(+ indentasi apa pun yang mungkin ditambahkan Vim).<C-o>:left 0<CR>
akan selalu berperilaku sama terlepas dari posisi kursor.Saya punya ini di saya
vimrc
, bagian kedua relevan:Kegunaannya: setiap kali Anda menekan
Enter
dalam mode insert, itu juga akan "memecah urutan undo, memulai perubahan baru" (lihath: i_CTRL-G_u
). Ini berarti, jika Anda terkenaEnter
kesalahan, Anda sekarang dapat membatalkan perubahan Anda tanpa menghapus garis yang dimasukkan sebelumnya, baik denganESC u a
, atau denganCtrl-o u
, seperti yang diusulkan Statox. Pada dasarnya, setiap baris dapat dibatalkan secara terpisah.sumber
EDIT / PEMBARUAN: Jika Anda menggunakan emulasi Vim di Emacs, alias mode jahat , Anda dapat menggunakan paket ini untuk efek yang serupa.
sumber
<c-y>
hubungannya dengan menu pop-up.Ctrl-y
dalam mode insert akan menyelesaikan pemilihan popup saat ini, dan pemetaan di atas akan memungkinkanEnter
untuk menyelesaikan juga."<c-g>u<cr>"
dengan&paste ? "<cr>" : "<c-g>u<cr>"
, jika lain kali Anda menyisipkan secara tidak sengaja 200 baris HTML Anda akan bersenang-senang membatalkannya. :)paste
aktif, pemetaan mode Insert dinonaktifkan (sesuai bantuan Vim)backspace
opsi diatur.Cara saya melakukannya adalah Ctrl-wBackspace.
Ctrl-wuntuk menghapus kata terakhir (saya lupa apakah ini vim standar atau tidak), dan karena hanya spasi, ini akan membawa saya kembali ke awal baris. Kemudian Backspaceakan membawaku kembali ke baris sebelumnya dimana aku berada.
sumber
Ctrl-w
penggunaan dalam mode insert. Tetapi ♦ Carpetsmoker masih lebih cepat. Dengan demikian pengikatan standar `Ctrl- \` tampaknya tidak berguna.:help i_CTRL-W
. Dan menekannya dua kali sepertinya juga berhasil?<C-u>
mungkin lebih bermanfaat karena menghapus semua karakter di baris baruJalan keluar saya adalah (dari mode insert) UpCtrl-oJDel. Mungkin bukan kombinasi yang paling efisien, tetapi itulah yang saya lakukan tanpa perlu memikirkannya.
sumber