星期二, 四月 29, 2025

VIM学习笔记 使用Git Bash Shell环境

Git Bash是将Git版本控制系统和Bash Shell集成至单一界面的工具,允许用户在Windows系统的命令行环境中使用Git命令,为熟悉Linux系统的开发人员提供无缝体验;同时还能利用Bash强大的脚本和命令行功能。

集成Git Bash和ConEmu

如果您已经安装了GitConEmu,那么通过以下配置将可以在虚拟终端和Vim中调用Git Bash。

在ConEmu中,点击Win+Alt+P快捷键以打开设置对话框。

Git Bash

  1. 在侧边栏中,选择Startup下的Tasks
  2. 点击+按钮,新增项目;
  3. 输入"Bash::git bash"作为项目名称;
  4. Task Parameters编辑框中,指定启动目录和图标文件:
    /single /Dir "C:\" /icon "C:\Program Files\Git\mingw64\share\git\git-for-windows.ico"
  5. Commands编辑框中,指定Git Bash命令:
    "%ProgramFiles%\Git\bin\sh.exe" --login -i
  6. 点击Save Settings按钮,保存设置。

在ConEmu中,选择新建Git Bash终端窗口:

New Console

您可以在命令行环境下管理Git库:

Command

除了Git命令,Git Bash也提供一系列Linux经典命令工具,您可以使用$ help命令列出命令列表:

Help

配置Vim使用Git Bash

通过以下命令,可以查询到Vim在Windows下,默认使用命令提示符 "Command Prompt":

:set shell?

shell=C:\WINDOWS\system32\cmd.exe

vimrc配置文件中设置以下函数:

fun! ShellGitBash()
	let $CHERE_INVOKING=1
	set shell=C:\PROGRA~1\Git\bin\sh.exe
	set shellcmdflag=--login\ -c
	set shellxquote=\"
	set shellslash
	let $PATH .= ';C:\PROGRA~1\Git\bin'
endfun

通过以下命令,则可切换至Git Bash的Shell环境:

:call ShellGitBash()

在Vim中使用:terminal命令,即可打开Git Bash终端窗口:

terminal

你也可以在Vim命令行模式下,使用:!:shell命令,来执行bash命令

Ver 25.04.28  | YYQ<上一篇 | 目录 下一篇>

VIM学习笔记 插件管理器(minpac)

Vim8引入了内置的packages软件包功能。而minpac则是构建于packages软件包功能之上的轻量化插件管理器。

安装配置

首先在操作系统中,为minpac创建安装目录:

  • Linux:
    $ mkdir -p ~/.vim/pack/minpac/opt
  • Windows:
    $ mkdir -p ~/vimfiles/pack/minpac/opt

使用以下命令,将minpac作为手动载入的插件,安装在opt目录中:

$ cd ~/vimfiles/pack/minpac/opt
$ git clone https://github.com/k-takata/minpac.git

在vimrc配置文件中,添加以下命令:

packadd minpac
call minpac#init()

安装插件

minpac支持源码托管在GitHub的插件,你可以在github.com/vim-scripts/上找到vim官网里所有插件的镜像,也可以直接引用github.com的网址。

如果希望安装新插件,可以在vimrc配置文件中,添加以下minpac#add()命令:

call minpac#add('lilydjwg/colorizer')
call minpac#add('kshenoy/vim-signature')
call minpac#add('yyq123/HTML-Editor')

默认情况下,插件将被作为自动载入插件安装至start目录。

通过在函数中指定'type': 'opt'选项,将minpac自身作为手动载入插件进行注册。

call minpac#add('k-takata/minpac', {'type':'opt'})

然后使用以下命令,重新载入vimrc配置文件,并安装插件:

:source ~/.vimrc
:call minpac#update()

安装的插件将存放在pack子目录中,目录结构如下:

Directory

卸载插件

如果希望卸载插件,请先在vimrc文件中删除相关call minpac#add('')命令;然后重新载入vimrc文件,并执行以下命令:

:call minpac#clean()

更新插件

建议在vimrc文件中,增加以下命令映射以便于后续操作:

" minpac commands:
" 安装和更新插件
command! PackUpdate call minpac#update()
" 卸载插件
command! PackClean call minpac#clean()
" 查看插件状态
command! PackStatus call minpac#status()

然后就可以使用以下命令,批量更新所有已安装的插件:

:PackUpdate

帮助信息

使用以下命令,可以查看minpac的帮助信息:

:help minpac

Ver 25.4.22 | YYQ<上一篇 | 目录 下一篇>

星期日, 四月 20, 2025

VIM学习笔记 软件包(packages)

Vim8引入了内置的packages软件包功能。Vim软件包将创建一个或多个目录,用于安装和更新插件。和普通插件管理器相比,它主要有以下优点:

  • 软件包可作为归档下载,并可解压到单独的目录。这样文件就不会和其它插件的文件混杂。也方便后续更新和删除。
  • 软件包可以使用git等版本库进行更新。
  • 软件包可包含相互依赖的多个插件。
  • 软件包可包含启动时自动载入的插件和通过:packadd手动载入的插件。

任何位于~/.vim/pack之下的目录,都将被视为软件包。一个软件包,可以将插件存储在startopt子目录中:

  • ~/.vim/pack/*/start/{name}
    存储自动载入的插件
  • ~/.vim/pack/*/opt/{name}
    存储通过:packadd {name}命令手动载入的插件

其中,*可以为任意名称。

例如使用以下命令,创建以“plugins”命名的目录结构:

mkdir -p ~/.vim/pack/plugins/start

mkdir -p ~/.vim/pack/plugins/opt

安装配置

可以clone或者使用子模块(Submodules)功能,将git库同步到本地软件包目录。这也意味着,您可以在Git库里集中管理.vimrc配置文件和.vim目录结构,并同步到不同的计算机里。

Git子模块允许你将一个Git仓库作为另一个Git仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。

pack目录创建git库:

cd ~/.vim/pack
git init
git add *
git commit -m "Initial commit"
git submodule init
git remote add origin https://github.com/username/reponame.git
git push -u origin master

目录结构如下,之后安装的插件将存放在~/.vim/pack子目录中:

packages Directory

安装插件

软件包支持源码托管在GitHub的插件,你可以在github.com/vim-scripts/上找到vim官网里所有插件的镜像,也可以直接引用github.com的网址。

如果希望安装新插件,可以执行以下命令安装指定的插件:

$ git submodule add https://github.com/chrisbra/unicode.vim plugins/start/unicode

packages-git-submodule-add

然后使用以下命令,来提交变更:

$ git commit -m "Added submodules"
$ git push origin master

使用以下命令,可以安装用于演示Vim8.2新功能的killersheep小游戏。

$ git submodule add https://github.com/vim/killersheep plugins/opt/killersheep
$ git commit -m "Added killersheep"
$ git push origin master

使用以下命令,手动载入插件:

:packadd killersheep

使用以下命令,启动游戏:

:Kill

packages-killersheep

卸载插件

如果希望卸载插件,请先执行以下命令来移除git submodule:

git submodule deinit -f -- ~/.vim/pack/plugins/opt/killersheep

然后使用以下命令,删除插件文件目录:

rm -rf ~/.vim/pack/plugins/opt/killersheep

最后使用以下命令,从远处Git库中删除插件:

git rm -rf ~/.vim/pack/plugins/opt/

更新插件

使用以下命令,可以更新指定插件'unicode':

$ cd ~/.vim/pack/plugins/start/unicode
$ git submodule update --remote --merge

使用以下命令,可以批量更新所有已安装的插件:

$ cd ~/.vim/pack
$ git submodule foreach git pull origin master

请注意,如果有任何插件更新,请使用以下命令提交更新至Git repository:

$ cd ~/.vim/pack
$ git commit -am "Updated plugins."

帮助信息

使用以下命令,可以查看packages的帮助信息:

:help packages

请注意,对于Vim内置的软件包功能:

  • 仅仅负责载入插件,而需要用户自行下载、安装和更新插件,用户友好度欠佳;
  • 调用git的clone和submodule,对于普通用户的门槛过高;
  • 需要自行生成帮助文档(Help tags),例如以下命令将生成指定目录下的帮助文档:
    :helptags ~/.vim/pack/plugins/start/reponame
    而以下命令则将生成所有帮助文档:
    :helptags ALL

如果您同时使用多台电脑,那么结合packages和git功能即可以实现插件配置的同步。当然,这过程中牵扯了诸多手工操作和git知识,平衡取舍还请各位自行斟酌。

$ git clone https://github.com/username/reponame.git ~/.vim
$ cd ~/.vim
$ git submodule update --init
$ git commit -am "Updated plugins."
$ git submodule foreach git pull origin master
$ git add .
$ git commit -m "update submodules"
命令小结
:packadd>安装插件

Ver 25.4.20 | YYQ<上一篇 | 目录 下一篇>