Vim是Vi进阶的版本
学习vim
vimtutor 命令 用于学习viml课程的命令

启动Vim编辑器

	启动Vim编辑器常见形式
		filename不同目录启动时,带文件路径
		单文件
			vim filename
		多文件
			 vim filename1 filename2 filename3 ...
		带参数 (常见)
			vim +n 打开文件,并定位第n行
			vim +	打开文件,定位至最后一行
			vim +/PATTERN  打开文件,定位至第一次被PATTERN到的字符串
			vim -o 水平分割窗口打开的多个文件
			vim -O 垂直分割窗口打开的多个文件

模式分类

编辑模式,普通命令模式(快捷键操作),指令列命令模式(输入命令行操作)

进入编辑模式
i 将内容插入到目前光标之前
a 将内容插入到目前光标之后
o 将内容插入到目前光标下一行
I 将内容插入到当前光标的行首
A 将内容插入到大当前光标的行尾
O 将内容插入到目前光标上一行
【ESC】键 退出编辑模式,进入普通命令模式
编辑模式下的补全操作
ctrl+x 打开补全模式
ctrl+x,ctrl+f  补全文件名 补全搜索范围在->当前文件所在目录的所有文件名
也可补全指定目录的文件名,需要先指定根路径然后执行快捷操作
ctrl+x,ctrl+l 补全整行
ctrl+x,ctrl+v 补全命令行
ctrl+x,ctrl+o 全能补全
ctrl+n 匹配多个选项时,选择向后面一个匹配的选项,匹配单个单词
ctrl+p 匹配多个选项时,选择向前面一个匹配的选项
替换操作
	r 替换光标所在的内容一次,自动退回普通命令模式
	R 替换光标所在的内容,需要手动【ESC】键,退出取代模式,否则一直替代光标所在内容
普通命令模式(相当于快捷键操作)
# 一般打开或者创建Vim文件时,自动进入普通命令模式
# 假如进入了编辑模式或者R取代模式,需要按【ESC】键来切换回普通命令模式
1. 光标操作
	字符移动
		h(←) 左
		l(→) 右
		j(↓) 下
		k(↑) 上
		n[h|l|j|k] 移动n个字符或行
		n+空格键 光标向右移动n个字符
	单词移动
		w 移动到当前光标后面一个单词的词首
		e 移动到当前光标或者后面一个单词的词尾
		b 移动到当前光标或者前面一个单词的词首
	行内跳转
		0 当前光标行的行首
		$ 当前光标行的行尾
		^ 当前光标行的第一个非空白字符的字符
	行间跳转
		nG 跳转到第n行
		G 跳转到最后一行
		gg 跳转到第一行
	当前屏幕跳转
		H 跳转当前屏幕首行
		M 跳转当前屏幕中行
		L 跳转当前屏幕尾行
2. 翻屏(翻页)操作
		ctrl+f  向下翻一屏
		ctrl+b 向上翻一屏
		ctrl+d 向下翻半屏
		ctrl+u 向上翻半屏
3.删除操作
	删除单个字符操作
	  	x  删除光标所在处的字符
	   	nx 删除光标所在处及向后的n个字符
	   	X  删除光标所在处前一个字符
	   	nX 删除光标所在处前n个字符
	删除命令d(可和光标操作命令组合)
		d$  删除光标所在处,到该行的行尾
		d0  删除光标所在处,到该行的行首
		dG  删除光标所在行,到文件最后一行数据
		dgg 删除光标所在行,到文件第一行数据
		dnG 删除光标所在行,到文件第n行数据
		dd  删除光标所在行
		ndd 删除光标所在行到向下n行
4.复制操作
	复制命令y(可和光标操作命令组合)
		y$  复制光标所在处,到该行的行尾
		y0  复制光标所在处,到该行的行首
		yG  复制光标所在行,到文件最后一行数据
		ygg 复制光标所在行,到文件第一行数据
		ynG 复制光标所在行,到文件第n行数据
		yy  复制光标所在行
		nyy 复制光标所在行到向下n行
5.粘贴操作
	p和P 都可以粘贴删除或者复制操作的内容
		p  如果为整行,则复制在光标所在行的后面一行,如果为行内内容,则复制在光标所在处的后面
		P 如果为整行,则复制在光标所在行的前面一行,如果为行内内容,这复制在光标所在处的前面
6.修改操作
	c 先删除(覆盖)指定内容,再转换插入模式(编辑模式),使用方式和d(删除)y(复制)命令相同
	C 修改至光标所在的行尾
7.撤销操作
	u 撤销前一次的编辑操作,连续按u命令可连续撤销
	nu 撤销前n次操作
	ctrl+r 还原最近一次撤销操作
8.重复前一个动作操作
	. 点命令,重复前一次编辑操作
9.合并行
	J 大写J,将光标所在行与下一行合并
10.可视化模式操作
	可视化模式可进行,y(复制)d(删除)c(修改)p(复制)命令的操作
	v 字符选取,将光标经过的字符反白选择
	V 行选取,将光标经过的行反白选择
11.查找操作
	/pattern[string] 搜索光标之后匹配到的字符串或匹配模式
	?pattern[string] 搜索光标之前匹配到的字符串或匹配模式
	n 继续向后搜索
	N 继续向前搜索
12.分屏显示一个文件
	ctrl+w,s 水平拆分窗口显示文件
	ctrl+w,v 垂直拆分窗口显示文件
	ctrl+w,q 退出分屏窗口
	ctrl+w,j 光标移动到下一个窗口
	ctrl+w,k 光标移动到上一个窗口
13.离开vim
	ZZ 无修改编辑,不存储离开;编辑,则保存离开
进入指令列命令模式 (相当于输入命令)
# 一般为:开头进入命令行,除了查找操作2个特殊的
1.查找并替换操作
	:n1,n2  s/pattern/string/gi
		n1 起始行
		n2 结束行  ,$ 符号表示文件最后一行
		s 替换模式符号
		pattern 查找的字符或匹配模式
		string 替换的字符
		g 全局操作
		i 忽略大小写
2.多文件编辑
	 :n等同于:next  切换到后一个打开的文件
	 :N等同于:prev 切换到前一个打开的文件
     :last 切换至最后一个打开的文件
     :first 切换至第一个打开的文件
 	 :files 列出所有的打开文件
3.打开新窗口编辑文件
	 :sp [filename]	 没有指定打开文件,则开启当前文件新窗口;指定filename开启指定文件新窗口
4.存储(写入)操作
	:w 将编辑的文件的数据保存写入
	:w! 将编辑的文件数据强制保存写入
	:w filename 将整个文件另存为filename新文件(指定的详细的文件路径)
	:n1,n2 w filename 将指定行的内容另存为filename新文件(指定的详细的文件路径)
5.读入文件到文本
	:r  filename  读取另一个文件的内容追加到当前文件光标所在行的后面(filename为指定的详细文件路径)
6.跟shell交互
	:! command 暂时离开执行shell命令
7.离开
	:q   退出当前窗口,不保存操作
	:q!  强制退出当前窗口,不保存操作
	:wq  保存编辑的数据,并且退出
	:wq! 强制保存编辑的数据,并且退出
	:qa  退出Vim编辑器,相当于退出所有打开的窗口
8.请求加密密钥
	:X 给文件加密码
9.打开新窗口创建文件
	:new filename
	:e filename
10.其它高级操作
	:set 或者:se 高级操作
	:set {option}
	:set all 查看全部选项
	# 取消各项操作在参数前面加no
	常用:
	'backspace'       'bs'      在一行开头按退格键如何处理 :set bs=2
	'autoindent'      'ai'      根据上一行决定新行的缩进 :set ai 关闭 :set noai
	'colorcolumn'     'cc'      高亮指定列 :set cc=2 关闭 :set cc=0
	'ignorecase'      'ic'      搜索模式时忽略大小写 :set ic 关闭:set noic
	'number'          'nu'      行前显示行号 :set nu 关闭 :set nonu
	'tabstop'         'ts'      <Tab> 在文件里使用的空格数 :set ts=2
	全部:
	各选项的简短说明:                option-list
	'aleph'           'al'      Aleph 字母 (希伯来语) 的 ASCII 代码
	'allowrevins'     'ari'     允许插入和命令行模式的 CTRL-_
	'altkeymap'       'akm'     缺省的第二语言 (波斯语/希伯来语)
	'ambiwidth'       'ambw'    如何处理有多种宽度的 Unicode 字符
	'antialias'       'anti'    Mac OS X: 用平滑反锯齿的字体
	'autochdir'       'acd'     根据当前窗口的文件切换目录
	'arabic'          'arab'    使用阿拉伯语为缺省的第二语言
	'arabicshape'     'arshape' 阿拉伯语的字型重整
	'autoindent'      'ai'      根据上一行决定新行的缩进
	'autoread'        'ar'      有 Vim 之外的改动时自动重读文件
	'autowrite'       'aw'      有改动时自动写回文件
	'autowriteall'    'awa'     类似于 'autowrite',但适用于更多命令
	'background'      'bg'      "dark" 或 "light",用于色彩的高亮
	'backspace'       'bs'      在一行开头按退格键如何处理
	'backup'          'bk'      覆盖文件时保留备份文件
	'backupcopy'      'bkc'     文件备份使用复制而不是换名
	'backupdir'       'bdir'    备份文件使用的目录列表
	'backupext'       'bex'     备份文件使用的扩展名
	'backupskip'      'bsk'     匹配这些模式的文件不予备份
	'balloondelay'    'bdlay'   弹出气泡之前的延迟 (以毫秒计)
	'ballooneval'     'beval'   打开气泡表达式求值功能
	'balloonexpr'     'bexpr'   计算气泡显示内容的表达式
	'belloff'         'bo'      为这些原因不响铃
	'binary'          'bin'     二进制方式读/写/编辑文件
	'bioskey'         'biosk'   MS-DOS: 用 bios 调用取得字符输入
	'bomb'                      文件头附加字节顺序标记 (Byte Order Mark)
	'breakat'         'brk'     可以在此断行的字符
	'breakindent'     'bri'     回绕行重复缩进
	'breakindentopt'  'briopt'  'breakindent' 的设置
	'browsedir'       'bsdir'   开始浏览文件的目录
	'bufhidden'       'bh'      缓冲区不再在窗口显示时的行为
	'buflisted'       'bl'      缓冲区是否显示在缓冲区列表中
	'buftype'         'bt'      缓冲区的特殊类型
	'casemap'         'cmp'     指定字母大小写如何改变
	'cdpath'          'cd'      ":cd" 搜索的目录列表
	'cedit'                     打开命令行窗口的键
	'charconvert'     'ccv'     完成字符编码转换的表达式
	'cindent'         'cin'     实现 C 程序的缩进
	'cinkeys'         'cink'    设置 'cindent' 时启动缩进的键
	'cinoptions'      'cino'    设置 'cindent' 时如何缩进
	'cinwords'        'cinw'    'si' 和 'cin' 在这些词后加入额外的缩进
	'clipboard'       'cb'      使用剪贴板作为无名的寄存器
	'cmdheight'       'ch'      命令行使用的行数
	'cmdwinheight'    'cwh'     命令行窗口的高度
	'colorcolumn'     'cc'      高亮指定列
	'columns'         'co'      显示屏幕的列数
	'comments'        'com'     可以开始注释行的模式
	'commentstring'   'cms'     注释的样板;用于折叠的标志
	'compatible'      'cp'      尽可能做到与 Vi 兼容
	'complete'        'cpt'     指定插入模式的自动补全如何工作
	'completefunc'    'cfu'     插入模式补全使用的函数
	'completeopt'     'cot'     插入模式补全使用的选项
	'concealcursor'   'cocu'    是否隐藏光标所在行的可隐藏文本
	'conceallevel'    'cole'    是否显示可隐藏文本
	'confirm'         'cf'      询问如何处理未保存/只读的文件
	'conskey'         'consk'   直接从控制台读入键击 (只限于 MS-DOS)
	'copyindent'      'ci'      使得 'autoindent' 使用已有的缩进结构
	'cpoptions'       'cpo'     设定 Vi-兼容的行为
	'cryptmethod'     'cm'      文件写入时所用的加密方法
	'cscopepathcomp'  'cspc'    显示路径多少部分
	'cscopeprg'       'csprg'   执行 cscope 的命令
	'cscopequickfix'  'csqf'    用 quickfix 窗口得到 cscope 的结果
	'cscoperelative'  'csre'    用 cscope.out 路径目录名作为前缀
	'cscopetag'       'cst'     用 cscope 处理标签命令
	'cscopetagorder'  'csto'    决定 ":cstag" 的搜索顺序
	'cscopeverbose'   'csverb'  增加 cscope 数据库时给出消息
	'cursorbind'      'crb'     光标移动时同时在其它窗口移动
	'cursorcolumn'    'cuc'     高亮光标所在屏幕列
	'cursorline'      'cul'     高亮光标所在屏幕行
	'debug'                     设为 "msg" 可以看到所有的错误消息
	'define'          'def'     查找宏定义所使用的模式
	'delcombine'      'deco'    在单独使用时删除组合用字符
	'dictionary'      'dict'    关键字自动补全所用的文件名
	'diff'                      当前窗口使用比较模式
	'diffexpr'        'dex'     得到比较文件所用的表达式
	'diffopt'         'dip'     使用比较模式的选项
	'digraph'         'dg'      允许插入模式时输入二合字母
	'directory'       'dir'     交换文件所用的目录名列表
	'display'         'dy'      如何显示文本的标志位列表
	'eadirection'     'ead'     'equalalways' 工作的方向
	'edcompatible'    'ed'      切换 ":substitute" 命令的标志位
	'emoji'           'emo'     表情字符视作全宽
	'encoding'        'enc'     内部使用的编码方式
	'endofline'       'eol'     文件最后一行写入换行符 <EOL>
	'equalalways'     'ea'      自动使所有窗口大小相同
	'equalprg'        'ep'      "=" 命令使用的外部命令
	'errorbells'      'eb'      有错误信息时响铃
	'errorfile'       'ef'      QuickFix 模式的错误文件名
	'errorformat'     'efm'     错误文件行格式的描述
	'esckeys'         'ek'      插入模式下识别功能键
	'eventignore'     'ei'      忽略的自动命令事件
	'expandtab'       'et'      键入 <Tab> 时使用空格
	'exrc'            'ex'      在当前目录里读入 .vimrc 和 .exrc
	'fileencoding'    'fenc'    多字节文本的文件编码
	'fileencodings'   'fencs'   参与自动检测的字符编码
	'fileformat'      'ff'      文件输入输出使用的格式
	'fileformats'     'ffs'     参与自动检测的 'fileformat' 的格式
	'fileignorecase'  'fic'     使用文件名时忽略大小写
	'filetype'        'ft'      自动命令使用的文件类型
	'fillchars'       'fcs'     显示特殊项目所使用的字符
	'fixendofline'    'fixeol'  确保文件的末行有 <EOL>
	'fkmap'           'fk'      波斯键盘映射
	'foldclose'       'fcl'     当光标离开时关闭折叠
	'foldcolumn'      'fdc'     设定指示折叠的列宽度
	'foldenable'      'fen'     设置为显示所用打开的折叠
	'foldexpr'        'fde'     当 'foldmethod' 为 "expr" 时使用的表达式
	'foldignore'      'fdi'     当 'foldmethod' 为 "indent" 时忽略的行
	'foldlevel'       'fdl'     当折叠级别高于此值时关闭折叠
	'foldlevelstart'  'fdls'    开始编辑文件的 'foldlevel'
	'foldmarker'      'fmr'     当 'foldmethod' 为 "marker" 时的标志
	'foldmethod'      'fdm'     折叠的类型
	'foldminlines'    'fml'     折叠关闭所需的最少行数
	'foldnestmax'     'fdn'     最大折叠深度
	'foldopen'        'fdo'     打开折叠所使用的命令
	'foldtext'        'fdt'     显示关闭的折叠所用的表达式
	'formatexpr'      'fex'     "gq" 命令使用的表达式
	'formatlistpat'   'flp'     识别列表头部的模式
	'formatoptions'   'fo'      自动排版完成的方式
	'formatprg'       'fp'      "gq" 命令使用的外部程序
	'fsync'           'fs'      文件写回后是否激活 fsync()
	'gdefault'        'gd'      缺省打开 ":substitute" 的 'g' 标志
	'grepformat'      'gfm'     'grepprg' 的输出格式
	'grepprg'         'gp'      ":grep" 使用的程序
	'guicursor'       'gcr'     GUI: 光标形状和闪烁的设置
	'guifont'         'gfn'     GUI: 使用的字体名
	'guifontset'      'gfs'     GUI: 使用的多字节字体名
	'guifontwide'     'gfw'     双倍宽度字符的字体名列表
	'guiheadroom'     'ghr'     GUI: 用于窗口装饰的像素空间
	'guioptions'      'go'      GUI: 使用的部件和选项
	'guipty'                    GUI: ":!" 命令尝试仿终端
	'guitablabel'     'gtl'     GUI: 标签页定制的标签
	'guitabtooltip'   'gtt'     GUI: 标签页定制的工具提示
	'helpfile'        'hf'      主帮助文件的完整路径名
	'helpheight'      'hh'      新帮助窗口的最小高度
	'helplang'        'hlg'     首选帮助语言
	'hidden'          'hid'     当缓冲区被放弃 ( abandon ) 时不卸载之
	'highlight'       'hl'      设置若干场合下的高亮模式
	'history'         'hi'      记住的命令行的行数
	'hkmap'           'hk'      希伯来语的键盘映射
	'hkmapp'          'hkp'     希伯来语的音节 (phonetic) 键盘映射
	'hlsearch'        'hls'     高亮最近的匹配搜索模式
	'icon'                      让 Vim 设定窗口图标的文本
	'iconstring'                Vim 图标文本所用的字符串
	'ignorecase'      'ic'      搜索模式时忽略大小写
	'imactivatefunc'  'imaf'    激活/关闭 X 输入方法的函数
	'imactivatekey'   'imak'    激活 X 输入方法 (X input method) 的键击
	'imcmdline'       'imc'     开始编辑命令行时使用 IM
	'imdisable'       'imd'     任何模式下不使用 IM
	'iminsert'        'imi'     插入模式下使用 :lmap 或 IM
	'imsearch'        'ims'     输入搜索模式时使用 :lmap 或 IM
	'imstatusfunc'    'imsf'    获得 X 输入方法的状态的函数
	'include'         'inc'     查找包含文件所使用的模式
	'includeexpr'     'inex'    处理包含文件行所使用的表达式
	'incsearch'       'is'      输入搜索模式时同时高亮部分的匹配
	'indentexpr'      'inde'    得到一行的缩进位置的表达式
	'indentkeys'      'indk'    使用 'indentexpr' 时启动缩进的键
	'infercase'       'inf'     关键字自动补全的匹配调整大小写
	'insertmode'      'im'      开始编辑文件时进入插入模式
	'isfname'         'isf'     文件和路径名可用的字符
	'isident'         'isi'     标识符可用的字符
	'iskeyword'       'isk'     关键字可用的字符
	'isprint'         'isp'     可显示的字符
	'joinspaces'      'js'      连接命令在句号之后加两个空格
	'key'                       加密密钥
	'keymap'          'kmp'     键盘映射名
	'keymodel'        'km'      允许用键击开始/停止选择
	'keywordprg'      'kp'      "K" 命令所使用的程序
	'langmap'         'lmap'    其他语言模式用的字母表字符
	'langmenu'        'lm'      菜单使用的语言
	'langremap'       'lrm'     映射字符适用 'langmap'
	'laststatus'      'ls'      当最近的窗口有状态行时提示
	'lazyredraw'      'lz'      执行宏时不重画
	'linebreak'       'lbr'     在空白处回绕长行
	'lines'                     显示屏幕的行数
	'linespace'       'lsp'     字符之间的像素行数
	'lisp'                      自动 lisp 缩进
	'lispwords'       'lw'      改变 lisp 缩进方式的单词
	'list'                      显示 <Tab> 和 <EOL>
	'listchars'       'lcs'     list 模式下显示用的字符
	'loadplugins'     'lpl'     启动时调入插件脚本
	'luadll'                    Lua 动态库名
	'macatsui'                  Mac GUI: 使用 ATSUI 文本绘制
	'magic'                     改变搜索模式所用的特殊字符
	'makeef'          'mef'     ":make" 所用的错误文件名
	'makeencoding'    'menc'    外部 make/grep 命令使用的编码
	'makeprg'         'mp'      ":make" 命令所用的程序
	'matchpairs'      'mps'     "%" 能匹配的字符对
	'matchtime'       'mat'     显示匹配括号的时间 (以十分之一秒计)
	'maxcombine'      'mco'     显示的最大组合用字符数
	'maxfuncdepth'    'mfd'     用户函数的最大递归深度
	'maxmapdepth'     'mmd'     映射的最大递归深度
	'maxmem'          'mm'      单个缓冲区可用的最大内存 (以千字节计)
	'maxmempattern'   'mmp'     模式匹配使用的最大内存 (以千字节计)
	'maxmemtot'       'mmt'     所有缓冲区可用的最大内存 (以千字节计)
	'menuitems'       'mis'     菜单可用的最大项目数
	'mkspellmem'      'msm'     在  :mkspell  压缩树前可用的内存
	'modeline'        'ml'      在文件开头或结尾识别模式行
	'modelines'       'mls'     模式行的检查行数
	'modifiable'      'ma'      可否修改文本
	'modified'        'mod'     缓冲区已被修改
	'more'                      全屏显示时暂停列表
	'mouse'                     允许使用鼠标点击
	'mousefocus'      'mousef'  键盘焦点追随鼠标点击
	'mousehide'       'mh'      输入时隐藏鼠标指针
	'mousemodel'      'mousem'  改变鼠标按钮的含义
	'mouseshape'      'mouses'  不同模式下改变鼠标指针的形状
	'mousetime'       'mouset'  鼠标双击之间的最大时间
	'mzquantum'       'mzq'     MzScheme 线程的轮询间隔
	'nrformats'       'nf'      CTRL-A 命令识别的数字格式
	'number'          'nu'      行前显示行号
	'numberwidth'     'nuw'     行号使用的列数
	'omnifunc'        'ofu'     文件类型特定补全使用的函数
	'opendevice'      'odev'    MS-Windows 上允许读/写设备
	'operatorfunc'    'opfunc'   g@  操作符调用的函数
	'osfiletype'      'oft'     不再支持
	'packpath'        'pp'      软件包使用的目录列表
	'paragraphs'      'para'    分隔段落的 nroff 宏
	'paste'                     允许粘贴文本
	'pastetoggle'     'pt'      切换 'paste' 的键盘代码
	'patchexpr'       'pex'     用于给文件打补丁的表达式
	'patchmode'       'pm'      保留文件最老的版本
	'path'            'pa'      "gf" 等命令搜索用的目录列表
	'perldll'                   Perl 动态库名
	'preserveindent'  'pi'      重排时保持原有的缩进结构
	'previewheight'   'pvh'     预览窗口的高度
	'previewwindow'   'pvw'     标识预览窗口
	'printdevice'     'pdev'    用于 :hardcopy 的打印机名
	'printencoding'   'penc'    用于打印的编码方式
	'printexpr'       'pexpr'   用于 :hardcopy 打印 PostScript 的表达式
	'printfont'       'pfn'     用于 :hardcopy 的字体名
	'printheader'     'pheader' 用于 :hardcopy 的页眉格式
	'printmbcharset'  'pmbcs'   用于 :hardcopy 的 CJK 字符集
	'printmbfont'     'pmbfn'   用于 :hardcopy 的 CJK 输出的字体名
	'printoptions'    'popt'    控制 :hardcopy 输出格式
	'prompt'          'prompt'  Ex 模式打开提示
	'pumheight'       'ph'      弹出窗口的最大高度
	'pythondll'                 Python 2 动态库名
	'pythonthreedll'            Python 3 动态库名
	'pyxversion'      'pyx'     pyx* 命令使用的 Python 版本
	'quoteescape'     'qe'      字符串里使用的转义字符
	'readonly'        'ro'      禁止写入缓冲区
	'redrawtime'      'rdt'     'hlsearch' 和  :match  高亮的超时
	'regexpengine'    're'      使用的缺省正规表达式引擎
	'relativenumber'  'rnu'     每行前显示相对行号
	'remap'                     允许映射可以递归调用
	'renderoptions'   'rop'     Window 上文本渲染选项
	'report'                    报告行改变的行数下限
	'restorescreen'   'rs'      Win32: 退出时恢复屏幕
	'revins'          'ri'      字符插入会反向进行
	'rightleft'       'rl'      窗口为从右到左模式
	'rightleftcmd'    'rlc'     从右到左模式工作的编辑命令
	'rubydll'                   Ruby 动态库名
	'ruler'           'ru'      标尺,在状态行里显示光标的行号和列号
	'rulerformat'     'ruf'     定制标尺格式
	'runtimepath'     'rtp'     用于运行时文件的目录列表
	'scroll'          'scr'     用 CTRL-U 和 CTRL-O 滚动的行数
	'scrollbind'      'scb'     其他窗口滚动时滚动当前窗口
	'scrolljump'      'sj'      滚动所需的最少行数
	'scrolloff'       'so'      光标上下的最少行数
	'scrollopt'       'sbo'     'scrollbind' 的行为方式
	'sections'        'sect'    分隔小节的 nroff 宏
	'secure'                    在当前目录下以安全模式读入 .vimrc
	'selection'       'sel'     使用何种选择方式
	'selectmode'      'slm'     何时使用选择模式而不是可视模式
	'sessionoptions'  'ssop'    :mksession 的选项
	'shell'           'sh'      使用外部命令的外壳程序名字
	'shellcmdflag'    'shcf'    执行命令所使用的外壳的参数
	'shellpipe'       'sp'      把 ":make" 结果输出到错误文件的字符串
	'shellquote'      'shq'     括起外壳命令的字符
	'shellredir'      'srr'     把过滤命令的输出存到暂时文件的字符串
	'shellslash'      'ssl'     外壳文件名使用正斜杠
	'shelltemp'       'stmp'    外壳命令是否使用临时文件
	'shelltype'       'st'      Amiga: 影响如何使用外壳
	'shellxescape'    'sxe'     'shellxquote' 为 ( 时使用的转义字符
	'shellxquote'     'sxq'     类似于 'shellquote',但包括重定向
	'shiftround'      'sr'      缩进列数对齐到 shiftwidth 的整数倍
	'shiftwidth'      'sw'      (自动) 缩进使用的步进单位,以空白数目计
	'shortmess'       'shm'     缩短消息长度的标志位列表
	'shortname'       'sn'      非 MS-DOS: 文件名假定为 8.3 字符
	'showbreak'       'sbr'     用于提示回绕行开始的字符串
	'showcmd'         'sc'      在状态行里显示 (部分) 命令
	'showfulltag'     'sft'     自动补全标签时显示完整的标签匹配模式
	'showmatch'       'sm'      插入括号时短暂跳转到匹配的括号
	'showmode'        'smd'     在状态行上显示当前模式的消息
	'showtabline'     'stal'    是否显示标签页行
	'sidescroll'      'ss'      横向滚动的最少列数
	'sidescrolloff'   'siso'    在光标左右最少出现的列数
	'signcolumn'      'scl'     何时显示标号列
	'smartcase'       'scs'     模式中有大写字母时不忽略大小写
	'smartindent'     'si'      C 程序智能自动缩进
	'smarttab'        'sta'     插入 <Tab> 时使用 'shiftwidth'
	'softtabstop'     'sts'     编辑时 <Tab> 使用的空格数
	'spell'                     打开拼写检查
	'spellcapcheck'   'spc'     定位句子尾部的模式
	'spellfile'       'spf'      zg  和  zw  保存单词的文件
	'spelllang'       'spl'     拼写检查使用的语言
	'spellsuggest'    'sps'     提供拼写校正建议的方法
	'splitbelow'      'sb'      分割窗口时新窗口在当前窗口之下
	'splitright'      'spr'     新窗口在当前窗口之右
	'startofline'     'sol'     命令移动光标到行的第一个非空白
	'statusline'      'stl'     状态行的定制格式
	'suffixes'        'su'      多个匹配所忽略的后缀
	'suffixesadd'     'sua'     搜索文件时附加的后缀
	'swapfile'        'swf'     缓冲区是否使用交换文件
	'swapsync'        'sws'     和交换文件同步的方式
	'switchbuf'       'swb'     设置切换到别的缓冲区时的行为
	'synmaxcol'       'smc'     寻找语法项目的最大列数
	'syntax'          'syn'     读入当前缓冲区的语法
	'tabline'         'tal'     终端标签页行的定制格式
	'tabpagemax'      'tpm'      -p  和 "tab all" 的最大标签页数
	'tabstop'         'ts'      <Tab> 在文件里使用的空格数
	'tagbsearch'      'tbs'     标签文件里用二分法查找
	'tagcase'         'tc'      标签文件查找时如何处理大小写
	'taglength'       'tl'      标签里的有效字符数
	'tagrelative'     'tr'      标签文件里的文件名是相对路径
	'tags'            'tag'     标签命令使用的文件名列表
	'tagstack'        'tgst'    把标签推入标签栈
	'tcldll'                    Tcl 动态库名
	'term'                      终端名
	'termbidi'        'tbidi'   终端支持双向文本
	'termencoding'    'tenc'    终端使用的编码方式
	'termguicolors'   'tgc'     终端使用 GUI 颜色
	'terse'                     简化部分消息
	'textauto'        'ta'      已废止,用 'fileformats'
	'textmode'        'tx'      已废止,用 'fileformat'
	'textwidth'       'tw'      插入文本的最大宽度
	'thesaurus'       'tsr'     关键字自动补全所用的同义词字典
	'tildeop'         'top'     波浪命令 "~" 以操作符方式工作
	'timeout'         'to'      映射和键盘代码等待超时
	'timeoutlen'      'tm'      超时时间 (以毫秒计)
	'title'                     让 Vim 设置窗口标题
	'titlelen'                  用于窗口标题的 'columns' 比例
	'titleold'                  旧的标题,用于退出时恢复
	'titlestring'               用于 Vim 窗口标题的字符串
	'toolbar'         'tb'      GUI: 工具栏显示何种项目
	'toolbariconsize' 'tbis'    工具栏图标的大小 (只适用于 GTK 2)
	'ttimeout'                  映射等待超时
	'ttimeoutlen'     'ttm'     键盘代码超时时间 (以毫秒计)
	'ttybuiltin'      'tbi'     在外部 termcap 之前先用内建的 termcap
	'ttyfast'         'tf'      指示一个快速的终端连接
	'ttymouse'        'ttym'    鼠标产生代码的类型
	'ttyscroll'       'tsl'     滚动的最大行数
	'ttytype'         'tty'     'term' 的别名
	'undodir'         'udir'    保存撤销文件的位置
	'undofile'        'udf'     把撤销信息写入一个文件里
	'undolevels'      'ul'      最多可以撤销的改变个数
	'undoreload'      'ur'      保存缓冲区重载撤销的最大行数
	'updatecount'     'uc'      刷新交换文件所需的字符数
	'updatetime'      'ut'      刷新交换文件所需的毫秒数
	'verbose'         'vbs'     给出详细信息
	'verbosefile'     'vfile'   消息写入的文件
	'viewdir'         'vdir'    :mkview 存储文件的所在目录
	'viewoptions'     'vop'     指定 :mkview 保存的内容
	'viminfo'         'vi'      启动和退出时使用 .viminfo 文件
	'virtualedit'     've'      何时使用虚拟编辑
	'visualbell'      'vb'      使用可视铃声而不是响铃
	'warn'                      当缓冲区改变时,对外壳命令给出警告
	'weirdinvert'     'wiv'     用于有特殊反转方法的终端
	'whichwrap'       'ww'      允许指定键跨越行边界
	'wildchar'        'wc'      用于通配符扩展的命令行字符
	'wildcharm'       'wcm'     同 'wildchar',但对映射情况也适用
	'wildignore'      'wig'     匹配这些模式的文件不会参与自动补全
	'wildignorecase'  'wic'     匹配文件名时忽略大小写
	'wildmenu'        'wmnu'    命令行自动补全所使用的菜单
	'wildmode'        'wim'     'wildchar' 命令行扩展所用的模式
	'wildoptions'     'wop'     指定如何完成命令行补全
	'winaltkeys'      'wak'     何时窗口系统处理 ALT 键
	'window'          'wi'      CTRL-F 和 CTRL-B 滚动的行数
	'winheight'       'wh'      当前窗口的最少行数
	'winfixheight'    'wfh'     打开/关闭窗口时保持窗口高度
	'winfixwidth'     'wfw'     打开/关闭窗口时保持窗口宽度
	'winminheight'    'wmh'     任何窗口的最少行数
	'winminwidth'     'wmw'     任何窗口的最少列数
	'winwidth'        'wiw'     当前窗口的最少列数
	'wrap'                      长行回绕并在下一行继续
	'wrapmargin'      'wm'      使 (硬) 回绕开始的从右侧起算的字符数
	'wrapscan'        'ws'      搜索在文件尾折回文件头
	'write'                     允许写入文件
	'writeany'        'wa'      写入文件不需 "!" 强制
	'writebackup'     'wb'      覆盖文件时建立备份
	'writedelay'      'wd'      每个字符延迟 (以毫秒计) (用于调试)
11.语法高亮
	:syntax on 开启语法高亮
	:syntax off 关闭语法高亮
vim配置文件
全局配置文件 /etc/vimrc
只对当前用户有效的配置文件 ~/.vimrc
" echo '即将创建/打开新文件'
"set guifont=  设置字体
set shiftwidth=2 "自动缩进字符数
set tabstop=2 "tab键长度
syntax on "开启语法高亮显示
"设置            "批注
set hlsearch    "高亮度反白
set backspace=2  "可随时用退格键删除
set autoindent    "自动缩排
set ruler        "可显示最后一列的状态
set laststatus=2 "设定两行状态栏
set showmode    "左下角那一列的状态
"set nu          "可以在每一行的最前面显示行号
set bg=dark      "显示不同的底色色调
syntax on       "进行语法检验,颜色显示
10-06 10:03