[英]How to tell VIM to store the viminfo file somewhere else?
是否可以告訴 vim 將其 viminfo 文件保存在其他地方? 比如在.vim文件夾中
嘗試將set viminfo+=n~/.vim/viminfo
添加到~/.vimrc
文件中。 從:help 'viminfo'
:
n Name of the viminfo file. The name must immediately follow
the 'n'. Must be the last one! If the "-i" argument was
given when starting Vim, that file name overrides the one
given here with 'viminfo'. Environment variables are expanded
when opening the file, not when setting the option.
set viminfo='1000,nc:\\users\\abcdef\\_viminfo
這在 Windows 7 中對我有用。
我遇到了類似的問題,但對我的主文件夾沒有寫權限(因此無法創建~/.vimrc
)。
我通過修改(通過管理員) C:\Program Files\VIM
中的 _vimrc 來解決它:
let $HOME = $USERPROFILE
我把它放在文件的開頭,效果很好。 以防萬一有人遇到這個問題並且這個答案不起作用。
我知道這已經有一段時間了,但我只是為未來的讀者提及這一點。
我在嘗試更改 vimrc 中 viminfo 文件的位置時遇到了同樣的問題。 最后設置viminfofile
選項的值對我有用。
在我的 vimrc 中添加了以下內容:
set viminfofile=D:\vim\viminfo
它適用於 windows 和 vim 8.2
TL;博士
這似乎是vim
中的一個錯誤,其中set nocompatible
不是冪等的並且不遵循 最小驚訝原則。
作為一種解決方法,或者:
確保只設置一次set nocompatible
(或等效的set nocp
),並且在vimrc
的頂部。
如果已經設置,請不要再次設置:
if &compatible | set nocompatible | endif " Avoid side effects if `nocp` already set
解釋和錯誤說明
來自:help compatible
(emahsis mine):
這是一種特殊的選項,因為當它被設置或重置時,其他選項也會隨着副作用而改變。 小心:設置或重置此選項可能會產生很多意想不到的效果:映射以另一種方式解釋,撤消行為不同等。如果您在 vimrc 文件中設置此選項,您可能應該把它放在最開始。
請注意&viminfo
沒有在副作用中列出,但是以下幾行清楚地顯示了&viminfo
的副作用:
set nocompatible
set viminfo+=nWatch-my-viminfo-file-location-be-ignored
echom &viminfo
set nocompatible " do side effects even though nocomptible is already set
echom 'After 2nd "set nocompatible":'
echom &viminfo
Output:
'100,<50,s10,h,nWatch-my-viminfo-file-location-be-ignored After 2nd "set nocompatible": '100,<50,s10,h
vim --version | head -1
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Aug 05 2016 16:48:20)
解析度
我提出了兩個關於此的 GitHub 問題:
另請參閱 Vi StackExchange 的問題: Can't move viminfo
file - &viminfo reverts on loading vim我在看到這個之前提出的問題。
.vimrc 中設置的順序會影響:set viminfo 的使用。 viminfo 的設置應該在 nocompatible 的設置之后。 重新排序 my.vimrc 后,上述將 viminfo 文件位於 .vim 目錄中的解決方案對我有用。
在 Windows10 上的 gvim8.2 中,以下選項可用於更改 viminfo 的路徑:
set viminfofile=$VIM/.viminfo
把這個寫在.vimrc 中。
它可以將 viminfo 文件路徑更改為 $VIM 下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.