Відображати ім'я поточного файлу в vim?


157

Як відобразити назву файлу, над яким ви працюєте, in vim?


1
Якщо ваш термінал налаштований правильно, ви повинні отримати ім'я файлу у назві вікна.
Каскабель



2
ctrl + g is може показати інформацію про файл
Dhiren Hamal

Відповіді:


200

:f( :file) зробить те саме, що і <C-G>. :f!надасть необроблену версію, якщо це застосовується.


2
Приємно, але це можна показати у верхній смузі терміналу? (або термінатор) або десь без введення команди.
eMarine

21
:f!не завжди працює, натисніть 1, потім Ctrl-G для повного шляху.
ives

1
Як щодо повного шляху? Коли я запускаю vim з ~/dev/file.pyі виконуються :fв рамках vim, я отримую file.pyяк вихід замість ~/dev/file.py.
gxyd

1
@ives що означає 1 і Ctrl + g окремо?
jobima

2
@jobima: вона змінює, ctrl-gщоб повернути шлях + файл. :fповерне ім'я файлу без шляху, як це можливо ctrl-g. 1, Перш ніж ctrl-gпокаже шлях & ім'я (не обов'язково розширено , хоча). тобто він покаже ~/dev/file.pyзамість file.py. 2після чого ctrl-gбуде включати в себе будь буфер: buf 1: "~/dev/file.py".
Ives

71

ctrl+ gзробимо це.

Також мені подобається:

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

Що виробляє:

foo.c [C] [0x23] <код / ​​foo.c 1, 1 2% від 50

Крім того, як хтось згадав (але зараз видалений) %буде замінено на поточне ім'я файлу. Наприклад:

:! echo "поточний файл:%"
поточний файл: foo.c
Натисніть ENTER або введіть команду, щоб продовжити

2
Що означають [C]і [0x23]деталі?
LangeHaare

@LangeHaare Тип файлу та шістнадцяткове значення символу під курсором відповідно

'statusline'це рядок, але ви не включаєте цитати в набір: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linesтакож потрібні пробіли
D. Ben Knoble

18

встановити рядок статусу більше інформації з:help statusline

Ці команди можуть міститись у вашому .vimrc-файлі, або ви можете вводити їх як команди під час in vim, ввівши ":" в командному режимі.

Спочатку встановіть останній статус на 2, використовуючи наступне:

set laststatus=2

Потім встановіть рядок стану на% f для короткого імені файлу.

set statusline=%f

Для повного шляху до файлу використовуйте% F.


E518: Невідомий варіант:% f
Ісій

Я оновив відповідь, Ісю. Сподіваємось, це робить це більш зрозумілим.
Брайан Клементс



4

Щоб показати повний шлях до будь-якого файлу, включаючи розв'язані символьні посилання, скористайтеся наступним.

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

Це можна додати до панелі статусу, додавши рядок нижче до свого ~./vimrc

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

2

Одну з вищезазначених пропозицій довелося змінити

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

щоб він працював. Також

set laststatus=2

було використано.


Ласкаво просимо до переповнення стека ! Ймовірно, це може бути запропонована редакція або коментар до відповідної відповіді (відповіді) - у вас недостатньо репутації, щоб коментувати чи редагувати, але незабаром ви поставите хороші запитання і напишіть хороші відповіді! А поки я запропоную відповідні виправлення авторам відповідей. Гарний улов!
D. Ben Knoble

1

Я використовую дивовижне vimrcз amix: https://github.com/amix/vimrc

Він використовує lightline.vimплагінг і відображає ім'я файлу на панелі стану.

Чудова річ у використанні того amix/vimrc, що цей плагін опікується більшою частиною налаштування, його дуже стабільним і перевірений тисячами людей, як ви можете перевірити, дивлячись на кількість зірок github .. та нечасті проблеми.

Його також оновлюються досить часто.

PS: не автор жодного з плагінів .. просто фанат :)


1

Мені також потрібно було помістити це у свій .vimrc файл:

set noruler
set laststatus=2

Тоді я міг би помістити щось подібне set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"до свого .vimrc-файлу, і після перезавантаження мого терміналу рядок стану відображається належним чином.


'statusline'є рядком, але ви не включаєте цитати в набір: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linesтакож потрібні пробіли
D. Ben Knoble
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.