vim 进阶用法
模式转换 > - 普通模式 -> 插入模式: i
- 插入模式 -> 普通模式: esc
移动光标(上下左右)
- 在普通模式下: 上:k 下:j 左:h 右:l
- 本行头: 0 本行头:^ 本行尾巴:$
- 迅速移动(跳过空格):ctrl + 箭头
- 迅速移动(跳过符号):shift + 箭头
- 移至顶部:gg
- 移至底部:g
- 跳行: :# (#为自然数) 跳行: #g(#为自然数)
- 移动光标#个字符: # + space
- 寻书移动到页面顶部、中间、底部: h m l
- 在一行中快速定位到某一个位置: f+字符
- 移动到某一回到位置前: t+字符
保存
- 退出: :q
- 强制退出,不保存: :q!
- 保存: :w
- 另存为: :w filename
- 保存并退出: :wq 保存并退出: :x
- 移动到某一回到位置前: t+字符u
复制
- 复制当前行到系统剪切板: "+yy
- 复制所选内容到系统剪切板: "+y
- 选择: v 复制: y
- 复制当前行到vim板剪切: yy
粘贴
- vim剪切板至下一行: p
- vim剪切板至上一行: P
删除
- del: x
- backspace: X
- 向后删除#个字符: #x
- 向前删除#个字符: #X
- 删除当前单词: diw
- 删除到某一个字符位置: df+字符
- 删除到某一个字符前: dt+字符
删除/剪切
- 删除所在光标下的#行: #dd
- 删除所在光标上的#行: #dk
- 向下删除至底部: dG
- 向上删除至顶部: dgg
- 向右删除至末: d$
- 向左删除至始:d0
撤销以及反撤销
- 撤销: u
- 反撤销: ctrl + r
批量选择
- 向下: G
- 向上: gg
- 选中某个方格: ctrl + v
- 选中某个段落: vap
- 以段落为单位选择: v{ or v}
- 选中某个括号内的东西: vi(
缩进格
- 向前缩进: <<
- 向后缩进: >>
- 自动缩进: ==
搜索
- 向下搜索: /string + enter (n为下一个)
- 向上搜索: ?string + enter (n为上一个)
- 从#1行到#2行,搜索替换x为y
- :#1,#2s/x/y/g (#1 #2为自然数)
- :#1,#2s/x/y/gc (替换前确认confirm)
特殊搜索
字符 | 含义 |
---|---|
^ | 放在字符串前,匹配行首的字符 |
$ | 放在字符串后,匹配行尾的字符 |
< | 匹配一个字符的头 |
> | 匹配一个字符的尾 |
. | 匹配任何单个正文字符 |
[str] | 匹配str中的任何单个字符 |
[^str] | 匹配任何不在str中的单个字符 |
[a-b] | 匹配a~b之间的字符 |
* | 匹配前一个字符的0次或多次出现 |
\ | 转义后面的字符 |
大小写转换
- 将光标下的字母改变大小写: ~
- 可视化模式下: U 大写 u 小写
设置set
- 显示行号: :set nu
- 取消行号: :set nonu
- 设置缩进: :set tabstop=#
- 自动缩进: :set autoindent
- 显示名称: :set laststatus=2
- 显示行符: :set list
- 取消行符: :set nolist
多窗口
- 开出新窗口: :sp
- 切换窗口: ctrl w + 上下键
改写
- 修改单个字符: r
- 改写多个字符: c
- 数值加一: ctrl + a
- 数值减一: ctrl + x
有关宏Macro
- 录制宏: q+单字母+指令+q (开始+给予+指令+结束)
- 运行宏: @+宏值
- 运行上一个宏: @@
- 运行#个宏: # + @ + 宏
- 显示宏内容: " + 宏值 + p
- 编译宏内容: :let @宏值=“指令”
其他
- 显示路径: 普通模式下先按1 在按ctrl + g
- 显示历史命令窗口: q: (回车退出)
- 新增新行并且转入为插入: o
特殊补充
- 迅速移动到页面顶部,中间,底部:h m l
- 单个字符往后跳:w 单个字符往前跳:b
- 每个字符往下跳:shift + w
- 旋转某个方格: ctrl + v
- 修改单个字符: r + 修改内容