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+w
dos 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
Enter
en modo de inserción, también "romperá la secuencia de deshacer, comenzará un nuevo cambio" (verh: i_CTRL-G_u
). Esto significa que, si aciertaEnter
por error, ahora puede deshacer su cambio sin eliminar las líneas insertadas anteriormente, ya sea conESC u a
o 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-y
en el modo de inserción completará la selección emergente actual, y la asignación anterior también permitiráEnter
completarla."<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. :)paste
está activado, las asignaciones del modo Insertar están desactivadas (según la ayuda de Vim)backspace
se 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-w
uso 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