Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vimで行番号の表示/非表示を切り替えるショートカットを定義

$
0
0

概要

vimで行番号を表示するにはコマンドモードで:set number
行番号を非表示にするには:set nonumberとすればいいわですが、
これを毎回打つのはめんどくさい。
というわけで、ワンタッチでこれらを切り替えられるショートカットをつくります。

方法

.vimrcにこう記述すればOK。<C-m>で行番号の表示/非表示が切り替わるようになります。

.vimrc
" set number
function Setnumber()
  if &number
    setlocal nonumber
  else
    setlocal number
  endif
endfunction
nnoremap <silent> <C-m> :call Setnumber()<CR>

説明

<C-m>で自作関数Setnumber()を実行するようにnnoremapでキーマップしています。

Setnumber()関数は&numberで現在の行番号が表示状態であるか非表示状態であるかを取得し、
setlocal number、あるいはsetlocal nonumberします。
setではなくsetlocalを使っているのは、
現在開いている他のバッファやウィンドウに影響を与えないようにするためです。

その他、nnoremapに指定されているオプションはそれぞれ下記のような意味を持ちます。
<silent> : <C-m>を実行したときにvimのコマンドラインに入力文字列を表示しないようにする
:call : Setnumber()関数を実行する
<CR> : キャリッジリターン

参考文献

Vimscriptを書いてみた http://chulip.org/entry/20100328/1269725318
Vim: オプションのグローバルな値とローカルな値 http://whileimautomaton.net/2008/01/14011600
Vim エディターのスクリプトの作成: 第 1 回 変数、値、式 http://www.ibm.com/developerworks/jp/linux/library/l-vim-script-1/


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>