Anzeigename der aktuellen Datei in vim?

157

Wie zeigen Sie den Dateinamen der Datei an, an der Sie in vim arbeiten?

Drew LeSueur
quelle
1
Wenn Ihr Terminal korrekt eingerichtet ist, sollten Sie den Dateinamen im Fenstertitel erhalten.
Cascabel
2
Strg + g ist kann die Datei info anzeigen
Dhiren Hamal

Antworten:

200

:f( :file) wird dasselbe tun wie <C-G>. :f!wird gegebenenfalls eine nicht abgeschnittene Version geben.

lächelnderax
quelle
2
Schön, aber ist es möglich, es in der oberen Leiste des Terminals anzuzeigen? (oder Terminator) oder irgendwo ohne Eingabe eines Befehls.
eMarine
21
:f!funktioniert nicht immer, drücken Sie 1 und dann Strg-G für den vollständigen Pfad.
Ives
1
Wie wäre es mit einem vollen Weg? Wenn ich vim von vim aus ~/dev/file.pystarte und :fin vim ausführe , erhalte ich file.pystattdessen die Ausgabe anstelle von ~/dev/file.py.
Gxyd
1
@ives was bedeutet 1 und Strg + g getrennt?
Jobima
2
@jobima: Es wird geändert ctrl-g, um Pfad + Datei zurückzugeben. :fgibt den Dateinamen ohne Pfad zurück ctrl-g. Ein 1Vorher ctrl-gzeigt Pfad und Name an (allerdings nicht unbedingt erweitert). dh es wird ~/dev/file.pystatt angezeigt file.py. 2gefolgt von ctrl-gwird enthalten, welcher Puffer : buf 1: "~/dev/file.py".
Ives
71

ctrl+ gwird es tun.

Außerdem habe ich gerne:

set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"

Welches produziert:

foo.c [C] [0x23] <code / foo.c 1, 1 2% von 50

Außerdem wird, wie bereits erwähnt (aber jetzt gelöscht) %, durch den aktuellen Dateinamen ersetzt. Beispielsweise:

:! echo "aktuelle Datei:%"
aktuelle Datei: foo.c
Drücken Sie die EINGABETASTE oder geben Sie den Befehl ein, um fortzufahren
David Wolever
quelle
2
Was bedeuten die [C]und [0x23]Teile?
LangeHaare
@LangeHaare Dateityp und Hex-Wert des Zeichens unter dem Cursor
'statusline'ist eine Zeichenfolge, aber Sie fügen keine Anführungszeichen in das Set ein: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linesbenötigt auch maskierte Leerzeichen
D. Ben Knoble
18

Stellen Sie die Statuszeile ein. mehr Infos mit:help statusline

Diese Befehle können in Ihre .vimrc-Datei eingefügt werden, oder Sie können sie in vim als Befehle eingeben, indem Sie im Befehlsmodus ':' eingeben.

Setzen Sie zuerst den letzten Status wie folgt auf 2:

set laststatus=2

Setzen Sie dann die Statuszeile für den kurzen Dateinamen auf% f.

set statusline=%f

Verwenden Sie für den vollständigen Pfad zur Datei% F.

Brian Clements
quelle
E518: Unbekannte Option:% f
Isius
Ich habe die Antwort aktualisiert, Isius. Hoffentlich macht das klarer.
Brian Clements
5

:set title um den Dateinamen in der Titelleiste des Fensters anzuzeigen.

Ryan Le
quelle
5

Warum so kompliziert? Control-G erledigt den Job

Sean
quelle
4

Verwenden Sie Folgendes, um den vollständigen Pfad für eine Datei anzuzeigen, einschließlich aufgelöster Symlinks.

:echo resolve(expand('%:p'))

Dies kann zu Ihrer Statusleiste hinzugefügt werden, indem Sie die folgende Zeile zu Ihrer hinzufügen ~./vimrc

set statusline +=%{resolve(expand('%:p'))}\ %*
joelostblom
quelle
2

Einer der oben genannten Vorschläge musste geändert werden

set statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines

um es zum Laufen zu bringen. Ebenfalls

set laststatus=2

wurde benutzt.

cucujoidea
quelle
Willkommen bei Stack Overflow ! Dies sollte wahrscheinlich eine vorgeschlagene Bearbeitung oder ein Kommentar zu den relevanten Antworten sein - Sie haben noch nicht genug Ruf, um Kommentare abzugeben oder zu bearbeiten, aber Sie werden es bald tun, wenn Sie gute Fragen stellen und gute Antworten schreiben! In der Zwischenzeit werde ich den Autoren der Antworten die entsprechenden Korrekturen vorschlagen. Guter Fang!
D. Ben Knoble
1

Ich benutze das Erstaunliche vimrcvon amix: https://github.com/amix/vimrc

Es verwendet das lightline.vimPluging und zeigt den Dateinamen in der Statusleiste an.

Das Tolle an der Verwendung von amix/vimrcist, dass dieses Plugin den größten Teil der Anpassung übernimmt, sehr stabil ist und von Tausenden von Menschen getestet wurde, wie Sie anhand der Anzahl der Github-Sterne und der seltenen Probleme überprüfen können.

Es wird auch ziemlich häufig aktualisiert.

PS: nicht der Autor eines der Plugins .. nur ein Fan :)

alpha_989
quelle
1

Ich musste dies auch in meine .vimrc-Datei einfügen:

set noruler
set laststatus=2

Dann könnte ich so etwas wie set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"in meine .vimrc-Datei einfügen und nach dem Neustart meines Terminals wird die Statuszeile korrekt angezeigt.

Alex Fenwood Hughes
quelle
'statusline'ist eine Zeichenfolge, aber Sie fügen keine Anführungszeichen in das Set ein: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linesbenötigt auch Leerzeichen
D. Ben Knoble