转自:http://coolshell.cn/articles/5426.html

基本命令:

  • iInsert 模式,按 ESC 回到 Normal 模式.
  • x → 删当前光标所在的一个字符。
  • :wq → 存盘 + 退出 (:w 存盘, :q 退出)   (陈皓注::w 后可以跟文件名)
  • dd → 删除当前行,并把删除的行存到剪贴板里
  • p → 粘贴剪贴板

简单的移动光标

  • 0 → 数字零,到行头
  • ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
  • $ → 到本行行尾
  • g_ → 到本行最后一个不是blank字符的位置。
  • /pattern → 搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)

拷贝/粘贴 (陈皓注:p/P都可以,p是表示在当前位置之后,P表示在当前位置之前)

  • P → 粘贴
  • yy → 拷贝当前行

Undo/Redo

  • u → undo
  • <C-r> → redo

打开/保存/退出/改变文件(Buffer)

  • :e <path/to/file> → 打开一个文件
  • :w → 存盘
  • :saveas <path/to/file> → 另存为 <path/to/file>
  • :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
  • :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
  • :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)

让我们看一下vim是怎么重复自己的:

  1. . → (小数点) 可以重复上一次的命令
  2. N<command> → 重复某个命令N次

你要让你的光标移动更有效率,你一定要了解下面的这些命令,千万别跳过

  1. NG → 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
  2. gg → 到第一行。(陈皓注:相当于1G,或 :1)
  3. G → 到最后一行。
  4. 按单词移动:
    1. w → 到下一个单词的开头。
    2. e → 到下一个单词的结尾。

最强的光标移动:

  • % : 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)
  • * 和 #:  匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)

你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令连动。很多命令都可以如下来干:

<start position><command><end position>

例如 0y$ 命令意味着:

  • 0 → 先到行头
  • y → 从这里开始拷贝
  • $ → 拷贝到本行最后一个字符

d

最新文章

  1. mysql主从切换
  2. WPF初学(一)——布局【良好界面的基础】
  3. 学习mongo系列(十一)关系
  4. eclipse debug小技巧
  5. 有人向我反馈了一个bug
  6. django如何用orm增加manytomany关系字段(自定义表名)
  7. Python的面向对象2
  8. IT项目外包有哪些注意事项
  9. Android_HTML解析器_jsoup
  10. OS X 10.10 Yosemite Beta能够下载了
  11. TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。
  12. OOAD-设计模式(二)之GRASP模式与GOF设计模式概述
  13. Java第1次实验提纲(基本概念与引入PTA+Git)
  14. 记一次MySQL删库的数据恢复
  15. 【MYSQL】MYSQL报错解决方法: Warning: (3719, &quot;&#39;utf8&#39; is currently an alias for the character set UTF8MB3, but will be an alias for UTF8M B4 in a future release.&quot;
  16. 下载 youtube 油管的视频
  17. delphi 调用QQ邮箱发送邮件
  18. SQL Server扩展事件的使用ring_buffer target时“丢失”事件的原因分析以及ring_buffer target潜在的问题
  19. interface 界面&amp;接口
  20. SALALchemy Session与scoped_session的源码分析

热门文章

  1. Ubuntu 16.04 LTS下matplotlib安装出错
  2. instance of type of object.prototype.tostring 区别
  3. cocos2dx 接入bugly 报错 Fail to get class by NSClassFromString(BuglyAgent)
  4. Jquery中children与find之间的区别
  5. Mapping (RESOURCE) not found :和BeanFactory not initialized or already closed - call &#39;refresh&#39; before access记录
  6. JS第三方中间件的延伸
  7. Java编程:常见问题汇总
  8. 乘法逆元-洛谷-P3811
  9. Jenkins出现 {&quot;changed&quot;: false, &quot;msg&quot;: &quot;mkdir: cannot create directory ‘/root/.ansible/tmp/ansible-tmp-1552390265.8-253945919613076’: No space left on device\n&quot;, &quot;unreachable&quot;: true}
  10. Backspace doesn&#39;t delete inner html tags of a contenteditable DIV in Firefox