Mic*_*ski 263
[]
在搜索中使用字符类中的范围时,您应该能够排除 ASCII十六进制字符范围,因此突出显示(假设您已hlsearch
启用)位于ASCII范围之外的所有其他字符:
/[^\x00-\x7F]
Run Code Online (Sandbox Code Playgroud)
这将对ASCII 和ASCII (0-127)之间的字符进行否定匹配(via ),并且似乎在我的简单测试中起作用.当然,对于扩展的ASCII,扩展范围而不是使用.[^]
0x00
0x7F
\xFF
\x7F
/[^\x00-\xFF]
您也可以通过\d
以下方式表达十进制:
/[^\d0-\d127]
Run Code Online (Sandbox Code Playgroud)
如果您需要更具体的内容,例如排除不可打印的字符,则需要将这些范围添加到字符类中[]
.
Ste*_*ing 32
是的,有一个本机功能可以突出显示任何匹配的字符串.在Vim里面,做:
:help highlight
:help syn-match
Run Code Online (Sandbox Code Playgroud)
syn-match
定义匹配的字符串属于一个组.
highlight
定义组使用的颜色.想想你的vimrc文件的语法高亮.
因此,您可以在.vimrc文件中使用以下命令:
syntax match nonascii "[^\x00-\x7F]"
highlight nonascii guibg=Red ctermbg=2
Run Code Online (Sandbox Code Playgroud)
PAS*_*LoD 15
对于其他(从现在开始不那么不走运)人们通过搜索引擎到达这里并且无法完成非ASCII字符的突出显示,请尝试这个(把它放到你的.vimrc中):
highlight nonascii guibg=Red ctermbg=1 term=standout
au BufReadPost * syntax match nonascii "[^\u0000-\u007F]"
Run Code Online (Sandbox Code Playgroud)
这具有不与常规(基于文件类型[文件扩展名]的)语法定义冲突的额外好处.
这个正则表达式也有效。这是来自briceolion.com 的“vim remove non-ascii characters”的第一个谷歌点击,:set hlsearch
并将突出显示:
/[^[:alnum:][:punct:][:space:]]/
Run Code Online (Sandbox Code Playgroud)