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

04|初步定制:让你的 Vim 更顺手

通过 minpac 安装扩展包
安装 minpac
plugin
colors
doc
syntax
最近使用的文件
Vim 软件包
用户的 Vim 配置目录
安装目录下的运行支持文件
Vim 8 新功能
Vim 的目录结构
课后练习
初步定制:让你的 Vim 更顺手

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

你好,我是吴咏炜。
在前几讲,我已经介绍了不少 Vim 的常用命令,我想你已经略有心得了吧。今天我们转换一下视角,来讲一下 Vim 这个软件本身。
作为一个 Vim 的使用者,光熟悉命令是不够的,你还需要定制 Vim。因为每个人的习惯和需求都是不一样的,一个高度定制化的 Vim 环境能大大提高你的工作效率。
今天,我会先带你了解一下 Vim 的运行支持文件目录结构,然后我们再一起探索 Vim 8 带来的新功能,及如何对 Vim 进行初步配置来使得 Vim 更加好用。

Vim 的目录结构

Vim 的工作环境是由运行支持文件来设定的。如果你想要定制 Vim,就要熟知 Vim 有哪些不同类型的运行支持文件,分别存放在哪里,怎样能快捷地找到它们。Vim 比较有意思的一点的是,虽然运行支持文件是在 Vim 的安装目录下,但用户自己是可以“克隆”这个目录结构的。也就是说,你自己目录下的用户配置,到你深度定制的时候,也有相似的目录结构。所以,我就先从这些文件的目录结构开始讲起。

安装目录下的运行支持文件

Vim 的运行支持文件在不同的平台上有着相似的目录结构。以 Vim 8.2 为例,它们的标准安装位置分别在:
大部分 Unix 下面:/usr/share/vim/vim82
macOS Homebrew 下:/usr/local/opt/macvim/MacVim.app/Contents/Resources/vim/runtime
Windows 下:C:\Program Files (x86)\Vim\vim82
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Vim 8 新功能及软件包管理 Vim 8是一个持续改进的应用程序,自Vim 8.1到Vim 8.2,共有2424个补丁,平均每天超过4个补丁。Vim 8的重要新功能包括Vim软件包的支持、异步任务支持和终端支持。Vim的目录结构传统Unix式,插件通常分散在多个目录下。Vim 8引入了软件包管理,用户可以在用户配置目录下的pack目录中管理包的目录,方便管理和加载。文章介绍了如何使用minpac包管理器,以及通过minpac安装和管理扩展包的方法。另外,还介绍了如何安装最近使用的文件功能,以及如何在文本界面上唤起Vim的文本菜单。Vim 8的软件包功能使得维护Vim的扩展变得更为容易,而包管理器minpac可以帮助用户更方便地安装和管理Vim软件包。读者可以通过本文了解Vim 8的新功能和软件包管理,以提高工作效率。

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

全部留言(28)

  • 最新
  • 精选
  • 吴咏炜
    置顶
    由于 minpac 本身的修改,文中给出的需要加到 .vimrc 中的代码目前应改成: if exists('g:loaded_minpac') " Minpac is loaded. call minpac#init() call minpac#add('k-takata/minpac', {'type': 'opt'}) " Other plugins endif if has('eval') " Minpac commands command! PackUpdate packadd minpac | source $MYVIMRC | call minpac#update() command! PackClean packadd minpac | source $MYVIMRC | call minpac#clean() command! PackStatus packadd minpac | source $MYVIMRC | call minpac#status() endif 请大家注意一下。 示例的 Git 库里的指定标签上仍然是老的代码。最新的代码则已经调整过。
    2020-10-25
    6
    7
  • pyhhou
    赞,理清了 vim 的文件和配置架构,以及 .vim 文件的由来。 另外请教老师一个问题,在 Mac 下,我看到 vim 是有两个安装位置的: /usr/share/vim/vim82 /usr/local/opt/macvim/MacVim.app/Contents/Resources/vim/runtime 我在想,之前的配置都是基于 Homebrew 下安装的 macvim,那么是否可以考虑将 /usr/share/vim/ 直接 rm -rf 删除掉?避免两个版本的 vim 造成混淆?

    作者回复: 新版的Mac上,你想删都删不掉。系统目录下的文件是受保护的。 不要动系统的东西。通过设 PATH 之类的环境变量调使用顺序即可。即使 Linux 上也是如此,非系统的东西装 /usr/local、$HOME 这样的地方,不要修改系统 /usr/bin、/usr/lib、/usr/share 这样的地方,这样最不容易出问题,最安全。

    2020-08-04
    5
  • 分清云淡
    求问老师,文章中的 gif 动图有什么工具制作的,特别是动图中 大大的按键提示。多谢

    作者回复: 按键是 KeyCastr,录屏是 GIF Brewery。

    2020-08-02
    4
  • 怎么查看 runtimepath 这个环境变量的?直接 echo 出来是空的

    作者回复: 不是 Bash!是在 Vim 内部,这是 Vim 脚本。

    2020-08-02
    2
    3
  • 大狗爱吃鱼
    PackUpdate命令后等很久很久,也没有安装好,请问下这是怎么回事啊?

    作者回复: 估计是GitHub访问速度问题。换上网方式或换时间再试吧。清晨可能会好点。 你可以从纯手工git clone的方法试试。估计也还是会很慢很慢。

    2020-10-18
    2
  • JRTx
    每次执行PackUpdate,GVIM下方就会提示"Minpac has not been initialized. Use the default val Press ENTER or type command to continue" 系统环境:Windows 7 旗舰版 VIM版本:8.2.1845 配置文件采用的tag是l4-windows。经查阅GitHub上的Minpac源码发现与此段源码有关 function! s:ensure_initialization() abort if !exists('g:minpac#opt') echohl WarningMsg echom 'Minpac has not been initialized. Use the default values.' echohl None call minpac#init() endif endfunction 对Vimscript不熟悉,希望老师能够指正。

    作者回复: minpac的使用方式本身发生过一些变化。你试试按最新的.vimrc版本是不是没有问题。没问题的话就是这个原因。如果仍然有问题的话,可以单独重新提问,并报告一下你的详细环境信息,包括操作系统,Vim版本等。

    2020-10-20
    1
  • __@948CSheLL
    老师您好,请问vim中的菜单是什么,我该如何在vim中显示出菜单?

    作者回复: 如果你这么问的话,估计你是用终端 Vim 没有菜单吧?图形界面的Vim,跟一般的图形应用程序一样,有菜单的。安装那讲的截图里你就可以看到菜单的。不那么必需,用Vim基本上可以不用菜单的。

    2020-08-13
    1
  • 极客酱酱
    eunuch.vim插件很实用 :Remove: Delete a file on disk without E211: File no longer available. :Delete: Delete a file on disk and the buffer too. :Move: Rename a buffer and the file on disk simultaneously. See also :Rename, :Copy, and :Duplicate. :Chmod: Change the permissions of the current file. :Mkdir: Create a directory, defaulting to the parent of the current file. :Cfind: Run find and load the results into the quickfix list. :Clocate: Run locate and load the results into the quickfix list. :Lfind/:Llocate: Like above, but use the location list. :Wall: Write every open window. Handy for kicking off tools like guard. :SudoWrite: Write a privileged file with sudo. :SudoEdit: Edit a privileged file with sudo.

    作者回复: 这个在第9讲介绍了。

    2023-02-23归属地:四川
  • bianf
    我在将留言第一条的语句配置到.vimrc文件中后,执行命令:PackUpdate,提示E117, 未定义的函数,minpac#update,请问是什么原因,要如何解决

    作者回复: 什么平台?会不会是 clone 那步没有成功? 我目前测试了一下,仍然是可以成功执行 PackUpdate 的。(不过,直接访问 GitHub 的速度感人,有连接中断现象。)

    2022-02-22
    2
  • 朱雯
    centos7 vim8.0 minpac root用戶可以安裝插件,但是普通用戶不能安裝,一直報錯minpac error(129) : 老師給的兩個配置偶讀沒有用。。。

    作者回复: 看一下使用了哪个目录,目录有没有权限问题。用户自己的 $HOME/.vim 目录照理说不应该有此类问题。有没有可能曾经使用 sudo 运行 vim,把目录的权限变掉了?

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