You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Vim中如何删除包含额外点号的单词

Vim中如何删除包含额外点号的单词

嘿,这个需求我之前折腾过!Vim默认的dw是针对空格分隔的单词设计的,它会删掉当前单词和后面的空格,但碰到点号这种非空白分隔符就不灵了。想要实现你说的foo.bar.baz → foo.baz的效果,有几个原生的好用方法:

  • 方法一:用dF.快速删除
    当光标在目标单词(比如例子里的bar)的任意位置时,直接按dF.就行。这里的F.是反向查找最近的点号并跳过去,d加上这个动作就会删除从当前光标位置到那个点号的所有内容(包括点号本身),正好把.bar删掉,剩下foo.baz,完美匹配你的需求。

  • 方法二:两步操作兜底(适合临时场景)
    如果你记不住F.的用法,也可以分两步来:先按dw删掉bar,这时候文本会变成foo..baz,再按x删掉多余的那个点号,也能得到foo.baz。虽然多一步胜在好记。

  • 方法三:自定义快捷键(一劳永逸)
    要是你经常需要做这个操作,可以在你的~/.vimrc里加个自定义映射,比如:

    nnoremap <leader>d dF.
    

    之后只要按<leader>d(默认leader是反斜杠)就能一键完成删除,省得每次记命令。

备注:内容来源于stack exchange,提问作者Chubby Cows

火山引擎 最新活动