Как я могу получить файл, который я открыл в VIM для отображения на моей вкладке iTerm

Я могу получить заголовок vim для отображения в моем окне, выполнив это:

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

Но на вкладках появится надпись "По умолчанию".

Из командной строки я могу сделать это:

echo -ne "\e]1;hello world\a"

И это покажет "Hello World" в моих вкладках.

Есть ли способ, чтобы vim записывал этот материал на мою вкладку вместо заголовка?

3 ответа

Решение

У меня нет iTerm, поэтому я не могу проверить это, но попробуйте добавить это в свой.vimrc:

set t_ts=^[]1;
set t_fs=^G

Тип CTRL-V Escape за ^[ а также CTRL-V CTRL-G за ^G,

Вот что сработало для меня:

" Set the title of the Terminal to the currently open file
function! SetTerminalTitle()
    let titleString = expand('%:t')
    if len(titleString) > 0
        let &titlestring = expand('%:t')
        " this is the format iTerm2 expects when setting the window title
        let args = "\033];".&titlestring."\007"
        let cmd = 'silent !echo -e "'.args.'"'
        execute cmd
        redraw!
    endif
endfunction

autocmd BufEnter * call SetTerminalTitle()

Источник: https://gist.github.com/bignimbus/1da46a18416da4119778

Просто чтобы вернуться к комментарию пользователя 2486953 выше.

Я смог сделать это с помощью двух очень простых строк в моем :

      set title
set titlestring=%f

(Строчная буква «f» дает мне только имя файла, тогда как заглавная буква также дает полный путь)

т.е. мне не нужно было ничего устанавливать с escape-последовательностями, как в принятом ответе выше. Я запускаю gnome-терминал , но я не понимаю, почему iTerm2 будет отличаться от настройки VI.

Другие вопросы по тегам