前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim 插件管理与推荐

vim 插件管理与推荐

作者头像
用户3147702
发布2022-06-27 15:51:35
1.4K0
发布2022-06-27 15:51:35
举报
文章被收录于专栏:小脑斧科技博客

1. 引言

编辑器对于所有人来说都再熟悉不过,不论是任何学历、任何工作的人,只要接触电脑,总要录入一些文字,这个时候必将有一款编辑器进入你的视野。 事实上,无论是 vim、emacs 还是如今风靡的各种甜品级编辑器,他们最为吸引人的无不在于他们那超级强大的定制化能力,这也是几十年来,vim 与 emacs 仍然能够走在前列的原因,他们的背后都有着强大的社区,不断为他们产出着一个又一个优秀的扩展,让他们不断焕发耀眼的光芒,而 vim8 与 neovim 的诞生,更让人领略到这宝刀不老的风采。 作为一个 vim 铁杆拥趸,本文就来聊一聊博主心中 vim 最强大的几个插件以及安装、使用方法。

2. 插件管理神器 — vim-plug

既然要聊插件,那么我们就必须首先考虑到这些插件的管理,如何方便的安装和卸载这些插件。 事实上,vim 下的插件管理插件是非常多的,最为有名的要数 vundle 和 vim-plug,但如果你使用的是 vim8 的话,还是更为推荐 vim-plug,因为他已经支持 vim8 的 async process 特性了。

2.1. vim-plug 的安装

2.1.1. vim

unix 环境下执行下面命令即可安装:

代码语言:javascript
复制
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

windows 环境下的 powershell 中执行:

代码语言:javascript
复制
md ~\vimfiles\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'  
    (New-Object Net.WebClient).DownloadFile(
        $uri,
        $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
            "~\vimfiles\autoload\plug.vim"  
        )
    )

2.1.2. neovim

Unix 环境下执行:

代码语言:javascript
复制
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

windows 环境下的 powershell 中执行:

代码语言:javascript
复制
md ~\AppData\Local\nvim-data\site\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'  
    (New-Object Net.WebClient).DownloadFile(
        $uri,
        $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
            "~\AppData\Local\nvim-data\site\autoload\plug.vim"  
        )
    )

2.2. vim-plug 的配置和使用

2.2.1. 配置

在 vim 或 neovim 配置文件中,写入:

代码语言:javascript
复制
call plug#begin('~/.vim/plugged')
Plug 'suan/vim-instant-markdown', {'for': 'markdown'}
Plug 'mbbill/undotree'  
Plug 'scrooloose/nerdtree'  
call plug#end()

在 begin 与 end 之间,你可以加入任意多的插件,每个插件配置都以关键字 Plug 开头,这里安装了 vim-instant-markdown、undotree、nerdtree,下面会进行一一介绍。 Plug 的配置还可以添加可选的参数:

选项

说明

branch/tag/commit

github 的 Branch/tag/commit

rtp

子目录名

dir

用户本地保存插件的路径

as

为插件重命名

do

安装时触发 Post-update hook

on

在命令或按键触发时运行插件

for

在打开某类文件时触发运行插件

frozen

不自动升级插件

  • o — 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中
  • go — 效果同上,不过光标保持在文件目录里,类似预览文件内容的功能
  • i、s — 水平分割或纵向分割窗口打开文件,前面加 g 类似 go 的功能
  • B — 打开书签
  • t — 在标签页中打开
  • T — 在后台标签页中打开
  • p — 到上层目录
  • P — 到根目录
  • K — 到同目录第一个节点
  • J — 到同目录最后一个节点
  • m — 显示文件系统菜单(添加、删除、移动操作)
  • ? — 帮助
  • q — 关闭

5. 文件编辑历史 — undoTree undoTree 插件配合 vim 本身具有的 undolog 存储功能,实现了简单实用的文件编辑历史的查看、回滚等功能。 即使文件被关闭,文件的编辑历史仍然不会消失,可以说是非常强大且极为实用的功能。 5.1. 配置 首先我们需要配置开启 vim 本身的 undolog 存储功能: set undofile set undodir=~/.vim/undodir 5.2. 使用 安装 undotree 以后,在 vim 命令模式下执行 :UndotreeShow 即可打开文件对应 undolog 可视化窗口,此后的使用就非常简单了,这里也就不赘述了,你也可以通过 ? 查看帮助信息。 6. 将你的 vim 变成 IDE — 代码自动补全 coc 首先,你需要保证以下依赖:

  • neovim >= 0.4.3 或 vim >= 8.0.1453
  • node >= 10.12

6.1. 安装语言支持 coc 作为一个功能极为强大的代码补全插件,首先需要安装语言支持。 在命令模式下,执行 :CocInstall coc-json coc-php 6.2. 使用 neovim 对浮窗的支持相比于 vim8 更为强大,因此使用 coc 建议在 neovim 上使用。 具体的使用方法可以参考: https://github.com/neoclide/coc.nvim。 7. 其他我在使用的插件 下面几个插件的安装方式和使用方式都非常简单,就不做单独的讲解,有需要的直接添加即可,详情也可以参考 github:

  1. vim-airline/vim-airline 与 vim-airline/vim-airline-themes — 定义漂亮的标签栏和状态栏
  2. airblade/vim-rooter — 配合 NERDTree 使用,NERDTree 默认打开的是项目根目录而不是当前目录
  3. airblade/vim-gitgutter — vim 中管理 git,通过快捷键可以看到当前分支上最新的修改信息
  4. junegunn/fzf.vim — vim 必备的模糊查找插件

虽然现在诸如 spaceVim 之类的一键式安装各种插件,将 vim 打造成一个 IDE 的配置文件在网上多如牛毛,但如果你没有经过一个个插件的安装和体验,这样高度集成式的插件包将会如同鸡肋一样食之无味

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小脑斧科技博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 引言
  • 2. 插件管理神器 — vim-plug
    • 2.1. vim-plug 的安装
      • 2.1.1. vim
      • 2.1.2. neovim
    • 2.2. vim-plug 的配置和使用
      • 2.2.1. 配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档