VIM的環境變數影響外掛程式的設定。 Debian

2021-06-07 03:14:20 字數 3072 閱讀 6165

debian 在給vim安裝乙個外掛程式的時候,按照官方manual,就是裝不上去。google了很久沒有答案。於是自己又重頭開始弄。

發現了這個問題。

在vim裡面

:echo $vim

顯示 /usr/share/vim

:echo $vimruntime

顯示 /usr/share/vim/vim72

:scriptname

顯示的所有的都是跟上面的兩個路徑有關的外掛程式。google到的乙個老外的 scriptname裡面,卻有/home/老外名字/.vim/***.vim 這種的外掛程式路徑和名字

為什麼我的沒有,因為我在.vimrc裡面定義了

let $vimruntime="/usr/share/vim/vim72"

set runtimepath=/usr/share/vim/vim72

所以我的runtimepath只有乙個路徑,而完整的runtimepath可能是這個樣子

runtimepath=~/.vim,/usr/local/share/vim/vimfiles,/usr/local/share/vim/vim72,/u

sr/local/share/vim/vimfiles/after,~/.vim/after

所以修改.vimrc

修改set runtimepath=/usr/share/vim/vim72,/home/tom/.vim/,/home/tom/.vim/after

:wq!

然後關閉所有的vim視窗,再開啟輸入

:scriptname

顯示了官方外掛程式所說的應該安裝的路徑 ~/.vim 這個路徑 ,這個路徑是usr路徑,即對應/home/你的使用者名稱/.vim這個路徑,不是#~ 這個路徑(對應/root/~),是$~ ,網上沒有網友把這個路徑說出來,我又經常工作在root下,所以出現了這個問題。

在unix下的 $home/.vim 或者 windows下的 %home%/vimfiles : 是使用者自定義指令碼和外掛程式的目錄,該目錄下的指令碼會在系統指令碼載入前執行,用於擴充套件和替代系統指令碼原有的功能。也就是說,該目錄下的配置檔案,可以增加和替換原來.vimrc配置檔案(windows下為_vimrc).

其中:$vim/vimfile : 功能和上面一樣,不同的是 它對 所有使用者有效。

unix下的$home/.vim/after 或者windows下的%home%/vimfiles/after : 用於對已有設定進行一些小的修正和覆寫。

$vim/vimfiles/after:對所有使用者均有效的一些全域性設定修正指令碼。

這裡一共提到了5個目錄,它們的子目錄結構都是相同的,如果你希望在其它目錄裡安裝外掛程式,建議使用$vimruntime的目錄結構為模板,如下

+ +  colors

+  compiler

+  doc

+  etc

+  ftdetect

+  ftplugin

+  indent

+  keymap

+  plugin

+  syntax

關於$vim和$vimtunrime

環境變數 "$vim" 用於定位許多 vim 使用的使用者檔案,例如使用者啟動指令碼 ".vimrc"。不同的系統有所不同.

為了省得每個使用者都設定 $vim 環境變數,vim 試圖根據以下順序取得 $vim 的值:

1. $vim 環境變數定義的值。你可以這樣使得 vim 在特定目錄下找到它的支援檔案。例

如:setenv vim /home/usrname/vim2. 使用 'helpfile' 的路徑,除非它本身也包含其它的環境變數 (因為其預設值是 "$vimruntime/doc/help.txt": 雞生蛋的問題)。檔名 ("help.txt" 或者別的) 被去掉。結尾的幾項目錄名也被分別去掉。其順序是: "doc"、"runtime" 和"vim" (例如,"vim54")。

3. 對 msdos、win32 和 os/2 而言,vim 試圖使用可執行檔案的目錄名。如果以 "/src"結尾,則去掉該部分。這用於以下場合: 你把 .zip 檔案解壓到某個目錄,然後調整搜尋路徑以找到其中的 vim 可執行檔案。結尾的目錄名被去掉。其順序是:

"runtime" 和 "vim" (例如,"vim54")。

4. unix 上,使用編譯時定義的安裝目錄 (見 ":version" 的輸出結果)。

一旦 vim 完成以上操作,它據此設定 $vim 環境變數。要在其後修改,可以這樣使用":let" 命令::let $vim = "/home/usrname/vim/"1. 如果設定了環境變數 $vimruntime,則使用之。如果執行時檔案在不常見的位置,可以在這裡定義。

2. 如果 "$vim/vim" 存在,則使用之。是 vim 的版本號,不包括任何的 '-' 或 '.'。例如: "$vim/vim54"。這是正常情況下 $vimruntime 的值。

3. 如果 "$vim/runtime" 存在,使用之。

4. 使用 $vim 的值。這和較老的版本後向相容。

5. 如果設定了 'helpfile' 選項,並且它不包括 '$',則使用它的值,去掉後面的"doc/help.txt" 部分。

在 unix 上,有乙個 $vimruntime 編譯時的預設值 (檢查 ":version" 的輸出),跳過步驟 2、3 和 4,而在第五步之後使用編譯時的預設值。這意味著編譯時的預設值否決了$vim 的值。這可以用於 $vim 為 "/etc" 而執行時檔案在 "/usr/share/vim/vim54" 的情況。

一旦 vim 完成以下操作,它據此設定 $vimruntime 環境變數。要在其後修改之,這樣使用 ":let" 命令::let $vimruntime = "/home/piet/vim/vim54"如果你需要在外殼裡得到 $vimruntime 的值 (例如,在幫助檔案裡 grep 指令碼),你可以這麼用:vimruntime=`vim -e -t dumb --cmd 'exe "set t_cm=\"|echo $vimruntime|quit' | tr -d '\015'

設定環境變數

一.何謂環境變數 在所處的環境中,那些供系統或應用程式取用,而固定存在的一種特殊變數,稱之.環境變數可由系統預定或由您自行定義及修改,又稱為整體變數.也就是說 不管你身處何方,這些變數的值都跟著你的環境而存在.例如 path,shell,term等.顯示環境變數的方法如下 echo 變數名稱 如 e...

設定環境變數

1.export path path 路徑 2.修改 etc profile 3.修改 root bashrc 二三中方法需要登出生效 1.確保安裝了標準c開發環境,指令驗證 sudo apt get install build essential。如果安裝提示你的版本最新,否則直接自動安裝。arm...

環境變數設定

顯示環境變數 echo path 使用env命令能顯示所有的環境變數。使用set命令顯示所有本地定義的shell變數。使用unset命令來清除環境變數 export test test 直接用export 變數名 變數值 只在當前的shell或其子shell有效。關閉後即失效。env grep te...