2015-05-27 141 views
2

在我的實驗室中,我可以直接在我的工作站或某個可用的服務器上工作。在我的兩個賬戶中,我有相同的.bashrc.vimrc文件。現在看看下面的圖片,你可以看到有關於兩個配色方案我的VIM正顯示出我的樣本Fortran代碼一些細微的差別:vim上的不同配色方案

  1. CALL聲明
  2. PROCEDURE聲明
  3. 的右側顯示我的代碼第81列的紅色欄。

這裏是我的.vimrc文件:

syntax enable                  

au BufNewFile,BufRead *.f90 set filetype=fortran         

set smartindent                 
set tabstop=4                  
set shiftwidth=4                 
set ruler    "Show line number at bottom right corner"     
set smartcase   "CaseSensitive search only if contains uppercase letters" 
set so=999    "Have cursors always at center of the screen"    
nnoremap <C-L> :nohlsearch<CR><C-L>            

hi link fortranTab NONE               

if exists('+colorcolumn')               
    set colorcolumn=81               
else                    
    au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)    
endif 

Comparing my two color schemes

在我的工作站時,Vim和Vim的語法文件是7.3版本和0.93分別,而我的服務器7.2和0.88上。

任何想法爲什麼會發生這種情況,我如何解決它?

+1

這些系統是否具有相同的Vim版本?用':version'檢查。另外,比較所用語法腳本的版本(':edit $ VIMRUNTIME/syntax/fortran.vim')。 –

+0

@IngoKarkat在我的工作站上,Vim和Vim語法文件分別是版本7.3和0.93,而在我的服務器7.2和0.88上。 – solalito

+0

@IngoKarkat使用'sudo apt-get'更新vim是微不足道的,但我如何更新我的語法文件? – solalito

回答

3

在我的工作站上,Vim和Vim語法文件分別是版本7.3和0.93,而在我的服務器7.2和0.88上。

這就解釋了它。在Vim 7.3中引入了'colorcolumn。您的~/.vimrc對舊版本使用matchadd()進行回退,但該回退僅突出顯示超出寬度的實際出現次數,而不是實線。

不同的Vim版本附帶不同的語法腳本,在$VIMRUNTIME/syntax/fortran.vim。更新Vim會自動爲您提供語法腳本的相應較新版本,因爲它是運行時的一部分。對於自定義語法腳本(例如從vim.org下載的某個地方),或者獲取最新最好的Fortran語法(我的Vim 7.4.716版本從2015年1月15日開始版本爲0.95),您必須下載一個新文件並將其放入~/.vim/syntax/,在那裏它將覆蓋運行時。 (但是在Vim更新的情況下,您必須保留該副本。)

+0

謝謝你,它只是修復它。 – solalito

+0

問題:如何找出變量'$ VIMRUNTIME'指向的位置? – solalito

+0

@solalito:在Vim內部,只需':echo $ VIMRUNTIME' –