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


20

Я редактирую несколько файлов, расположенных в одной папке, на нескольких вкладках, на одном терминале.

pwd(каталог, в котором я сейчас работаю) отображается в верхней части заголовка терминала, но не имя файла, который я редактирую. Это сбивает с толку при работе с несколькими файлами в одном каталоге.

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

Я работаю vimв оболочке bash gnome-terminal, 12.04 LTS.


1
Редактирование с помощью какого редактора? В какой оболочке? Какой эмулятор терминала?
Тердон

@terdon - Редактирование с использованием Vim, bash Shell, эмулятора xterm
malhar

2
Пожалуйста, отредактируйте свой вопрос, чтобы добавить дополнительную информацию, это трудно прочитать и легко пропустить в комментариях. Затем вы можете пропинговать пользователя, который запросил информацию, оставив комментарий и добавив @перед своим именем пользователя. Например, чтобы свистеть меня: @terdon.
Тердон

xtermне имеет вкладок. Вы уверены, что это xterm? echo $TERMобычно не возвращает имя вашего эмулятора терминала, если вы это сделали.
тердон

@terdon Да, я использовал echo $ TERM. выводит "xterm". Я использую 64-битный терминал Ubuntu 12.04 LTS по умолчанию. Есть ли другие способы проверить детали эмулятора.
Малхар

Ответы:


13

Вы должны иметь / создать файл с именем .vimrcв вашем домашнем каталоге со следующим кодом внутри:

let &titlestring = $USER . "@" . hostname() . " " . expand("%:p")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif

введите описание изображения здесь

Источник: gnome-терминал не позволяет менять название


Чтобы создать ^ [что означает escape, вам нужно ввести CTRL + V <Esc>
tinmarino

8

Текущий (принятый) ответ не работает, если вы переключаете файлы / буферы в течение одного из ваших сеансов vim. Название не будет обновлено.

Далее достаточно иметь автоматически обновляются названия в гномом-терминал также при переключении файлов с помощью :e foo.txt, :b0, :b#и т.д.

Просто поместите это в свой ~/.vimrcфайл:

autocmd BufEnter * let &titlestring = ' ' . expand("%:t")             
set title

Система: Ubuntu 14.10, vim 7.4.273, gnome-терминал 3.6.2-0ubunt.


Не должно set titleбыть на одной линии, после |?
Виктор Сергиенко

Связанный с вопросом: чтобы восстановить заголовок после выхода из vim, добавьте set titleold=в .vimrc.
Виктор Сергиенко

5

Просто добавь

set title

на ваш ~/.vimrc .

Пример заголовка: testfile (~ / Documents) - VIM


1
Это единственный ответ, который работал для меня и самый короткий.
user10089632

1

Вы можете добавить имя редактируемого файла на вкладке следующим образом:

  1. перейдите в меню в верхней части терминала. Terminal-> Set Title-> Здесь вы добавляете имя файла, который вы редактируете

например, когда вы открываете терминал, заголовок терминала показывает только «~». шоу pwd / home / xxx /

Предположим, что в этом месте вы редактируете файл ABC.cpp, вы можете установить заголовок вкладки на «~ / ABC.cpp», добавив «/ABC.cpp» в поле «Задать заголовок».

Точно так же вы можете повторить это и для других вкладок.


4
И вы будете делать эти изменения каждый раз, когда редактируете другой файл? Звучит больно ...
Раду Рэдяну

0

Это также изменяет заголовок окна, если вы переименуете буфер:

set title
augroup WindowTitleGroup
  autocmd!
  autocmd BufEnter,BufFilePost * let &titlestring = expand('%:t')
augroup end

Помещение команды в группу позволяет избежать многократного выполнения команды при поиске vimrc более одного раза.

Это прекрасно работает с vim-eunuch, который позволяет вам переименовать файл с помощью :Rename.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.