Commande Vim pour insérer une ligne vide en mode normal
Est-il une commande dans Vim qui fera la même chose que o
ou O
(insérez une ligne vide avant / après la ligne courante), mais qui ne passe pas aussi en mode insert?
4 réponses
:nnoremap <silent> [<space> :pu! _<cr>:']+1<cr>
:nnoremap <silent> ]<space> :pu _<cr>:'[-1<cr>
Explication:
:put
va coller un registre en ligne ci-dessous. (:pu!
au-dessus):pu _
coller le blackhole registre, qui est vide, donc nous obtenons une ligne vide'[
et']
les marques sont définies au début et à la fin d'un texte modifié ou supprimé.:'[
déplace le curseur à la ligne de départ de la dernière modification (le mettre dans ce cas):'[-1
déplacer'[
mais vers le haut une ligne
si vous préférez un plugin alors je suggère Tim Pope intacte.vim. Qui fournit ces garnitures, mais prendra également un compte. Le plugin a aussi beaucoup d'autres belles correspondances.
En mode insertion:
:normal O
à Partir de vim inline manuel:
exécuter des commandes en mode Normal {commandes}. Cela rend possible pour exécutez les commandes de mode Normal tapées sur la ligne de commande. {commande} sont exécutés comme ils sont tapés. Pour annuler toutes les commandes sont annulées ainsi. L'exécution s'arrête lorsqu'une erreur est rencontrée. Si l' [!] est donnée, les mappages ne sera pas utilisé. {commande} devrait être un commande complète. Si {commandes} ne termine pas une commande, le dernière sera annulée que si ou a été tapé.
http://vimdoc.sourceforge.net/htmldoc/various.html#:normal
j'ai eu l'allusion n': https://unix.stackexchange.com/a/16452/7914
vous pouvez essayer quelque chose comme ceci:
:map <c-j> o<esc>
ceci est: quand vous appuyez sur contrôle + j il va ajouter une ligne ci-dessous (et passer en mode insertion) et puis revenir en mode normal si vous voulez rester dans la même ligne vous où avant juste ajouter un k
à la fin, quelque chose comme ceci:
:map <c-j> o<esc>k
j'ai aussi ajouté un contrôle + k ajouter une ligne avant celle que j'ai est debout sur
:map <c-k> O<esc>
et tout comme le précédent, vous pouvez ajouter j
à la fin pour rester sur la même ligne:
:map <c-k> O<esc>j
si vous avez besoin ou voulez quelque chose de plus avancé, vous pouvez vérifier ces messages: ajouter et supprimer rapidement des lignes vides ou insérez newline sans entrer insert mode
dd sur une ligne vide, p pour la restaurer, et alors p l'endroit où vous souhaitez que la ligne vide(s)