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
,可以透過 cmd+點擊來取得麵包屑路徑(OS X 上大多數檔案編輯器中「文件標題」的功能)。 OS X 預設bashrc
已使用此序列將目前工作目錄插入視窗標題。
我想知道如何讓 Vim 在編輯新檔案時輸出這個特定的轉義序列(理想情況下,如何在編輯停止後取消設定 - 例如退出或檔案變更時)。對eg 和其他程式的擴充less
也會非常有幫助。
儘管從技術上講 URL 必須進行正確的 URL 編碼,但如果不是的話我也完全沒問題 - 我通常不會在 Vim 中編輯具有特別不尋常的文件名的文件。
答案1
如果你不介意放棄title
Vim 中的常規處理,你可以劫持它。它發送到終端,並且可以調整以發出適當的序列:
set t_ts=^[]6;file://localhost
set t_fs=^G^M
set title
autocmd BufEnter * let &titlestring = expand("%:p")
使用control+vand thenesc取得上面顯示的控製字元的文字字元。 shell 中的一個函數vim
會清除該設定(VimLeave
autocmd
我無法在 7.3 中工作,並且還存在 if-you-suspendvim
問題)。
function vim {
command vim "$@"
echo -ne "\033]6;\007"
}
:help title
有關 的詳細信息title
,或查看 Vimsrc/term.c
文件中的代碼。