vim - Vim 中不区分大小写的标签搜索

标签 vim ctags

在大多数情况下,我发现区分大小写的标签搜索是合适的。我们使用的大多数语言都区分大小写,因此这是可取的。

但是,我的工作场所中有一个 DSL,它使用不区分大小写的标识符。我为这个 DSL 生成标签,甚至可以使用 Foldcase 对其进行排序(并在标签文件中设置适当的标志),但 Vim 似乎仍然对标识符进行区分大小写的匹配。

我希望 Vim 能够将“折叠大小写”标签文件理解为“这种语言不区分大小写”。有这样的设置吗?

我想我可以为这个文件类型打开 ignorecase (我关掉标签文件并更改一些其他设置),但是当大小写不匹配时,Vim 会对我咆哮。我只是想用一种方式对 Vim 说:“嘿,这不区分大小写,所以没关系,你不需要为此对我大喊大叫。”一般来说,我似乎希望 Vim 能够根据标签文件的排序方式来解释意图,但也许这不是一个广泛持有的愿望......

最佳答案

最终我只是做了ignorecase解决方案。我的 vimrc 中有这些:

autocmd BufEnter  *                 setlocal noignorecase
autocmd BufEnter  *.{dsl-a,dsl-b*}  setlocal ignorecase

很烦人,但问题已解决;我希望 Vim 能够注意到标记文件中的 header :

!_TAG_FILE_SORTED   2   /0=unsorted, 1=sorted, 2=foldcase/

唉,看来事实并非如此。

<小时/>

前几天我遇到了一个问题,它为大众提供了进一步的文档;找不到我要搜索的一些标签,但当我查看标签文件时,它们就在那里。然后我注意到被跳过的项目上方有一些行具有相同的前导字符,但有一个下划线;我意识到下划线在字母之前排序,并想知道这是否可能是一个问题(下划线是大写 Z 和小写 A 之间出现的六个字符之一,但在 C 兼容标识符中是唯一有效的字符)。

为了咯咯地笑,我手动重新排列了有问题的部分,以便在字母后面出现下划线。我什至编写了一个最小的测试用例,并为 bugs@vim 编写了一份大错误报告,然后决定查看标签文档以“引用适当的引用”。它被埋在 :help tagbsearch 的末尾,即对我们这些长期看书的人来说没什么用处。

请注意,必须将大小写折叠为大写才能正常工作。

对我的 Python 脚本进行一行更改修复了我的标记文件:

if casefold:
    tags.sort(key=str.upper)  # tag file requires case folding to be folded to upper case
else:
    tags.sort()

关于vim - Vim 中不区分大小写的标签搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234072/

相关文章:

ruby - 带有 ruby​​ 语法高亮的 Vim 变慢

linux - 为什么 gf 对 vim 不起作用但 ctrl+] 有效?

erlang - 让 ctags 在 Erlang 代码的标签文件中包含模块限定符

c - 如何为当前项目配置 .ycm_extra_conf.py include PATH

linux - 限制每行编辑器vi linux的字符数

vim - 我如何在 centos 6.4 中安装 ctags?

python - 当我尝试为所有 python 库构建标记文件时,ctags 永远不会停止

vim - 无法配置 VsVim 以让 Visual Studio 处理 ctrl+c、ctrl+v 和 ctrl+x

vim - 语法高亮在 Janus for Vim 中不起作用