Wie immer ist die Hilfe dein bester Freund:
:h :command
::
:com[mand][!] [{attr}...] {cmd} {rep}
Definieren Sie einen Benutzerbefehl. Der Name des Befehls lautet {cmd} und sein Ersatztext lautet {rep}. Die Attribute des Befehls (siehe unten) sind {attr}. Wenn der Befehl bereits vorhanden ist, wird ein Fehler gemeldet, es sei denn, a! wird angegeben. In diesem Fall wird der Befehl neu definiert.
Auf diese Weise :command!
wird ein neuer Befehl erstellt, den Sie über die Befehlszeile verwenden können. Hier ist der neue Befehl :Find
und wird verwendet, um auszuführen, fzf#vim#grep()
was ein Aufruf des Plugins ist, fzf
der es ermöglicht, einige Dateien unscharf zu finden.
Die anderen Argumente sind in der Dokumentation beschrieben:
:h :command-nargs
-nargs
wird verwendet, um den neuen Befehl in die Lage zu versetzen, ein Argument aufzunehmen :Find arg1
:h :command-bang
-bang
wird verwendet, um den neuen Befehl in die Lage zu versetzen, ein !
Like in zu interpretieren:Find!
Das !
Recht danach command
wird verwendet, um vim anzuweisen, den Befehl neu zu definieren, falls er bereits vorhanden ist. Auf diese Weise erhalten .vimrc
Sie keine Fehlermeldung , wenn Sie Ihren Befehl eingeben.
Was die an die fzf
Funktion übergebenen Argumente betrifft, lasse ich Sie das Dokument des Plugins lesen, um zu sehen, was sie tun :)
command! -bang -nargs=* Find 'rg --column --line-number --no-heading --fixed-strings --ignore-case --no-ignore --hidden --follow --glob "!.git/*" --color "always"'
funktioniert dieser Befehl ?Find
der ersetzt wird,rg --column etc...
aberrg
kein vim-Befehl ist. Er ist ein Argument für diefzf
Funktion, sodass Vim einen Fehler ausgibt. Wenn Sie ein Beispiel für einen einfachen Befehl wünschen, sehen Sie sich diesen an :command! DT windo diffthis
. Es wird der Befehl erstellt, der:DT
kein Argument oder irgendetwas akzeptiert und den Diffmode in vim startet. Der{rep}
Teil des Befehls muss ein Ausdruck sein, den vim versteht.