vim编辑器初级(七)
:syntax on 打开语法高亮
:syntax off 关闭语法高亮
vim有两套语法颜色方案,分别用于背景亮和背景暗时,当vim启动时它会尝试辨别背景并选择合适的颜色方案,但vim辨别背景时可能出错
:set background? 查看background选项的值为多少
:set background=light 将background选项的值设为light,也可设为dark,这样就可以让vim选用正确的颜色方案
vim会通过文件扩展名来识别文件类型,如果你的文件没有一个标准的扩展名那么vim就不能正确地将语法高亮显示
:set filetype=c 这样就可以告诉vim你正在编辑的文件是C语言的源文件,也可以设置为其他类型
% 用于匹配括号,将光标置于左括号或右括号,按下%后光标就跳转到相对应的右括号或左括号,也可以匹配C语言的注释符号#ifdef等预处理指令
<< 将光标所在行向左缩进,在前面加一个数字就会缩进那么多行
>> 将光标所在行向右缩进,在前面加一个数字就会缩进那么多行
< 后接一个动作,会将从当前行到动作定位处的所有行都向左缩进
> 后接一个动作,会将从当前行到动作定位出的所有行都向右缩进
:set shiftwidth=4 设置每一次缩进的宽度,通常设置为4最具有可读性
:set tabstop=4 设置每个tab的宽度为4,这样就与shiftwidth保持一致
vim有多种缩进模式,主要有的三种:
即cindent 使得vim会根据标准的C风格自动将程序进行缩进,在以#开头的行中,所有的缩进都被移除
smartindent 使得vim会将每行都与它的前一行保持相同的缩进,如果它的前一行包含{或}那么会自动增加或减少一层缩进
autoindent 使得vim会将每行都与它的前一行保持相同的缩进
在insert mode下,CRTL-D会使vim向左缩进
= 在viusal mode下会将选中的文本利用内部的格式化程序进行自动缩进,在normal mode下后接一个动作,将当前光标所在至动作定位处的所有文本自动缩进
在命令行用vimdiff命令打开两个或更多文件,就可以显示出这些文件的不同之处
此时可以用:dp命令将当前文件的更改移动到另一个文件中,也可以用:do命令将另一个文件的更改移动到当前文件中
zf 在visual mode下选中文本后执行zf命令会将所选文本折叠起来,在normal mode下后接一个动作,将当前光标所在行至动作定位行的所有文本折叠
zo 将光标移动到折叠行上,执行zo会打开折叠
:set foldmethod=indent 会使vim自动将所有文本按照缩进进行折叠
zc 关闭一层折叠
zX 将缩进情况复位
zv 有时折叠会使光标所在的行被折叠起来,此时执行zv命令会令vim展开足够多行知道光标所在的那行显示出来
:set foldlevel=3 设置折叠层次,例如设置为3后,所有缩进了三个以上层次的文本都会被折叠,默认的foldlevel值为0
zm 将foldlevel减1,会使缩进的文本增加
zr 将foldlevel加1,会使缩进的文本减少
zR 直接取消折叠
zM 尽最大可能折叠
[CTRL-I 跳转到光标所在的词,从文件的开头进行搜索,包括#include所引入的文件
]CTRL-I 跳转到光标所在的词,从当前光标的位置开始搜索
gd 寻找光标所在变量的局部定义
gD 寻找光标所在变量的全局定义
[CTRL-D 寻找光标所在宏的第一次定义,#include所引入的文件也被搜索
]CTRL-D 寻找光标所在宏的下一次定义
[d 显示光标所在宏的第一次定义,#include所引入的文件也被搜索
]d 显示光标所在宏的下一次定义
[D 列出光标所在宏的所有定义
]D 列出光标所在宏的所有定义,从当前位置往后
>i{ 先将光标放在{上,然后执行命令>i{,会将{ }内的文本全部向右缩进
i} 先将光标放在{上,然后按v进入visual mode,再执行i}会选中{ }中的文本,之后执行>,也可以将{ }内的文本全部向右缩进
K键 将光标所在的词作为主题,执行操作系统的man命令