⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usr_03.cnx

📁 Vim 中文文档
💻 CNX
📖 第 1 页 / 共 2 页
字号:
你会注意到,当你输入 "/" 的时候,光标移到了 Vim 窗口的最后一行,这与 "冒号命令"一样,在那里你可以输入要查找的字符串。你可以使用退格键 (退格箭头或<BS>) 进行修改,如果需要的时候还可以使用 <Left> 和 <Right> 键。   使用 <Enter> 开始执行这个命令。	Note:	字符.*[]^%/\?~$有特殊含义。如果你要查找它们,需要在前面加上一个 "\"。	请参见下文。要查找下一个匹配可以使用 "n" 命令。用下面命令查找光标后的第一个 #include: >	/#include然后输入 "n" 数次。你会移动到后面每一个 #include。如果你知道你想要的是第几个,可以在这个命令前面增加次数前缀。这样,"3n" 表示移动到第三个匹配点。要注意,"/" 不支持次数前缀。"?" 命令功能与 "/" 的功能类似,但是是反方向查找: >	?word"N" 命令在反方向重复前一次查找。因此,在 "/" 命令后执行 "N" 命令是向后查找,在 "?" 命令后执行 "N" 命令是向前查找。忽 略 大 小 写通常,你必须区分大小写地输入你要查找的内容。但如果你不在乎大小写。可以设置'ignorecase' 选项: >        :set ignorecase如果你现在要查找 "word",它将匹配 "word" 和 "WORD"。如果想再次区分大小写: >	:set noignorecase历 史 记 录假设你执行了三个查找命令: >	/one	/two	/three现在,让我们输入 "/" 启动一次查找,但先不按下回车键。现在按 <Up>(上箭头),Vim把 "/three" 放到你的命令行上。回车就会从当前位置查找 "three"。如果你不回车,继续按 <Up>,Vim 转而显示 "/two",而下一次 <Up> 变成 "/one"。    你还可以用 <Down> 命令在历史记录中反向查找。如果你知道前面用过的一个模式以什么开头,而且你想再使用这个模式的话,可以在输入<Up> 前输入这个开头。继续前面的例子,你可以输入 "/o<Up>",Vim 就会在命令行上显示 "/one"。冒号开头的命令也有历史记录。这允许你取回前一个命令并再次执行。这两种历史记录是相互独立的。在 文 本 中 查 找 一 个 单 词假设你在文本中看到一个单词 "TheLongFunctionName" 而你想找到下一个相同的单词。你可以输入 "/TheLongFunctionName",但这要输入很多东西。而且如果输错了,Vim是不可能找到你要找的单词的。    有一个简单的方法:把光标移到那个单词下面使用 "*" 命令。Vim 会取得光标上的单词并把它作为被查找的字符串。    "#" 命令在反向完成相同的功能。你可以在命令前加一个次数:"3*" 查找光标下单词第三次出现的地方。查 找 整 个 单 词如果你输入 "/the",你也可能找到 "there"。要找到以 "the" 结尾的单词,可以用: >	/the\>"\>" 是一个特殊的记号,表示只匹配单词末尾。类似地,"\<" 只匹配单词的开头。这样,要匹配一个完整的单词 "the",只需: >	/\<the\>这不会匹配 "there" 或者 "soothe"。注意 "*" 和 "#" 命令也使用了 "词首" 和 "词尾" 标记来匹配整个单词(要部分匹配,使用 "g*" 和 "g#")高 亮 匹 配当你编辑一个程序的时候,你看见一个变量叫 "nr"。你想查一下它在哪被用到了。你可以把光标移到 "nr" 下用 "*" 命令,然后用 n 命令一个个遍历。    这里还有一种办法。输入这个命令: >	:set hlsearch现在如果你查找 "nr",Vim会高亮显示所有匹配的地方。这是一个很好的确定变量在哪被使用,而不需要输入更多的命令的方法。    要关掉这个功能: >	:set nohlsearch然后你又需要在下一次查找的时候又切换回来。如果你只是想去掉高亮显示的东西,用如下命令: >	:nohlsearch这不会复位 hlsearch 选项。它只是关闭高亮显示。当你执行下一次查找的时候,高亮功能会被再次激活。使用 "n" 和 "N" 命令时也一样。调 节 查 找 方 式有一些选项能改变查找命令的工作方式。其中有几个是最基本的: >	:set incsearch这个命令使 Vim 在你输入字符串的过程中就显示匹配点。用这个可以检查正确的地方是否已经被找到了。然后输入 <Enter> 跳到那个地方。或者继续输入更多的字符改变要被查找的字符串。>	:set nowrapscan这个选项在找到文件结尾后停止查找。或者当你往回查找的时候遇到文件开头停止查找。默认情况下 'wrapscan' 的状态是 "on"。所以在找到文件尾的时候会自动折返。插 曲如果你喜欢前面的选项,而且每次用 Vim 都要设置它,那么,你可以把这些命令写到Vim 的启动文件中。    编辑 |not-compatible| 中提到的文件,或者用如下命令确定这个文件在什么地方: >	:scriptnames编辑这个文件,例如,象下面这样:  >	:edit ~/.vimrc然后在文中加一行命令来设置这些选项,就好像你在 Vim 中输入一样,例如: >	Go:set hlsearch<Esc>"G" 移动到文件的结尾,"o" 开始一个新行,然后你在那里输入 ":set" 命令。最后你用 <Esc> 结束插入模式。然后用如下命令存盘: >	ZZ现在如果你重新启动 Vim,'hlsearch' 选项就已经被设置了。============================================================================*03.9*	简单的查找模式Vim 用正则表达式来定义要查找的对象。正则表达式是一种非常强大和紧凑的定义查找模式的方法。但是非常不幸,这种强大的功能是有代价的,因为使用它需要掌握一些技巧。    本章我们只介绍一些基本的正则表达式。要了解更多的关于查找模式和命令,请参考|usr_27.txt|。你还可以在|pattern|中找到正则表达式的完整描述。行 首 与 行 尾^字符匹配行首。在美式英文键盘上,它在数字键 6 的上面。模式 "include" 匹配一行中任何位置的单词 include。而模式 "^include" 仅匹配在一行开始的 include。    $字符匹配行尾。所以,"was$" 仅匹配在行尾的单词 was。我们在下面的例子中用 "x" 标记出被 "the" 模式匹配的位置:	the solder holding one of the chips melted and the ~	xxx			  xxx		       xxx用 "/the$" 则匹配如下位置:	the solder holding one of the chips melted and the ~						       xxx而使用 "/^the" 则匹配:	the solder holding one of the chips melted and the ~	xxx你还可以试着用这个模式: "/^the$",它会匹配仅包括 "the" 的行。并且不包括空格。例如包括 "the " 的行是不会被这个模式匹配的。匹 配 任 何 单 个 字 符点 "." 字符匹配任何字符。例如,模式 "c.m" 匹配一个第一个字符是c,第二个字符是任意字符,而第三个字符是m的字符串。例如:	We use a computer that became the cummin winter. ~		 xxx		 xxx	  xxx匹 配 特 殊 字 符如果你确实想匹配一个点字符,你可以在前面加一个反斜杠去消除它的特殊含义。    如果你用 "ter." 为模式去查找,你会匹配这些地方:	We use a computer that became the cummin winter. ~		      xxxx			    xxxx但如果你查找 "ter\.",你只会匹配第二个位置。==============================================================================*03.10*	使用标记当你用 "G" 命令跳到另一个地方,Vim 会记住你从什么地方跳过去的。这个位置成为一个标记,要回到原来的地方,使用如下命令: >	``` 用单引号 ' 也可以。   如果再次执行这个命令你会跳回去原来的地方,这是因为 ` 记住了自己跳转前的位置。通常,每次你执行一个会将光标移动到本行之外的命令,这种移动即被称为一个 "跳转"。这包括查找命令 "/" 和 "n"(无论跳转到多远的地方)。但不包括 "fx" 和 "tx" 这些行内查找命令或者 "w" 和 "e" 等词移动命令。    另外 "j" 和 "k" 不会被当做是一次 "跳转",即使你在前面加上个数前缀也不例外。``命令可以在两个位置上跳来跳去。而 CTRL-O 命令则跳到一个 "较老" 的地方(提示:O表示older)。CTRL-I 则跳到一个 "较新" 的地方(提示:I在键盘上紧靠着O)。考虑一下如下命令序列: >	33G	/^The	CTRL-O你首先跳到第 33 行,然后查找以 "The" 开头的一行,然后用 CTRL-O 你会跳回到 33 行。再执行 CTRL-O 你会跳到最初的地方。现在你使用 CTRL-I,就又跳到 33 行。而再用一次CTRL-I 你又会到达找到 "The" 的地方。	     |	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	Note:	CTRL-I的功能与<Tab>一样。":jumps" 命令能输出一个你可以跳往的位置的列表。最后一个你使用的到的标记会用">" 符号标记出来。有 名 字 的 标 记Vim 允许你在文本中放置自定义的标记。命令 "ma" 用 a 标记当前的光标位置。你可以在文本中使用 26 个标记(a到z)。这些标记是不可见的,只是一个由 Vim 记住的位置。    要跳到一个你定义的标记,可以使用命令 `{mark},这里 {mark} 是指定义标记的那个字母。所以,移到标记a的命令是: >	`a命令 'mark(单引号加上一个标记)会移到标记所在行的行首。这与 `mark 命令是不同的,后者是移到标记所在行上被标记的列。标记在需要处理一个文件的两个相关地方的时候非常有用。假设你在处理文末的时候需要查看文首的一些内容,先移动到行首,设置一个标记 s (start): >	ms然后移动到你需要处理的地方,再设置一个标记 e (end): >	me<现在你可以随意移动,当你需要看开头的地方,可以使用这个命令移到那里: >	's然后使用 '' 跳回来。或者用 'e 跳到你正在处理的文尾的地方。    这里使用 s 和 e 作标记名没有特别的含义,只是为了好记而已。你可以用如下命令取得所有的标记的列表: >	:marks你会注意到有一些特殊的标记,包括:	'	跳转前的位置	"	最后编辑的位置	[	最后修改的位置的开头	]	最后修改的位置的结尾===============================================================================下一章:|usr_04.txt|  作小改动版权: 参见|manual-copyright|   vim:tw=78:ts=8:ft=help:norl:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -