Ответы:
Вы можете нажать {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
: Имя файла root. Имя файла без расширения.: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
Если вы хотите просто запустить это один раз. Затем при просмотре типа документа
: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
похоже на «путь относительно cwd» vim?