Bash

在 OS X 中設置終端選項卡名稱並使用 vim

  • February 24, 2016

我經常從 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"
}

引用自:https://unix.stackexchange.com/questions/265526