如何解决重新定义用于在 Vim/GVim 中编辑 Clojure 代码的单词移动停止字符
在 Vim/GVim 中编辑 Clojure 代码时,我经常使用 w
word-motion 命令(以及它的表亲 b
用于反向移动 word-motion)。但是,在默认的 Clojure 配置中,Vim/GVim 会忽略常见的单词分隔符字符,例如连字符、斜杠和句点。以下 Clojure 符号显示了所有三个:
clojure.core/select-keys
在这种情况下,我们希望 w
和 b
字动作命令在任何非字母字符处停止。
如何修改默认的 Vim 配置以识别 Clojure 中的这些单词边界?
解决方法
答案是使用 Vim 功能 autocmd
来修改 Clojure 文件的 iskeyword
设置。具体来说,将这些行添加到您的 ~/.vimrc
文件中:
" Remove the period `.`,hyphen,`-`,and slash `/` as keyword chars so "word" movement will stop
" on these chars (i.e. in a namespace like `proj.some.long.ns.name` or a symbol like `my-clojure-sym`)
" Must do one at a time for 'string lists'
autocmd BufWinEnter,BufNewFile,BufRead *.clj* set iskeyword-=.
autocmd BufWinEnter,BufRead *.clj* set iskeyword-=-
autocmd BufWinEnter,BufRead *.clj* set iskeyword-=/
加载带有后缀 .clj*
的文件时,我们从 iskeyword
字符串列表中删除了句点、连字符和斜杠这三个字符,因此它们不再被识别为“关键字”的一部分.也就是说,它们变成了单词分隔符。然后,w
和 b
字动作命令将停在那里,正如我们所寻求的那样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。