Vim 快捷键

Posted timxgb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim 快捷键相关的知识,希望对你有一定的参考价值。

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*
  • 当前行查找字符 fxFxtxTx
  • 基本替换 :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 快捷键的主要内容,如果未能解决你的问题,请参考以下文章

phpstorm 实用快捷键 和 注释

latex在vim中的代码片段

VIM 代码片段插件 ultisnips 使用教程

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段