VIM 已停止使用我的 _vimrc,但我不知道它在哪裡設定?

VIM 已停止使用我的 _vimrc,但我不知道它在哪裡設定?

我的 _vimrc 看起來像這樣


set nocompatible
source $VIMRUNTIME/vimrc_example.vim
colorscheme pablo
set backup=~/vimfiles/backup
set directory=~/vimfiles/tmp

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\ ' . arg3 . eq
endfunction

不過我相信它使用的設定如下:


set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\ ' . arg3 . eq
endfunctio

這樣做的問題是:

A)我喜歡我的配色方案,多虧了你的幫助。

B) 我不想使用 mswin 設定。它讓我很困惑,尤其是 ctrl-z 和 ctrl-v 做我不喜歡的事情。我比較喜歡讓 ctrl-v 進入視覺模式,這樣才有意義。

C) 我想要為 vim 設定一個臨時目錄和備份。 (說實話,我不確定我是否正確地完成了這部分。

答案1

在 VIM 中,輸入:version,這至少會顯示 *vimrc 檔案的載入順序。

對於 c),該set directory位元決定 VIM 將其交換文件放置在何處。若要指定實際備份的位置,請使用:set backupdir

答案2

當您需要找出 Vim 中設定或未設定某些內容的原因時,您可能會發現了解 Vim 的一些常規故障排除方法很有用。

你可以在啟動 Vim 後執行命令「:scriptnames」來查看實際載入了哪些腳本。你的 vimrc 應該靠近頂部(我的是#1)。

確定設定選項的另一種方法是“:verbose set選項名?「(帶有問號)。如果該選項不是由使用者從 :-命令列手動設定的,則該選項的當前值下方應該有一個「Last set from...」行。不幸的是,不適用於非選項,儘管它可用於其他調試:help :verbose

答案3

您可以使用變數 $MYVIMRC 來查看首先找到並使用哪個 vim 初始化檔案。只需在 vim 會話中的命令(冒號)提示符號處回顯即可

:迴聲 $MYVIMRC

相關內容