科探空谷
  • Home
  • zhimind home
  • Categories
  • Tags
  • Archives
  • 留学
    • 学校库
    • 专业库
    • 研究方向与招生
    • 工具
    • GPA计算器
    • 脑洞背单词
    • 脱口而出

vi-vim小技巧

目录

  • vi 小技巧
    • 部分
  • vim 技巧
    • 模式
    • 页面跳转
    • 排版缩进
    • 代码跳转
    • 书签
    • 复制粘贴
    • 标签tag
    • 读入read
    • 编辑
目录

vi 小技巧¶

部分¶

  1. vi +xx 文件名,可以直接跳到位置的, 和vim一样。xx代表行数
  2. 查找时, \<xxx> 代表全词匹配——vim也一样,而且更先进的是,当光标在该单词上时,vim快捷键shift+8 -- * 就是向下全词查找,shift+3 -- # 就是向上全词查找。
  3. D 删除到行尾, C 删除到行尾并进入插入模式
  4. inner word/around word, diw/ciw, daw/caw iw 当前词, cw 含前后空格, as/is sentence, ap/ip 段落
  5. period "." 重复上一个操作, 不过要注意操作的原子性, 比如 dw 后 insert 是两个操作, ciw 修改就是一个操作

vim 技巧¶

模式¶

  1. ctrl-v 或 ctrl-q 进入可视块状态, 即 列编辑模式。

页面跳转¶

  1. gg 文件首行 G 文件末尾
  2. H M L 光标跳转页顶,页中,页底
  3. zt zz zb 光标所在行置顶、置中、置底
  4. gj, gk 段落行移动

排版缩进¶

  1. 按v进入visual状态,选择多行,用>或<缩进或缩出 等效于 x >>/<< x行缩进
  2. 通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版
  3. 至于如何针对自定义语言制订缩进规则,还有点问题,成功率不高。

代码跳转¶

  1. % 跳转到配对的括号去
  2. [[ 跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)
  3. gD 跳转到局部变量的定义处
  4. '' 跳转到光标上次停靠的地方, 是两个'单引号, 而不是一个" 双引号
  5. 切换到上次修改的位置, 想知道你在文件中做的最后一次修改是在什么位置?切换到正常模式,输入 g; 来即可切换到上次修改的位置。

书签¶

  1. mx 设置书签,x只能是a-z的26个字母
  2. `x 跳转到书签处(""是1左边的键)

复制粘贴¶

  1. 全局复制, gg 文件首行, shift+v 或 V 列模式, G 文件尾行, 即可全选, 小写的 v 不能把最后一行弄下来。
  2. 同理的一块代码复制,也是使用 列模式, 不需要预知行数了。

标签tag¶

  1. :tselect 显示列表
  2. :tn和:tp 显示后一个tag和前一个tag

读入read¶

编辑¶

  1. caw/yaw/daw:change a word可以修改/复制/删除当前光标所在位置的单词。对于int count=0;的例子,如果此时光标在count中间某处,比如u处,直接键入caw可以达到同样的效果。所以caw更强大一些。
  2. ci":change inside "可以用于修改当前位置附近,在相同配对的"中的内容。比如对于const char *str="hello world";。当在双引号中间的任意位置键入ci"可以直接清空字符串,并继续输入新的希望的字符串。
  3. yi":yank inside " 猜猜是啥意思?类似ci"只是把编辑操作编程复制操作,因为y是复制!是不是很强大。
  4. ya":yank around " 复制整个字符串,包括双引号。
  5. ci(、ci[:举一反三change inside ( change inside [。
  6. cit:这个比较特殊,可以直接编辑匹配的xml标签中的内容!经常编写html的童鞋可以熟悉一下。

Published

5月 6, 2014

Category

开发工具

Tags

  • vim 2

Stay in Touch

  • Powered by Pelican. Theme: Elegant by Talha Mansoor