相対行番号を表示するにはどうすればよいですか?


53

多くのvimコマンドは、コマンドが実行される行の数を参照する番号を取ることができます。

現在の行に関連する行番号を表示することは可能ですか?次のようなもの:

3: some text here
2: more text
1: This is the line above where the cursor is
0: The cursor is on this line
1: This is the line after the cursor
2: More text here

回答:


65

私はここで同様の質問に答えました:Vimに行番号を追加するにはどうすればよいですか?

バージョン7.3以降では、次を使用できます。

set relativenumber

私は実際に両方relativenumberを使用numberし、vimrcでは現在の行を除くすべての行に相対番号を使用します。

set number                     " Show current line number
set relativenumber             " Show relative line numbers

正確には定かではありませんが、その中で言及されている最初の変更ログは7.3です。ftp.vim.org/pub/vim/patches/7.3/README
コリンピーターズ

7

次を使用して、相対番号のオンとオフを切り替えることができます。

:set rnu    " toggle relative numbering on
:set rnu!   " toggle relative numbering off

5
function! NumberToggle()
  if(&relativenumber == 1)
    set norelativenumber
  else
    set relativenumber
  endif
endfunc

nnoremap <leader>nt :call NumberToggle()<cr>

2
norelativenumberは番号付けを完全にオフにするだけですか、それとも従来の番号付けに切り替わりますか?
ニックJアダムス

set number数値の存在を制御する設定で、relとnon-relのみを切り替えます
-shawndumas

2
numbers.vimプラグインはまた、例えば、あなたのカーソルが非相対数を印刷し、vimのウィンドウがフォーカスを失ったときに、ファイル全体を通して非相対番号に切り替える占めラインを持つ、いくつかのより高度な相対的な数の機能を追加します。
bronzehedwick

1
@shawndumasでは、表示される数字の優先順位はありますか?たとえば、vimrcで番号を設定し、relativenumber / norelativenumberを設定した場合、相対番号と標準番号を切り替えることができますか?
ニックJアダムス

1
それが最も正しい
ショーンドゥス

4

相対行番号を切り替えるためにホットキーを使用する場合、vimrcのスニペットを次に示します。

" Toggle relative line number
nmap <C-L><C-L> :set invrelativenumber<CR>

この場合、ctrl-Lを2回使用して切り替えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.