VIM使用技巧

1 篇文章 0 订阅

1 多文件编辑

vim a b c ##编辑文件列表a,b,c

:args a b c ##编辑文件列表a,b,c

:args ##查看文件列表,并显示当前编辑文件

:next ##跳转至文件列表中的下一个文件

:previous ##跳转至文件列表中的上一个文件

:first  ##跳转至文件列表中的第一个文件

:last ##跳转至文件列表中的最后一个文件

:edit newfile ##打开另一个文件


2 文件标记

ma ##在光标当前位置设置标记a,标记名为小写时,作用范围为当前文件,标记名为大写时,作用范围为全局文件

`a ##光标跳转至标记a

:marks ##显示所有标记

:marks a ##显示标记a

`< ##可视模式下选中文本的开始处

`> ##可视模式下选中文本的结束处

3 寄存器

"aY ##复制当前行,并把当前行的内容保存在寄存器a中

"AY ##向a寄存器追加内容

"ap ##把寄存器a中的内容粘贴出来

qa...q ##记录一串指令到寄存器a

@a ##应用寄存器a中指令

@@ ##应用上次执行的寄存器指令

"ap ##将寄存器a中的内容粘贴出来,以便编辑,编辑后用"ay,重新保存回寄存器a

qA...q ##追加指令记录到寄存器a中,注意此时使用的是大写字段A



4 修改文件名

:saveas newname ##另存为newname


5 多窗口操作

:split  ##用当前编辑的文件,打开一个新的水平窗口

:split filename ##用指定文件打开一个新的水平窗口

:vsplit ##vsplit用法与split相同,但是会创建垂直窗口

:close ##关闭当前窗口,可以防止只剩一个窗口的时候,关闭vim

:only ##保留当前窗口,但关闭其他窗口

CTRL-w j/k/l/h ##按方向j/k/l/h跳转窗口

CTRL-w J/K/L/H ##按方向j/k/l/h移动窗口

CTRL-w t ##跳转至最顶窗口

CTRL-w b ##跳转至最底窗口

CTRL-w - ##缩小窗口大小

CTRL-w + ##扩大窗口大小

CTRL-w _ ##设置窗口大小,默认为最大

vim -o a b c ##以水平分割的方式打开a,b,c文件,显示三个窗口

:all ##当以文件列表方式打开vim后,输入:all以水平分割方式打开文件列表

:vertial all  ##与:all类似,但以垂直分割的方式打开。


6 文件比较

vimdiff main.c main.c~ ##比较文件main.c main.c~

:vertical diffsplit main.c~ ##在打开main.c的情况下,开启比较功能

:diffupdate ##刷新比较内容

:diffput ##把相异处put到另一个文件,简写:dp

:diffobtain ##把相异处从另一个文件get到本文件,简写:do


7 分页窗口

:tabedit newfile ##以分页窗口打开newfile

:tab split ##以分页窗口打开当前文件,实际上,以tab开头时,都指明以分页窗口打开的意思

:gt ##分页窗口的切换


8 替换

:s/from/to/[gcp] ##以to替换from的内容,g代表行内所有匹配,c代表每次替换都会进行咨询


9 命令执行范围

:.,$s/// ##代表替换命令的执行范围为当前行至文件末尾

:1,$s/// ##代表替换命令的执行范围为第一行至文件末尾

:%s/// ##与:1,$s///相同

:?^Chapter?,/*Chapter/s/// ##使用?或/查找来指定命令执行范围,注意需要使用两个?,两个/

:?^Chapter?+1,/*Chapter/-1s/// ##使用?或/查找来指定命令执行范围,还可以指定偏移

:'a,'bs/// ##使用标记指定执行范围


10 文本编辑(normal)

~ ##切换大小写

gU ##切换为大写,gUgU切换整行为大写,gUaw切换一个单词为大写

gu ##切换为小写,其余类似gU

J ##换行符以空格取代

gJ ##删除换行符


11 文本编辑(visual)

~ ##切换大小写

U ##切换为大写

u ##切换为小写

J ##选中行的换行符以空格取代

gJ ##删除选中行的换行符


12 读写文件

:read file ##在当前位置读入file的文件内容

:write file ##把当前编辑的文件写到file中

:.,$write file ##把当前位置到文件末尾的内容写到file中

:.write >> file ##向file文件追加内容,内容为当前行

:read !ls ##读入命令ls的输出


13 过滤命令!

过滤命令的意思是用外部命令的输出来替换指定范围内的内容。格式如:!{motion}{program}。如:

!5Gsort ##即对当前行至第五行的内容进行排序

:%!sort ##即对整个文件内容进行排序


14 刷新vim

CTRL-L

15 访问变量

:echo $VIM ##访问环境变量VIM

:echo &hlsearch ##访问选项hlsearch

16 cscope在vim中的使用

:cs help ##查看cscope帮助信息

可以使用CTRL-]和CTRL-T在标签间跳转。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值