码迷,mamicode.com
首页 > 系统相关 > 详细

VIM学习笔记(二)

时间:2015-10-19 17:18:45      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

VIM学习笔记第二篇,由于需要整理文档并且还要工作,并不能达到每天学习并发表一篇,不过勤于记录就好~

2.查找
查找命令是“/String”,注意,.*[]^%/\?"$有特殊含义,查找他们需要前面加一个"\",使用“n”查找下一个,查找第三个匹配,使用“3n”,“N”重复前一次查找。
"?"与“/”类似,但是反向查找,功能也相反。
-------------------------------------------------------
忽略大小写
:set ignorecase
如果想区分大小写
:set noignorecase
-------------------------------------------------------
--在文本中查找一个单词--
假设在文本中看到一个很长的单词,例如“TheLongFunctionName”,而你想找到下一个相同的单词,但是又怕输入错误,有一个简单的方法,把光标移到该单词上

使用“*”命令,
VIM会取得光标上的单词并把它作为被查找的字符串,“#”在反向上完成相同的功能。
--查找整个单词--
例如你输入“/the”,你也可能找到"there".要找到以“the”结尾的单词,可以用:“/the\>”."\>"是一个特殊的记号,表示只匹配单词末尾。
类似的,“\<”只匹配单词开头,这样,要匹配一个完整的单词“the”,只需:“/\<the\>”.注意,"*"和"#"也使用了"词首"和”词尾“来匹配整个单词.(要部门匹配

使用"g*"和"g#")

--高亮匹配--

当你想高亮匹配查找的单词时,一种办法是把光标移动到要查找的单词下使用"*"命令查找,另一种方法是输入这个命令:

:set hlsearch

要关掉这个功能:

:set nohlsearch

然后你又需要在下一次查找的时候又切换回来。如果你只是想去掉高亮显示的东西,用如下

命令:
:nohlsearch
这不会复位 hlsearch 选项。它只是关闭高亮显示。当你执行下一次查找的时候,高亮功能
会被再次激活。使用 "n" 和 "N" 命令时也一样。

--调 节 查 找 方 式--

有一些选项能改变查找命令的工作方式。其中有几个是最基本的:

:set incsearch

这个命令使 Vim 在你输入字符串的过程中就显示匹配点。用这个可以检查正确的地方是否已经被找到了。然后输入 <Enter> 跳到那个地方。或者继续输入更多的

字符改变要被查找的字符串。

:set nowrapscan

这个选项在找到文件结尾后停止查找。或者当你往回查找的时候遇到文件开头停止查找。默认情况下 ‘wrapscan‘ 的状态是 "on"。所以在找到文件尾的时候会自

动折返。


--插曲--

如果你喜欢前面的选项,而且每次用 Vim 都要设置它,那么,你可以把这些命令写到
Vim 的启动文件中。
编辑vimrc,然后在文中加一行命令来设置这些选项,就好像你在 Vim 中输入一样,例如:

Go:set hlsearch<Esc>

"G" 移动到文件的结尾,"o" 开始一个新行,然后你在那里输入 ":set" 命令。
最后你用 <Esc> 结束插入模式。然后用”ZZ“命令存盘。
现在如果你重新启动 Vim,‘hlsearch‘ 选项就已经被设置了。
--使用标记--
当你用 "G" 命令跳到另一个地方,Vim 会记住你从什么地方跳过去的。这个位置成为一个
标记,要回到原来的地方,使用如下命令:

``

` 用单引号 ‘ 也可以。
如果再次执行这个命令你会跳回去原来的地方,这是因为 ` 记住了自己跳转前的位置。
通常,每次你执行一个会将光标移动到本行之外的命令,这种移动即被称为一个 "跳转"。
这包括查找命令 "/" 和 "n"(无论跳转到多远的地方)。但不包括 "fx" 和 "tx" 这些
行内查找命令或者 "w" 和 "e" 等词移动命令。
另外 "j" 和 "k" 不会被当做是一次 "跳转",即使你在前面加上个数前缀也不例外。
``命令可以在两个位置上跳来跳去。而 CTRL-O 命令则跳到一个 "较老" 的地方(提示:O
表示older)。CTRL-I 则跳到一个 "较新" 的地方(提示:I在键盘上紧靠着O)。
--有名字的标记--
Vim 允许你在文本中放置自定义的标记。命令 "ma" 用 a 标记当前的光标位置。你可以在
文本中使用 26 个标记(a到z)。这些标记是不可见的,只是一个由 Vim 记住的位置。
要跳到一个你定义的标记,可以使用命令 `{mark},这里 {mark} 是指定义标记
的那个字母。所以,移到标记a的命令是:

`a

命令 ‘mark(单引号加上一个标记)会移到标记所在行的行首。这与 `mark 命令是不同的,
后者是移到标记所在行上被标记的列。

标记在需要处理一个文件的两个相关地方的时候非常有用。假设你在处理文末的时候需要
查看文首的一些内容,先移动到行首,设置一个标记 s (start):

ms

然后移动到你需要处理的地方,再设置一个标记 e (end):

me

现在你可以随意移动,当你需要看开头的地方,可以使用这个命令移到那里:

‘s

然后使用 ‘‘ 跳回来。或者用 ‘e 跳到你正在处理的文尾的地方。
这里使用 s 和 e 作标记名没有特别的含义,只是为了好记而已。

你可以用如下命令取得所有的标记的列表:

:marks

你会注意到有一些特殊的标记,包括:

‘ 跳转前的位置
" 最后编辑的位置
[ 最后修改的位置的开头
] 最后修改的位置的结尾

每天学一点,慢慢熟悉VIM功能,不知不觉自己就变得强大了。

VIM学习笔记(二)

标签:

原文地址:http://www.cnblogs.com/xiaomabu/p/4892072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!