sudo apt-get install vim:安装软件。
vimtutor:在命令行输入,打开vim自带的基础教程。
----------------------------------------------------------------------------------------------------------------------------------------------------
命令模式
模式切换
i :进入插入模式。
: :进入底行模式。
移动光标
5<Enter>:光标向下移动5行。
gg/G :光标跳到第一行/最后一行。
Home/End:移动光标到行首/行尾。
Page Up/Page Down:上/下翻页。
搜索替换
/str1: 向光标之下寻找str1字符串。
?str1: 向光标之上寻找str1字符串。
n/N: 重复查找上一个/下一个。
:3,5s/str1/str2/g: 在3~5行查找str1,并替换为str2。
:1,$s/str1/str2/g: 从第一行到最后一行查找str1,并替换为str2 。
删除、复制、粘贴
x:向后删除一个字符,相当于del。
X:向前删除一个字符,相当于backspace。
yy:复制光标所在行。
3yy:复制3行。
dd:剪切光标所在行。
5dd:剪切5行。
p:从光标的下一行开始粘贴。
10==:对齐当前行以下的10行
u:撤销上一个动作。
ctrl + r:执行被撤销的动作。
. :重复前一个动作。
------------------------------------------
插入模式
模式切换
esc:进入命令模式。
d:选中一定的区域,按下按键d,则删除该区域。
Home/End:移动光标到行首/行尾
Page Up/Page Down:上/下翻页
--------------------------------------------
底行模式
模式切换
底行命令执行完自动进入命令模式。
esc:进入命令模式。
3,8y:复制3到8行
w:保存
q:退出
wq:保存退出
q!:强制退出
wqa:分屏模式下保存所有文件并退出
--------------------------------------------
visual模式
【ctrl】+【v】进入模式
1、插入:选中文本块 ---> 输入大写的 i ---> 输入文本 --->按【ESC】键
2、替换:选中文本块 ---> 输入小写的 c ---> 输入文本 --->按【ESC】键
----------------------------------------------------------------------------------------------------------------------------------------------------
其他
/str1:在命令模式输入,存在则高亮所有str1。
:nohl:取消高亮。
vim -t str1:打开定义str1的文件,并将光标置于定义的第一行。
折叠
zc:折叠。
zC:折叠所有嵌套。
zo:展开折叠。
zO:展开所有折叠嵌套。
zf100G:创建从当前行到100行的折叠。
高亮光标所在单词
1、"*",高亮显示并跳到下一个。
2、"#",高亮显示并调到上一个。
----------------------------------------------------------------------------------------------------------------------------------------------------
vim的配置文件
/etc/vim/vimrc,该文件是整个系统的vim配置文件。
~/.vimrc,该文件是用户的vim配置文件。
vim的插件plugin安装在vim的runtimepath目录 ~/.vim 目录下,没有就创建一个。
----------------------------------------------------------------------------------------------------------------------------------------------------
To turn on whatever option in vim:
:set <option>
To turn off whatever option in Vim:
:set no<option>
To toggle an option on/off:
:set <option>!
To check if an option is on or off:
:set <option>?
To set an option back to its default:
:set <option>&
taglist
taglist是ctags的扩充插件,所以安装之前得先确定ctags已安装。
======================================================================================
cscope
sudo apt-get install cscope:安装软件。
:help cscope:查看cscope的详细介绍。
:cs help:显示简短的摘要。
----------------------------------------------------------------------------------------------------------------------------------------------------
cscope -Rbq:源码根目录下执行 ,生成三个文件 cscope.out(索引数据库)、cscope.in.out 、cscope.po.out。
-R:递归生成索引文件。
-b:只生成索引文件,不进入cscope的界面。
-q:生成文件 cscope.in.out 、cscope.po.out,加快cscope的索引速度。
:cs add cscope.out:在vim中执行,添加数据库。
:cs find x str1:使用该命令进行查找,x为查询选项,str1为函数或变量名。
共8种查询方式
s:查找符号出现的地方。
g:查找定义。
c:查找本函数的调用者。
d:查找本函数调用的函数。
t:查找指定的字符串。
e:查找egrep模式,相当于egrep功能,但速度快多了。
f:查找并打开文件。
i:查找包含本文件的文件。
----------------------------------------------------------------------------------------------------------------------------------------------------
快捷键映射
nmap fs :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap fg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap fc :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap ft :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap fe :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap ff :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap fi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap fd :cs find d <C-R>=expand("<cword>")<CR><CR>