簡體   English   中英

如何讓 Cmd-left/right 與 iTerm2 和 Vim 一起工作(不需要 .vimrc 更改)?

[英]How to get Cmd-left/right working with iTerm2 and Vim (without requiring .vimrc changes)?

我希望能夠使用 Option-left 和 Option-right 在 Vim 中跳過單詞(和 Cmd-left/right 轉到行的開頭和結尾),就像在我的 shell 提示符下一樣。 我的 Iterm2 首選項有映射來執行此操作(例如Option-leftEsc-H和一個option-rightEsc-F以跳過單詞),這在本地 shell 中或當 ssh 到遠程服務器時有效.

當我在本地或遠程使用 Vim 時, option-left有效,但option-right無效。 我懷疑這是因為 Vim 自然會監聽Esc-H ,而不是Esc-F 我可以通過將 .vimrc 文件修改為Esc-bbEsc-ff來解決這個問題,但我不想對我連接的每個服務器都這樣做。

同樣,我對 Cmd-left/right 有相同的所需設置,用於轉到行的開頭和結尾。 我可以通過 Iterm2 映射(例如Cmd-leftEsc-[h )在 shell 中實現它,但是除非我再次映射鍵(例如Esc-[h^ ),Vim 根本不會對此做出響應。

更新:我剛剛想出了如何讓 option-left/right 工作。 我將 iTerm2 中的映射分別更改為 escape- escape-[1;5Descape-[1;5C 我仍然想解決 Cmd-left/right 問題(我改變了我的問題標題以反映這一點)。 有任何想法嗎?

為了模仿 OS X 將Cmd-left/right發送到行首/尾的行為,我在 iTerm2 中添加了以下映射:

  • Cmd-left轉義序列[1~
  • Cmd-right轉義序列[4~

為了模仿 OS X 將Option-left/right發送到上一個/下一個單詞的行為,我在 iTerm2 中添加了以下映射:

  • Option-left轉義序列[1;5D
  • 轉義序列的Option-right [1;5C

特別感謝這篇博文追蹤我在cmd-left/right映射中遺漏的內容

FWIW,在 Mac OS X 10.7.3 上的 iTerm 2 1.0.0.20120203 上,dolan 的回答對我不起作用。 當我按下快捷鍵時,他的解決方案僅將~5D / 5C插入到我的終端中。

相反,我使用了以下解決方案:

YMMV,不確定為什么一組解決方案有效,而另一組無效

我正在使用 iTerm2 3.4.2 並且實際上有一個預設,您可以為您的個人資料選擇啟用此功能的預設。 配置文件鍵映射 自然文本編輯預設

我沒有 MacOS,所以我不能確切地知道你的情況,但我認識到其他操作系統的問題。

基本上,這意味着終端發送 vim 無法理解的鍵碼。 我過去通過做修復了它

 TERM=something
 export TERM

在調用 vim 之前

例如,為了在 AIX 5.3 上通過 Putty/screen 獲得所有鍵語法突出顯示,我需要使用

 TERM=iris-ansi vim

如果您傳遞了錯誤的 TERM,則有一個內置終端類型列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM