作者 | Norbert Preining
譯者 | geekpi
我一直在想,為什麼我伺服器上 vim 為什麼在滑鼠方面表現得如此愚蠢:不能像平時那樣跳轉、複製、貼上。儘管在 /etc/vim/vimrc.local
中已經設定了。
set mouse=
最後我終於知道為什麼了,多謝 bug #864074[1] 並且修複了它。
原因是,當沒有 ~/.vimrc
的時候,vim 在 vimrc.local
之後載入 defaults.vim
,從而改寫了幾個設定。
在 /etc/vim/vimrc
中有一個註釋(雖然我沒有看到)解釋了這一點:
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
" let g:skip_defaults_vim = 1
我同意這是在正常安裝 vim 後設定 vim 的好方法,但 Debian 包可以做得更好。在錯誤報告中清楚地說明瞭這個問題:如果沒有 ~/.vimrc
,/etc/vim/vimrc.local
中的設定被改寫。
這在Debian中是違反直覺的 – 而且我也不知道其他包中是否採用類似的方法。
由於 defaults.vim
中的設定非常合理,所以我希望使用它,但只修改了一些我不同意的專案,比如滑鼠。最後,我在 /etc/vim/vimrc.local
中做了以下操作:
if filereadable("/usr/share/vim/vim80/defaults.vim")
source /usr/share/vim/vim80/defaults.vim
endif
" now set the line that the defaults file is not reloaded afterwards!
let g:skip_defaults_vim = 1
" turn of mouse
set mouse=
" other override settings go here
可能有更好的方式來獲得一個不依賴於 vim 版本的通用載入陳述句, 但現在我對此很滿意。
via: https://www.preining.info/blog/2017/10/fixing-vim-in-debian/
作者:Norbert Preining[3] 譯者:geekpi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出