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 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} '
user4785

@ user4785:プロンプトで画面ウィンドウのタイトルを設定できる場合、Vimでも設定できるはずです。あなたのプロンプトは何ですか?私の.vimrcスニペットはあなたなしで動作します.screenrcか?
Gilles「SO-邪悪なことをやめなさい」

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'

タイトルが必要なときにvimの代わりにvisを使用することを覚えている限り、動作します。

私も追加しました

set notitle

実行中のウィンドウ画面のタイトルをvimが設定しないように、私の.vimrcに追加します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.