In meinem Vim-Setup möchte ich eine Konfiguration hinzufügen, die einen Shell-Befehl mit einer bestimmten Zuordnung ausführt. Gibt es einen möglichen Weg, dies in Vimscript zu tun?Wie man einen Shell-Befehl über vimscript ausführt?
6
A
Antwort
7
Es gibt eine system()
Funktion in vim
, versuchen Sie dies:
:call system('date')
3
Ich tue dies mit traditioneller vi, so nehme ich an, es würde auch mit vim arbeiten.
In meinem .exrc ich habe:
map ^_ !}fmt 71 72^M
(Das ist ein ^_
eingegeben, indem Sie ctrl-V ctrl-_ und ein ^M
eingegeben, indem Sie ctrl-V ctrl-M
Als ich getroffen ctrl-_ in vi, es neu formatiert meine aktuelle Zeile zu 72 Zeichen.
es gibt '' für '^ _' und' 'für'^M' (in vim, nicht in vi). Schlage nicht vor, rohe Steuercodes in vimrc zu verwenden, da dies die Ausgabe von Werkzeugen, die Text erwarten (wie 'cat vimrc | grep fmt'), aussortiert. Es kann auch VCS-Systeme dazu bringen, vimrc als eine Binärdatei zu verwenden, wodurch die einfache 'vcs diff'- und die verschrottende Ausgabe von' vcs diff -a' genauso deaktiviert wird wie für 'grep'. Es gibt auch 'nnoremap' in vim für diese Art von Sache (Sie brauchen hier weder Modus anders als normal noch Benutzerzuordnungen). –
ZyX
Gute Punkte. Vielleicht wird das OP zwischen meiner (vi-orientierten) Antwort und Ihrer Verfeinerung eine gute Antwort bekommen. :-) – ghoti
Was in aller Welt hat das mit der Frage zu tun? – Lambart