screen + vim - Яким способом автоматично встановити ім'я вікна екрана, щоб відкрити ім'я файлу vim?


10

У мене дуже гарний файл rc-екрану, який показує мені відкриті вікна майже як вкладки внизу терміналу. Наразі вікна названі за моїм підказкою, що не так корисно. Чи є спосіб автоматично називати вікна на основі імені файла відкритого сеансу vim, який зараз знаходиться у вікні? Я думаю, що це дозволило б зробити найвищий редактор декількох вікон, якби це було можливо.

Відповіді:


5

Встановіть titleопцію . Це працює для мене в xterm тощо, але не на екрані. Ця порада працює :

if &term == "screen"
  set t_ts="\ek"
  set t_fs="\e\\"
  set title
endif

Інший підхід полягає в написанні preexecфункції в оболонці, яка встановлює заголовок вікна для команди, що виконується. Zsh підтримує preexecнативно, і bash також може це зробити . Ось приклад zsh .


Привіт. Це не спрацювало для мене, але я думаю, це через те, як налаштовано мій файл .screenrc. 1 termcapinfo xterm * ti @: te @ 2 hardstatus alwayslastline 3 рядок hardstatus '% {gk} [% {G}% H% {g}] [% =% {wk}%?% - Lw%?% {= B kR} (% {W}% n *% f% t%? (% u)%?% {= b kR})% {= kw}%?% + Lw%?%?% =% {g}] [% {Y}% l% {g}]% {= b C} [% m /% d% c]% {W} '
користувач4785

@ user4785: Якщо ваш запит може встановити назву вікна екрана, Vim також має змогу це зробити. Який ваш підказ? Чи працює мій .vimrcфрагмент без вашого .screenrc?
Жиль 'ТАК - перестань бути злим'

1

Я зробив це, використовуючи трохи більш хакірні спосіб: Використовуючи tcsh, я помістив у свій .cshrc наступне

# escape sequence to set the screen title
alias stitle 'echo -n "^[k\!*^[\\"'
# shorthand to set the screen title to the hostname
alias H stitle `hostname -s`
# shorthand to set the screen title to the filename, launch vim, and then set it back
alias vis 'stitle \!* ; vim \!* ; H'

Поки ви пам'ятаєте використовувати vis замість vim, коли ви хочете, щоб заголовок там працював.

Я також додав

set notitle

до мого .vimrc, щоб утримати vim від встановлення заголовка екрана вікна.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.