惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Martin Fowler
Martin Fowler
I
InfoQ
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
D
Docker
博客园 - 三生石上(FineUI控件)
Y
Y Combinator Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
B
Blog
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
V
Visual Studio Blog

PixelNest

会议是效率的杀手 国庆出游记录 对居家办公的一些想法 2022 春节 《搏击俱乐部》的结局 纪念 PAI 头一回达到 100 卡片笔记法 《刑法学讲义》的部分摘录 迁移博客 《UNIX 传奇》摘录 就地过年 一点记录:docker-compose 编排不同项目间的网络 近期读的几本书 办新身份证 git 获取其他分支的单个文件或目录 我的高考成绩 推荐 2020 年上半年的 8 部影视作品 ChromeOS 开发者模式 终于下单了《守望者》 联通来电管家服务 一些实用的 bash 代码片段 关于 鸟枪换炮 《架构整洁之道》摘录 惨淡的星球大战 旧笔记本电脑 if...then... 命令行检测 SSL 证书过期时间 《程序员的职业素养》读书笔记 2019 国庆假期
Vim iskeyword
2018-06-26 · via PixelNest

近期使用 Vim 碰到一个问题,比如有下面这样几行代码

object1.member = 2;
object2.member = 3;

当光标处于第一行的 member 时,按下 * 号搜索 member ,结果搜索的内容是 object1.member ,点号 . 连接的整个部分,被当作一个单词来搜索了。

Vim 通过 iskeyword 的配置项来决定什么样的内容算作一个单词(word),打开 Vim,在 Normal 模式下键入 :set isk?——isk 是 iskeyword 的缩写——可以查看当前的配置,默认的结果是 iskeyword=@,48-57,_,192-255,是由逗号分隔的字符列表,48-57 是指 ASCII 48 到 57 之间的字符,也就是数字 0 到 9,后面跟着的是下划线,再后面是扩展 ASCII 字符中 192 到 255 之间的字符。第一个字符 @ 代表的是 isalpha() 函数“认证”为真的所有字符。

iskeyword 指定的任意字符连接在一起,都被算作一个单词,比如 abc, abc_xyz, abc012xyz, abc_012_xyz,回到最初的问题来,显然是因为点号 . 也被加入 iskeyword 配置项了,查看一下果然如此,iskeyword=@,48-57,_,192-255,-,#,.,多出来三个字符,点号就在其中。

随便搜索就查到为什么会多出来三个字符,是个普遍问题。vim-coloresque 这个 Vim 插件的锅,写 HTML 或者 CSS 中的颜色值时,这个插件提供了直接预览颜色的功能。在插件的 after/syntax/css/vim-coloresque.vim 文件中这样几行导致了问题:

:set isk+=-
:set isk+=#
:set isk+=.

解决办法至少有两个。

一是自己去 Vim 配置文件里用 set isk-=-, set isk-=#,set isk-=. 把这三个字符去掉。

二是把这个插件修改了,把那几行代码中的 set 改成 setl,set 修改了全局配置,setl 中的 l 是指 local,setl 设置的项是个“本地值”,在当前 buffer 或者 window 生效。