`
microjava
  • 浏览: 311400 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

九阳真经之vi大法

阅读更多
九阳真经之vi大法

Vi确实牛X,常用常新,总有一些意外的功能。以下是一些和同事们学来的技巧:

1,   sp 或者vsp实现分屏查看
我们经常需要对照同一篇文档或日志的两个段落,如查看两个报文的差别。这时候屏命令就好用了。
在vi里输入:sp   ,你的屏幕立即被分成上下两屏。就像是windows的两个窗口。
Ctrl+ww  即可在两个窗口间切换。

同样你可以试一下用:vsp来左右切分
或者:vps . 在切分后打开另一个文档

2,   =G命令,瞬间让凌乱的代码格式化
命令模式下按下= 然后按下G, 即可自动格式化代码

还可以输入:set sw=2 来定制缩进大小
           Set et   缩进时候使用空格,而不是tab
          
3,   K 快速查看当前单词(函数)的man帮助
    这样就不用切换出来找man帮助了
4,   :set list 让特殊字符无所遁形
把消失的”半个”中文字符找出来
5,   shift+v 行选定
shift+v 然后按上下键,即可选定多行, 然后你就可以针这些行来进行复制、删除等操作
同样可以使用ctrl+v 来进行列选定
6,   第一类命名缓冲区mx,记录位置 
       (m+任意字母)
mx  如mk 将当前光标位置的信息记录到命名缓冲区k里;

‘x   (单引号+任意字母) 跳转到x所记录的行;
  `x   (命令符+任意字母) 跳转到x所记录的位置;
  ``   (连按命令符)      跳转到最后一次编辑的行.
7,   第二类命名缓冲区“x ,存放复制的内容 
        (“+任意字母)
如  “kyy  将当前行复制到缓冲区k里边
“j`ay`b 将位置a与位置b之间的内容复制到缓冲区j中去
“kp   将缓冲区p里的内容粘贴出来
8,   第三类命名缓冲区qx ,存放一组操作序列 
            (q+任意字母)  
此类缓冲区的使用方法:
按qk开始记录模式, 执行一系列操作, 然后再次按q结束记录.中间操作序列就被 记录到缓冲区k中了.

@k    执行一遍k里边的操作序列
12@k 执行12遍k里的操作

可以使用这种方法实现批量注释, 批量修改等复杂的操作
9,   b、w、e和B、W、E  
b  跳上一个单词开头  w 跳下个单词开头  e跳下个单词的末尾
区别是大写组的命令会忽略标点
10,  cw、dw、bcw、yw
用来删除、替换一个单词(变量、函数名).
11, tx、fx和Tx、Fx
快速跳转到字母x上或者x之前的位置.
12,  x和X    u和U
x 向后删除 X向前删除
u 回滚     U 回滚当前行的操作
13,  vi 完美支持的shell命令 :!
:!cc  test.c     不必退出vi便可以编译
:!make    
14,  另外还有一些可选的选项定制.
  vi启动会读取~/.vimrc里的选项, 在这里做一些设定.可以使vi用起来更顺手一些:
      1  set tabstop=2      #使Tap字符显示为占用2个字符位
      2  set et             #使(手动或自动输入的)Tap字符转化为n个空格
      3  set shiftwidth=2    #自动缩进的幅度
      4  set ai nu           #ai换行时自动对齐, nu显示行号
      5  au BufNewFile,BufRead *.sqc,*.dbc,*.pc  set filetype=c  
  #自动将*.dbc等识别为c文件,并用不同的颜色显示关键字.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics