Linux 如何从命令行在多个gvim文件中搜索单个单词?
我想在不同的选项卡中打开多个文件,并在所有选项卡中搜索同一个单词。然后我想跳转到每个文件中找到的单词的第一个匹配项 这样做是可行的,但不会跳转到第一个事件:Linux 如何从命令行在多个gvim文件中搜索单个单词?,linux,unix,vim,Linux,Unix,Vim,我想在不同的选项卡中打开多个文件,并在所有选项卡中搜索同一个单词。然后我想跳转到每个文件中找到的单词的第一个匹配项 这样做是可行的,但不会跳转到第一个事件: gvim -p -cmd "/word" file1 file2 file3 file4 file5 file6 file7 我需要手动按“n”转到下一场比赛 Vim没有为命令行上的每个文件提供执行命令的方法。-c选项导致在读取第一个文件后执行命令,--cmd发生在打开任何文件之前 如果要执行此操作,可能需要定义一个脚本,该脚本具有执行此
gvim -p -cmd "/word" file1 file2 file3 file4 file5 file6 file7
我需要手动按“n”转到下一场比赛 Vim没有为命令行上的每个文件提供执行命令的方法。
-c
选项导致在读取第一个文件后执行命令,--cmd
发生在打开任何文件之前
如果要执行此操作,可能需要定义一个脚本,该脚本具有执行此操作的函数(例如,搜索
),使用-S
加载脚本,然后使用--remote send
选项执行脚本。在许多系统上,gvim
在默认情况下以默认服务器名启动,但如果没有,则需要在初始进程中使用--servername
或者,您可以使用
grep
从命令行执行此操作,这将更加灵活,但当然不会出现在编辑器中。由于您在单独的选项卡页面中打开文件,因此可以使用在每个页面中执行搜索
如果可以直接转到第一个匹配的行,您可以通过:/
:
vim -p -c 'tabdo /word/' file1 file2 file3 file4 file5 file6 file7
要转到行中第一个匹配的开头,我们需要这样的内容,使用正常模式n
:
vim -p -c "/word" -c 'tabdo 1normal! n' file1 file2 file3 file4 file5 file6 file7
您可能对填充快速修复列表的
:grep
和:vimgrep
感兴趣:
$ gvim file*
:vimgrep /pattern/ ##
##
意味着搜索参数列表,您可以使用:args
查看该列表。这是:next
和:prev
使用的内容
现在,您可以使用:cnext
和:cprev
导航搜索;或者,您可以打开quickfix窗口:copen
,并在任意一行中按enter键
您仍然可以使用
:cfdo tabedit
弹出打开选项卡中的所有文件,但此时可能没有必要 “>c选项导致在读取第一个文件后执行命令…”但命令可以是argdo
或bufdo
。我经常运行vim-c“set nomore”-c“argdo%s/search/replace/”-c xa