有没有办法在vim命令行中使用
alt+backspace
?当必须单独退格/very/long/file/path
而不是使用alt+退格键按单词删除时,它会变得不守规矩。
尝试使用
<c-w>
(Ctrl + W)删除单词或使用 <c-u>
(Ctrl + U)删除行。
http://vim.wikia.com/wiki/Map_Ctrl-Backspace_to_delete_previous_word
:imap <C-BS> <C-W>
设置ctrl退格键,我得看看怎么做alt
当然,就像这样简单:
if has('gui_running')
imap <M-BS> <C-W>
cnoremap <M-BS> <C-W>
else
imap <Esc><BS> <C-W>
cnoremap <Esc><BS> <C-W>
endif
这里的技巧是要知道,给定一个假设的 foo 键,在按下 Alt+foo 组合后,许多终端将发送一个 Escape 代码,后跟 foo。显然也有例外——某些终端确实会发送 vim 可以识别为 Alt 的内容。但是,如果
imap <M-BS> <C-W>
映射在终端中不适合您,那么您的终端很可能会发送 Esc,因此组合 imap <Esc><BS> <C-W>
应该适合您。
您可以通过评估
:help map-alt-keys
在 vim 文档中阅读更多相关信息
如果您位于路径的尽头,您可以点击
B
,然后点击 dW
(区分大小写)。这会将您跳转到单词的开头(忽略斜杠),然后删除该单词(再次忽略斜杠)。
希望这有帮助。
Vim 无法接收替代输入。 skeept的答案似乎是最好的选择。
参见这个答案:
Alt/Meta 键在 Vim 和大多数终端中都有问题,请参阅我的这个答案以了解情况概述(Meta 和 Alt 的情况相同)。
简而言之,Vim 根本接收不到 Alt:按 Alt+Backspace 与按 Backspace 完全相同。
无论如何,从长远来看,学习并习惯 Vim 的默认按键映射对你来说会更好。
标记为正确的答案与大多数 UI 编辑器中 Alt + BackSpace 的行为不符。与此行为相对应的 vim 快捷键是
db
- 又名删除后面(一个单词?!),dw
会删除前面的单词,这将是大多数 ui 程序中的 (Altr 或 Ctrl ) Del 快捷键。
这些工作方式基本上与 w
相同 - 将光标移动到单词开头,然后 b
,将光标移回单词开头 ...
免责声明:我已经使用我的 .vimrc 超过 10 年了。 ,这可能会有一些奇怪的变化,也会改变默认行为......
x 那么 w 也应该按单词退格。 d 然后 w 也会删除光标所在的当前单词。