Parfois, en mode insertion, je frappe <CR>
par erreur et je dois appuyer plusieurs fois sur le retour arrière (en fonction de l'indentation) pour revenir où j'étais.
par exemple
<div>
<p> This is some text []</p>
</div>
Le curseur est []
et je frappe <CR>
:
<div>
<p> This is some text
[]</p>
</div>
Maintenant, je dois frapper deux fois en arrière pour revenir à la ligne précédente (ce cas n'est pas si mauvais mais il n'a pas beaucoup d'indentation).
Connaissez-vous une meilleure façon de procéder?
insert-mode
nobe4
la source
la source
ctrl+w
deux fois semble fonctionner et être assez facileRéponses:
Que diriez-vous:
<C-o>
exécutera une commande en mode normal (:left 0
), qui supprimera tout retrait, cela placera également votre curseur au début de la ligne.<BS>
vous ramènera à la dernière ligne.C'est un peu comme un "en arrière
J
".Malheureusement, le mappage Shift + Entrée ou Ctrl + Entrée ne semble pas possible, donc je choisis
<C-\>
, comme étant "près de l'entrée".la source
<C-u>
place de<C-o>:left 0<CR>
?J
":foo<CR>bar<C-\>
vous laissera donc avecfoobar
. À mon humble avis, il est plus utile, mais YMMV.<C-u>
(ie, i_CTRL-U ) devrait être le même que<C-o>:left 0<CR>
.foo<CR>bar<C-u>
vous laissera avecfoo<CR>
(+ tout retrait automatique que Vim peut avoir ajouté).<C-o>:left 0<CR>
se comportera toujours de la même manière quelle que soit la position du curseur.J'ai ceci dans mon
vimrc
, la deuxième partie est pertinente:Ce que cela fait: chaque fois que vous frappez
Enter
en mode insertion, cela "interrompra la séquence d'annulation, commencera une nouvelle modification" (voirh: i_CTRL-G_u
). Cela signifie que si vous frappezEnter
par erreur, vous pouvez maintenant annuler votre modification sans supprimer les lignes insérées précédentes, soit avecESC u a
, soit avecCtrl-o u
, comme Statox l'a proposé. Fondamentalement, chaque ligne peut être annulée séparément.la source
EDIT / UPDATE: S'il vous arrive d'utiliser l'émulation Vim dans Emacs, alias evil-mode , vous pouvez utiliser ce package pour un effet similaire.
la source
<c-y>
relation avec le menu contextuel.Ctrl-y
en mode insertion complètera la sélection de popup actuelle, et le mappage ci-dessus permettraEnter
de terminer aussi."<c-g>u<cr>"
par&paste ? "<cr>" : "<c-g>u<cr>"
, sinon la prochaine fois que vous collerez par erreur 200 lignes de HTML, vous aurez beaucoup de plaisir à la défaire. :)paste
est activé, les mappages du mode Insertion sont désactivés (selon l'aide de Vim)backspace
option est définie.La façon dont je le fais est Ctrl-wBackspace.
Ctrl-wsupprimer le dernier mot (j'ai oublié s'il s'agit de vim standard ou non), et comme ce ne sont que des espaces cela me ramènera au début de la ligne. Puis Backspaceme ramènera à la ligne précédente où je me trouvais.
la source
Ctrl-w
utilisation en mode insertion. Mais le Carpetsmoker ♦ est encore plus rapide. Ainsi, la liaison par défaut de `Ctrl- \` ne semble pas utile.:help i_CTRL-W
. Et appuyer deux fois semble faire l'affaire aussi?<C-u>
peut être plus utile car elle supprime tous les caractères de la nouvelle ligneMon moyen de sortir de cela est (du mode insertion) UpCtrl-oJDel. Ce n'est peut-être pas la combinaison la plus efficace, mais c'est ce que je fais sans avoir à y penser.
la source