Vim 实用技巧必知必会
吴咏炜
前 Intel 资深软件架构师
21753 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 25 讲
Vim 实用技巧必知必会
15
15
1.0x
00:00/00:00
登录|注册

15|插件荟萃:不可或缺的插件

Visual-Multi
NERDCommenter
Airline
GitGutter
Fugitive
课后练习
内容小结
使用方法
安装和配置
五个重要插件的介绍
Vim 插件的重要性
主题总结
Vim 插件荟萃:不可或缺的插件

该思维导图由 AI 生成,仅供参考

你好,我是吴咏炜。
关于 Vim 的基本知识,我们已经讨论得差不多了。下面,我们需要的是练习和积累,在实践中成长。在今天的这一讲里,我们就来看看一些我们之前还没来得及介绍、但真的“必需”的插件,让你的开发效率再进行一次大幅提升。
跟之前各讲比起来,这讲会比较轻松。不过,在你已经学过了 Vim 的基本原理之后(特别是如果你学习了拓展 4 的样例,进一步了解了插件代码是如何编写的话),我希望你看到这些插件时,不仅可以看到它们的外观和用法,而且还能大概知道它们的工作原理。这样,你就不再仅仅是一个初级用户,而是已经晋升为真正的 Vim 高手,能够根据自己的需要进行定制,甚至是“魔改”了。

Fugitive

对于大部分开发者来说,使用 Git 应该已经和呼吸空气一样自然了吧。我跟很多工作经历丰富的开发者一样,从 CVS 的年代开始(那时我还一直维护着 CVSMenu),经历了 SVN,然后看着 Git 慢慢一统天下,号令江湖。在 Vim 中如何高效地使用 Git,当然也就成了个不得不讨论的话题。
今天,我会介绍两个 Git 插件。一个是重量级的、功能很多的 Fugitive,一个是集中在几个特色小功能上的 GitGutter。下面我们就从 Fugitive 开始。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Vim 插件是提高开发效率的关键,本文介绍了几个不可或缺的插件。首先是 Fugitive,它提供了全功能的 Git 支持,让用户可以在 Vim 中直接使用 Git 命令。接着介绍了 GitGutter,专注于单个文件内的修改管理,通过边栏符号和配色标注文件的修改。Airline 是一个界面美观且功能丰富的插件,可以自动集成超过 50 个 Vim 插件,并在状态栏上展示相关信息。NERDCommenter 提供了对代码块或代码行加上注释及去除注释的功能。最后介绍了 Visual-Multi,允许在多个不同的位置上放置光标,从而对所有位置进行有效编辑。这些插件的介绍和使用方法,可以帮助 Vim 用户提高开发效率。通过课后练习,读者可以更好地掌握这些插件的用法,进一步提升 Vim 的使用效率。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Vim 实用技巧必知必会》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • 我来也
    浓缩的都是精华! ------------- 这里面的5个插件我安装了4个,认认真真看完了英文说明文档的就有3个. Fugitive 是认真看完了文档的.  另外推荐一个介绍该插件的系列视频:  http://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/  该视频虽然创作于2011年,但很多东西到现在都还是适用的.  该视频的作者,就是<vim实用技巧>的英文作者.这个质量应该还是有保证的. GitGutter 我也是认真看完了文档.  在该插件的首页readme.md中有介绍,怎么让`[c`、`]c`在所有打开的buffers中跳转.  (默认只在当前buffer中跳转) Airline 虽然安装了,但没深入研究过. NERDCommenter 没有安装,而是使用了tpope的[vim-commentary](https://github.com/tpope/vim-commentary/) vim-visual-multi 是最近才接触的,也是认真看完了文档.  这个插件的质量应该是没话说,作者修复问题的速度简直超乎想象.  美中不足的是该插件官方的配图比较老旧,虽然效果都展现出来了,但是按键没有展示出来或者展示的不对.  要是能有热心的小伙伴能去贡献一些文档和配图就好了. ------------- 有些插件的功能实在是太强大了,就像上面的`Fugitive`. 我们真的很难一次就把它学会并用好. 而是需要在实践的过程中,反复的用,反复的练习与思考. 很有可能你偶尔想到的功能,别人都已经给你提供了,只是你不知道而已. 再就是如果有能够与高手交流和碰撞的机会,学起来会更快. ------------- 老师文中的`使用 Visual-Multi 来完成类型更名操作`配图,其实第一步的<C-N>可以不需要, 直接开始第二步的`\\A`,最终的效果都一样.

    作者回复: 手动点赞(现在表情符号似乎有点问题)。

    2020-09-04
    7
  • 我来也
    想不到`git reset --hard`还能不带参数. 之前我都是用的`git checkout .`来实现这个功能. 由于`--hard`是强制丢弃掉修改,所有需要慎重. 一般我都是连贯的用`git reset --hard HEAD~`来强制回退到指定版本. 另外,强烈推荐一下zsh的git插件 使用说明在这里: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git 我是反向学习,既然别人把这些命令拎出来弄了缩写,说明这些命令应该算是高频的命令了. 就是因为这个用的太顺手了,导致有些场景我都不用`Fugitive`了.

    作者回复: Zsh 的 git 插件确实好,我现在已经完全习惯了 gc、gd、gdca 这样的命令了。

    2020-09-04
    2
    3
  • 哒哒爱夏
    老师您好,我本来的配置让我在 vim 分屏时有竖直分割线和水平分割线的,我加上了 AirLine 之后,只有竖直分割线了,水平分割线变成了 AirLine 提供的当前文件的信息,怎么配置能让我的水平分割线回来呢?

    作者回复: 不太确定你原先的水平分割线怎么加的。如果你原先是用“:set fillchars+=stl:-,stlnc:-”这样的方式,我试验下来在 Airline 里也仍然是有效的。 我是觉得用状态栏作为分隔符就足够了。如果你有特殊需求,请先说一下你“原先”的设置和效果是什么样的。

    2023-05-24归属地:北京
  • 谁家内存泄露了
    请问老师,有没有能实现cmake的自动补全功能的推荐呀,项目中时不时的会修改cmake,平台移植也会需要。。

    作者回复: 不知道。我在编辑这种文件时只使用通用的补全:<C-P>,<C-N>,<C-X><C-F>,等等。

    2022-10-09归属地:江苏
  • 谁家内存泄露了
    吴老师好, 我的操作如下: 1 在源码文件的结尾新创建两行,如: } 2 执行:wq保存退出; 3 执行git diff <该源文件>; 4 git diff会显示出“\ No newline at end of file”的字样,并且显示仅新增了一行; 5 再度vim打开该源文件,发现,确实只有一行了。 我猜想vim应该是在存储的时候做了一些动作,但我期望让他怎么继续保存两行,请问老师是否有什么建议?

    作者回复: 是一个理解问题,不是 Vim 的问题。 特别地,Notepad 之类工具在尾部有一个空行,Vim 是看作正正好好,没有额外的空行。你看到的 git 提示(4 git diff 那里),恰恰是说明你的代码原先最后一行没有以换行结尾,git 和 Vim 都不喜欢。你以为加了两行,Vim 认为你是加了一行,补足了一个该有的换行符。

    2022-09-21归属地:上海
    3
  • 剑米
    老师,请教一下,在编译服务器安装了vim-airline插件,但是putty远程登录上去的状态栏是显示乱码的,按照网上的说法是要更新字体,但是折腾了一圈一直搞不定。我的编译服务器是ubuntu12.04的。最近忽然迷惑了,这个字体我是要安装到服务器上,还是安装在远程登录的windows这边

    作者回复: Windows 上,然后在 Putty 里配置使用这个字体。 我自己是在 Git Bash 带的 mintty 里面配 DejaVu Sans Mono for Powerline 字体。没问题。注意要用 UTF-8 编码。

    2020-12-09
  • pyhhou
    赞,都是非常有用的插件,������ 有一个疑问,在使用像 :Git,:PackUpdate 这样的命令。额外的信息会通过新窗口的形式呈现。在当前的配置下,默认都是水平分割窗口。如何改为默认竖直分割窗口呢?(记得之前使用 :PackUpdate 安装插件后,信息都是通过竖直分割的窗口呈现,不知道是不是因为我们配置了一些东西而导致的)尝试过在 .vimrc 文件中加 set spr,但是貌似不起作用

    作者回复: 是 minpac 更新后行为变化了。插件的行为,就要看插件的文档了。比如,对于 minpac,文档里有的: minpac#init([{config}]) *minpac#init()* Initialize minpac. `{config}` is a Dictionary of options for configuring minpac. Option Description ~ …… progress_open Specify how to show the progress of |minpac#update()|. "none": Do not open the progress window. (Compatible with minpac v2.0.x or earlier.) "horizontal": Open the progress window by splitting horizontally. "vertical": Open the progress window by splitting vertically. "tab": Open the progress window in a new tab. Default: "horizontal"

    2020-09-08
  • 若离
    \ 作为快捷键感觉不是很好按到,而且键盘还是 HHKB 哈哈哈

    作者回复: HHKB 还好。用 Dvorak 键盘的更玩不了 Vim,哈哈。

    2020-09-07
  • ChamPly
    都是正在使用的插件:)

    作者回复: 那这讲对你帮助就不大啰,哈哈。

    2020-09-04
  • YouCompleteMe
    老师,有什么愉快休闲插件推荐吗😬

    作者回复: 呃,等下一讲,算是有一点点吧。:-)

    2020-09-04
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部