簡體   English   中英

如何告訴 VIM 將 viminfo 文件存儲在其他地方?

[英]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不是冪等的並且不遵循 最小驚訝原則

作為一種解決方法,或者:

  1. 確保只設置一次set nocompatible (或等效的set nocp ),並且在vimrc的頂部

  2. 如果已經設置,請不要再次設置:

     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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM