VIM
VI编辑器的增强版
VIM模式
编辑模式与命令模式的转换必须先退回到一般模式
- 一般模式
- 编辑模式
- 命令模式
一般模式(底线命令模式)
光标
- 上移 ↑ k
- 下移 ↓ j
- 左移 ← h
- 右移 → l
翻页
- 下翻 Page Down Ctrl+f
- 上翻 Page Up Ctrl+b
定位
- 所在行首 Home 0 |
- 所在行尾 End $
- 顶部行首 H
- 中部行首 M
- 底部行首 L
- 文尾 G
- 文首 gg 1G
- 上个单词 b
- 下个单词 w
移动
- 跳转到指定行 [行号]G
- 向下跳转指定行 [行号]+Enter
查找
- 查找内容 /[查找内容]
- 向下查找 n
- 向上查找 N
复制
- 复制当前行 yy
- 向下复制指定行 [行数]yy
- 复制(文首到当前行) ygg
- 复制(当前行到文尾) yG
- 复制(行首到光标) y0 y Home
- 复制(光标到行尾) y$ y End
粘贴
- 向后粘贴 p
- 向前粘贴 P
替换
- 单次替换 r
- 替换模式 R (ESC退出)
删除
- 先后删除 x
- 先后删除指定数量字符 [数量]x
- 向前删除 X
- 删除所行 dd
- 向下删除指定行 [行数]dd
- 删除(文首到当前行) dgg
- 删除(当前行到文尾) dG
- 删除(行首到光标) d0 d Home
- 删除(光标到行尾) d$ d End
操作
- 撤销 u
- 恢复 Ctrl+r
编辑模式(输入模式)
- i 光标所在处插入
- I 行首插入
- a 从光标所在下一个字符处插入
- A 行末插入
- o 向下插入行
- O 向上插入行
命令模式(默认)
: # 进入命令模式
? # 进入命令模式
/ # 进入命令模式
! # 强制执行
start,end # 指定起始终止行
% # 整个文件
保存(写出)
:w [文件名] # 另存为
:start,end w [文件名] # 部分另存为(从start行到end行)
读取
:r [文件名] # 插入指定文件内容
:start,end r [文件名] # 插入指定文件部分内容(从start行到end行)
替换!
g # 匹配行内所有
c # 确认提示
(y/n/a/q/l/^E/^Y)==>(同意/拒绝/同意所有/退出/同意并跳转到行首/下翻/上翻)
:s [/被替换文本] [/替换文本] # 替换文本(当前行第一个)
:s [/被替换文本] [/替换文本]/g # 替换文本(当前行所有)
:start,end s [/被替换文本] [/替换文本]/g # 替换文本(指定起始终止行)
:%s [/被替换文本] [/替换文本]/g # 替换文本(当前文件所有)
:%s/a/b/gc # 文件范围内将a替换为b并依次确认
:10,$ s/a/b/g # 从第10行到尾行将a替换为b
退出
:wq # 保存并退出
:q! # 强行退出
指令
:! [shell指令] # 临时执行指令
:! ll # 临时查看文件列表
行号
:set nu # 显示行号
:set nonu # 取消行号