Vim 使用技巧总结

来源:互联网 发布:成龙国际影响力知乎 编辑:程序博客网 时间:2024/05/18 01:20

模式切换

1.进入命令行模式

  • Esc 在任何模式下回到正常模式

进入插入模式

  • i 在当前光标之前插入
  • I 在整行之前插入
  • a 在当前光标之后插入
  • A 在整行最后插入
  • cw 删除一个单词并进入插入模式
  • cc 删除一整行并进入插入模式
  • r 替换当前字符
  • R 连续替换多个字符

选择、复制、剪切和粘贴

  • v 进入可视模式,可以移动光标进行行选择
  • V 进入可视模式,可以移动光标进行行选择(选择整行)
  • Ctrl + v 进入可视模式,可以移动光标进行列选择
  • 可视模式下,选择后使用y,复制选中内容,使用x或者d剪切选中内容,使用p粘贴选中内容
  • yy 复制一整行,前面可以加数字复制多行,即nyy
  • dd 剪切一整行,前面可以加数字剪切多行,即ndd
  • yw 表示拷贝从当前光标到光标所在单词结尾的内容.
  • D 表示删除从当前光标到光标所在行尾的内容.
  • dw 表示删除从当前光标到光标所在单词结尾的内容.
  • y0 表示拷贝从当前光标到光标所在行首的内容.
  • d0 表示删除从当前光标到光标所在行首的内容.
  • y$ 表示拷贝从当前光标到光标所在行尾的内容.
  • d$ 表示删除从当前光标到光标所在行尾的内容.
  • yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容.
  • dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容.

查找与替换

  • / 后输入要查找的内容,进行前向匹配
  • ? 后输入要查找的内容,进行后向匹配
  • n 查找下一项
  • N 查找上一项
  • :nohls 取消高亮
  • :set ignorecase 忽略大小写
  • :set nignorecase 关闭忽略大小写
  • f(F)x 在光标所在行进行向前(后)查找,并跳到字符x处
  • *(#) 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的
    下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方
    向查找.
  • g*(g#) 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而
    是匹配包含该单词的所有字符串
  • gd 查找与光标所在单词相匹配的单词, 并将光标停留在文档的非注释段中第一次出现这个单词的地方
  • :s/aa/bb/g 将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb
  • :%s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb
  • :12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb
  • :12,23s/^/#/ 将从12行到23行的行首加入 # 字符
  • :%s= *$== 将所有行尾多余的空格删除
  • :g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除

代码折叠与缩进

  • zf 折叠代码
  • zo 打开折叠
  • zr 关闭折叠
  • zc 关闭折叠
  • > 向右缩进
  • > 向左缩进
  • = 自动化进行选中部分代码排版
  • :set shiftwidth=4 设置自动缩进 4 个空格, 当然要设自动缩进先.
  • :set sts=4 即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.
  • :set tabstop=4 实际的 tab 即为 4 个空格, 而不是缺省的 8 个.
  • :set expandtab 在输入 tab 后, vim 用恰当的空格来填充这个 tab.

光标移动

  • h 向左移动
  • j 向下移动
  • k 向上移动
  • l 向右移动
  • 0 移动到行首
  • $ 移动到行尾
  • ^ 移动到一行的句首
  • w 移动到下一个单词
  • b 移动到上一个单词
  • H 移动到屏幕首行
  • M 移动到屏幕中间
  • L 移动到屏幕最低行
  • gg 移动到文档首行
  • G 移动到文档尾行
  • Ctrl + f 向前翻页
  • Ctrl + b 向后翻页
  • :n 跳转到第k行
  • % 跳转到光标对应处反括号,包括()[]{}等
  • '' 跳转到上一次标记处
  • `. 跳转到上一次修改点
  • '. 跳转到上一次修改行
  • Ctrl + ] 跳转到函数定义处(需要有ctags配合)
  • Ctrl + oCtrl + t 返回 (同上)
  • K 查看光标所在处的帮助文档

快捷输入

  • Ctrl + N(P) 通过向上向下搜索匹配单词并且补全
  • Ctrl + x + l 快速补齐整行内容
  • Ctrl + x + f 快速补齐路径
  • :abbr a b 通过缩写a来替代输入b

多窗口操作

  • (v)sp filename 分(竖)横屏打开新文件
  • :ls 查看打开了哪些文件
  • :b file 跳转到文件file处
  • Ctrl + w + + 扩大窗口
  • Ctrl + W + - 缩小窗口
  • Ctrl + W + h 移动到窗口左边
  • Ctrl + W + j 移动到窗口下边
  • Ctrl + W + k 移动到窗口上边
  • Ctrl + W + l 移动到窗口右边

其他命令

  • u 撤销操作
  • Ctrl + r 反撤销操作
  • :! cmd 执行终端命令
  • :g/^/exec "s/^/".strpart(line(".")." ", 0, 4) 在行首插入行号
  • :runtime! syntax/2html.vim 转换 txt 成 html,根据默认的颜色配置来转
  • vim中的很多命令可以通过数字键的组合实现重复操作
0 0