Wenn ich in den Befehlsmodus gehe und tippe
:!mycommand %
Ich lasse meinen Befehl für die aktuelle Datei ausführen ( %
wird auf den aktuellen Dateinamen erweitert). Gibt es ein ähnliches Konstrukt, das den vollständigen Dateinamen (mit dem vollständigen Pfad) erweitert?
Ich benutze Windows.
Antworten:
:!mycommand %:p
Verbunden:
:!cd %:p:h
quelle
:help filename-modifiers
:%p
ist der absolute Pfad zur Datei und nicht der relative Pfad.:%p%h
ist der absolute Pfad zum übergeordneten Verzeichnis der Datei. Die Verwendung von just%:h
kann zu einem relativen Pfad führen.cd ~ ; vim .vimrc
, Vim ::!echo %:h
, sollte '.' Anzeigen. für den relativen Pfad.Die beiden anderen Antworten haben bei mir nicht funktioniert (aus irgendeinem Grund). Ich habe jedoch festgestellt, dass diese Kombination den vollständigen Pfad anzeigt, wenn sie im normalen Modus eingegeben wird:
Drücken Sie 1dannCtrlG
Quelle: " Holen Sie sich den Namen der aktuellen Datei " im Vim Tips Wiki. Siehe auch den
{count}CTRL-G
Abschnitt von:help CTRL-G
.quelle
:!
). Ihre{count}CTRL-G
Sequenz dient zur Anzeige des vollständigen Pfads in der Benutzeroberfläche.Anhängen
:p
, zUnd
%:p:h
gibt Ihnen den Pfad des Verzeichnisses an, in dem sich die Datei befindet.quelle
So drucken Sie den aktuellen vim-Dateinamen aus:
Zum Beispiel (mit Vim - Funktion), um
resolve()
undexpand()
jegliche symbolischen Links auf den absoluten Pfad zum aktuellen Skript<sfile>:p
(statt%:p
), und dannexec
zusource
demfnameescape
-ED Dateinamen , die in einem funktions lokalen Vim variablel:vimrcfilename
:Anmerkungen:
:help fnamemodify
%:p
(Pufferdatei) /<sfile>:p
(Skriptdatei)expand('<sfile>')
funktioniert nicht innerhalb einer Funktionl:varname
funktioniert nicht; Also,exec
- String-Verkettung - undfnameescape
:messages
druckt die letzten 200 vim [error,] -NachrichtenVerweise
quelle
Rufen Sie den Namen der aktuellen Datei http://vim.wikia.com/wiki/Get_the_name_of_the_current_file ab
Set_working_directory_to_the_current_file http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file
quelle
Wenn Sie den vollständigen Pfad in Ihrem verwenden möchten
vimrc
, können Sie Folgendes verwenden:Dadurch erhalten Sie einen Pfad mit Backslashes unter Windows.
quelle