
OS X 10.11は、フォームの制御順序を解釈するTerminal.appに素晴らしい機能を追加します。
ESC ] 6 ; file://hostname/<path-as-URL> BEL
現在編集中または表示している「文書」を指定します。たとえば、次のように入力します。
echo -e "\x1b]6;file://localhost/etc/passwd\a"
端末のタイトルにfilenameが表示されます。passwd
これは、ナビゲーションパス(ほとんどのOS Xファイルエディタの「ドキュメントタイトル」機能)をcmd +クリックすることで達成できます。 OS Xはbashrc
既にデフォルトでこの順序を使用して、現在の作業ディレクトリをウィンドウのタイトルに挿入します。
新しいファイルを編集するときにVimにこの特定のエスケープシーケンスを出力させる方法を知りたいです(理想的には、編集が中止された後(シャットダウン時やファイルが変更されたときなど)設定を解除する方法など)。たとえば、他のプログラムへの拡張less
も非常に役立ちます。
技術的には、URLは適切にURLエンコードする必要がありますが、そうでなくても大丈夫です。私は通常Vimで特に珍しいファイル名を持つファイルを編集しません。
答え1
Vimの通常の処理をあきらめても問題ない場合は、title
Vimをハイジャックできます。これは端末に送信され、適切なシーケンスをエクスポートするように調整できます。
set t_ts=^[]6;file://localhost
set t_fs=^G^M
set title
autocmd BufEnter * let &titlestring = expand("%:p")
上記の制御文字のリテラル文字を取得するには、およびcontrol+vthenを使用します。escシェルにはvim
その設定を消去する機能があります(VimLeave
autocmd
7.3では機能できず、一時停止する場合はvim
問題があります)。
function vim {
command vim "$@"
echo -ne "\033]6;\007"
}
:help title
詳細については、Vimファイルのコードをtitle
確認してください。src/term.c