Windows系統(tǒng)下的git bash在安裝時自帶了默認(rèn)的vim,我自己也下了個gvim,并且配置了.vimrc
,其中使用了vim-plug管理nerdtree這些插件。但是在bash中vim <file>
時,就會蹦出來幾行報錯:
處理 /c/Users/<username>/.vimrc 時發(fā)生錯誤:
第 152 行:
E117: 未知的函數(shù): plug#begin
第 155 行:
E492: 不是編輯器的命令: Plug 'scrooloose/nerdtree'
第 161 行:
E117: 未知的函數(shù): plug#end
請按 ENTER 或其它命令繼續(xù)
bash和Windows的vim
我們在bash中輸入which vim
,顯示結(jié)果是/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
中設(shè)置了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>后仍在當(dāng)前bash窗口,但是窗口移動到了.vimrc中定義的380 210位置,大小也隨之改變。
# :q!退出vim后窗口位置不變,大小恢復(fù)
方案一比較省事,跳出的vim界面也可以編輯,但是美中不足的是不在shell內(nèi)
方案二仍是在shell窗口編輯,但是窗口的大小和位置都會改變。
之后就可以將alias vim="C:\Program Files (x86)\Vim\vim82\vim.exe"
放在~/.bash_profile
中了。至于為什么放在.bashrc
中無效,放在最后討論
這里我們進(jìn)一步優(yōu)化方案二
修改bash窗口的位置和大小
其中調(diào)整窗口位置和.vimrc中一致即可。不過
.bashrc和.bash_profile
主目錄下有.bash_profile
和.bashrc
,每次打開新的git窗口時,就會加載.bash_profile
而不是.bashrc
。這里就涉及到了login shell和non-login shell,我們的git bash就屬于前者。
Windows下的git bash是login shell Windows沒有l(wèi)ogin shell的概念
簡潔的方法就是在.bash_profile
最后添加
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
這樣就可以執(zhí)行.bashrc
中的指令了
參考:
- .bashrc not executed when opening new terminal(這是askubuntu、、Git for Windows不是GNU/Linux,用虛擬機(jī)或wsl吧)
- Shell 啟動類型探究 ── login && interactive(啟動文件的順序)
- Git for Windows: .bashrc or equivalent configuration files for Git Bash shell(新版的git for Windows,啟動時自帶–login,所以不會直接讀.bashrc,需要在.bash_profile加source .bashrc)
關(guān)于刪除.bash_profile那些事
想嘗試下刪掉~/.bash_profile
后.bashrc
會不會被自動執(zhí)行,結(jié)果重新打開git就給出了warning:文章來源:http://www.zghlxwxcb.cn/news/detail-554257.html
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.
然后在主目錄下發(fā)現(xiàn)了新的.bash_profile
文章來源地址http://www.zghlxwxcb.cn/news/detail-554257.html
# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc
到了這里,關(guān)于Windows git bash輸入vim報錯,不能使用vim-plug插件管理器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!