我希望能夠暫時從emacs模式切換到vi模式,因爲vi模式有時有時更好,但是我通常在我意識到我想使用vi模式之前通過鍵入一些內容。有沒有辦法通過按鍵將Bash或zsh從Emacs模式切換到vi模式?
我不想永久切換到vi模式,因爲我通常更喜歡emacs模式的命令行,主要是因爲它是我習慣的,多年來許多擊鍵已成爲第二天性。 (作爲一名編輯,我通常在viper模式下使用emacs,這樣我就可以使用這兩個 vi和emacs按鍵,因爲我發現自己一直都在意外地在vi中使用它們,並且搞砸了,因爲在某些情況下,我發現vi鍵擊更加令人難忘和方便,而在其他情況下emacs。)
你先生,很棒。但是,它在zsh中仍然不起作用。通過一些小的調整,我可以從命令行獲得模式指示器: set -o | grep'vi。* on'> |/dev/null 2>&1 && echo'[vi]'|| echo'' 但是我的提示僅在我輸入.zshrc文件時纔會更改。 (我還沒有在bash中測試模式指示器。) – iconoclast 2010-05-28 23:28:20
Zsh行編輯器似乎不支持'vi-editing-mode',只有'vi-cmd-mode'。 (但是,您仍然可以使用'set -o vi'或'bindkey -v'來有效獲取完整的vi模式。) ^ xv默認情況下在zsh中綁定到vi-cmd模式。它只能持續執行它,並且你只需點擊'i'即可離開它,這會讓你回到emacs模式。 相比之下,bash解決方案會一直持續到您明確切換模式爲止,點擊'i'會將您置入vi插入模式。 – iconoclast 2010-05-28 23:45:47
如果你把'$(command)'放在你的'PS1'變量的定義中,這個命令將被立即評估 - 因此你的提示是靜態定義的,你必須找到你的'〜/ .zshrc'來重新生成提示。如果您希望提示動態顯示變量/命令,則必須修改在顯示提示之前Zsh運行的'precmd'函數。把這個放在你的zshrc中來修正模式指示器: – jabirali 2010-07-13 02:41:34