当前位置: 首页 > Linux

vim技巧:用列表形式显示所有搜索到的内容,去掉搜索内容的高亮

时间:2023-04-06 23:20:11 Linux

Vim技巧:以列表的形式显示所有搜索到的内容,去除搜索内容的高亮显示所有搜索到的内容Vim使用/或?在文件中搜索,不会列出所有找到的内容,需要使用n或N命令逐一跳转到匹配的位置。如果想以列表的形式显示所有找到的内容,可以使用[I命令。注意[后面跟着一个大写的I。当这个命令查找count_matches这个词时,会显示类似下面的效果:src/main.c1:586staticintcount_matches;2:1270如果(count_matches)3:1879count_matches=1;4:2093count_matches=0;按回车或者输入命令继续,可以看到使用[I命令,一次列出所有包含搜索内容的行,第二列是对应行的行号。之后可以在命令行输入:number跳转到number对应的行。例如输入:1879,回车后跳转到1879行。【我的意思是从文件开头搜索当前光标下的关键字。如果当前光标不在要查找的关键字下,可以使用/或?先搜索,然后跳转到关键字后使用[I命令。如果当前文件是C/C++代码文件,[我还要查找#include指定的头文件。即可以列出多个文件下的匹配内容。如果不想要这种效果,可以先执行:setinclude=命令,将include选项的值设置为空,然后执行[i命令,再执行:setinclude&命令重新设置include选项是默认值。您可以映射快捷键将这三个命令放在一起,以便于操作。例如下面映射到F7键::map:setinclude=[I:setinclude&如果不是C/C++代码文件,则不需要其他设置,[I命令只会搜索当前文件。注意:[I命令不能搜索少数特殊字符,如右花括号},但可以搜索左花括号{.去掉搜索内容的高亮vim开启搜索高亮后(设置hlsearch),搜索内容会一直高亮显示。如果要去掉搜索内容的高亮,可以搜索一些不存在的内容,如果找不到,会去掉之前的高亮。上面是一个取巧的方法,标准的方法是执行:nohlsearch命令。该命令会去除搜索内容的高亮显示,但搜索高亮功能仍会打开,下次找到搜索内容时仍会高亮该内容。为了方便执行,可以在~/.vimrc文件中将此命令映射为快捷键。下面把它映射到F9键:“如果要去掉高亮搜索的内容,需要重新搜索一些不存在的字符串,比较麻烦,可以”在vim命令行执行nohlsearch命令去掉当前的亮点。下面的Startwith:表示在命令行执行。nnoremap:nohlsearch"在插入模式下,使用F9去除搜索高亮。后面的表示CTRL-O,在插入模式下执行一次命令inoremap:nohlsearch