J'ai essayé de trouver quelque chose qui me permettrait d'exécuter plusieurs commandes sur la même ligne dans vim, ce qui revient à utiliser des points-virgules pour séparer les commandes dans les systèmes * nix ou &
dans les fenêtres. Y a-t-il un moyen de faire cela?
Un bar |
vous permettra de le faire. De :help :bar
'|'
peut être utilisé pour séparer les commandes, vous pouvez donc donner plusieurs commandes sur une seule ligne. Si vous voulez utiliser'|'
dans un argument, le précéder de'\'
.
Exemple:
:echo "hello" | echo "goodbye"
Sortie:
hello
goodbye
NB: Vous pouvez constater que votre ~/.vimrc
ne supporte pas le mapping |
, ou \|
. Dans ces cas, essayez d'utiliser <bar>
au lieu.
Mettez <CR>
(Retour à la ligne/Entrée) entre et après les commandes. Par exemple:
map <F5> :w<CR>:!make && ./run<CR>
N'utilisez pas |
car:
Certaines commandes ont des problèmes si vous utilisez |
après eux
|
ne fonctionne pas de manière cohérente dans les fichiers de configuration, voir :help map_bar
Vous pouvez définir une fonction qui exécute vos commandes.
function Func()
:command
:command2
endfunction
Et placez ceci dans, par exemple, votre vimrc. Exécuter la fonction avec
exec Func()
La commande seperator dans vim est |
.
J'ai toujours utilisé ^J
pour séparer plusieurs commandes en appuyant sur Ctrl+v, Ctrl+j.
Pensé que cela pourrait aider quelqu'un qui essaie de faire des substitutions dans une chaîne et qu'on échoue
à partir d'un commentaire
% s/Word/newword/ge | % s/Word2/newword2/ge
Vous pouvez utiliser l'indicateur e
pour ignorer l'erreur lorsque la chaîne est introuvable.
Vous pouvez créer un nouveau fichier et y écrire vos commandes. Ensuite :so %
, qui signifie fichier courant source.