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 显示行号