vim常用方法总结
1 编辑模式
2 插入模式
3 命令模式
4 Linux命令行
5 Vim配置
6 Vim查看函数原型|跳转函数
1 编辑模式
1.1 跳转
* //当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
# //当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;
高亮关键字查找:*和# //需提前:set hlsearch
gg //将光标定位到文件第1行起始位置;
G //将光标定位到文件最后1行起始位置;
ngg //将光标定位到第n行的起始位置;
H //将光标移到屏幕上的起始行(或最上行);
M //将光标移到屏幕中间;
L //将光标移到屏幕最后一行 ;
ctrl+g //查看文件总行数和当前行数位置
1.2 搜索匹配
/str1 //正向搜索字符串 str1
n //继续搜索,找出 str1 字符串下次出现的位置
N //继续搜索,找出 str1 字符串上一次出现的位置
pagedown //向下翻页
pageup //向上翻页
1.3 复制黏贴删除
yy //单行复制
nyy //多行复制
p //粘贴
dd //单行删除
ndd //多行删除
1.4 括号匹配及文字段落
% //从当前的括号跳转到与其匹配的括号上去,对花括号{}|圆括号()|方括号[]都有效
( //移到这个句子的开头
) //移到下一个句子的开头
{ //跳到上一段的开头
} //跳到下一段的的开头
1.5 撤销和重复
u //撤消前一条命令的结果
. //重复最后一条修改正文的命令
2 插入模式
2.1 进入插入模式
i 在光标左侧插入正文
a 在光标右侧插入正文
o 在光标所在行的下一行增添新行 //实用!!!
O 在光标所在行的上一行增添新行
I 在光标所在行的开头插入
A 在光标所在行的末尾插入
3 命令模式
3.1 显示行号:
:set number //临时显示行号
3.2 跳转
:n //将光标移到第 n 行
3.3 字符串搜索
:/str //正向搜索,将光标移到下一个包含字符串 str 的行(n)
3.4 高亮显示字符串
:set hlsearch //设置高亮搜索,.vimrc已经配置
:/main //'main'高亮显示
:noh //退出后去除高亮显示
3.5 字符串替换
g 放在命令末尾,表示对搜索字符串的每次出现进行替换,不止匹配每行中的第一次出现;
不加g,表示只对搜索字符串的首次出现进行替换;
s 表示后面跟着一串替换的命令;
:1,$ s/str1/str2/g //用字符串str2替换正文中所有出现的字符串str1
3.6 复制粘贴
9,15 co 15 //将第9行至第15行的数据,复制到第16行
3.7 恢复文件
意外退出vim,*.swp说明.
假如编辑后没保存,意外退出vim:
.swp:
vim Android.mk:
解释下:
(i)Edit anyway:只编辑保存过的内容
(ii)Recover:恢复未保存的内容
(iii)Delete it:删除*.swp文件
3.9 Shell切换
:!shell_command //执行完 shell_command 后回到Vim
:!ls -l
3.10 分屏
:split(可用缩写 :sp) 上下分屏
:sp ./Android.mk
:vsplit(可用缩写 :vsp) 左右分屏
:vsp ./Android.mk
ctrl+w 在窗口间跳转
3.11 文件比较
:diffsplit abc.txt //上下分屏
:vert diffsplit abc.txt //左右分屏
4 Linux命令行
4.1 文件比较
vimdiff file1 file2
4.2 ctags查找关键字
#vim -t XXX //查找XXX变量或函数
vim -t PreApplicationInit
5 Vim配置
Vim的配置是通常是存放在用户主目录的 .vimrc 的隐藏文件中的。
在~目录下新建.vimrc文件,vim ~/.vimrc
5.1 永久显示行号
:set number
5.2 设置ctags路径
:set tags=/home/hyh3333/sdm845_la2.0/tags
5.3 设置高亮搜索
:set hlsearch
5.4 语法高亮开启
:syntax on
6 Vim查看函数原型|跳转函数
(1)系统函数
使用shift+K会自动跳转
(2)自定义函数
需要提前配置ctags:
(i)生成索引文件
[email protected]:~/sdm845_la2.0$ ctags -R *
(ii)ctags配置
使用vim ~/.vimrc 编辑vim的配置文档,在其中加入如下命令:
:set tags=/test_vim/tags //注意不能":set tags = /test_vim/tags"
(iii)vimrc配置多个ctags文件
:set tags+=/test_tmp/tags
使用:
(1)Linux命令行
#vim -t XXX //查找XXX变量或函数
vim -t PreApplicationInit
(2)编辑模式
ctrl + ] //调到光标所在函数或结构体的定义处
ctrl + t //返回查找
(3)命令模式
:ts //tagslist
:tp //tagspreview
:tn //tagsnext
#vim –t tag:
在运行vim的时候加上“-t”参数,例如:vim - t func这个命令将打开定义func(变量或函数或其它)的文件,并把光标定位到这一行。
如果这个变量或函数有多处定义,在vim命令行模式:ts命令就能列出一个列表供用户选择。
:tp为上一个tag标记文件,:tn为下一个tag标记文件。
当然,若当前tags文件中用户所查找的变量或函数名只有一个,:tp,:tn命令不可用。
ctrl+]:
最方便的方法是把光标移到变量名或函数名上,然后ctrl+],这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。
用ctrl+t可以退回原来的地方。
即使用户使用了N次ctrl+]查找了N个变量,按N次ctrl+t也能回到最初打开的文件,它会按原路返回。
ctrl+]可以和:ts :tp :tn共同合作.