vi/vim命令简记

模式

vi有三种模式

  • 命令模式
  • 插入模式
  • 扩展模式

命令模式下的操作

移动光标

  • h,j,k,l 左下上右
  • w/d 上一个字符/下一个字符
  • (/) 上一个句子/下一个句子
  • {/} 上一个段落/下一个段落

修改

  • cc/cw/cl 重写行/词/字符
  • dd/dw/dl 删除行/词/字符
  • yy/yw/yl 复制行/词/字符
  • dtc,删除从光标到c之间的所有字符
  • rc,将光标下的字符替换为c
  • 5dd,删除5行数据
  • 5yy,复制5行数据
  • 5x,删除5个字符
  • p/P 粘贴复制修改或者删除的数据,p粘贴在行上,P粘贴在行下

撤销和恢复

  • u 撤销最近一次修改
  • ctrl+r 撤销最近一次撤销
  • U 撤销所有修改

搜索

  • /text 向后搜索
  • ?text 向前搜索
  • n 搜索下一个同样的的内容
  • N 搜索上一个同样内容
  • R,进入替换状态,esc退出

读取,保存与退出

读取保存退出这些操作都是在扩展模式下操作。

  • :w 保存
  • :w! 强制保存
  • :q 退出
  • :q! 强制退出
  • :wq 保存退出
  • :wq! 强制保存退出
  • :r filename 将另一个文件读入到当前文件内光标所在位置后
  • :1,20 w filename 将1-20行写入新文件中
  • :29,$ w filename 将第20行至最后一行写入新文件
  • :1,20 w»filename 将第1值20行追加到另一个文件中

定位

  • G 跳转到文件最后一行
  • 1G 跳转到文件的第一行
  • ctrl-d 往下滚动半屏
  • ctrl+u 往上滚动半屏
  • H 跳转到本屏显示的第一行
  • M 调转到本屏显示的中间一行
  • L 跳转到本屏显示的最后一行
  • z+Enter 使当前的行成为屏幕显示的第一行
  • z- 使当前行成为屏幕的最后一行

查找与替换

使用sed进行查找和替换

sed是linux下一个很常用的工具。在扩展模式下输入s即可使用sed进行替换。

  • s/a/b 将光标之后的第一个a替换成b
  • s/a/b/g 将光标所在行的全部a替换成b
  • 1,10s/a/b/g 将第1行到第10行的a全部替换成b,不加/g就是替换每行的第一个a
  • 1,$s/a/b/g 将文件所有a替换成b

设置

  • :set 显示常用配置选项
  • :set all 显示所有配置选项
  • :set number 显示行号
comments powered by Disqus