Vim:命令行模式下的 c-del

Vim:命令行模式下的 c-del

在命令行模式下是否有“删除到单词起始边界”的快捷方式(类似于普通模式下的 dw)?我想将 C-Del 重新映射到它。如果没有,也许还有其他方法可以让 C-Del 工作?

答案1

找到了一些方法,有点尴尬:

function! CtrlDel()
    let str = getcmdline()
    let pos = getcmdpos()
    let len = strlen(str)
    let i = 0
    while pos + i < len && str[pos + i] !~ "\\s"
        let i = i + 1
    endwhile
    while pos + i < len && str[pos + i] =~ "\\s"
        let i = i + 1
    endwhile
    return strpart(str, 0, pos - 1) . strpart(str, pos + i)
endfunction
cnoremap <c-del> <c-\>eCtrlDel()<cr>

它由一个替换整个命令行的函数和一个通过调用该函数的映射组成Ctrl-\e

答案2

我认为dw已经提供了您要查找的内容,即仅由“单词字符”(字母、数字和下划线)组成的“单词”。要处理带标点符号的单词,请使用dW(大写W)。

相关内容