Vim主要分为两种模式一种是Insert模式,该模式下可以像其它文本编辑器一样正常输入字符;另一种是Normal模式,该模式下Vim监听用户的按键可以对文本进行快速修改。

想要从Insert模式切换到Normal模式只需按下ESC键即可。

想要从Normal模式切换到Insert模式,有很多方法。
最直接的是按下I键,效果是:在当前光标处插入文本。
如果按下A键,效果是:在下一光标处追加文本。

以下均是在Normal模式下的部分快捷键说明:

光标的快速移动
  • h,j,k,l:左,下,上,右
  • w:光标移动至下一单词首位
  • b:光标移动至当前单词首位,如果光标已经在当前单词首位,就移动到前一单词首位
  • e:光标移动至当前单词末位
  • gg:光标移动至文本首行
  • Shift+g:光标移动至文本尾行
  • 27+Shift+g:光标移动至文本第27行
插入行
  • o:在当前光标的下方插入新一行
  • Shift+o: 在当前光标的上方插入新一行
删除与还原
  • x:删除光标后的一个字符
  • Shift+x:删除光标前的一个字符
  • dd:删除光标所在整行,同时被删除内容存于剪贴板上
  • de:删除光标后的单词内容,同时被删除内容存于剪贴板上
  • dw:删除光标后的单词内容以及之后的空格,同时被删除内容存于剪贴板上
  • u:还原上一个操作(不限于删除)
剪切、复制与粘贴
  • 选定文本块:使用v进入可视模式;移动光标键选定内容
  • y:复制选定块
  • yy:复制光标所在整行
  • d:剪切选定块
  • dd:剪切光标所在整行
  • p:粘贴文本
查找与替换
  • f+o:在当前行的光标之后查找字母o
  • F+b:在当前行的光标之前查找字母b
  • :/word:全文查找word按下:实际上是进入了Vim的命令模式。查找操作支持正则表达式
  • r+p:将光标之后的字符替换为字母p
  • :s/word/replace:光标所在行的第一个word替换为replace
  • :%s/from/to/:全文查找from并替换为to
  • :1,50s/from/to/:在第1行和第50行之间(含)进行搜索和替换。:45s/from/to/表示仅仅在第45行进行搜索和替换。而1,$行号范围和%是等价的。
  • :%s/from/to/g:全文查找from并替换为to,包含选项g的替换范围更广。??
  • :%s/from/to/gc:全文查找from并替换为to,替换时询问。可以选择y/n/a/q/l/^E/^Yy表示同意当前替换;n表示不同意当前替换;a表示替换当前和后面的并且不再确认;q表示立即结束替换操作;l表示把当前的替换后结束替换操作;^E向上滚屏^Y向下滚屏,用来帮助查看前后内容以决定进行操作。
执行Shell命令

:!ls就等同于在Shell终端执行ls命令。

最新文章

  1. Eclipse的快捷键
  2. 关于absolute 和 relative 定位的定义
  3. 共享内存是最快的一种IPC方式
  4. TextView文字排版问题:
  5. cdoj 574 High-level ancients dfs序+线段树
  6. c语言输出可见字符
  7. Ansible@一个有效的配置管理工具--Ansible configure management--翻译(十)
  8. shell 分割字符串存至数组
  9. openfire极限优化
  10. nlp词性标注
  11. 【转帖】系统软件工程师必备技能-进程内存的working set size(WSS)测量
  12. css3 transition属性实现3d动画效果
  13. opencv 替换图像中的一部分
  14. table可拖拽改变宽度
  15. LOJ 2587 「APIO2018」铁人两项——圆方树
  16. python测试开发django-29.发送html格式邮件
  17. 互联网创业原则与创业模式attilax大总结
  18. Error: [ng:areq] Argument 'LoginCtrl' is not a function, got undefined
  19. OOP理解
  20. 基于JSP的在线考试系统-JavaWeb项目-有源码

热门文章

  1. Python开发基础-Day24socket套接字基础2
  2. WebService数据示例
  3. 【图论】The Bottom of a Graph
  4. CodeForces 380C Sereja and Brackets(扫描线+树状数组)
  5. NOIP模拟·20141105题解
  6. maven项目修改项目名
  7. mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句
  8. 8VC Venture Cup 2016 - Elimination Round G. Raffles 线段树
  9. C#中的as(转)
  10. sql server的sql 语句中的列名包含[]时候,把]替换成]]就可以