Как я могу навсегда отобразить путь к текущему файлу в Vim?

Я знаю, что CTRL g отображает текущий файл, над которым вы работаете. Есть ли способ изменить мой .vimrc таким образом, чтобы имя файла/путь всегда отображалось?

Ответ 1

В вашей статусной строке добавьте %F, чтобы отобразить полный путь:

:help statusline

" Add full file path to your existing statusline
set statusline+=%F

Примечание. %F будет полным путем. Чтобы получить путь относительно рабочего каталога, используйте %F.

Если ваша статусная линия еще не видна, сначала вам нужно настроить ее, чтобы она всегда была видна, через laststatus=2

set laststatus=2

См. :help laststatus для обозначения параметров. Как правило, статусная линия может быть скрыта или скрыта, если только несколько буферов открыты, но я считаю чрезвычайно полезным иметь все это время с такими настройками, поэтому стоит отказаться от одного резерва линии экрана для него.

Ответ 2

set ls = 2

добавьте это в vimrc, и вы всегда увидите имя файла внизу.

Ответ 3

Я нашел 2 способа отображения пути файла в строке заголовка терминала gnome при редактировании файла с помощью Vim.

Простейший (и лучший) способ: добавьте следующую строку в ~/.vimrc:

set title

Что будет показано вверху:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM

Более сложный способ покажет вам абсолютный путь к файлу. Это более подробно описано в этом сообщении в блоге Я недавно написал.

Ответ 4

Единственный способ найти полный путь к файлу, в котором я работаю: :echo expand('%:p'). Вы можете перегруппировать ctrl + g, если хотите, но мне лично не нравится слишком сильно смещаться от стандартов. Я сопоставил F7 следующим образом:

map  <F7> <Esc>:echo expand('%:p')<Return>

Ответ 5

Я всегда использовал :f, но ответ и ссылки из @MichaelBerkowski потрясающие!

:f показывает путь, количество строк, измененное состояние, текущую позицию курсора и многое другое...

Я не знал о CTRL G, но он, похоже, примерно тот же.

Ответ 6

Статусная линия очень мощная и удобная, я думаю. Пролив из коробки отобразит имя файла, позицию курсора и некоторые флаги. Но вы хотите сделать то же, что и я, и замените часть имени файла полным путем на файл.

Таким образом, при редактировании моей .vimrc моя статусная линия может выглядеть примерно так: по умолчанию:

.vimrc                                                        26,16           7%

Вы можете просмотреть настройки статусной линии с помощью:

:set statusline?

Но если вы не внесли никаких изменений и ни один модуль не изменил его, он был бы пустым. Но по примерам в разделе справки (:help statusline) вы можете обнаружить, что по умолчанию:

:set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P

Поэтому включите это в свой .vimrc и измените %f на %f. Я также добавил добавленный флаг filetype (%y) в мою статусную линию, так как я считаю это удобным. Итак, моя результирующая конфигурация выглядит следующим образом:

:set statusline=%<%F\ %h%m%r%y%=%-14.(%l,%c%V%)\ %P

И результат будет выглядеть примерно так:

~/.vimrc [vim]                                                26,16           7%

Хорошее чтение:

PS. Я запускаю vim 7.3

Ответ 7

Если вы используете vim-airline, введите .vimrc:

let g:airline_section_c = '%<%F%m %#__accent_red#%{airline#util#wrap(airline#parts#readonly(),0)}%#__restore__#'

Это модификация авиакомпании по умолчанию, изменение %f на %f.

Ответ 8

Если вы хотите, чтобы путь включал разрешенные символические ссылки, используйте следующее:

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

Чтобы сохранить аббревиатуру '~' для вашего домашнего каталога, включите fnamemodify

set statusline +=%{fnamemodify(resolve(expand('%:p')),':~')}\ %*