[英]Vim/gVim 8.1 on Windows 10 won't source $HOME\_vimrc
[英]_vimrc him home directory overrides _vimrc in $VIM
在 Linux 上,當我創建一個~/.vimrc
文件時,它會擴展系統設置,因為它運行我的~/.vimrc
文件中的命令而不更改我的文件中沒有的任何設置。
在 Windows 上, %HOMEPATH%\_vimrc
文件似乎覆蓋了其他設置文件,因為即使添加空白文件也會完全改變 vim 的行為。
這是 Windows 的預期行為嗎? 如果我想擴展其他設置文件,是否需要將它們復制到我的主目錄中?
這就是 Vim 的工作方式:如果你沒有vimrc
,它會加載$VIMRUNTIME/defaults.vim
; 如果你有那么它沒有。
您在 Linux 上遇到了什么問題,您應該更清楚。 也許是系統的/etc/vimrc
,也許是 Neovim 等。
如果您想從defaults.vim
添加設置,只需執行runtime defaults.vim
Vim 版本 8 及更高版本(這可能是您正在使用的)附帶一個defaults.vim
文件,該文件在找不到用戶 vimrc 文件時使用。 defaults.vim
文件啟用文件類型檢測和語法突出顯示,以及被認為對所有或大多數 Vim 用戶有用的其他設置。 有關詳細信息,請參閱:help defaults.vim
。
所以這就是您在 Windows 上看到的內容,您在其中安裝了 Vim package 從官方網站獲得默認的 Z944037673FD3 行為。 為了向后兼容, defaults.vim
行為僅在您根本沒有用戶 vimrc 文件 ( %HOMEPATH%\_vimrc
) 或明確包含它時才會發生。
建議在啟動新的 vimtex 文件時顯式加載它,頂部有兩行:
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
The reason why you might not see this on Linux is that some Linux distributions (namely Debian, possibly Ubuntu which inherits many Debian packages) decided they didn't like the defaults.vim
behavior, particularly the part of it not getting enabled if the user vimrc 文件存在。 (這是可以理解的,當您創建一個空的 vimrc 文件並且 Vim 突然表現不同並且很多東西被禁用時,您已經看到了它帶來的混亂!)
因此,他們發布了一個系統 vimrc 文件/etc/vimrc
來完成許多defaults.vim
文件所做的事情(例如啟用文件類型檢測和語法突出顯示),然后完全禁用defaults.vim
行為(通過設置skip_defaults_vim
變量。)因此,在這些發行版中,您不會獲得defaults.vim
行為,除非您明確包含它(並且僅當您首先解除禁用它的變量時。)另一方面,您總是從系統 vimrc 文件中獲得類似或等效的設置由配送配送。
我的建議是在 vimrc 文件中啟用defaults.vim
行為,該行為適用於所有平台和所有 Linux 發行版。 它還包括一些有用的設置,這些設置在 Linux 發行版的/etc/vimrc
中不存在,這些設置會禁用defaults.vim
。vim 行為,因此它在那里也可能有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.