在vim命令行中使用alt+backspace键按单词删除

5tmbdcev  于 2022-11-11  发布在  其他
关注(0)|答案(7)|浏览(210)

有没有办法在vim命令行中使用alt+backspace?当必须单独退格/very/long/file/path而不是使用alt+退格来按单词删除时,它会变得难以控制。

bwleehnv

bwleehnv1#

请尝试使用<c-w>(即ctrl+w)来擦除单词或使用<c-u>(ctrl+u)来删除行。

piztneat

piztneat3#

如果你在路径的末尾,你可以点击B,然后点击dW(大小写有关系),这将跳转到单词的开头(忽略斜线),然后删除单词(同样忽略斜线)。
希望这对你有帮助。

iswrvxsc

iswrvxsc4#

Vim无法接收alt输入。skeept的答案似乎是最好的选择。
请参阅this answer
Alt/ meta键在Vim和大多数终端中是有问题的,请参阅我的这个答案来了解情况(Meta和Alt的情况是一样的)。
简而言之,Vim根本不接收Alt:按Alt+Backspace与按Backspace完全相同。
无论如何,从长远来看,学习和习惯Vim的默认键Map对您来说会更好。

laik7k3q

laik7k3q5#

正确的答案与大多数UI编辑器中Alt + BackSpace的行为不一致。与此行为对应的vim快捷键是db- aka delete back(一个单词?!),dw将删除单词forth,这将是(Altr或Ctrl)Del快捷键在大多数用户界面程序中。它们的工作方式基本上与w相同-将光标移动到单词beginings和b,将光标移回单词开头...
免责声明:我已经使用了10多年我的.vimrc。,这可能有一些怪异的扭曲,改变了默认行为以及。

tct7dpnv

tct7dpnv6#

当然,这很简单:

if has('gui_running')
    imap <M-BS> <C-W>
else
    imap <Esc><BS> <C-W>
endif

这里的技巧是要知道,假设有一个foo键,在按下Alt+foo组合键后,许多终端会发送一个Escape代码,后跟foo。显然也有例外-一些终端确实发送了一些vim可以识别为Alt的代码。但如果imap <M-BS> <C-W>Map在终端中不起作用,那么很可能您的终端会发送一个Esc。因此组合imap <Esc><BS> <C-W>应该对您有效。
您可以在vim文档中通过计算:help map-alt-keys来阅读更多有关这方面的内容。

pb3skfrl

pb3skfrl7#

x,则w也应该按每个单词退格。d,则w也将删除光标所在的当前单词。

相关问题