web-dev-qa-db-fra.com

VIM - plusieurs commandes sur la même ligne

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?

176
Bub Bradlee

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.

227
michaelmichael

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

82
Babken Vardanyan

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()
39
Jonatan

La commande seperator dans vim est |.

26
Daenyth

J'ai toujours utilisé ^J pour séparer plusieurs commandes en appuyant sur Ctrl+vCtrl+j.

15
eruciform

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.

10
Jerinaw

Vous pouvez créer un nouveau fichier et y écrire vos commandes. Ensuite :so %, qui signifie fichier courant source.

2
Song