Vim 快捷键

移动光标



  • 左移 ​​h​​、右移 ​​l​​、下移 ​​j​​、上移 ​​k​
  • 向下翻页 ​​ctrl + f​​,向上翻页 ​​ctrl + b​
  • 向下翻半页 ​​ctrl + d​​,向上翻半页 ​​ctrl + u​
  • 移动到行尾 ​​$​​,移动到行首 ​​0​​(数字),移动到行首第一个字符处 ​​^​
  • 移动光标到下一个句子 ​​)​​,移动光标到上一个句子 ​​(​
  • 移动到段首 ​​{​​,移动到段尾 ​​}​
  • 移动到下一个词 ​​w​​,移动到上一个词 ​​b​
  • 移动到文档开始 ​​gg​​,移动到文档结束 ​​G​
  • 移动到匹配的 ​​{}.().[]​​ 处 ​​%​
  • 跳到第 ​​n​​ 行 ​​ngg​​ 或 ​​nG​​ 或 ​​:n​
  • 移动光标到屏幕顶端 ​​H​​,移动到屏幕中间 ​​M​​,移动到底部 ​​L​
  • 读取当前字符,并移动到本屏幕内下一次出现的地方 ​​*​
  • 读取当前字符,并移动到本屏幕内上一次出现的地方 ​​#​

查找替换

  • 光标向后查找关键字 ​​#​​ 或者 ​​g#​
  • 光标向前查找关键字 ​​*​​ 或者 ​​g*​
  • 当前行查找字符 ​​fx​​, ​​Fx​​, ​​tx​​, ​​Tx​
  • 基本替换 ​​:s/s1/s2​​ (将下一个s1替换为s2)
  • 全部替换 ​​:%s/s1/s2​
  • 只替换当前行 ​​:s/s1/s2/g​
  • 替换某些行 ​​:n1,n2 s/s1/s2/g​
  • 搜索模式为 ​​/string​​,搜索下一处为 ​​n​​,搜索上一处为 ​​N​
  • 制定书签 ​​mx​​, 但是看不到书签标记,而且只能用小写字母
  • 移动到某标签处 ​​x​​,1旁边的键
  • 移动到上次编辑文件的位置 ​​.​

PS:​​.​​ 代表一个任意字符 ​​*​​ 代表一个或多个字符的重复


编辑操作

  • 光标后插入 ​​a​​, 行尾插入 ​​A​
  • 后插一行插入 ​​o​​,前插一行插入 ​​O​
  • 删除字符插入​​s​​, 删除正行插入 ​​S​
  • 光标前插入 ​​i​​ ,行首插入 ​​I​
  • 删除一行 ​​dd​​ ,删除后进入插入模式 ​​cc​​ 或者 ​​S​
  • 删除一个单词 ​​dw​​ ,删除一个单词进入插入模式 ​​cw​
  • 删除一个字符 ​​x​​ 或者 ​​dl​​ ,删除一个字符进入插入模式 ​​s​​ 或者 ​​cl​
  • 粘贴 ​​p​​ ,交换两个字符 ​​xp​​ ,交换两行 ​​ddp​
  • 复制 ​​y​​ ,复制一行 ​​yy​
  • 撤销 ​​u​​ ,重做 ​​ctrl + r​​ ,重复 ​​.​
  • 智能提示 ​​ctrl + n​​ 或者 ​​ctrl + p​
  • 删除 ​​motion​​ 跨过的字符,删除并进入插入模式 ​​c{motion}​
  • 删除到下一个字符跨过的字符,删除并进入插入模式,不包括 ​​x​​ 字符 ​​ctx​
  • 删除当前字符到下一个字符处的所有字符,并进入插入模式,包括 ​​x​​ 字符, ​​cfx​
  • 删除 ​​motion​​ 跨过的字符,删除但不进入插入模式 ​​d{motion}​
  • 删除 ​​motion​​ 跨过的字符,删除但不进入插入模式,不包括 ​​x​​ 字符 ​​dtx​
  • 删除当前字符到下一个字符处的所有字符,包括 ​​x​​ 字符 ​​dfx​
  • 如果只是复制的情况时,将12-17条中的 ​​c​​ 或 ​​d​​ 改为 ​​y​
  • 删除到行尾可以使用 ​​D​​ 或 ​​C​
  • 拷贝当前行 ​​yy​​ 或者 ​​Y​
  • 删除当前字符 ​​x​
  • 粘贴 ​​p​
  • 可以使用多重剪切板,查看状态使用 ​​:reg​​ ,使用剪切板使用 ​​"​​,例如复制到 ​​w​​ 寄存器,​​"wyy​​,或者使用可视模式 ​​v"wy​
  • 重复执行上一个作用使用.
  • 使用数字可以跨过 ​​n​​ 个区域,如 ​​y3x​​ ,会拷贝光标到第三个 ​​x​​ 之间的区域, ​​3j​​ 向下移动 ​​3​​ 行
  • 在编写代码的时候可以使用 ​​]p​​ 粘贴,这样可以自动进行代码缩进
  • ​>>​​ 缩进所有选择的代码
  • ​<<​​ 反缩进所有选择的代码
  • ​gd​​ 移动到光标所处的函数或变量的定义处
  • ​K​​ 在man里搜索光标所在的词
  • 合并两行 ​​J​
  • 若不想保存文件,而重新打开 ​​:e!​
  • 若想打开新文件 ​​:e filename​​,然后使用 ​​ctrl + ^​​ 进行文件切换

窗口操作

  • 分隔一个窗口 ​​:split​​ 或者 ​​:vsplit​
  • 创建一个窗口 ​​:new​​ 或者 ​​:vnew​
  • 在新窗口打开文件 ​​:sf {filename}​
  • 关闭当前窗口 ​​:close​
  • 仅保留当前窗口 ​​:only​
  • 到左边窗口 ​​ctrl + w, h​
  • 到右边窗口 ​​ctrl + w, l​
  • 到上边窗口 ​​ctrl + w, k​
  • 到下边窗口 ​​ctrl + w, j​
  • 到顶部窗口 ​​ctrl + w, t​
  • 到底部窗口 ​​ctrl + w, b​

宏操作

  • 开始记录宏操作 ​​q[a-z]​​,按 ​​q​​ 结束,保存操作到寄存器 ​​[a-z]​​ 中
  • ​@[a-z]​​ 执行寄存器 ​​[a-z]​​ 中的操作
  • ​@@​​ 执行最近一次记录的宏操作

可视操作

  • 进入块可视模式 ​​ctrl + v​
  • 进入字符可视模式 ​​v​
  • 进入行可视模式 ​​V​
  • 删除选定的块 ​​d​
  • 删除选定的块然后进入插入模式 ​​c​
  • 在选中的块同是插入相同的字符 ​​IESC​

跳到声明

  • ​[[​​ 向前跳到顶格第一个 ​​{​
  • ​[]​​ 向前跳到顶格第一个 ​​}​
  • ​]]​​ 向后跳到顶格的第一个 ​​{​
  • ​]]​​ 向后跳到顶格的第一个 ​​}​
  • ​[{​​ 跳到本代码块的开头
  • ​]}​​ 跳到本代码块的结尾

挂起操作

  • 挂起 ​​Vim ctrl + z​​ 或者 ​​:suspend​
  • 查看任务 在 ​​shell​​ 中输入 ​​jobs​
  • 恢复任务 ​​fg [job number]​​(将后台程序放到前台)或者 ​​bg [job number]​​(将前台程序放到后台)
  • 执行 ​​shell​​ 命令 ​​:!command​
  • 开启 ​​shell​​ 命令 ​​:shell​​ ,退出该 ​​shell exit​
  • 保存vim状态 ​​:mksession name.vim​
  • 恢复vim状态 ​​:source name.vim​
  • 启动vim时恢复状态 ​​vim -S name.vim​

Vim 快捷键_剪切板