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 => 交换两个左右分屏的位置

© jianxiaoBai 2021 - 2022