vi/vim基本操作

vim弹出以前输入的命令使用q:这两个在正常模式下按就可以。

1、%跳到配对的括号中去。

2、ctrl+e ctrl+y都是光标不动,屏幕向上移动和向下移动一行。

3、indent 缩进使用方法。可以输入:然后在命令模式中输入输入行号1,行号2>  例如:2,10>表示从第二行到第10行缩进了一个tab或者自己在自己目录下.vimrc中设置的缩进距离。 还有一种是shift+v来选择一块,然后按shift+>(其实就是>必须用shift才能选中而已)即可。但是自己没有设置到缩进一个大括号就能将另一个大括号给缩进的方法。使用shift+v来选择的时候可以结合shift+$  shift+@或者%来跳到想跳到的另一个光标中,。特别是选中一个函数括号内,那么就很容易使用一次==就整体格式统一。

 

4、以16进制的显示: 

命令模式下%!xxd

二进制显示vim -b 文件名

或者同样命令模式下:%!xxd -r(注意这个命令必须是以2进制打开后,转化为16进制了,想返回到2进制,这个-r就是返回,如果是正常打开,使用%!xxd -r这个命令,出现很奇怪的现象)主要用于2进制和16进制的转换。而字符类型使用vim -b这猴子那个二进制和10进制打开,显示上没有区别。。。

同样%标识全部,!表示程序名字在后面。

5、vim中 u d是半页操作的,向上半页,向下半页(但是与后面的f b都一样,必须使用ctrl+这样才可以。)。而f b是整页操作的。向前1页,向后1页。而H L M 分别是大写(说大写了,是因为使用的是要加上shift按钮。并且这个地方并不用加ctrl而已。。),是表示光标移到当前屏幕的最上,最下,中间。是光标移动

 

cscope命令:是 cs find g xxx   其中g表示本函数的定义位置。c表示调用本函数的一些函数。 d本函数调用的函数。 t查找字符串。使用t查找完后可以使用n或者shift+n来进行上下跳动查看。

:cs help 也可以,基本上目前看到在vim中:这种命令模式是可以输入shell命令的。

ctags的命令:ctrl+]是跳到定义上,而ctrl+o是返回到原来跳到定义之前的位置。 单纯u是撤销操作方向往回走,而ctrl+r是按照命令方向回撤。

跳到哪一行,+-分别是往下往上。而n+ n-就是往下往上跳几行。还有一种是n加上hjkl这四个字母分别是左下上右。

gD是跳到局部变量定义处。

ctrl+o是跳到上次光标所在位置。

:qall或者  :wall或者  :only仅仅当前留下。因为仅仅当前关是:q即可。

在已经打开的里面再次打开其他文件有两类,都显示,或者只显示新打开的 。

都显示:vsp xxx是垂直分割(简写为vs)。 sp是水平分割。

vim +n xxx.txt 表示打开就到指定行 !!!!!这个命令不对。还没找到跳到指定行的地方。

 

vi   -on f1 f2这种是  水平打开。 vi -On f1 f2是垂直打开。而切割后的屏幕怎么跳跃?使用ctrl+w+(hl jk)

nG表示跳到第几行。G gg是两个往头往尾跳的位置。 $ ^分别是往行尾行首跳的位置。

minibufferexplorer使用跳跃使用:bn即可

vim还有几个

viw是与bvw一样,选中光标所在单词

bcw=back-change-word这个是重新填充光标所在单词。

byw=back-yank-word 是拷贝光标所在单词

v是行可视操作,ctrl+v是列可视操作。

有时候想复制粘贴板上已经有的内容,使用命令下:reg然后看剪切板里面的内容,知道第几行内容。n值。然后在正常的模式下输入"np

而自己经常要做的往上或者往下移动n行的,需要的操作是:

n+k n+j就是上下分别移动几行。同理,n+l  n+j就是分别向右向左移动几行的。。

而使用ctrl+e   ctrl+y都是可以在前面加上n的值。这样指定移动多少。

1、前面已经解释过了,注意一点:

vim中想给指定的所有行前面统一加上一个字符或什么的方法前面有。Ctrl+v然后对列操作。  选中每行的最前面列,然后此时是visual模式,那么要插入只能用大写的I(就是说shift+i),不能小写的,小写没有用。 然后敲入// 此时再用esc退出键就自动填充了所有自己光标选中的列。

删除就简单了,全部选中然后d即可。

还有一个命令可以代替上述方法:

:% s/^/#/g  全部行首添加#号注释    如果没有%好,则不会前部行首。。只会对光标所在行执行。

:1,10 s/^/#/g  1到10行首添加#号。

2、解释下:vim命令和正则表达的结合使用

vim命令中    %s表示替换, 当然可以直接使用s, 基本模式为:

%s / pattern/ string /flags

/表示间隔,但是如果在pattern或者string中需要使用/为了与间隔相互区别开来,需要使用\转义字符,例如:

把所有的a/b替换为aa

s /a\/b/aa/g

而vim命令中,为了更好区分间隔符号,可以使用任意无特殊意义符号,例如#或者+号。识别方法就是看s后面的第一个符号是什么,所以可以用s + a\/b+aa+g

 

1、vim中想保存目前打开情况,可以使用输入:mksession命令,然后打开的时候,使用vi -S xxx文件。

2、vim 只保留目前框,其他框全部关掉命令。输入only即可。前面有。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值