vim 插件管理与推荐

2020-07-23 19:06:53   最后更新: 2020-07-23 23:14:43   访问数量:78




编辑器对于所有人来说都再熟悉不过,不论是任何学历、任何工作的人,只要接触电脑,总要录入一些文字,这个时候必将有一款编辑器进入你的视野

事实上,无论是 vim、emacs 还是如今风靡的各种甜品级编辑器,他们最为吸引人的无不在于他们那超级强大的定制化能力,这也是几十年来,vim 与 emacs 仍然能够走在前列的原因,他们的背后都有着强大的社区,不断为他们产出着一个又一个优秀的扩展,让他们不断焕发耀眼的光芒,而 vim8 与 neovim 的诞生,更让人领略到这宝刀不老的风采

作为一个 vim 铁杆拥趸,本文就来聊一聊博主心中 vim 最强大的几个插件以及安装、使用方法

 

 

既然要聊插件,那么我们就必须首先考虑到这些插件的管理,如何方便的安装和卸载这些插件

事实上,vim 下的插件管理插件是非常多的,最为有名的要数 vundle 和 vim-plug,但如果你使用的是 vim8 的话,还是更为推荐 vim-plug,因为他已经支持 vim8 的 async process 特性了

 

vim-plug 的安装

vim

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

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

 

 

windows 环境下的 powershell 中执行:

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" ) )

 

 

neovim

Unix 环境下执行:

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 中执行:

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" ) )

 

 

vim-plug 的配置和使用

配置

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

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/commitgithub 的 Branch/tag/commit
rtp子目录名
dir用户本地保存插件的路径
as为插件重命名
do安装时触发 Post-update hook
on在命令或按键触发时运行插件
for在打开某类文件时触发运行插件
frozen不自动升级插件

 

使用

打开 vim 或 neovim,在命令模式下,执行下面的命令即可实现插件安装、卸载等一系列操作:

命令说明
PlugInstall [name ...] [#threads]安装插件
PlugUpdate [name ...] [#threads]安装或更新插件
PlugClean[!]删除所有未列出的插件
PlugUpgrade升级 vim-plug
PlugStatus查看插件状态
PlugDiff对比插件安装与配置差异
PlugSnapshot[!] [output path]生成插件安装脚本

 

markdown 是我们平常写文档的好帮手,但很多人苦于没有一个高效方便的实时预览工具,所以,最先介绍的插件就是实时预览 markdown 的 vim-instant-markdown:

https://github.com/suan/vim-instant-markdown

 

安装

vim 实时预览 markdown 插件是通过本地创建一个 nodejs server,然后通过浏览器访问实现的,因此,他的核心是 nodejs 上运行的插件 instant-markdown-d:

https://github.com/suan/instant-markdown-d

 

所以第一步是需要安装 nodejs,你可以通过 docker、包管理机制、源码包编译安装等任何方式安装,这里不做赘述

安装好 nodejs 后,只需要执行:

npm -g install instant-markdown-d

 

插件安装

接下来就需要安装 vim 的插件 vim-instant-markdown 了,如上文在 vim 配置文件中写入:

Plug 'suan/vim-instant-markdown', {'for': 'markdown'}

 

然后在 vim 命令模式下执行:

:PlugInstall

 

即可安装

 

使用

在 plug 安装时的额外参数中,指定了 {'for': 'markdown'},这意味着只要打开 markdown 文件,会自动运行插件

vim 插件 vim-instant-markdown 负责打开浏览器并加载 http://localhost:8090,而 instant-markdown-d 则负责生成、渲染和返回这个页面,真正做到了实时预览的效果

 

 

NerdTree 是一款非常好用的 vim 目录树插件

 

安装

有了 vim-plug,插件安装变得非常容易了,只需要在 vim 配置文件中写入:

Plug 'scrooloose/nerdtree'

 

然后在 vim 命令模式下执行:

:PlugInstall

 

即可安装

 

绑定快捷键

安装好 nerdtree 以后,在命令模式通过 :NERDTree 即可呼出当前目录为基础的目录树了

你可以通过 nnoremap 关键字绑定快捷键来更加方便的使用

nnoremap <F6:UndotreeToggle<cr>

 

使用

在 NERDTree 窗口中,你可以和正常编辑文件一样,通过h j k l移动光标定位,还可以通过下面命令进行额外的操作:

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

 

 

undoTree 插件配合 vim 本身具有的 undolog 存储功能,实现了简单实用的文件编辑历史的查看、回滚等功能

即使文件被关闭,文件的编辑历史仍然不会消失,可以说是非常强大且极为实用的功能

 

配置

首先我们需要配置开启 vim 本身的 undolog 存储功能:

set undofile

set undodir=~/.vim/undodir

 

使用

安装 undotree 以后,在 vim 命令模式下执行 :UndotreeShow 即可打开文件对应 undolog 可视化窗口,此后的使用就非常简单了,这里也就不赘述了,你也可以通过 ? 查看帮助信息

 

 

 

首先,你需要保证以下依赖:

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

 

安装语言支持

coc 作为一个功能极为强大的代码补全插件,首先需要安装语言支持

在命令模式下,执行 :CocInstall coc-json coc-php

 

使用

neovim 对浮窗的支持相比于 vim8 更为强大,因此使用 coc 建议在 neovim 上使用

具体的使用方法可以参考:

https://github.com/neoclide/coc.nvim

 

下面几个插件的安装方式和使用方式都非常简单,就不做单独的讲解,有需要的直接添加即可,详情也可以参考 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 必备的模糊查找插件

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤

 

 

 

linux 使用及配置相关

 






技术帖      linux      vim      plugin      插件      vim-plug     


京ICP备15018585号