Windows git bash输入vim报错,不能使用vim-plug插件管理器

Windows系统下的git bash在安装时自带了默认的vim,我自己也下了个gvim,并且配置了.vimrc,其中使用了vim-plug管理nerdtree这些插件。但是在bash中vim <file>时,就会蹦出来几行报错:

处理 /c/Users/<username>/.vimrc 时发生错误:
第  152 行:
E117: 未知的函数: plug#begin
第  155 行:
E492: 不是编辑器的命令: Plug 'scrooloose/nerdtree'
第  161 行:
E117: 未知的函数: plug#end
请按 ENTER 或其它命令继续

bash和Windows的vim

我们在bash中输入which vim,显示结果是/usr/bin/vim代表bash用的是自带的vim,而不是我们的gvim,同时gvim也带了个vim.exe,这里我们可以比较下三者的不同。

显示

  • bash自带的vim(“C:\Program Files\Git\usr\bin\vim.exe”)
    在这里插入图片描述在这里插入图片描述
  • gvim (“C:\Program Files (x86)\Vim\vim82\gvim.exe”)
    在这里插入图片描述
  • gvim下的vim.exe (“C:\Program Files (x86)\Vim\vim82\vim.exe”)
    在这里插入图片描述

可以看到他们的界面是有些差异的:bash的vim和gvim长得很像,但是不能读plug且窗口界面小了很多。而vim.exe界面渲染不同,颜色炫酷了些,且窗口大小和bash的vim一样。

.vimrc配置

我在.vimrc中设置了winpos 380 210,指定了窗口的位置,所以他们左上角的位置是相同的。

使用vim.exe作为bash的vim

因为bash自带的vim不能正常工作,我们决定修改vim的别名

# 方案一
$ alias vim="C:\Program Files (x86)\Vim\vim82\gvim.exe"
# vim <file>后跳出新的gvim窗口
# 方案二
$ alias vim="C:\Program Files (x86)\Vim\vim82\vim.exe"
# vim <file>后仍在当前bash窗口,但是窗口移动到了.vimrc中定义的380 210位置,大小也随之改变。
# :q!退出vim后窗口位置不变,大小恢复

方案一比较省事,跳出的vim界面也可以编辑,但是美中不足的是不在shell内
方案二仍是在shell窗口编辑,但是窗口的大小和位置都会改变。

之后就可以将alias vim="C:\Program Files (x86)\Vim\vim82\vim.exe"放在~/.bash_profile中了。至于为什么放在.bashrc中无效,放在最后讨论

这里我们进一步优化方案二

修改bash窗口的位置和大小

在这里插入图片描述
其中调整窗口位置和.vimrc中一致即可。不过

.bashrc和.bash_profile

主目录下有.bash_profile.bashrc,每次打开新的git窗口时,就会加载.bash_profile而不是.bashrc。这里就涉及到了login shell和non-login shell,我们的git bash就属于前者。

Windows下的git bash是login shell Windows没有login shell的概念

简洁的方法就是在.bash_profile最后添加

# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi

这样就可以执行.bashrc中的指令了

参考:

关于删除.bash_profile那些事

想尝试下删掉~/.bash_profile.bashrc会不会被自动执行,结果重新打开git就给出了warning:

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

然后在主目录下发现了新的.bash_profile

# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值