VIM: Getting started

linuxIDE


KDvelopKDE平台

AnjutaGNOME平台

eclipse:java平台


编辑器:

vim:unix系统中的编辑器(vimvi的增强版)

emacs:在xwindows中使用(etags


kwriteKDE

kateKDE

geditGnome


vim+ctags+cscope打造IDE


安装:

sudoapt-get install vim vim-scripts vim-doc ctags

vim-addons status #查看vim插件

vim-addons install $name #安装vim的插件

sudoapt-get install cscope


###########################################################

vim的使用


vi 进入vi的正常模式


i 正常模式切换到插入模式


: 正常模式切换到命令模式


esc 任意模式切换到正常模式


vimtutorvi的帮助文档

-------------------------------

命令模式:


---

:q不保存退出

:q! 不保存强制退出


:w 保存

:n1,n2w 保存n1n2

:wq 先保存后退出

:x 先保存后退出


:r 提取文件


:setnu 设置行号

:

:! 进入外部指令模式


s/wrong /right 将第一个wrong修改为right

s/wrong /right g 将一行中的wrong修改为right

n1,n2s/wrong/right/g n1n2之间的wrong修改为right

%s/wrong/rigt/g 将整个文件中的wrong修改为right

%s/wrong/rigt/gc 将整个文件中的wrong修改为right,会弹出提示


1$d 清空全部内容


:g/pattern/d 删除包含pattern的行

:m,ng/pattern/d 删除mn行中包含pattern的行

:v/pattern/d 删除不包含pattern的行


-------------------------------------

正常模式

------

D:删除

Dwndwdnw):删除一个单元+空格

Dendedne):删除一个单元

D$nd$dn$):删除到该行末尾

Ddndddnd):删除一整行

-------

C:修改

Cwncwcnw):修改一个单词

Cencecne):修改一个单元

C$(nc$cn$):修改到该行末尾

--------

U:撤销对整行的修改

u: 撤销上一次对该行的修改

ctrl+ R 取消上一次的撤销

--------

Yynyy):复制一行

----------

Pnp):粘贴

----------

r: 替换一个字符

R 批量替换

----------

Ctrl+ g 查看当前行信息

行号 shift+ g :跳至指定行

Shift+ g 跳至最后一行的开头

Shift+$:跳到当前行的行尾

----------

查找:

/ 从上往下查找

n 再往下找

shift+ N 往相反方向查找

? 从下往上查找

----------

o: 在下面新开一行,进入插入模式

O:在上面新打开一行,进入插入模式

---------

a: 在光标之后插入

A 在该行末尾插入


快捷键:

跳转到配对的括号去
[[ 
跳转到当前或者上一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
][ 
跳转到当前代码块(函数定义、类定义等)的结尾去(但要求代码块中'{'必须单独占一行)
]] 
跳转到下一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
[/ 
跳到注释开头(只对/**/注释有效)
]/ 
跳到注释结尾(只对/**/注释有效)
gD 
跳转到当前文件内标识符首次出现的位置,可用于跳转到全部变量的定义处;查找局部变量时,要是多个函数中定义了该局部变量,使用gD进行查找,找到的变量定义可能不是你需要的
gd 
跳转到当前函数内标识符首次出现的位置,可用于跳转到局部变量的定义处
'' 
跳转到光标上次停靠的地方,是两个',而不是一个"
mx 
设置书签,x只能是a-z26个字母
`x 
跳转到书签处("`"1左边的键)
增加缩进,"x>"表示增加以下x行的缩进
减少缩进,"x<"表示减少以下x行的缩进


###########################################################

Ctags命令的使用


---------------------------------------------

ctags --list-languages #查看ctags支持的编程语言

ctags --list-maps #查看编程语言对应的扩展名

ctags -langmap=c:+.yoursuffix -R #为自己的扩展名指定解析器

ctags --list-kinds #查看所有编程语言的语法元素

ctags --list-kinds=c #查看c语言的语法元素


ctags -R * #为当前目录下的和子目录中的文件创建tags

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . #使用智能补全插件

vi -t $name #直接定位到函数或变量


.vimrc设置tags的路径

set   tags=./tags,./TAGS,../tags,../TAGS,../../tags,../../TAGS

----------------------------------------------

vi中使用ctags


:split #水平分隔窗口

:vsplit #垂直分隔窗口


:tag $name #vi中可以直接跳转到函数或变量的定义

ctrl+ ] #取当前单词为function,同上,往前跳转


:stag $name #新的水平分割窗口显示函数或变量的定义

ctrl+ w + ] #同上


:ptag $name #预览窗口显示函数或变量定义

ctrl+ w + } #同上

:pclose #关闭预览窗口


:pedit $file #在预览窗口编辑文件


:psearch $var #查找这个变量并在预览窗口显示


ctrl+ o #回到原来的地方

ctrl+ T #跳到上一次的tag处,往回跳转


:tags #查看跳转的历史记录


:tselect $name = :ts #同名函数可以列出列表来选择

:tfirst = :tf #同名函数跳转到第一个匹配项

:$count tprevious = :tp #跳转到count前一个

:$count tnext = :tn #跳转到count的下一个

:tlast = :tl #跳转到最后的匹配


###########################################################

cscope的使用

setcscopequickfix=s-,c-,d-,i-,t-,e- # ~/.vimrc vim支持cscope


cd project_dir/

cscope -Rbq #

然后会生成3个文件:cscope.in.outcscope.outcscope.po.out


vi dir/XXX.c

:cs add $dir/cscope.out $dir #增加cscope连接

或添加到.vimrc中:

iffileradable("cscope.out")

csadd csope.out

elseif$CSCOPE_DB != ""

csadd $CSCOPE_DB

endif


:cs find type name #find命令语法格式


type:

0s:查找该C语言符号
1
g:查找定义
2
d:查找本函数调用的函数
3
c:查找调用指定函数的函数
4
t:查找字符串
6
e:查找egrep模式
7
f:查找文件
8
i:查找包含指定文件的文件


:cw #打开新窗口


:cs help #查看帮助


:cs kill #杀掉一个cscope连接


:cs reset #初始化所有cscope连接


:cs show #显示cscope连接


添加到~/.vimrc中可以让cs支持快捷键:

nmap<C-_>s:cs find s<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>g :cs find g<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>c :cs find c<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>t :cs find t<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>e :cs find e<C-R>=expand("<cword>")<CR><CR>

nmap<C-_>f :cs find f<C-R>=expand("<cfile>")<CR><CR>

nmap<C-_>i :cs find i^<C-R>=expand("<cfile>")<CR>$<CR>

nmap<C-_>d :cs find d<C-R>=expand("<cword>")<CR><CR>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值