30 个 VIM 常用命令和使用技巧整理

vim教程网总结了30个非常实用的Vim使用技巧,以便大家使用Vim时更加得心应手。

  • 删除从光标位置到单词结尾之间的字符并进入插入模式:cw

  • 删除光标所在单词并进入插入模式:ciw,删除光标所在位置的单词及空格:daw

  • 高亮选中标签内部的内容:vit

  • 正向移动到下一单词的开头:w,反向移动到当前单词/上一单词的开头:b

  • 移动到当前行的第n列:n|

Vim快速跳转任意行、任意列详细介绍了 | 命令。

  • 重绘屏幕并把当前行显示在窗口正中:zz

  • 将光标所在行移到窗口的顶端:zt,将光标所在行移到窗口的底部:zb

  • Vim跳转位置前进:<Ctrl-i>,跳转位置后退:<Ctrl-0>,类似浏览器的前进后退功能

  • 回到上次跳转的位置:'',回到上次编辑的位置:'.

Vim位置标记介绍

  • 重复执行上次的Vim命令行模式命令:@:

  • 查看Vim当前打开文件的文件名、位置信息和状态等:<Ctrl-g> (同时按下Ctrl键和g键)

  • Vim命令行模式下,% 表示当前活动缓冲区对应文件的完整文件路径

更多内容,可以查看Vim教程网上的文章Vim打开文件命令edit和保存文件命令write

  • 不离开插入模式,粘贴寄存器中的文本:<C-r>{register} ({register}是我们想要插入的寄存器的名字)

  • 重选上一次由可视模式所选择的文本范围:gv

vim-tips

  • 在Vim可视化模式下高亮选中区域后按下 : 键,命令行上会预先填充一个范围 :'<,'> 代表高亮选区的范围

  • 把任意寄存器的内容插入到命令行::<Ctrl-r>{register}

  • 插入模式下同时按下 <Ctrl-r>,再输入=后,输入任意算数式(如333*2),回车,即可看到运算结果 (这是使用了Vim表达式寄存器 "=)

  • 只读寄存器 "% 表示Vim当前活动文件缓冲区的文件名,在Vim插入模式下,按 <Ctrl-r>% 可将当前文件名输入到文件中

关于Vim寄存器的更多内容,可以参考Vim教程网上的文章《vim寄存器介绍

  • 把光标所在当前单词插入Vim命令行:<Ctrl-r><Ctrl-w>

  • 光标所在行用 . 表示,文件的最后一行用 $ 表示,% 整个文件 (:1,$ 的简写形式)

  • 删除当前光标到本行行尾的所有内容:d$,删除当前光标到本行行首的所有内容:d0

  • 删除所有行:dG:%d

  • 调换Vim当前光标之后的两个字符的顺序:xp

  • 当前行自动缩进对齐 (又称自动格式化):==,当前文件所有行自动缩进对齐:gg=G

  • 正向移动到下一个 {char} 所在之处的字符上:f{char},正向移动到下一个 {char} 所在之处的一个字符上:t{char}

  • Vim普通模式下 ; 命令会重复查找上次 f 命令所查找的字符

关于 t 命令的介绍,可以查看文章Vim字符查找与光标快速移动

  • Vim分屏后增加某个屏幕的高度:<Ctrl-w>+ (先同时按下Ctrl键和w键,再按下+键)

  • 多个标签页中的所有文件中的单词 food 都替换成 drink,可以使用 tabdo 命令::tabdo %s/food/drink/g

  • 临时退出插入模式,执行单条命令又返回插入模式:<Ctrl-o>

  • 修改当前光标所在字符为a:ra

  • 将单词转成大写:gUiw,将当前单词转成小写:guiw

  • 另存为文件::saveas <filename>

  • 读取文件并将内容插入到光标后::r <filename>

  • 回退到15分钟前的文件内容::earlier 15m


vim
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

感觉记了好多命令没用,还是得常用

5年前 评论

@lovecn 不是每天都要用到吗 :100:

5年前 评论

vim 党路过,水一下

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!