歡迎光臨
每天分享高質量文章

修複 Debian 中的 vim 奇怪行為 | Linux 中國

我一直在想,為什麼我服務器上 vim 為什麼在滑鼠方面表現得如此愚蠢:不能像平時那樣跳轉、複製、粘貼。儘管在 /etc/vim/vimrc.local 中已經設置了。
— Norbert Preining


編譯自 | https://www.preining.info/blog/2017/10/fixing-vim-in-debian/ 
 作者 | Norbert Preining
 譯者 | geekpi

我一直在想,為什麼我服務器上 vim 為什麼在滑鼠方面表現得如此愚蠢:不能像平時那樣跳轉、複製、粘貼。儘管在 /etc/vim/vimrc.local 中已經設置了。

  1. set mouse=

最後我終於知道為什麼了,多謝 bug #864074[1] 並且修複了它。

原因是,當沒有 ~/.vimrc 的時候,vim 在 vimrc.local 之後加載 defaults.vim,從而改寫了幾個設置。

在 /etc/vim/vimrc 中有一個註釋(雖然我沒有看到)解釋了這一點:

  1. " Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.

  2. " This happens after /etc/vim/vimrc(.local) are loaded, so it will override

  3. " any settings in these files.

  4. " If you don't want that to happen, uncomment the below line to prevent

  5. " defaults.vim from being loaded.

  6. " let g:skip_defaults_vim = 1

我同意這是在正常安裝 vim 後設置 vim 的好方法,但 Debian 包可以做得更好。在錯誤報告中清楚地說明瞭這個問題:如果沒有 ~/.vimrc/etc/vim/vimrc.local 中的設置被改寫。

這在Debian中是違反直覺的 – 而且我也不知道其他包中是否採用類似的方法。

由於 defaults.vim 中的設置非常合理,所以我希望使用它,但只修改了一些我不同意的專案,比如滑鼠。最後,我在 /etc/vim/vimrc.local 中做了以下操作:

  1. if filereadable("/usr/share/vim/vim80/defaults.vim")

  2.  source /usr/share/vim/vim80/defaults.vim

  3. endif

  4. " now set the line that the defaults file is not reloaded afterwards!

  5. let g:skip_defaults_vim = 1

  6. " turn of mouse

  7. set mouse=

  8. " 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中國 榮譽推出

LCTT 譯者

geekpi ? ?
共計翻譯:640 篇
貢獻時間:1551 天


推薦文章

< 左右滑動查看相關文章 >

點擊圖片、輸入文章 ID 或識別二維碼直達

赞(0)

分享創造快樂