Windows gvim安装插件
文章目录
1 Vundle
1.1 安装前准备
使用vundle需要先安装两个软件:
安装方式一:
C:\> choco install -y git
C:\> choco install -y curl
安装方式二:
下载curl压缩包,将其解压到任意目录,并在PATH
添加环境变量。
例如:解压到 C:\Program Files\curl
,然后将C:\Program Files\curl\bin
添加到环境变量PATH
(手动添加环境变量需要重启电脑才能使设置生效)。
C:\Users\Iain>curl --version
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: 2017-11-14, security patched: 2019-11-05
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
C:\Users\Iain>git --version
git version 2.28.0.windows.1
C:\Users\Iain>
1.2 安装Vundle
命令行执行命令git clone https://github.com/VundleVim/Vundle.vim.git ~/vimfiles/bundle/Vundle.vim
1.3 编辑 _vimrc
在用户家目录找到配置文件_vimrc
(若没有则新建),在其中添加以下内容(如果想在gvim生效,则添加到_gvimrc
)
filetype off
set shellslash
set rtp+=~/vimfiles/bundle/Vundle.vim
call vundle#begin('~/vimfiles/bundle')
"""""""""以后插件都添加到这里"""""""""""
Plugin 'VundleVim/Vundle.vim'
""""""""""""""""""""""""""""""""""""""
call vundle#end() " required
filetype plugin indent on " required
注:在gvim的安装目录下(一般为C:\Program Files (x86)\Vim
)也有一个_vimrc
,那个是软件安装时自带的,里面都是一些系统的设置,不建议在里面添加自定义设置,建议在用户家目录下新建一个同名文件,把自定义设置项添加进去。
1.4 插件安装示例
vundle命令简介
弃用的命令(仍可用,但不建议用) | 新的命令 | 含义 |
---|---|---|
Bundle | Plugin | |
BundleInstall(!) | PluginInstall(!), VundleInstall(!) | 安装插件 |
BundleUpdate | PluginUpdate, VundleUpdate | 更新插件 |
BundleSearch(!) | PluginSearch(!), VundleSearch(!) | 搜寻插件 |
BundleClean | PluginClean(!), VundleClean(!) | 卸载插件 |
BundleList | PluginList | 列出已安装插件 |
1.4.1 安装nerd comment
下面以插件nerd comment为例:
1、打开配置文件_vimrc
,添加Plugin 'preservim/nerdcommenter'
2、另外打开一个vim界面,执行命令:PluginInstall
1.4.2 nerd comment基本用法
\ca,切换注释方式,比如将注释方式/* */
切换成//
\cc,注释当前行
\cs,以”性感”的方式注释
\cA,在当前行尾添加注释符,并进入Insert模式
\cu,取消注释
……
更多用法参见nerd comment详情页
2 vim-plug
将vim-plug克隆到~/vimfiles/autoload
文件夹下:
PS C:\Users\fy> git clone https://hub.fastgit.org/junegunn/vim-plug.git ~/vimfiles/autoload
然后在.vimrc
中以如下方式安装插件:
call plug#begin('~/vimfiles/plugged')
Plug 'clouduan/vim-searchme'
Plug 'jiangmiao/auto-pairs'
Plug 'joshdick/onedark.vim'
Plug 'lilydjwg/colorizer'
Plug 'luochen1990/rainbow'
Plug 'mhinz/vim-startify'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'octol/vim-cpp-enhanced-highlight'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree'
Plug 'yggdroot/indentline'
Plug 'altercation/vim-colors-solarized'
Plug 'rhysd/vim-clang-format'
Plug 'tpope/vim-surround'
call plug#end()
刷新.vimrc
,执行:PlugInstall
就能安装添加到列表中的插件了。
由于墙的原因,所以使用vim-plug安装或更新插件时经常会失败。但可以通过如下两种方式之一解决:
方式一:修改git的配置文件 .gitconfig
vim-plug是使用git更新和安装插件的。编辑文件 C:\Users\***\.gitconfig
,在其中添加如下内容。若没有此文件则新建。
[url "https://ghproxy.com/https://github.com/"]
insteadOf = https://github.com/
; [url "https://ghproxy.com/https://raw.githubusercontent.com/"]
; insteadOf = https:///raw.githubusercontent.com/
; [url "https://github.com.cnpmjs.org/"]
; insteadOf = https://github.com/
方式二:修改文件 ~/vimfiles/autoload/plug.vim
将
let fmt = get(g:, 'plug_url_format', 'https://git::@github.com/%s.git')
改为
let fmt = get(g:, 'plug_url_format', 'https://git::@github.com.cnpmjs.org/%s.git')
或改为
let fmt = get(g:, 'plug_url_format', 'https://git::@hub.fastgit.org/%s.git')
将
let plug.uri = substitute(plug.uri,
\ '^https://git::@github\.com', 'https://github.com', '')
改为
let plug.uri = substitute(plug.uri,
\ '^https://git::@github\.com\.cnpmjs\.org', 'https://github.com.cnpmjs.org', '')
或改为
let plug.uri = substitute(plug.uri,
\ '^https://git::@hub.fastgit\.org', 'https://hub.fastgit.org', '')
Command | Description |
---|---|
PlugInstall [name ...] [#threads] | Install plugins |
PlugUpdate [name ...] [#threads] | Install or update plugins |
PlugClean[!] | Remove unlisted plugins (bang version will clean without prompt) |
PlugUpgrade | Upgrade vim-plug itself |
PlugStatus | Check the status of plugins |
PlugDiff | Examine changes from the previous update and the pending changes |
PlugSnapshot[!] [output path] | Generate script for restoring the current snapshot of the plugins |
3 使用vim8原生方式安装插件
首先在用户目录下的vimfiles
目录中新建一个目录pack
,然后根据需要在pack
目录下新建各级分类子目录***
,目录名任意,在目录***
下在创建子目录start
、opt
。这里的目录名除***
可以任取之外,其它目录名都不能任意取名。
目录建好之后就可以将插件克隆到start
或opt
中使用了,克隆到start目录中的插件会在vim启动时自动加载;而克隆到opt目录中的插件不会自动加载,需要在vim命令行模式下使用命令packadd plugin_name
进行加载。
PS C:\Users\fy\vimfiles> Show-Tree -Path .\pack\ -Depth 3
C:\Users\fy\vimfiles\pack\
├──color_scheme
│ ├──opt
│ │ ├──darcula
│ │ ├──gruvbox
│ │ └──solarized
│ └──start
│ └──onedark
├──syntax
│ ├──opt
│ └──start
│ ├──indent-guides
│ └──vim-ps1
└──utility
├──opt
│ ├──c-support
│ ├──nerdtree
│ ├──syntastic
│ ├──ultisnips
│ ├──vim-snippets
│ └──vim-surround
└──start
├──autocomplpop
├──colorizer
├──nerdcommenter
├──rainbow
├──vim-clang-format
└──vim-startify
3.1 手动安装
如上所示,我在C:\Users\fy\vimfiles\pack\
目录下自定义了三个目录color_scheme
、syntax
、utility
,然后又在这三个目录下创建了start
、opt
,然后就能将下载的插件放在里面了。
注:下面的命令在 powershell 中执行
1、安装插件时,只需按照需要克隆到start或opt目录中
PS > git clone https://ghproxy.com/https://github.com/joshdick/onedark.vim.git C:\Users\fy\vimfiles\pack\color_scheme\start\onedark
2、若是不再需要相应插件,则直接删除该插件目录
PS > rm C:\Users\fy\vimfiles\pack\color_scheme\start\onedark -Recurse -Force
3.2 自动化为 Vim 或 Neovim 安装插件
3.2.1 配置方法
1、将 powershell 版本升到 7.x ,再将下面的函数添加到 powershell 7.x 的配置文件C:\Users\**\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
2、将自己git的配置文件C:\Users\***\.gitconfig
修改为如下所示
;[url "https://github.91chi.fun/https://github.com/"]
[url "https://ghproxy.com/https://github.com/"]
insteadof = https://github.com/
; [url "https://ghproxy.com/https://raw.githubusercontent.com/"]
;insteadOf = https:///raw.githubusercontent.com/
; [url "https://hub.fastgit.org/"]
; insteadOf = https://github.com/
powershell函数
function kvim-plugin-manager
{
<#
.SYNOPSIS
Vim / Neovim 的插件管理器
.DESCRIPTION
Vim / Neovim 的插件管理器。支持插件的安装、卸载、查询,及显示已安装插件列表
注意:要想使用此函数,首先将 powershell 版本升到 7.x ,再将此函数添加到
powershell 7.x 的配置文件 C:\Users\**\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
.PARAMETER install
要安装的插件的 url,如 https://github.com/tpope/vim-surround 或
https://github.com/tpope/vim-surround.git,url 可不带 .git 后缀。
支持同时安装多个插件,安装多个时,url 之间用英文逗号分隔
.PARAMETER lazyLoad
插件是否懒加载,若开启此开关则设置为懒加载
.PARAMETER uninstall
要卸载的插件的全限定名。
支持同时卸载多个插件,卸载多个时,插件名之间用英文逗号分隔
.PARAMETER neovim
默认为 Vim 安装插件,若开启此开关则为 Neovim 安装插件
.PARAMETER list
列出已安装的插件
.PARAMETER search
要搜索的插件的名字,不必是插件的全限定名,若名字有空格则用引号括住。
支持同时搜索多个插件,搜索多个时,插件名之间用英文逗号分隔
.EXAMPLE
kvim-plugin-manager -install https://github.com/tpope/vim-surround
# 为 Vim 安装插件 vim-surround
.EXAMPLE
kvim-plugin-manager -install https://github.com/tpope/vim-surround -neovim
# 为 Neovim 安装插件 vim-surround
.EXAMPLE
kvim-plugin-manager -uninstall vim-surround
# 为 Vim 卸载插件 vim-surround
.EXAMPLE
kvim-plugin-manager -uninstall vim-surround -neovim
# 为 Neovim 卸载插件 vim-surround
.EXAMPLE
kvim-plugin-manager -list # 列出 Vim 已安装的插件
.EXAMPLE
kvim-plugin-manager -list -neovim # 列出 Neovim 已安装的插件
.EXAMPLE
kvim-plugin-manager -search "multiple cursors", vimsurround
# 搜索插件 "multiple cursors", vimsurround
#>
param (
[Parameter(Mandatory, ParameterSetName = 'InstallPlugin')]
[string[]]$install,
[Parameter(Mandatory, ParameterSetName = 'UninstallPlugin')]
[string[]]$uninstall,
[Parameter(Mandatory, ParameterSetName = 'ListPlugin')]
[switch]$list,
[Parameter(Mandatory, ParameterSetName = 'SearchPlugin')]
[string[]]$search,
[Parameter(ParameterSetName = 'InstallPlugin')]
[Switch]$lazyLoad,
[Parameter(ParameterSetName = 'InstallPlugin')]
[Parameter(ParameterSetName = 'UninstallPlugin')]
[Parameter(ParameterSetName = 'ListPlugin')]
[Switch]$neovim
)
begin {
#basedir为插件的安装目录
$basedir = if ($neovim) {
Join-Path $env:LOCALAPPDATA 'nvim\pack\myplugins'
} else {
Join-Path $HOME "vimfiles\pack\myplugins"
}
if (-not (Test-Path $basedir)) {
New-Item -Path $basedir -ItemType Directory -Force
}
}
process {
switch ($PsCmdlet.ParameterSetName) {
"InstallPlugin" {
$install | foreach {
$plugUrl = $_
if (!$plugUrl.EndsWith(".git")) {
$plugUrl = $plugUrl + ".git"
}
#获取插件名
$plugName = $plugUrl.Substring($plugUrl.LastIndexOf("/") + 1).Replace(".git", "")
#powershell 7.x 才支持三目运算符,及Join-Path多个路径
$plugType = $lazyLoad ? "opt" : "start"
$plugDir = Join-Path $basedir $plugType $plugName
git clone $plugUrl $plugDir
#生成插件的帮助文件
$plugDocDir = Join-Path $plugDir 'doc'
if (Test-Path $plugDocDir) {
vim -c "exe 'helptags ${plugDocDir}' |q"
}
}
}
"UninstallPlugin" {
$uninstall | foreach {
$plugDir = Join-Path $basedir 'start' $_
if (!(Test-Path $plugDir)) {
$plugDir = Join-Path $basedir 'opt' $_
}
Remove-Item $plugDir -Recurse -Force
}
}
'ListPlugin' {
$prompt = $neovim ? "Neovim INSTALLED PLUGINS:" : "Vim INSTALLED PLUGINS:"
Write-Host $prompt -ForegroundColor Green
$output = Show-Tree $basedir -Depth 2
$output | foreach { Write-Host "`t$($_)" }
}
'SearchPlugin' {
$search | foreach {
$search_url = "https://cn.bing.com/search?q=$($_) site:github.com"
$search_url = $search_url -replace " ", "%20"
Start-Process msedge $search_url
}
}
}
}
}
3.1.2 使用方法
PS > man kvim-plugin-manager
NAME
kvim-plugin-manager
SYNOPSIS
Vim / Neovim 的插件管理器
SYNTAX
kvim-plugin-manager -install <String[]> [-lazyLoad] [-neovim] [<CommonParameters>]
kvim-plugin-manager -uninstall <String[]> [-neovim] [<CommonParameters>]
kvim-plugin-manager -list [-neovim] [<CommonParameters>]
kvim-plugin-manager -search <String[]> [<CommonParameters>]
DESCRIPTION
Vim / Neovim 的插件管理器。支持插件的安装、卸载、查询,及显示已安装插件列表
注意:要想使用此函数,首先将 powershell 版本升到 7.x ,再将此函数添加到
powershell 7.x 的配置文件 C:\Users\**\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
PARAMETERS
-install <String[]>
要安装的插件的 url,如 https://github.com/tpope/vim-surround 或
https://github.com/tpope/vim-surround.git,url 可不带 .git 后缀。
支持同时安装多个插件,安装多个时,url 之间用英文逗号分隔
Required? true
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-uninstall <String[]>
要卸载的插件的全限定名。
支持同时卸载多个插件,卸载多个时,插件名之间用英文逗号分隔
Required? true
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-list [<SwitchParameter>]
列出已安装的插件,后跟 Vim 或 Neovim
Required? true
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-search <String[]>
要搜索的插件的名字,不必是插件的全限定名,若名字有空格则用引号括住。
支持同时搜索多个插件,搜索多个时,插件名之间用英文逗号分隔
Required? true
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-lazyLoad [<SwitchParameter>]
插件是否懒加载,若开启此开关则设置为懒加载
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-neovim [<SwitchParameter>]
默认为 Vim 安装插件,若开启此开关则为 Neovim 安装插件
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
OUTPUTS
-------------------------- EXAMPLE 1 --------------------------
PS > kvim-plugin-manager -install https://github.com/tpope/vim-surround
# 为 Vim 安装插件 vim-surround
-------------------------- EXAMPLE 2 --------------------------
PS > kvim-plugin-manager -install https://github.com/tpope/vim-surround -neovim
# 为 Neovim 安装插件 vim-surround
-------------------------- EXAMPLE 3 --------------------------
PS > kvim-plugin-manager -uninstall vim-surround
# 为 Vim 卸载插件 vim-surround
-------------------------- EXAMPLE 4 --------------------------
PS > kvim-plugin-manager -uninstall vim-surround -neovim
# 为 Neovim 卸载插件 vim-surround
-------------------------- EXAMPLE 5 --------------------------
PS > kvim-plugin-manager -list # 列出 Vim 已安装的插件
-------------------------- EXAMPLE 6 --------------------------
PS > kvim-plugin-manager -list -neovim # 列出 Neovim 已安装的插件
-------------------------- EXAMPLE 7 --------------------------
PS > kvim-plugin-manager -search "multiple cursors", vimsurround
# 搜索插件 "multiple cursors", vimsurround
RELATED LINKS
更多推荐
所有评论(0)