VIM编辑器是 Linux系统下标准的编辑器,它的强大众所周知。
1 VIM的状态
一般来讲, VIM有三种状态: command mode, insert mode, and visual mode。
command mode: 在这种模式下,所有的键盘输入都对被解释为命令。
insert mode: 在这种模式下,大多数的键盘输入作为文本。
visual mode: 辅助选择文档内容,这种模式可以认为是 command mode的分支
2 mode 的切换
Insert mode command mode visual mode
|------<ESC>----- à | |
| ß ----i/I---------| |
| ß -----a/A--------| |
| |----v/V-------- à |
| |---<Ctrl>+v---- à |
| |---<ESC>------- à |
- i, 切换到 insert mode,光标位置不变
- I, 切换到 insert mode,光标停留在当前所在行的起始位置
- a, 切换到 insert mode,光标在当前位置后退一位
- A, 切换到 insert mode,光标停留在当前所在行的结束位置
3 保存与退出
在 command mode下,输入:,然后键入如下值。
:w filename à 将文档保存为指定的文件名字
:wq à 保存当前文档并退出 VIM
:q! à 不保存当前文档,强制退出 VIM
4 first time on VIM
$ VI helloworld.txt后, vim处于 command mode,输入 I,进入 insert mode,键入你的文档。按 <ESC>键,返回 command mode,输入 :wq回车,保存退出。
5 常用命令
/text - 在文档中向下查找关键字text
?text - 在文档中向上查找关键字text
n - 在相同方向查找关键字text
N - 在相反方向查找关键字text
:set ic - 查找时,忽略大小写
:set noic - 查找时,不忽略大小写
u - 取消上一次的编辑操作
. - 重复上一次的编辑操作
yy - 拷贝光标所在的这一行
p - 在光标所在的位置粘贴剪切板内容
dd - 删除光标所在的这一行
:s/oldtext/newtext - 用newtext替换oldtext
:m,ns/oldtext/newtext - 从m行到n行,用newtext替换oldtext
:g/text/s/oldtext/newtext - 查找包换有关键字text的行,用newtext替换该行出现的oldtext
6 设定windows风格的自动缩进
在用户根目录下打开或者创建文件.vimrc,
$vi .vimrc
输入如下内容:(注意=号后面不要有空格,删除注释说明部分/*..*/)
syntax on
set expandtab /*用空格填充制表符*/
set tabstop=2 /*设定制表符宽度为2*/
set softtabstop=2 /*设定软制表符宽度为2*/
set shiftwidth=2 /*设定缩进为2*/
set autoindent /*设定为自动缩进,取消为noautoindent*/
set cindent /*设定c/c++语言类型的自动缩进*/
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s /*设定c/c++语言代码风格*/
set nu /*设定显示行号*/
if &term == "xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif