Відповіді:
Ви можете натиснути {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.
Натискання, 1а потім Ctrl+ Gпоказує повний шлях поточного файлу. Якщо {count}
більший за 1, також буде показано ім'я буфера.
(Натискання лише Ctrl+ Gпоказує шлях відносно поточного робочого каталогу Vim, як вказував Джаспер у коментарях.)
Ви можете використовувати таку команду у своєму, .vimrc
щоб додати повний шлях до рядка стану, щоб він завжди був видно:
set statusline+=%F
C-g
це за замовчуванням 0C-g
, і 2C-g
відображає номер індексу буфера (починаючи з 1), а також додатково.
1C-g
!
Реєстр %
містить ім'я поточного файлу.
Наступні команди можуть бути введені для відображення відображеної інформації:
: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')
Якщо все, що потрібно, це відобразити ім'я поточного файлу, введіть :f
/ :ls
або натисніть Ctrl- g(для повного шляху натисніть, 1потім Ctrl- g).
У режимі вставки введіть Ctrl- rпотім, %щоб вставити ім'я поточного файлу.
Наступні команди вставляють у буфер рядки, що складаються з повного шляху поточного та альтернативного файлів:
:put =expand('%:p')
:put =expand('#:p')
Джерело: Отримайте ім'я поточного файлу на vim wikia
Пов'язані:
=expand...
вирази після того, Ctrl-R
як у режимі вставки.
Ви можете використовувати :!ls %:p
повний шлях до поточного файлу.
Залежно від ex контексту, %
буде означати або вміст файлу, або ім'я файлу. При обстрілі він представляє шлях файлу відносно поточного каталогу. Команда ' %:p
' додасть модифікатор імені файлу повного шляху до %
.
Є кілька інших цікавих модифікаторів імені файлів, таких як:
:~
: Отримайте шлях до файлу відносно домашнього каталогу (цей мені чомусь не працював):.
: Отримайте шлях до файлу відносно поточного каталогу ( %
за замовчуванням):r
: Корінь імені файлу. Ім'я файлу без розширення.:e
: Розширення файлу.:h
: Розділіть /
і поверніть ліву половину (тобто, якщо я редагуватиму файл шляхом /tmp/test.txt
та запустіть %:p:h
, повернеться/tmp
:t
: Розділіть /
і поверніть праву половину (тобто, якщо я редагую файл у шляху /tmp/test.txt
та запустіть %:p:t
, повернетьсяtext.txt
Можна побачити поточний робочий каталог із :pwd
. Звичайно, це лише каталог, а не ім'я файлу. Для отримання робочого каталогу та імені файлів ми можемо скористатися спеціальним реєстром %
, який містить інформацію про поточний файл.
Якщо ви використовуєте :echo @%
, ви отримаєте каталог та ім’я поточного файлу.
Якщо ви використовуєте :echo expand('%:p')
, ви отримаєте повний шлях та ім'я поточного файлу. Це дуже схоже на відповідь CharlesL .
Я пам'ятаю цей, хоча, тому що якщо ви використовуєте допомогу VIM в :h expand
, то він зазначає , що %
і %:p
та їхні родичі.
Я використовую:
:f[ile]
Тобто :f
або :file
.
Я здивований, що ніхто не згадує це у відповідях, я щось пропускаю?
Щоб показати повний шлях для всіх файлів, включаючи вирішені символьні посилання, скористайтеся наступним.
:echo resolve(expand('%:p'))
Алеаді є кращими відповідями, але якщо (з якихось причин) ви хотіли скористатися оболонкою, щоб отримати повний шлях до файлу (це корисніше, якщо ви збираєтеся виконати якусь іншу операцію над файлом із оболонкою), у подібній системі Unix можна запустити:
:!realpath %
або:
:'<,'>!realpath %
щоб вставити шлях у документ через поточний вибір.
Реєстр %
завжди містить ім'я файлу. Прикладом реального світу може бути, якщо ви редагуєте конфігураційний файл, але не маєте дозволів на запис (і не хочете запускати Vim як root), ви можете редагувати файл, а потім запустити:
:w ! sudo tee %
щоб зберегти файл (крихітний біт офтопік там, але це хороший приклад того, що ще можна зробити з %
реєстром).
realpath
це не POSIX, тому це може бути простіше:!echo "$PWD/%"
Потрібно встановити рядок статусу таким, що його можна побачити, а також встановити шлях. Я зробив це постійно, додавши два рядки нижче до мого ~ / .vimrc
set laststatus=2
set statusline+=%F
Якщо ви хочете просто запустити це один раз. Потім при VIing документі тип
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
Для цього я використовую авіакомпанію Vim і деякі приємні функції:
Ви можете показати повний шлях файлу, який ви редагуєте, у рядку заголовка, що є зручним способом показати шлях до файлу, на мою думку.
Для цього вам потрібно встановити title
параметр і titlestring
. Поточний Я використовую наступні налаштування:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
Він покаже ім'я хоста Vim, потім повний шлях до файлу та наступний змінений час файлу. Дивіться малюнок нижче для демонстрації
Ctrl+G
більше не схожий на "шлях відносно cdd vim"?