
我最近開始使用 Vim。在先前的編輯中,我習慣透過按Ctrl-刪除整個單字Backspace。查看文件後我發現這是透過在 Vim 中按Ctrl-來完成的w。問題是,在習慣按Ctrl-後w,每次我拼錯一個單字時,我都會開始關閉選項卡和聊天(在寫這個問題時,我關閉了該選項卡 5 次)。所以我檢查瞭如何在 Vim 中映射鍵並嘗試了這個:
:imap <C-BS> <C-w>
不幸的是,它沒有起作用。經過一番研究,我發現終端不區分Ctrl-Backspace和Backspace。我看到了一些駭客和補丁來解決這個問題,但我無法讓它們在終結者(這是我想使用的模擬器)上工作。
使用終結符時,有什麼方法可以在 Vim 中映射Ctrl-嗎?Backspace
答案1
由於鍵盤輸入的內部處理方式,不幸的是,這在今天通常是不可能的。某些組合鍵,例如Ctrl+ 非字母組合無法映射,且無法區分Ctrl+ 字母與Ctrl+ + 字母。 Shift(除非你的終端發送一個不同的術語帽程式碼,但大多數都沒有。如果沒有發生/插入,則無法使用該組合鍵。這也適用於<Tab>
/ <C-I>
、<CR>
/ <C-M>
/ <Esc>
/<C-[>
等(唯一例外是<BS>
/ <C-H>
。)這是一個已知的痛點,也是 vim_dev 和 #vim IRC 頻道上各種討論的主題。
有些人(首先是 Paul LeoNerd Evans)想要解決這個問題(即使是支援此功能的終端機中的控制台 Vim),並提出了各種建議,cp。http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8
但截至今天,還沒有補丁或志工出現,儘管許多人表示希望在未來的 Vim 8 主要版本中提供此功能。