学习Vim 4 查询/替换
Contents
例子段落
|
|
查找当前词 * #
向前查找当前词 *
在普通(命令)模式下,将cusor置于某单词下,输入*将跳转到下一个相同单词,大小写有关
以上面个歌词为例,
假设当前光标位于第二行的首个单词Two中间的w字符上
假设想查找定位到下一个Two单词,只要在命令模式下输入 * 即可
再次输入 * ,跳转到第三行的Two上,
大小写相关哦,再次输入 * ,会跳转到最后一行的Two上,跳过中间几行的two 如果需要忽略大小写, 可以设置
|
|
向后查找当前词 #
假设当前cursor位于最后一行Two上,
输入#, cursor会跳转到第三行的Two(假设区分大小写)
注意* #, 匹配整个单词,词首到词尾. Two, 输入# , 不会匹配中间的Twohearts 如果需要部分匹配,可以使用 g 或者 g#, 那么就会匹配中间的Twohearts, 或者形如oneTwothere的词
输入 数字* 也同样, 比如2*, 3#
简单查找 /String ?String
正向查找 /String
在命令模式输入 /String, 会查询String,
输入enter以后,光标会移动到下一个匹配的String
之后输入n会继续查找下一个, 输入N 反向查找下一个 上面的例子中查找小写的two,/twoEnter,然后输入n,N试试看
数字+n(N), 会跳转到第n个匹配的String,
如果数字太大,会循环查找
如果想查找文本第一个匹配,命令是 ggn 想过想查找最后一个匹配,命令为GN
反向查找 ?String
?String 是反向查找,?String输入enter后, 输入n(N)查找方向与/String也相反 ?String Enter + n 是反向查找 N是正向查找
查找完整单词
在简单查找中,输入/Two, 可以找到Two,也可能找到 Twohearts, oneTwoThere
如果想匹配词头词尾可以输入 __ < 和或> __
比如Two开头的, /<Two, 那么会匹配Twohearts, 不会匹配oneTwoThere
匹配Two单词, /<Two>, 那么只会匹配单词Two, 不会匹配Twohears,oneTwoThere
匹配行首和行尾
^ 匹配行首 /^Two 仅仅匹配在行首的Two
$ 匹配行尾 /Two$ 仅仅匹配在行尾的TWo
匹配任意单个字符
“.”字符匹配任何字符, /t.o 匹配头一个字母是t,中间是任何字符,然后是字母o的单词
注意如果要匹配特殊字符如.本身,可以使用反斜杠.
标记
一般情况下,每次执行一个将光标移动到__本行之外__的命令,称为一次"跳转"
包括G gg 查询使用的/? nN,但是不靠扩fx tx查找命令和w,e,b等词移动命令
Vim会记住您是从什么地方跳转过去的. 要回去原来的地方,使用命令’’ 或者`` 再次使用这两个单引号或者反引号,会跳去原来地方.
CTRL-O(older)跳转到一个"较老的"地方 CTRL-I跳转到一个"较新"的地方
自定义标记
命令m 可以在文本中放置自定义的标记
例如ma 用a标记当前光标位置,可以使用a-z26个字母标记
需要跳转到自定义标记使用’a或’b跳转到标记行的行首
有些特殊标记
’ 跳转前的光标位置
" 最后编辑的光标位置
[ 最后修改的开始位置
] 最后修改的结束位置
‘‘就是上面的命令 ‘"" 跳转到最后标记的光标位置
todo