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

📄 usr_27.cnx

📁 Vim 中文文档
💻 CNX
📖 第 1 页 / 共 2 页
字号:
*usr_27.txt*	For Vim version 6.3.		最近更新:2004年6月		     VIM 用户手册 - Bram Moolenaar 著		  (译者: Chimin Yen http://vimcdoc.sf.net )				    			     查找命令及模式在第三章里,我们曾经提到过几个简单的查找模式 |03.9|。Vim 能够胜任复杂得多的查找。本章将解释那些最常用到的模式。详细的说明可以查阅: |pattern||27.1|	忽略大小写|27.2|	在文件尾折返|27.3|	偏移|27.4|	匹配重复性模式|27.5|	多择一|27.6|	字符域|27.7|	字符类|27.8|	匹配换行符|27.9|	举例       下一章: |usr_28.txt|  折叠       前一章: |usr_26.txt|  重复         目录: |usr_toc.txt|==============================================================================*27.1*	忽略大小写默认情况下,Vim 的查找是大小写敏感的。因此,"include","INCLUDE",和 "Include"为三个各不相同的词,而一次查找将仅仅匹配其中的一个。   现在设定 'ignorecase' 选项: >	:set ignorecase再查找 "include",现在它将匹配 "Include","INCLUDE" 和 "InClUDe"。(设定 'hlsearch' 选项可以快速查看哪儿有模式的匹配。)   你可以这样撤销这个选项: >	:set noignorecase但是我们且保留这个设定,并查找 "INCLUDE"。它匹配的文本就跟查找 "include" 时一模一样。现在我们设定 'smartcase' 选项: >	:set ignorecase smartcase如果你采用的模式里至少有一个大写字母,查找就成了大小写敏感的。可以这样理解,你不必键入大写字母,也能查找到含有大写字母的词,所以,你若键入大写字母,必然是因为你要大小写敏感的匹配。聪明!    设定了这两个选项,你会找到以下匹配:	模式			匹配	~	word			word,Word,WORD,WoRd,等。	Word			Word	WORD			WORD	WoRd			WoRd单 个 模 式 里 的 大 小 写如果你仅想忽略一个特定的模式里的大小写,那么,在模式前添加 "\c" 字符串就行了。添加 "\C" 将使该模式的匹配大小写敏感。这排除了 'ignorecase' 和 'smartcase' 选项的影响,当 "\c" 或 "\C" 起作用时,它们设成什么值无关紧要。	模式			匹配	~	\Cword			word	\CWord			Word	\cword			word,Word,WORD,WoRd,等。	\cWord			word,Word,WORD,WoRd,等。采用 "\c" 和 "\C"的好处在于它粘附在所用的模式上。因此,重复查找历史记录里的某个模式会产生同样的结果。'ignorecase' 或 'smartcase' 是否更改部影响结果。	Note:	在查找模式中使用以 "\" 开头的项,其效果取决于 'magic' 选项。在本章中,	我们将假定 'magic' 为真。这也是标准和建议的设定。如果你把它改了,	那么,许多查找模式就会突然变得无效了。	Note:	如果你查了好久,超过了你预计的时间,你可以中断查找,在 Unix 上用	CTRL-C,而在 MS-DOS 和微软视窗上则用 CTRL-Break。==============================================================================*27.2*	在文件尾折返在默认情况下,正向查找从当前光标位置开始,查找特定的字符串。然后它就遇到了文件尾。如果那个时候还没找到那个字符串,它就从头来过,从文件开头一直查到光标处。   记住,当你不断以 "n" 命令查找下一个匹配时,你最终回到第一个匹配。如果你不注意,你将永远找下去! 为了提醒你,Vim 显示如下信息:	search hit BOTTOM,continuing at TOP ~如果你使用 "?" 命令按相反方向查找,你得到的信息是这样的:	search hit TOP,continuing at BOTTOM ~可是,你还是不知道你何时回到了第一个匹配。一种办法是设定 'ruler' 选项: >	:set rulerVim 将把光标位置显示在窗口的右下角 (如果使用了状态条的话,会显示在那里)。看起来像这样:	101,29       84% ~第一个数字是光标所在的行号。在你开始查找的时候记住行号,那样你就能检查是否越过了该位置。无 折 返 查 找要取消查找折返功能,请用以下命令: >	:set nowrapscan现在当查找遇到文件末尾,一个出错信息就会显示出来:	E385: search hit BOTTOM without match for: forever ~这样,你只要用 "gg" 命令回到文件开头,并一直查到你看到以上信息,你就能找到所有的匹配。   如果你用 "?" 从相反方向查找,你将得到:	E384: search hit TOP without match for: forever ~==============================================================================*27.3*	偏移在默认情况下,查找命令让光标停留在匹配的模式的开始。你可以指定一个偏移,告诉Vim 将光标停留在别的位置上。在正向查找命令 "/" 中指定偏移,就是在模式后面附加一个斜线符 (/) 以及偏移值: >	/默认/2这个命令查找模式 "默认"。找到后使光标越过匹配的模式而前移两行,并停留在该行的行首。把这个命令用于以上段落中,Vim 在第一行找到词 "默认"。接着光标再往下移两行,落在 "一个" 的 "一" 上。如果该偏移为一简单数字,那么光标就会被放置在距离匹配那么多行的那一行的行首。该偏移值可为正数或负数。如果它是正数,光标会向前移该数表示的行; 若为负数,则往回退该数表示的行。字 符 偏 移偏移符 "e" 表示一个偏移从匹配末尾算起。它把光标移到匹配的最后一个字符上。命令: >	/const/e把光标放到单词 "const" 的 "t" 上。   加一个数字,光标就从该位置再前移该数字指定的那么多个字符。下面这个命令会将光标移到匹配后面第一个字符: >	/const/e+1一个正数使光标右移,负数使其左移。例如: >	/const/e-1会把光标移到单词 "const" 的 "s" 字符上。如果偏移以 "b" 开头,那么光标就移到匹配模式的首位。因为不用 "b" 光标也一样会被移到首位,所以单独使用时没什么意义。在将它与一个加上或减去的数字合起来时,就很有用了。光标就会前移或后移那么多个字符。例如: >	/const/b+2会把光标移到匹配的首位,再往右移两个字符。因而落在字符 "n" 上。重 复当你重复前一次使用过的查找模式,只是偏移不同时,你可以把模式省略了: >	/that	//e等于: >	/that/e再以同样的偏移重复查找: >	/命令 "n" 具有同样的作用。要取消一个以前用过的偏移可以用: >	//反 向 查 找命令 "?" 以相同的方式使用偏移,但你必须以 "?" 来分隔模式和偏移,而非 "/": >	?const?e-2偏移符 "b" 和 "e" 的用途是一样的。它们并不因为使用了 "?" 而改变方向。起 始 位 置查找时,通常从光标位置开始。当你规定的是一个行偏移,这可能造成麻烦。例如: >	/const/-2这个命令找到下一个单词 "const",然后上移两行。如果你用命令 "n" 再找,Vim 就从当前位置开始,找到同一个 "const" 匹配。然后再一次在偏移的作用下,回到开始的地方。你给套住了!   还有比这更糟糕的: 假定下一行另有一个 "const" 匹配。那么,重复正向查找就会找到这个匹配,并上移两行。这样你实际上把光标往回移了!当你规定的是一个字符偏移,Vim 将为其作调整。因此,查找会向前或向后跳过几个字符再开始,以便同一个匹配不至于再出现。==============================================================================*27.4*	匹配重复性模式星号项 "*" 规定在它前面的项可以重复任意次。因此: >	/a*匹配 "a","aa","aaa",等等。但也匹配 "" (空字串),因为零次也包含在内。   星号 "*" 仅仅应用于那个紧邻在它前面的项。因此 "ab*" 匹配 "a","ab","abb","abbb",等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 "\(",后面加 "\)"。因此这个命令: >	/\(ab\)*匹配: "ab","abab","ababab",等等。而且也匹配 ""。要避免匹配空字串,使用 "\+"。这表示前面一项可以被匹配一次或多次。>	/ab\+匹配 "ab","abb","abbb",等等。它不匹配 后面没有跟随 "b" 的 "a"。要匹配一个可选项,用 "\="。 例如: >	/folders\=匹配 "folder" 和 "folders"。指 定 重 复 次 数要匹配某一项的特定次数重复,使用 "\{n,m}" 这样的形式。其中 "n" 和 "m" 都是数字。在它前面的那个项将被重复 "n" 到 "m" 次 (|inclusive| 包含 "n" 和 "m")。例如: >	/ab\{3,5}匹配 "abbb","abbbb" 以及 "abbbbb"。  当 "n" 省略时,被默认为零。当 "m" 省略时,被默认为无限大。当 ",m" 省略时,就表示重复正好 "n" 次。例如:	模式		匹配次数 ~	\{,4}		0,1,2,3 或 4	\{3,}		3,4,5,等等	\{0,1}		0 或 1,同 \=

⌨️ 快捷键说明

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