2011-11-30 42 views

回答

33

是的,可以。使用RltvNmbr.vim顯示的相對數量,以及使用Vim顯示絕對的:

enter image description here

+2

爲什麼沒有標記爲答案? –

+0

@ Fire-Dragon-DoL我已經安裝了該插件,但需要在vim自身啓動時顯示它。我應該在'.vimrc'文件中輸入什麼內容? – noufal

+1

使這個插件真的減慢了整個vim當改變線條j/k .. – lszk

7

合理地講,你不能。行編號是每個緩衝區一個,僅由'number'選項控制。

一個瘋狂的概念,我想::vertical diffsplit:setlocal relativenumber。這會得到兩個相鄰的緩衝區副本,它們在滾動位置鏈接,因爲它們處於差異模式。但是,它確實無法正常工作。在未成功更新的相對數(在7.3.154,錯誤可能以後固定的,但我懷疑它—這是不值的話),甚至如果他們這麼做,你會與一個偉大的眼中釘,更難管理和導航被卡住。

你可以用插件寫入一個特殊的緩衝區,你會繼續在左邊做,但實施將是醜陋的,它仍然會使導航硬(因爲它的另一個緩衝區)。我當然不會花時間寫這樣一個插件,但我必須承認我想要顯示兩種線路編號形式。

+0

啊,你已經像我一樣拼命思索了。 :) – mt3

+2

@ mt3,您可能有興趣返回thia問答,並看到插件解決方案已發佈爲答案 –

+1

好吧,我已經取消選擇這個接受,並選擇了實際的插件。 – mt3

2

這是我與相對和絕對之間 切換相對和絕對行號映射。

輸入窗口設置窗口,以相對數量,同時保持它,它設置爲絕對的。 然後,如果你做一個垂直分割的窗口,你會選擇相對和絕對數字相同的緩衝區。

" setglobal relativenumber 
autocmd WinEnter * :setlocal relativenumber 
autocmd WinLeave,FocusLost * :setlocal number 
autocmd InsertEnter * :setlocal number 
autocmd InsertLeave * :setlocal relativenumber 

function! g:ToggleNuMode() 
    if(&relativenumber == 1) 
    set number 
    else 
    set relativenumber 
    endif 
endfunc 

map <C-l> :call g:ToggleNuMode()<CR> 
15

的Vim 7.4(補丁7.3.787)將顯示的絕對行數,而不是「0」,當兩個「relativenumber」和「號碼」被設定。

:h relativenumber,7.3

如果將此選項設置, '數字' 復位。

:h relativenumber,7.4

在光標行的前面的數量也取決於 '編號' 的值,見| number_relativenumber |爲兩個 選項的所有組合。

5

結合plnx馬卡里奧答案用vim 7.4。

autocmd WinEnter,FocusGained * :setlocal number relativenumber 
autocmd WinLeave,FocusLost * :setlocal number norelativenumber 

這將顯示相​​對編號(用絕對電流線)在聚焦窗口,和絕對在非聚焦的窗口。