1. viminfo
在vim中操作的行为,vim会自动记录下来,保存在 ~/.viminfo 文件中。
这样为了方便下次处理,
如:vim打开文件时,光标会自动在上次离开的位置显示。
原来搜索过的字符串,新打开文件时自动高亮显示。
2. vimrc
vimrc文件是vim的环境设置文件。
整体的vim的设置是在 /etc/vimrc 文件中。
不建议修改/etc/vimrc 文件,每个用户可以在用户根目录中设置vim,新建 ~/.vimrc.
vim的配置选项较多,可参考如下
#设置中文字符集
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
#显示行号
set nu
#如果文件类型为.sh文件自动插入文件头
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#########################################################################")
call append(line("."), "# File Name: ".expand("%"))
call append(line(".")+1, "# Author: test")
call append(line(".")+2, "# mail: test@163.com")
call append(line(".")+3, "# Created Time: ".strftime("%c"))
call append(line(".")+4, "#########################################################################")
call append(line(".")+5, "#!/bin/bash")
call append(line(".")+6, "")
endif
endfunc
#启用鼠标
set mouse=a
set selection=exclusive
set selectmode=mouse,key
#显示括号匹配
set showmatch
#设置缩进
'设置Tab长度为4空格'
set tabstop=4
'设置自动缩进长度为4空格'
set shiftwidth=4
'继承前一行的缩进方式,适用于多行注释'
set autoindent
#设置粘贴模式
set paste
#显示空格和tab键在Vim中通过鼠标右键粘贴时会在行首多出许多缩进和空格,通过set paste可以在插入模式下粘贴内容时不会有任何格式变形、胡乱缩进等问题。
set listchars=tab:>-,trail:-
#让vimrc配置变更立即生效
autocmd BufWritePost $MYVIMRC source $MYVIMRC
3. vim编辑方式
//编辑
i #在当前光标位置前插入代码
I #在当前行行首插入
a #在当前光标位置后插入代码
A #在当前行行尾插入
o #在当前行后新插入一行
O #在当前行前新插入一行
//移动
h #左移,5h左移五个代码
l #右移
k #上移
j #下移
^ #移动到第一个非空白代码上
$ #移动到行尾,3$移动到下面3行的行尾
0 #移动到本行第一个代码上
gg #移动到文件第一行
G #移动到文件最后一行,10G移动到第十行
ctrl+e #向下滚动一行
ctrl+y #向上滚动一行
ctrl+d #向下滚动半屏
ctrl+u #向上滚动半屏
ctrl+f #向下滚动一瓶
ctrl+b #向上滚动一瓶
//删除
dd #删除当前行
10d #删除从当前行开始计算的后10行
D #删除当前字符至本行行尾
kdgg #删除当前行之前所有行(不包括当前行)
jdG #删除当前行之后所有行(不包括当前行)
1,10d #删除1-10行
10,$d #删除10行及以后所有的行
1,$d #删除所有行
//退出
wq #保存退出
ZZ #同上
q! #不保存退出
e! #不保存退出并打开原文件
//其他
set nu #显示行号
/test #正向查找文档内的test代码,n查看下一个,N查看前一个
?test #反向查找,同上
set paste #拷贝前输入:set paste,vim就不会启动自动缩进,而只是纯拷贝粘贴
set nopaste #拷贝完成之后,输入:set nopaste (关闭paste)
set list #用$显示行尾位置,通常来判断行尾是否有空格