Vim 实用技巧必知必会
吴咏炜
前 Intel 资深软件架构师
立即订阅
2250 人已学习
课程目录
已更新 12 讲 / 共 24 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (2讲)
开篇词|我们为什么要学 Vim?
免费
导读|池建强:Vim 就是四个字“唯快不破”
基础篇 (10讲)
01|各平台下的 Vim 安装方法:上路前准备好你的宝马
02|基本概念和基础命令:应对简单的编辑任务
03|更多常用命令:应对稍复杂的编辑任务
04|初步定制:让你的 Vim 更顺手
05|多文件打开与缓冲区:复制粘贴的正确姿势
06|窗口和标签页:修改、对比多个文件的正确姿势
07|正则表达式:实现文件内容的搜索和替换
08|基本编程支持:规避、解决编程时的常见问题
09|七大常用技巧:让编辑效率再上一个台阶
10|代码重构实验:在实战中提高编辑熟练度
Vim 实用技巧必知必会
15
15
1.0x
00:00/00:00
登录|注册

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

吴咏炜 2020-07-31
你好,我是吴咏炜。
在前几讲,我已经介绍了不少 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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Vim 实用技巧必知必会》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(15)

  • 逗逼师父
    迫不及待要学后面的内容了
    2020-07-31
    3
  • 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
    1
  • 一步
    怎么查看 runtimepath 这个环境变量的?直接 echo 出来是空的

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

    2020-08-02
    1
    1
  • __@948CSheLL
    老师您好,我想请问一下我在ubuntu上下载的vim-gtk3,8.1的版本,命令行模式打开vim,可是没有显示菜单栏,请问我该怎么调出来呢?

    作者回复: 用 vim 而不是 gvim 了吧?

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

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

    2020-08-13
  • Dev
    Valloric/YouCompleteMe这个插件无法安装

    作者回复: 这个插件有点复杂性。后面我会用整整一讲来讨论这个插件。

    2020-08-10
  • 瀚海星尘
    用的vim-pug加1,它的结构是简单了,但是就不容易和vim的默认目录结构对上~所以也一直以为vim是按照关联放置的相关文件,今天才知道,原来是按unix style的类型放置的啊!等后面学深了研究看看vim-plug是咋工作的~

    作者回复: 它应该就是自己会修改 runtimepath。你可以自己观察一下,用

    set rtp?

    2020-08-09
  • __@948CSheLL
    老师您好,请问let do_syntax_sel_menu = 1的功能是在菜单中显示文件类型,我该怎么才能看出加上他和不加上他的效果呢

    作者回复: 设置之后,语法(Syntax)菜单项下就会直接出现所有的文件类型。没有设置的话,只有一项“语法 > 在菜单中显示文件类型”(“Syntax > Show File Types in Menu”)。

    2020-08-06
  • __@948CSheLL
    老师您好,我想请问一下let do_syntax_sel_menu = 1设置了之后,我该如何在vim菜单中显示文件内容呢?

    作者回复: 设置之后,Syntax菜单项就会直接出现所有的文件类型。

    2020-08-06
  • Woong
    怎么让文件直接在终端打开,而不另启MacVim。
    但是配置使用MacVim的配置。

    作者回复: 如果你按安装步骤,使用 Homebrew 并确保 /usr/local/bin 在 /usr/bin 前面的话,直接用 vim 命令就行。有什么特殊问题吗?

    2020-08-04
  • ChamPly
    现在的包管理应该是vim-plug用的比较多了吧

    作者回复: 没有看到市场份额调查。基本功能都大同小异。

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

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

    2020-08-02
  • 一步
    使用的是 vim-plug 包管理工具,但是在自己的 vim 目录生成的是 plugged 目录,没有使用 plugin 文件夹,这应该是 plug 工具自己进行处理了

    作者回复: 应该是吧(我没用过这个)。你再往下层看,应该可以看到 plugin、doc 这样的目录。

    2020-08-02
  • 江厚宏
    老师你好,我是mac电脑,下了minpac之后,总会出现如:Invalid expression: exists('loaded_mru')^M 这种报错,我只能一个文件一个文件执行::set fileformat=unix。
    很麻烦,有没有一劳永逸的办法?

    作者回复: 出现 ^M,说明你的文件以 DOS 行尾存进去了。是不是从 Windows 复制文件过去了?

    转换的命令你也知道,所以关键是怎么防止这种情况出现。要记住,Git for Windows 在签出文件时,缺省是会把 Unix 行尾变成 Windows 行尾的。

    2020-08-02
    2
  • return
    git clone https://github.com/k-takata/minpac.git \ ~/.vim/pack/minpac/opt/minpac
    请教老师, 中间 的 反斜杠 \ 有啥讲究吗, 因为我感觉 加不加 都行吧。

    作者回复: 如果多行的话,行尾需要加。写成一行,那就不需要 \ 了。

    2020-08-02
    1
收起评论
15
返回
顶部