【发布时间】:2019-08-24 19:57:25
【问题描述】:
在 Windows 上的 VIM 中,处理 UTF-8 编码文件时,搜索带有重音字符的单词不会找到该单词。
我使用 UTF-8 编码文件并在文件中写入“éçà”。我保存文件,然后在该字符串上启动一个外部 grep。找不到文件。
在 VIM 中,首先打开 quickfix 窗口以显示匹配项:
:copen
将光标放在éçà(已保存文件)上,运行
:grep "<cWORD>" *
应该找不到匹配项
但是,使用 vimgrep (internal grep) 可以找到该文件(但是这个内部命令非常缓慢)。
跑步
:vimgrep "<cWORD>" *
找到匹配项。
这一定与字符转换为命令行有关,但我无法弄清楚,即使在VIM中玩过iconv命令。
有没有办法正确配置 VIM,以便它可以正确 grep 带有重音符号的文件(无需通过内部 grep 这么慢)? 我在网上找遍了,没有一个明确的结论。
【问题讨论】:
-
抱歉代码被卡住了,它应该是: :grep "
" * 和 :vimgrep " " * -
如果您在命令行中使用包含重音符号的 UTF-8 或 Unicode 字符串运行
grep,它是否有效?你安装了哪个版本的grep?从 Windows 环境来看,这些信息可能很重要,因为有很多方法可以在那里运行 Vim 和其他 Unix 工具...... -
你好,不,我也不能让它在命令行上工作,即使使用 findstr。到目前为止,它似乎可以与 msys64 一起使用,所以可能是 Windows 命令行限制了重音转换。我会让你知道它是怎么回事,现在尝试设置 vim 以使用 msys64 作为它的 shell
标签: windows vim command-line