VIM 常用指令
date
Feb 6, 2022
slug
vim-command
status
Published
tags
使用笔记
summary
^/$ => 移动到当前行的最(前/后)一个字符位置...
type
Post
移动光标操作
- ^/$ => 移动到当前行的最(前/后)一个字符位置
- h/j/k/l => 光标左下上右移动
- gg/G => 文件(开头/结尾)
- w/b => 向(后/前)移动一个单词,光标停留在单词首部
- W/B => 同上,忽略标点符号
- ctrl+o => 回到上一次光标的位置
- n: => 移动到第 n 行
- {} => 以函数级上下移动
翻页滚动操作
- ctrl+d => 往下滚动半屏
- ctrl+u => 往上滚动半屏
选择操作
- v => 进入 visual 模式,使用j/k/h/l进行文本选择
- ctrl+v => 进入 visual block 模式,使用j/k可选中一行或者多行。此时按shift+i可进入多行编辑模式,完成之后按esc
- V => 使用j/k选择多行
复制粘贴操作
- y => 复制文本
- yy|Y => 复制当前行
- P/p: => 粘贴在光标(前/后)面
- yw => 复制光标所在位置的单词
- d => 剪切文本
插入操作
- O/o => 在当前行的(前/后)面追加一行
- i/a => 在光标之(前/后)插入字符
- I/A => 在行(首/尾)插入字符
删除操作
normal 模式:
- x => 删除光标所在的字符
- X => 删除光标左边的字符
- dd => 删除当前行
- dG => 删除从光标到文末的所有内容
- D => 删除从光标到本行末尾的字符
- s => 删除光标所在的字符并开始插入
- S或者cc => 删除光标所在行并开始插入
- :1,10d => 删除指定行内容, 例如删除第 1 至 10 行的内容
- J => 删除两行之间的换行符
insert 模式:
- ctrl+w => 删除从当前光标到单词开始位置的所有字符
查找操作
- / => 从上往下查找
- ? => 从下往上查找
- \# => 向上查找光标所在的单词
- * => 向下查找光标所在的单词
- n => 查找下一个
- N => 查找上一个
在当前路径下全局查找字符,例如“foo”::vim foo src/** | copen
替换操作
- :%s/foo/bar => 将找到的第一个 foo 替换为 bar
- :%s/foo/bar/gi => 全局替换 => i表示大小写不敏感
批量缩进
在选中相应的文本后:
- => 往里缩进
- << => 往外缩进
代码折叠/展开操作
- zf => 折叠代码
- zM => 折叠所有代码
- zo => 展开代码
- zR => 展开所有折叠
文件保存操作
- ZZ => 保存并退出
撤消操作
- u => 撤消命令
- ctrl+r => 恢复撤消
- . => 重复上一次的操作
分屏操作
- :sp => 水平分屏
- :vs => 垂直分屏
- ctrl+w+w => 在分屏之间切换
- ctrl+w+c或者:q => 关闭当前分屏
- ctrl+w+r => 交换两个左右分屏的位置