/xxx> 查找以xxx结尾的字符串
/ 完全匹配查找
d/int main 从光标所在位置开始删除,直到遇到int main
:s/str1/str2 用str2替换行中首次出现的字符串str1
:s/str1/str2/g 用str2替换行中所有的字符串str1
:%s/str1/str2/g 用str2替换全文中所有的字符串str1,不询问,强制替换
:%s/str1/str2/gc 用str2替换全文中所有的字符串str1,询问
fd 查找本行第一个d字符
; 下一个
, 上一个
vi:
打开或新建:
vi #命令行
:ed #最后一行模式
:fin[d]
#在路径path中查找文件,然后编辑它 new # 在新窗口中编辑文件
窗口操作:
:sp(或ctrl+w+s): 打开一个新窗口,编辑相同的内容。
:new(或ctrl+W+n): 打开一个空的北新窗口。
ctrl+w+w: 在多个窗口间切换
J 删除行末的换行符,将下行与本行合并为一行
滚屏:
ctrl+u[p] 向下滚半屏
ctrl+d[own] 向上滚半屏
ctrl+f[ront] 向下滚一屏
ctrl+b[ack] 向上滚一屏
ctrl+e 向下滚一行
ctrl+y 向上滚一行
zz 将光标所在的行放在屏幕中间
zt 将光标所在的行放在屏幕第一行 top
zb 将光标所在的行放在屏幕最后一行 botton
Go 跳到文件尾部去插入
标签:
:tabe [file] 打开新标签并在新标签中编辑file所指的文件
:[num] gt 在不同的标签之间切换 num指的是第几个标签
:tabo 关闭所有其它的标签页
:tabs 列出标签页和它们包含的窗口
:tabfir[st] 跳转到第一个标签
:tabl[ast] 跳转到最后一个标签
vim比较文件内容:
vimdiff main.c main2.c
vim设置:
set number
set nonumber
set ignorecase #忽略大小写 (查找字符串时)
set noignorecase
set ruler #显示当前光标所在位置
set nuruler
set hlsearch #高亮显示 (查找字符串是,找到后高亮显示)
set nohlsearch
set incsearch #在输入字符串时就开发查找
set noincsearch
syn on #高亮显示
set backspace=2 #backspace可用
编程编:
1. 打开include 的文件:
(1) 光标放在文件名上,按 ctrl+w f ,在一个水平分割的窗口中打开。
(2) 光标放在文件名上,按gf, 在同一个窗口中打开。
2. 通过find命令打开文件:
(1)先通过set path设置查找的目录:
set path=.,./**,/usr/include 表示在当前目录,当前目录下的所有子目录,和/usr/include目录下进行查找
(2)设置好目录后在vi下用:find filename即可查找并打开文件信盈达企鹅要妖气呜呜吧久零就要。
3. ctags
(1).在项目目录下用“ctags -R .”产生tags文件。 可将ctags命令写入makefile文件中
(2).在vim中设置tags文件“set tags=tags”
(3).在vim中通过tag命令中转到函数:tag main
:tag {ident} “中转到指定的标签
:tags "显示标签
:Ctrl+] “跳转到当前光标下的标签(函数声明处)
:Ctrl+T “跳转到标签栈中较早的标签(函数调用处)
在taglist串口中将光标移动到某个tag上,按空格键会在状态栏上显示原型
4. taglist
:TlistOpen 打开taglisg
:p "预览taglist窗口中光标所在位置的tag。
:o "在新窗口中打开光标所在位置的tag
:l "展开tag
:+ "展开tag
:= "展开所有tag
:- "折叠tag(不用shift)
:* "折叠所有tag
6. MiniBufExplorer
此插件会使窗口上显示一个buff清单,可以在该窗口上来选择打开某个buf文件
:跳到下一个buffer名上
:跳到上一个buffer名上