Bash
在 OS X 中設置終端選項卡名稱並使用 vim
我經常從 OS X(El Capitan)終端 ssh 進入 Linux 集群,有時帶有多個終端選項卡。我使用 bash 和 vim。
我想做以下事情:
- 使用 ssh 時,將終端選項卡標題設置為目前工作目錄
PROMPT_COMMAND='printf "\e]1;"
basename $PWD"\a"'
- 使用 vim 時,將終端選項卡標題設置為 “vim — FILENAME”
這是我的問題:
- 如果我這樣做
let &titlestring = "vim — " . expand("%:t")
並且set title
在 .vimrc 中,它會更改終端視窗標題,而不是選項卡標題。如果我不單獨設置選項卡標題(參數 1),選項卡標題會反映視窗標題(參數 2),但是一旦我設置選項卡標題,它就會與視窗標題“分離”。- 如果我在.vimrc中執行一個外部命令
:!
,我會得到一個令人討厭的“按 ENTER”對話框。- 如果我
:silent !
在**.vimrc**中使用,我的終端提示在退出 vim 後會出現在螢幕底部。我真的不想在每次我想使用 vim 時保存提示位置並重置它。- 如果我在**.bashrc**中定義以下函式:
function vim { printf "\e]1;"`basename "$1"`"\a" vim "$1" }
然後我的終端在從命令行呼叫時崩潰。
vim
呼叫該函式是可行的vvim
,但我不想vvim
永遠輸入。我想別名vim
。所以我似乎卡住了。任何建議將不勝感激。先感謝您!
好吧,我已經解決了我自己的問題。我程式 101 失敗。
通過將 vim 定義為函式然後呼叫 vim,我設置了一個無限遞歸循環。難怪我的終端崩潰了。我需要呼叫“真正的”vim,即實際的執行檔。這成功了:
function vim { printf "\e]1;"`basename "$1"`"\a" /usr/bin/vim "$1" }