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

📄 usr_30.cnx

📁 Vim 中文文档
💻 CNX
📖 第 1 页 / 共 2 页
字号:
这样你就可以用 "help" 来表示 {filetype}。   对 {directory} 部分,你需要根据你的运行时目录来设定。请查看下面命令的输出: >	set runtimepath请使用第一项(也就是第一个逗号前的名字)。如果上面命令的输出是:	runtimepath=~/.vim,/usr/local/share/vim/vim60/runtime,~/.vim/after ~你需要使用 "~/.vim"来表示 {directory}。这样最后的文件名就是:  	~/.vim/indent/help.vim ~除了关闭缩进选项,你还可以编写自己的缩进文件。请参考|indent-expression|。==============================================================================*30.4*	其它缩进最简单的自动缩进通过 'autoindent' 选项来完成,它会延续上一行的缩进。稍微聪明点的是 'smartindent',这个选项对那些没有缩进文件可用的编程语言很有用。'smartindent'选项没有 'cindent' 选项聪明,但要比'autoindent'聪明些。   如果 'smartindent' 被设定,新一级的缩进会添加在每个 '{' 处(在 '}' 处清除)。另外,对于 'cinwords' 选项所设定的所有单词也会添加新一级的缩进。所有以 '#' 开始的行都会被特殊处理:所有缩进都被清除。这样做是为了保持所有的预处理命令都在第一列开始。缩进会在下一行中恢复。修 正 缩 进当你利用 'autoindent' 和 'smartindent' 选项延续上一行的缩进时,有很多时候你都需要添加或删除一个'shiftwidth'宽度的缩进。一个快速的方法是在插入模式下利用CTRL-D 和 CTRL-T 命令。   比如,当你需要输入以下的 shell 脚本时:	if test -n a; then ~	   echo a ~	   echo "-------" ~	fi ~设定了这样的选项:>	:set autoindent shiftwidth=3你先输入了第一行,按下回车后又输入了第二行的开头:	if test -n a; then ~	echo ~这时你会发现你需要一个额外的缩进。输入 CTRL-T,结果变为:	if test -n a; then ~	   echo ~在插入模式下,CTRL-T 命令会加入一个 'shiftwidth' 宽度的缩进,无论光标在当前行的什么位置。   你继续输入第二行,按下回车后又输入了第三行。现在的缩进一切正常。然后你按下回车输入最后一行,现在的情况如下所示:	if test -n a; then ~	   echo a ~	   echo "-------" ~	   fi ~要删除这个多余的缩进,可以在最后一行输入 CTRL-D。这会删除一个 'shiftwidth' 宽度的缩进,无论光标在行中的什么位置。   在普通模式下,你可以用 ">>" 和 "<<" 命令来完成缩进的修正。'>' 和 '<' 是操作符,因此你可以使用通常的那三种方式来指定你要缩进的行。一个有用的组合是:>	>i{这个命令会缩进当前{}区内的行,'{' 和 '}' 本身并不被缩进。( ">a{" 会包括它们。)在下面的例子中,光标停留在"printf"上:	原文			">i{" 之后		">a{" 之后	if (flag)		if (flag)		if (flag) ~	{			{			    { ~	printf("yes");		    printf("yes");	    printf("yes"); ~	flag = 0;		    flag = 0;		    flag = 0;  ~	}			}			    } ~==============================================================================*30.5*	制表符和空格'tabstop' 在省缺状态下被设定为 8。尽管你可以改变它,但很快你就会遇到麻烦。其它的程序不知道你用的制表符间隔值是多少,你的文件看起来会一下子改变许多。另外,很多打印机都将制表符间隔值固定为 8。所以最好还是保留 'tabstop' 值不变。(如果你编辑使用其它制表符间隔值的文件,请参考 |25.3| 来修正。)   如果使用 8 个空格来缩进程序,你很快就会走到窗口的最右端;而用 1 个空格又看不出足够的差别。因此很多人喜欢用4个空格。这的确是个很好的折衷。   由于一个制表符(<Tab>)是8个空格,而你又想使用4个空格来缩进,这样你就无法使用制表符来完成缩进。这里有两种解决办法:1. 混合使用制表符和空格。由于一个制表符占用 8 个空格的位置,你的文件会含有更少的字节数。插入或删除一个制表符也要比 8 个空格快很多。2. 只用空格。这就避免了那些使用不同制表符间隔值的文件所带来的麻烦。幸运的是,Vim 能够同时很好地支持这两种方式。混 合 使 用 空 格 和 制 表 符如果你使用制表符和空格的组合,你直接按正常情况编辑就行。Vim 省缺状态下,能够很好地处理这些情况。   通过设定 'softtabstop' 可以使工作变得更简便。这个选项能使 <Tab> 看起来像是被设定为 'softtabstop' 所指定的值,但实际上使用的确是制表符和空格的组合。   当你执行下面的命令后,你每次按下 <Tab> 键,光标都会移动到下一个 "4列" 边界:>	:set softtabstop=4<当你在第一列按下 <Tab> 键后,4个空格会插入到文本中;再次按下<Tab>键,Vim 会先删除那4个空格,然后再插入一个制表符。Vim 会尽可能地使用制表符,并辅以空格填补。   删除会以相反的方式进行。<BS> 键总是删除 'softtabstop' 指定的数量。Vim 尽可能地使用制表符,而用空格来填补空隙。   下面的例子显示了多次输入制表符然后使用 <BS> 的情况。"." 代表一个空格而"------->"代表制表符。	输入			  结果 ~	<Tab>			  ....	<Tab><Tab>		  ------->	<Tab><Tab><Tab>		  ------->....	<Tab><Tab><Tab><BS>	  ------->	<Tab><Tab><Tab><BS><BS>   ....另一种方法是使用 'smarttab' 选项。当它被设定,Vim 对每个在缩进行中的制表符使用'shiftwidth',而对在第一个非空字符后输入的 <Tab> 使用真的制表符。但 <BS> 键不会像在 'softtabstop' 选项下那样工作。只 用 空 格如果你不想在文件中出现制表符,可以设定 'expandtab' 选项:>	:set expandtab<当这个选项被设定,<Tab>键会插入一系列的空格。这样你可以获得如同插入一个制表符一样数量的空格。但你的文件中并不包含真正的制表符。  退格键 (<BS>)每次只能删除一个空格。这样如果你键入了一个 <Tab>,你需要键入8 次 <BS> 才能恢复。如果你在调整缩进中,输入 CTRL-D 会更快些。制 表 符 与 空 格 的 相 互 转 换设定 'expandtab' 选项并不会影响已有的制表符。如果你想将制表符转换为空格,可以用 ":retab" 命令。使用下面的命令:>	:set expandtab	:%retabVim 会在所有缩进中使用空格而非制表符。但是,所有非空字符后的制表符不会受到影响。如果你想要转化这些制表符,需要在命令中加入 !:>	:%retab!这不大安全。因为它也许会修改字符串内的制表符。要检查这种情况是否存在,可以执行:>	/"[^"\t]*\t[^"]*"这里建议你不要在字符串中直接使用制表符。请用"\t"来替代,麻烦会少些。将空格转化为制表符的命令则恰好相反:>	:set noexpandtab	:%retab!==============================================================================*30.6*	排列注释格式Vim 最了不起的地方之一就是它理解注释。你可以要求 Vim 排列一段注释。它会做得很出色。   比如,你有下面的一段注释:	/* ~	 * This is a test ~	 * of the text formatting. ~	 */ ~你可以要求 Vim 排列这段注释。将光标定位到注释开头,然后输入:>	gq]/"gq" 是用来排列文本的操作符。"]/" 是移动到注释尾的动作。命令的结果是:	/* ~	 * This is a test of the text formatting. ~	 */ ~注意 Vim 可以正确处理每行的开头。  另外一种方法是在可视模式下用 "gq" 排列选中的文本。要在注释中加入新的一行,先将光标移到中间一行,然后按 "o"。结果会如下所示:	/* ~	 * This is a test of the text formatting. ~	 * ~	 */ ~Vim 会为你自动添加一个星号和空格,现在你可以输入新的注释。如果一行注释长于'textwidth',Vim 会将其自动分开。同样,星号和空格会被自动添加进来:	/* ~	 * This is a test of the text formatting. ~	 * Typing a lot of text here will make Vim ~	 * break ~	 */ ~要使用这些功能,你必须在 'formatoptions' 选项中指定一些标志:	r	在插入模式下,输入回车时插入星号。	o	在普通模式下,使用 "o" 或 "O" 时插入星号。	c	根据 'textwidth' 将注释分行。更多标志请参考 |fo-table|。定 义 注 释'comments' 选项可以定义注释的样式。Vim 可以分辨单行注释和那些包含开头,中间,结尾三部分的注释。   很多单行注释都是以一个特殊的字符开头。在 C++ 中是 // ,在 Makefile 中是 # ,在Vim 脚本中是 " 。比如,要使 Vim 理解 C++ 注释:>	:set comments=://<冒号将条目的标志和用来识别注释的字符分开。'comments'的一般格式是:	{flags}:{text}{flags}部分可以为空(就像本例)。   不同的条目可以连接在一起,用逗号隔开。这样可以在同时识别多种不同的注释。比如,让我们编辑一个 email 信息。当回复时,别人写的内容会以 ">" 和 "!" 字符开头:>	:set comments=n:>,n:!这里有两个条目。一个识别以 ">" 开头的注释,一个识别以 "!" 开头的注释。两个都设定了 "n" 标志,这意味着注释可以套嵌。也就是说,一个以 ">" 开始的行可以在 ">"之后包括其它的注视符号。这样就可以用来排列下面的文本了:        > ! Did you see that site? ~	> ! It looks really great. ~	> I don't like it.  The ~	> colors are terrible. ~	What is the URL of that ~	site? ~试着将 'textwidth' 设定为其它的值,例如 80。在可视模式下选中注释,然后输入"gq"。结果为:	> ! Did you see that site? It looks really great. ~	> I don't like it.  The colors are terrible. ~	What is the URL of that site? ~你会注意到 Vim 并没有将文本从一种注释移动到另一中注释。因为第一行以 ">!" 开头,而第二行以 ">" 开头,Vim 知道它们是不同的注释,所以第二行的"I"并没有移到上一行。包 括 三 部 分 的 注 释C 语言注释的样式是:以 "/*" 开头,中间含有 "*",以 "*/" 结尾。我们可以通过'comments' 选项来这样进行设定:>	:set comments=s1:/*,mb:*,ex:*/开始部分用"s1:/*"定义。"s" 表示三部分注释的开始。冒号将标志与代表注释的特殊字符 "/*" 分开。这里有一个标志 "1"。它指明注释的中间部分有一个空格位置的偏移。   "mb:*"的 "m" 表示这是注释的中间部分。"b" 标志表示星号后要有空格。否则 Vim 会将形如"*pointer"的语句视为某个注释的中间部分。   "ex:*/" 中的 "e" 表示注释的结尾。"x" 选项表示在 Vim 自动插入星号后,输入"/" 会删除多余的空格。要了解更多细节,请参考 |format-comments|。==============================================================================下一章: |usr_31.txt|  使用GUI版权: 参见 |manual-copyright|  vim:tw=78:ts=8:ft=help:norl:

⌨️ 快捷键说明

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