如何在 VIM 中打开文件并将光标移动到搜索结果

ka3*_*3ak 5 vim search cursor

考虑tmp.txt其内容为的文件:

x
abcd
Run Code Online (Sandbox Code Playgroud)

我想在 VIM 中打开它并将光标移动到c字符上。所以我用参数运行 VIM:

$ vim -c "/c" tmp.txt
Run Code Online (Sandbox Code Playgroud)

但它将光标设置在a. 看起来 VIM 能够找到c但将光标放在行开始处。为什么/c在打开文件时在 VIM 正常模式下执行它会有所不同?

Tho*_*key 5

您可以使用-s(script) 选项将光标定位在第一个匹配项上。根据vim手册

-s {scriptin}读取
脚本文件{scriptin}。文件中的字符被解释为就像您键入它们一样。使用命令“ {scriptin} ”也可以做到这一点。如果在编辑器退出之前到达文件末尾,则会从键盘读取更多字符。:source!

您可以使用带有按键的临时文件,甚至(如果您正在使用bash)进程替换。例如:

#!/bin/bash
vim -s <(printf '/c\n') tmp.txt
Run Code Online (Sandbox Code Playgroud)

这种方法适用于比单个字符更复杂的搜索。