1.命令模式
命令 | 作用 |
---|---|
:wq | 在命令模式下,执行存盘退出操作。 |
:w | 在命令模式下,执行存盘操作。 |
:w! | 在命令模式下,执行强制存盘操作。 |
:q | 在命令模式下,执行退出vi操作。 |
:q! | 在命令模式下,执行强制退出vi操作。 |
:e filename | 在命令模式下,打开并编辑指定名称的文件。 |
:n | 在命令模式下,如果同时打开多个文件,则继续编辑下一个文件。 |
:f | 在命令模式下,用于显示当前的文件名、光标所在的行的行号。 |
:set number | 在命令模式下,用于显示行号,set nonumber 不显示行号。 |
:sp ./file | 左右分屏打开第二个文件。 |
:vsp ./file | 垂直分屏打开第二个文件。 |
:only | 退出只保留当前分屏。 |
命令 | 作用 |
---|---|
ZZ | 在命令模式下,保存当前文件所做的修改后退出vi。 |
:行号 | 光标跳转到指定行的行首。 |
? | 光标跳转到最后一行的行首。 |
D | 删除从当前光标到光标所在行尾的全部字符。 |
dd | 删除光标行整行内容。 |
ndd | 删除当前行及其后n-1行。 |
u | 撤销 |
nyy | 将当前行及其下n行的内容保存在寄存器。剪切 |
p或P | 粘贴文本操作,p 下方 P 上方 |
/字符串 | 文本查找操作。从光标到文件尾部。 |
?字符串 | 文本查找操作。从光标到文件头部。 |
?/F/T/ | 文本替换操作。将光标行F替换为T。 |
:a,bs/F/T/ | 文本替换操作。用于第a行到第b行之间,将F替换为T。 |
o或O | o在当前行后面插入一个空行,O在当前行前面插入一个空行。 |
A | 在行末添加文本。 |
i | 在当前字符前插入文本。 |
I | 在行首插入文本。 |
2.语法
vi [选项](参数)
-d: 以diff模式打开文件,当多个文件编辑时,显示文件差异化部分。
-R: 以只读方式打开文件。
-o file1 file2: 左右分屏打开
-O file1 file2: 垂直分屏打开
3.快捷键
快捷键 | 作用 |
---|---|
Ctrl+u | 向文件首翻半屏。 |
Ctrl+d | 向文件尾翻半屏。 |
Ctrl+f | 向文件尾翻一屏。 |
Ctrl+d | 向文件首翻一屏。 |
Ctrl+ww | 切换到其他分屏。 |
Esc | 从编辑模式切换到命令模式。 |
VIM使用技巧
使用Plug软件管理vim插件
LeaderF使用方法
:LeaderfFile或:LeaderfFile [目录]或者,f
启动LeaderF搜索文件。
:LeaderfBuffer或,b
启动LeaderF以搜索缓冲区。
:LeaderfMru
启动LeaderF搜索Mru。
:LeaderfMruCwd
启动LeaderF在当前工作目录中搜索Mru。
:LeaderfTag
启动LeaderF来导航标签。
:LeaderfBufTag
启动LeaderF以导航当前缓冲区中的标签。
:LeaderfBufTagAll
启动LeaderF以在所有打开缓冲区中导航标签。
ctrl+J,<向下>,ctrl+K,<向上>:导航结果列表。
ESC 退出
代码注释快捷键
| gcc
| 注释代码 |
| gcap
| 注释段落 |
| vif
| 选中函数内容 |
| dif
| 删除函数内容 |
| cif
| 改写函数内容 |
| vaf
| 选中函数内容(包括函数名 花括号) |
| daf
| 删除函数内容(包括函数名 花括号) |
| caf
| 改写函数内容(包括函数名 花括号) |
| fa
| 查找字母a,然后再按f键查找下一个 |
解决cscope无法实现跳转函数问题
1、生产绝对路径的文件
sudo find /home/shangpingzhen/Demo/rtu_h920_guizhou/ -name “.h" -o -name ".c”>>cscope.files
2、生成cscope的数据库文件
cscope -Rb
3、在vim中加载cscope.out文件,并查看数据链接为绝对路径
:cs add cscope.out
:cs show
#pid database name prepend path
0 20855 /home/username/Demo/project/cscope.out
4、完成可以实现函数跳转。
使用函数目录列表并支持跳转,Taglist
1、将taglist.vim 和 taglist.txt放置到.vim文件夹中,在.vimrc加入配置,即完成生成。
补全功能是 ctrl+n,通过cpp-mode补全
注释功能: gcc gc