跟我读vim文档:006_搜寻、跳转、标记

在上一章中的第九部分,我们介绍了全文定位跳转。
只不过只定位了开头和结尾而已。
快捷键分别是:

gg
G

之后我们又介绍了定位跳转任意行的方法,例如:

77G
1000G

接下来,我们来更进一步,介绍任意词的定位与跳转。


一、搜寻

1、查找

说到任意词的定位,估计大家就已经想到了,其实就是最最常见的搜索功能。
比如我们要在vim中搜索:galipy

/galipy

在普通模式中,按下正斜杠(/),然后输入要搜索的内容回车就可以了。
之后按下字母n,就可以查看其他匹配的项了。

这是正向匹配,也就是说,它只会从光标处往下寻找。
但若是想从光标处向上匹配,应该如何操作?
答:

?galipy

用问号(?)就是反向匹配。
你会发现,正斜杠问号其实是在同一个键位上。
有没有熟悉的感觉?
以前我们进行单词间移动,用字母小w;而反向移动,用字母大W,同样是相同键位~

那么,思考下,当我们正向匹配galipy,按n向下查找,如果我们想向回查找应该怎么办?

2、精准匹配

我们用上面的方法匹配并不精准。
比如我输入:

/galipy

我想匹配galipy,但是,匹配的结果只要包含galipy就都会显示出来。
比如,可能有:

galipy
galipython
thegalipy
thegalipython

那么如何精准匹配呢?

这里用到了两个特殊记号:

\<       #表示:首匹配
\>       #表示:尾匹配

这两个是什么意思呢?
其实很好理解。
一个表示匹配结果开头完全相同,一个表示匹配结果结尾完全相同。

以上面提到的匹配结果为例:

1、如果输入:

/\<galipy

则会得到:
galipy
galipython

2、如果输入:

/galipy\>

则会得到:
galipy
thegalipy

3、如果输入:

/\<galipy\>

猜猜看会得到什么结果?
(注:这是最精确匹配)

答案:你只会得到galipy

3、魔法匹配

这个名字是我瞎起的,只是因为这个匹配方法比较好用,所以就起了一个这样的名字。

我们每次想精确匹配时,都要输入一堆字符才能完成操作,有没有相对简单一点的精确匹配呢?
答案是:有!

不过他有一个前提条件:那就是,你的光标必须停留在相同字符串上。
其实就是查找有没有其他相同单词的功能。

操作很简单,在普通模式下,把光标移动到相应单词上,然后输入:

*

是的,就只输入一个星号,他就能查找相同项目了。
例如,你把光标停留在galipy上(任意字母上即可),然后按下星号,
他其实是执行了如下操作:

/\<galipy\>

明白了吗?

星号是从光标处开始向下查询,那么向上查询呢?
你可能会说,按住shift。
这次不同之前了。因为你输入星号时本身就按着shift啊!所以只好换一个键位了。
即:

#

4、模糊匹配

模糊匹配其实涉及到正则表达式了。所以我们不讲太多。以后再单独讲解正则表达式。

我们在搜索时,并不是每次都100%确定自己要找的是什么。比如,我们想搜索galipy,但是我们不记得中间的字母是 i 还是 e 了。
怎么办?此时就需要用到模糊匹配了,也就是正则表达式的技巧。

注意看下面的搜索操作和之前有什么不同:

/gal.py

我们把不确定的地方用小数点(.)代替了。
明白了吗?
虽然匹配的结果可能有很多,比如:
galipy
galepy
galapy
但总比你瞎写强。
所以以后有不清楚的地方,就用小数点(.)代替就好了。

那么如果我想查找小数点(.)怎么办?
如果有编程语言基础的同学,应该很容易想到吧~
这里就当思考题了~

5、拓展:行尾行首匹配

这是个特殊的匹配,大家只要知道就好。

/^galipy        #字符^,表示:行首匹配,也就是说必须开头是galipy才能匹配到,有空格都不行。
/galipy$        #字符$,表示:行尾匹配,必须是galipy结尾,有空格都不行。
/^galipy$       #完全匹配,这一行只有galipy这几个字符才可以,有空格都不行。

不多讲,可以自行实验:p


二、跳转

说完了搜索,我们来说说跳转。

我们首先要明白跳转光标移动是两个概念。
最开始我们接触的kjhl都只是单纯的移动光标,一般都发生在一行内;
但是跳转不同,跳转多是跨越多行的行为。
比如上面说到的搜索操作,我们很少说用搜索操作去匹配第二行的相同内容。一般都是一下不知道跳转到哪里去了对不对?
仔细体会这二者的区别~

三、标记

m表示mark,即标记的意思。
我们常用m操作标记一些重要段落,并用a~z加以区分。
比如我们在vim文档开头按下ms表示mark start;中间按下mm表示mark middle;结尾按下me表示mark end。具体用哪个字母表示什么意思完全看心情~

之后,我们就可以通过 ' 单引号操作任意跳转了。

's         #跳转到s标记处
'm         #跳转到m标记处
'e         #跳转到e标记处

并且系统还为我们默认了一处标记,叫做上一处标记,区分符号是 ' ,没错,就是单引号本身。。

''          #跳回上一处
''          #再跳回去
''          #再跳回去

如果你想查看自己都进行了哪些标记,可以在普通模式下输入如下操作:

:marks

大家可以试试看,你会发现,系统默认标记还有其他几个,自己研究研究,看看他们都是什么~


四、拓展
除了通过单引号索引标记跳转外,还有一种索引跳转方法:
历史记录跳转法

主要通过两个快捷键跳转:

ctrl + o      #字母o是old的缩写,看到单词应该就知道什么意思了吧。
ctrl + i       #字母i并不是什么的缩写,据说只是因为它在字母o的旁边。。。

可以自己实验一下。
我截取文档相关部分来帮助大家理解:
首先是执行几次跳转,之后尝试快捷键回跳。

         |  example text   ^             |
    33G  |  example text   |  CTRL-O     | CTRL-I
         |  example text   |             |
         V  line 33 text   ^             V
         |  example text   |             |
   /^The |  example text   |  CTRL-O     | CTRL-I
         V  There you are  |             V
            example text

如果想查看自己进行了那些跳转命令,可以输入:

:jumps

多多练习哟~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,215评论 9 467
  • 待整理~ 1、vim ~/.vimrc 进入配置文件 如果不知道vimrc文件在哪,可使用 :scriptname...
    spfanlost阅读 1,712评论 0 0
  • vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从...
    壹首簡單的歌阅读 881评论 0 7
  • 自我总结篇: 对文件的操作技巧: vim文件一个有三种状态:命令(浏览/输入命令转变末行模式),文本(添加/编辑/...
    小知大知阅读 794评论 0 0
  • 今天 的主题是算计与珍惜,感恩。老师说算计可以参考孙子兵法谋略篇,我就抄了下来,“未战而庙算胜者,得算多也;未...
    自由的心yjt阅读 221评论 0 1