Odpowiedzi:
Możesz nacisnąć {count}Ctrl-G
:
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given.
Naciśnięcie, 1a następnie Ctrl+ Gpokazuje pełną ścieżkę bieżącego pliku. Jeśli {count}
jest większy niż 1, nazwa bufora również będzie wyświetlana.
(Naciśnięcie tylko Ctrl+ Gpokazuje ścieżkę względem bieżącego katalogu roboczego Vima, jak wskazał Jasper w komentarzach.)
Możesz użyć następującego polecenia w .vimrc
celu dodania pełnej ścieżki do linii statusu, aby była zawsze widoczna:
set statusline+=%F
1C-g
!
Rejestr %
zawiera nazwę bieżącego pliku.
Aby wyświetlić wyświetlane informacje, można wprowadzić następujące polecenia:
:echo @% |" directory/name of file
:echo expand('%:t') |" name of file ('tail')
:echo expand('%:p') |" full path
:echo expand('%:p:h') |" directory containing file ('head')
Jeśli chcesz tylko wyświetlić nazwę bieżącego pliku, wpisz :f
/ :ls
lub naciśnij Ctrl- g(dla pełnej ścieżki naciśnij 1następnie Ctrl- g).
W trybie wstawiania wpisz Ctrl- rnastępnie, %aby wstawić nazwę bieżącego pliku.
Następujące polecenia wstawiają do bufora wiersze składające się z pełnej ścieżki plików bieżących i alternatywnych:
:put =expand('%:p')
:put =expand('#:p')
Źródło: Uzyskaj nazwę bieżącego pliku z vim wikia
Związane z:
=expand...
wyrażeń po przejściu Ctrl-R
w tryb wstawiania.
Możesz użyć, :!ls %:p
aby uzyskać pełną ścieżkę do bieżącego pliku.
W zależności od kontekstu ex %
będzie oznaczać zawartość pliku lub nazwę pliku. Podczas tworzenia powłoki reprezentuje ścieżkę do pliku względem bieżącego katalogu. Polecenie „ %:p
” doda modyfikator pełnej nazwy pliku ścieżki do %
.
Istnieje kilka innych interesujących modyfikatorów nazw plików, takich jak:
:~
: Uzyskaj ścieżkę do pliku w stosunku do katalogu domowego (ten z jakiegoś powodu nie działał dla mnie):.
: Uzyskaj ścieżkę do pliku względem bieżącego katalogu ( %
domyślnie):r
: Nazwa pliku root. Nazwa pliku bez rozszerzenia.:e
: Rozszerzenie pliku.:h
: Podziel na /
i zwróć lewą połowę (tj. Jeśli edytuję plik w ścieżce /tmp/test.txt
i uruchom %:p:h
zwróci/tmp
:t
: Podziel na /
i zwróć prawą połowę (tzn. Jeśli edytuję plik w ścieżce /tmp/test.txt
i polecenie %:p:t
wrócitext.txt
Można zobaczyć bieżący katalog roboczy za pomocą :pwd
. Oczywiście jest to tylko katalog, a nie nazwa pliku. Aby uzyskać katalog roboczy i nazwę pliku, możemy użyć specjalnego rejestru %
, który zawiera informacje o bieżącym pliku.
Jeśli użyjesz :echo @%
, otrzymasz katalog i nazwę pliku bieżącego pliku.
Jeśli używasz :echo expand('%:p')
, otrzymasz pełną ścieżkę i nazwę pliku bieżącego pliku. Jest to bardzo podobne do odpowiedzi CharlesL .
Pamiętam ten jeden, chociaż, ponieważ jeśli używasz pomocy Vim jest :h expand
, to mówi, że %
i %:p
i ich krewni.
Używam:
:f[ile]
To jest :f
lub :file
.
Dziwi mnie, że nikt nie wspomniał o tym w odpowiedziach, czy coś mi umknęło?
Aby wyświetlić pełną ścieżkę dla wszystkich plików, w tym również przetłumaczonych dowiązań symbolicznych, użyj następujących poleceń.
:echo resolve(expand('%:p'))
Istnieją jednak lepsze odpowiedzi, ale jeśli (z jakiegoś powodu) chcesz użyć powłoki, aby uzyskać pełną ścieżkę do pliku (jest to bardziej przydatne, jeśli zamierzasz wykonać inną operację na pliku za pomocą powłoki), na systemie uniksowym możesz uruchomić:
:!realpath %
lub:
:'<,'>!realpath %
aby wstawić ścieżkę do dokumentu nad bieżącym wyborem.
Rejestr %
zawsze zawiera nazwę pliku. Przykładem może być sytuacja, gdy edytujesz plik konfiguracyjny, ale nie masz uprawnień do zapisu (i nie chcesz uruchamiać Vima jako root), możesz edytować plik, a następnie uruchomić:
:w ! sudo tee %
aby zapisać plik (trochę nie na temat, ale jest to dobry przykład tego, co można zrobić z %
rejestrem).
realpath
nie jest POSIX, więc może być prostsze:!echo "$PWD/%"
Musisz ustawić linię statusu, aby była widoczna, a także ustawić ścieżkę. Zrobiłem to na stałe, dodając dwa wiersze poniżej do mojego ~ / .vimrc
set laststatus=2
set statusline+=%F
Jeśli chcesz to uruchomić raz. Następnie, gdy VIing typ dokumentu
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
Używam do tego vim Airlines i kilku fajnych funkcji:
Możesz wyświetlić pełną ścieżkę pliku, który edytujesz na pasku tytułu, co jest moim zdaniem wygodnym sposobem na wyświetlenie ścieżki pliku.
Aby to zrobić, musisz ustawić title
opcję i titlestring
. Obecnie używam następujących ustawień:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
Wyświetli nazwę hosta Vima, następnie pełną ścieżkę do pliku, a następnie czas ostatniej modyfikacji pliku. Demo przedstawia poniższy rysunek
Ctrl+G
bardziej jak „ścieżka względna do cwd vima”?