184 votes

VIM - plusieurs commandes sur la même ligne

J'essaie de trouver quelque chose qui me permette 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 Windows. Y a-t-il un moyen de faire cela?

235voto

michaelmichael Points 6099

Un bar - | vous permettra de le faire. D' :help :bar

'|' peut être utilisé pour séparer les commandes, de sorte que vous pouvez donner plusieurs commandes dans un ligne. Si vous souhaitez utiliser '|' dans un argument, faites-la précéder d' '\'.

Exemple:

:echo "hello" | echo "goodbye"

Sortie:

hello
goodbye

NB: Vous pouvez constater que votre ~/.vimrc ne prend pas en charge le mappage |ou \|. Dans ces cas, essayez d'utiliser <bar> à la place.

86voto

Babken Vardanyan Points 544

Mettez <CR> (retour chariot) 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 elles

  • | ne fonctionne pas de manière cohérente dans les fichiers de configuration, voir :help map_bar

41voto

Jonatan Points 1183

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

26voto

Daenyth Points 11297

La commande seperator dans vim est | .

16voto

eruciform Points 5176

J'ai toujours utilisé ^ J - pour en entrer un: CTRL-V-CTRL-J

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X