screen + vim - Jakikolwiek sposób na automatyczne ustawienie nazwy okna ekranowego w celu otwarcia nazwy pliku vim?


10

Mam całkiem niezły plik rc ekranu, który pokazuje mi otwarte okna ekranu prawie jak karty na dole terminalu. Obecnie okna są nazywane zgodnie z moim monitem, co nie jest tak przydatne. Czy istnieje sposób automatycznego nazywania okien w oparciu o nazwę pliku otwartej sesji vim aktualnie w oknie? Myślę, że byłby to świetny edytor wielu okien, gdyby to było możliwe.

Odpowiedzi:


5

Ustaw titleopcję . Działa to od razu dla mnie w Xterm i podobnych, ale nie na ekranie. Ta wskazówka działa :

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

Innym podejściem jest napisanie preexecw powłoce funkcji, która ustawia tytuł okna dla uruchamianego polecenia. Zsh obsługuje preexecnatywnie, a bash też może to zrobić . Oto przykład zsh .


Cześć. Nie działało to dla mnie, ale myślę, że dzieje się tak z powodu konfiguracji mojego pliku .screenrc. 1 termcapinfo xterm * ti @: te @ 2 hardstatus alwayslastline 3 hardstatus string '% {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} '
użytkownik4785

@ user4785: Jeśli twój monit może ustawić tytuł okna ekranowego, Vim również powinien to zrobić. Jaki jest twój monit? Czy mój .vimrcfragment działa bez Twojego .screenrc?
Gilles 'SO - przestań być zły'

1

Zrobiłem to w nieco trudniejszy sposób: Używając tcsh, umieściłem w moim .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'

Tak długo, jak pamiętasz używać vis zamiast vim, kiedy chcesz, żeby tytuł tam działał.

Dodałem również

set notitle

do mojego .vimrc, aby powstrzymać vima od ustawiania tytułu ekranu okna.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.