You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim中是否有简洁快捷键可删除至词尾或下一个标点?

解决Vim中SQL下划线标识符的快捷删除问题

方法1:调整单词识别规则(最省心,复用原有快捷键)

Vim默认不把下划线归为单词的一部分,只要修改iskeyword选项,就能让你熟悉的dw/daw直接适配SQL的下划线分隔标识符:

在~/.vimrc(或init.vim)里添加一行:

set iskeyword+=_

生效后:

  • dw:删除从光标到下一个非标识符字符(句号.、空格、行尾都算)的内容,完全满足你“不用判断目标,直接删到词尾或标点”的需求。比如在user_info.id里,光标在u上时dw会删除整个user_info,光标在info的i上时会删到info末尾。
  • daw:直接删除整个下划线分隔的标识符(比如user_info),和你原来删除普通单词的逻辑完全一致。

这个方案不用记新快捷键,直接复用你已经习惯的操作,零额外学习成本。

方法2:自定义快捷键(适合不想全局改规则的情况)

如果不想全局调整Vim的单词定义,可以自定义映射实现一键操作:

" 映射<leader>d为删除到下一个非字母/数字/下划线的字符
nnoremap <leader>d d/\v[^a-zA-Z0-9_]<CR>
" 映射<leader>aw为删除整个标识符
nnoremap <leader>aw daw

不过对于高频编辑SQL的场景,方法1显然更高效。

临时生效的方式

如果只是临时需要这个功能,不用修改配置,在当前Vim会话里执行:

:set iskeyword+=_

退出Vim后会自动恢复默认设置。

内容的提问来源于stack exchange,提问作者crazybilly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:01:25