A veces, en el modo de inserción, presiono <CR>por error y tengo que presionar la tecla de retroceso varias veces (depende de la sangría) para volver a donde estaba.
p.ej
<div>
<p> This is some text []</p>
</div>
El cursor es []y presiono <CR>:
<div>
<p> This is some text
[]</p>
</div>
Ahora tengo que presionar la tecla de retroceso dos veces para volver a la línea anterior (este caso no es tan malo pero no tiene mucha sangría).
¿Conoces una mejor manera de hacerlo?
insert-mode
nobe4
fuente
fuente

ctrl+wdos veces parece funcionar y ser bastante fácilRespuestas:
Qué tal si:
<C-o>ejecutará un comando de modo normal (:left 0), que eliminará todas las sangrías, esto también colocará el cursor al comienzo de la línea.<BS>te llevará de vuelta a la última línea.Esto es un poco como un "al revés
J".Desafortunadamente, mapear Shift + Enter o Ctrl + Enter no parece posible, así que elijo
<C-\>, como "cerca de la entrada".fuente
<C-u>lugar de<C-o>:left 0<CR>?J": por lo quefoo<CR>bar<C-\>te dejará confoobar. En mi humilde opinión es más útil, pero YMMV.<C-u>(es decir, i_CTRL-U ) debería ser lo mismo que<C-o>:left 0<CR>.foo<CR>bar<C-u>te dejará confoo<CR>(+ cualquier sangría automática que Vim pueda haber agregado).<C-o>:left 0<CR>siempre se comportará igual independientemente de la posición del cursor.Tengo esto en mi
vimrc, la segunda parte es relevante:Qué hace esto: cada vez que pulse
Enteren modo de inserción, también "romperá la secuencia de deshacer, comenzará un nuevo cambio" (verh: i_CTRL-G_u). Esto significa que, si aciertaEnterpor error, ahora puede deshacer su cambio sin eliminar las líneas insertadas anteriormente, ya sea conESC u ao conCtrl-o u, como propuso Statox. Básicamente, cada línea se puede deshacer por separado.fuente
EDITAR / ACTUALIZAR: Si utiliza la emulación Vim en Emacs, también conocido como modo malvado , puede usar este paquete para obtener un efecto similar.
fuente
<c-y>relaciona con el menú emergente.Ctrl-yen el modo de inserción completará la selección emergente actual, y la asignación anterior también permitiráEntercompletarla."<c-g>u<cr>"de&paste ? "<cr>" : "<c-g>u<cr>", de lo contrario la próxima vez que se pega por error 200 líneas de HTML usted tendrá un montón de diversión deshacerlo. :)pasteestá activado, las asignaciones del modo Insertar están desactivadas (según la ayuda de Vim)backspacese configure la opción.La forma en que lo hago es Ctrl-wBackspace.
Ctrl-wpara eliminar la última palabra (olvidé si esto es vim estándar o no), y dado que son solo espacios, me llevará de regreso al comienzo de la línea. Luego Backspaceme llevará de vuelta a la línea anterior donde estaba.
fuente
Ctrl-wuso en modo de inserción. Pero el Carpetsmoker ♦ es aún más rápido. Por lo tanto, el enlace predeterminado de `Ctrl- \` no parece tan útil.:help i_CTRL-W. ¿Y presionarlo dos veces parece hacer el truco también?<C-u>puede ser más útil, ya que elimina todos los caracteres en la nueva líneaMi salida de esto es (desde el modo de inserción) UpCtrl-oJDel. Posiblemente no sea la combinación más eficiente, pero es lo que estoy haciendo sin necesidad de pensarlo.
fuente