插入:按i,a, o等进入,用于添加文本
替换:按R进入,当前文本会被替换为键入的文本
命令模式:按’:’进入,可执行vim命令或shell命令(!command)
可视(visual)模式: 按V进入。可视模式下可方便选取所需的块,进行复制操作
记录模式:q:,唤出历史命令窗口
查找模式:./ .? 进行文本查找
模式切换:
按Esc退出相应的模式,再键入相关命令进入其他模式。
在insert模式下使用normal模式:ctrl+O后进行,一次有效
1) 移动:
行首^或0(0是移到行开始处,^是移到行首第一个字符开始处) 行尾$
第一行最开始处 gg
结尾处 G 或者G N(N为大于文件的总函数的整数)
第N行: N gg 或 N G
按单词移动:ge (移动到前一个单词的尾部) w(向后) b(向前)
匹配移动:fx 第一个匹配’x’的单词
跳到文档50%处:50%
行间跳转: H(行首) M(行中) L(行尾)
定标跳转: ma(a~z) 放置一个a标志 ‘a 跳转到该标记处,可使用marks查看
‘0:回到你上次退出vim的位置,’1 回到上次退出vim位置的前一个位置,以此类推
在括号中跳转: % 可以在{} [] () 中跳转,可以设置选项加入其它跳转符号,如<>,命令为set matchpairs=…,<:>
获知光标所在的字符是整个文件的第几个字节:g CTRL+G
2) 插入
a:当前位置后插入
i:当前位置插入
o:新起一行插入
插入连体字,如梅花等:
CTRL+k 会出现?
在其后输入相关字符即可,如cC(Co),会显示一个©㏇
使用digraphs可以查看有哪些可用的digraph
添加命令的输出:!!(command),如 !!date #添加时间戳
3) 复制、删除及粘贴
复制/粘贴:p
删除: dd(删除当前行)、3d 删除当前行往下3行(相当于执行三次dd)、x(删除光标所在字符)、nx(相当于执行n次x)、daw(删除光标所在单词)、cw(删除光标所在单词并置于插入模式)、das(删除一个句子)
复制:yy(复制所在行)、yaw(复制所在单词)、yas(yank a sentence)
剪切:相当于执行完d操作后再执行y操作(d操作后内容会被放到剪切板)
块操作: ctrl + V进入visual模式
重复执行上次操作:ctrl+A(agin)
逐个字符复制上一行内容:ctrl+Y (相当于Photoshop中的图章工具
4) 查找与替换
普通查找:./ .? 分别为向后和向前查找,区分大小写
不区分大小写查找:set ignorecase 或者./\cword (当前查找有效)
文本替换:[range]substitute/oldword/newword/g,c (g表示全局,c表示替换前确认)
[range]相关的字符:. 表示当前行,$表示最后一行,%表示所有行,例子如下:
: .+3,$-5 (表示当前行往下3行到导数第五行)
?^Chapter?+3, /^Chapter/-5 (正则表达式,表示以Chapter开头的行,?表示向前查找,/向后查找)
global替换:[range]global/{pattern}/{command}, 对满足模式的内容进行操作
对选中的文本进行替换操作:%s/oldword/newword/g
语法高亮:set hlsearch(hls)
5) 撤销与恢复
撤销::u
恢复:ctrl+R #与撤销操作对应
1) vim缩写与命令自动补全:
自动补全:
输入单词后按ctrl+N或ctrl+P,会出现一个匹配列表供选择
ctrl+N为向后(Next)查找匹配,ctrl+P为向前(Previous)查找匹配
使用缩写和错误更正:
缩写:iabbrev adadvertisement #输入ad<Space>将会把ad替换为advertisement, <Space>为空格
更正打字错误(也是缩写的一种情况):abbreviate tehthe #使用方法同缩写
怎么禁止缩写和更正选项?
:unabbrevicate 缩写名
:abclear #删除所有缩写
2) 多窗口:
sp filename|directory # split filename 当打开文件夹后,把广播移动到文件名上,按gfctrl+o可以打开文件
vsplit filename #vertical split (垂直拆分窗口)
3) 宏录制
相当于命令脚本,按q(a~z) 开始录制,再次按下q就结束宏录制,宏功能在解决重复问题时很好用。
使用方式: @a (使用宏a)
4) 批处理;
1 先把命令保存
%s/oldword/newword/g
write tempfile #如保存到change.vim中
quit
2 执行脚本
for file in *txt; do
vim –e –s $file < change.vim
lpr –r tempfile
done
5) dos与unix文件格式
设置支持的文件格式:set fileformats=unix,dos
设置当前文件格式:set fileformat = [dos][unix][mac] #这三种文档的回车换行符不一样,区分<CR><LF>等字符,如dos文档在unix格式下回车换行会显示’^M’
p.s : 将dos格式文件转换为unix格式可使用dos2unixfilename
6) 换行与制表位
设置自动换行:set wrap 设置不自动换行:setnowrap
显示行号:set nu 关闭行号:set nonu
设置tab键为4个空格:
:set shiftwidth=4
:set softtabstop=4
:set tabstop=4
恢复原来的默认值:retab 8
设置制表位扩展为空格:expandtab
设置自动缩进:set autoindent
以上这几个命令可以导入~/.vimrc文件中,打开vim时自动加载,很方便
7) 帮助
查看帮助:help ‘whichwarp’ (whichwrap为主题)
help + 选项,选项可用options查看
8) 大小写转换:
单词操作:gUw(小写转大写) guw(大写转小写) g~~ 反向(大写转小写,小写则转大写)
gUgU 改整行 gUU
9) 排序:
1 跳转到指定行 a
2 !nG 跳转到第n行
会出现提示:.,.+n sort<enter> 下划线部分为输入字符
10) 保存:
w 保存当前文件
wall 保存所有被改动的文件
保存选项:
:session options 查看session选项
:mksession vimbook.vim 保存会话选项
:source vimbook.vim 或启动vim时,vim –s vimbook.vim #导入保存的会话选项
保存信息(标记,寄存器和命令历史记录等):wviminfo! ~/.viminfo
恢复保存的信息:rviminfo! ~/.viminfo
保存视图:mkview #可以指定文件名
载入上次保存的视图:loadview
恢复默认值:blank buffer
定制sessionoptions选项:set sessionoptions+=resize #窗口大小
curdir folds help (帮助窗口)
11) 文件加密:
vim –x filename #打开的时候即加密
:x #命令模式下加密
取消加密:set key= #设置key为空的话就不加密
vim –x –n file.txt #不使用加密文件
12) 其他:
代码常用操作:
多行注释:用s#^#//#g 操作
查看某个函数的原型:光标位于函数或者文件名上,按[I
文本对齐:[range]center/right/left[width] #width为文本行宽
使用tags:
ctags –R . #为当前目录下的文件生成tags
导入tags:set tags=~/.tags
跳转:ctrl + ] 跳转到定义处, ctrl + o 跳转到原地
选择tag:tselect tagname
在各tags间跳转:tnext, tfirst, tlast, [count]tprevious, [count]tnext #count为跳转的次数
13) vim 快捷键映射
作为编辑器之神,vim最吸引人的地方莫过于其可以定制自己喜欢的plugin,打造专属的高效编辑器,这个可以通过配置vimrc 及使用各种各样的plugin来实现。关于这这方面的文章,个人推荐:
http://easwy.com/blog/archives/advanced-vim-skills-catalog/
http://amix.dk/vim/vimrc.html
文件行数,单词统计: [range]write !wc,其中range为范围,如[1,5]
欢迎转载,转载请注明出处:http://blog.csdn.net/codingcs