vimで行の中央へ移動する
初めに
vimのカーソル移動はそのままでも便利である.しかし,横方向への移動が若干めんどくさいところがある.そのため,行の中央へ移動するコマンドがあると便利だと思い調べたが,それに当たるコマンドは見つからなかった.そこで,vimscriptの関数を利用して実装した.
実装
.vimrcに次の行を追加した.
nn gc :call cursor(0,strlen(getline("."))/2)<CR>
解説
ここでは次の3つの関数を用いてcallで呼び出し,gcにマッピングを行っている.
- cursor()
- strlen()
- getline()
これらの関数をそれぞれ説明していく.
cursor()
その名の通り,カーソルを指定した位置へ移動させる.
cursor(行数,先頭からの文字数)のように引数を指定する.
行数,文字数を0にした場合は現在の位置となる.
strlen()
引数で指定した文字数を出力する.
getline()
引数にある行の文字列を取得する.
引数では行数で指定できるが,"."と指定すると現在カーソルがある位置を指定できる.
まとめ
行の中央をカーソルがある行の文字数の半分の位置に移動させるというプログラムである.
実装自体は簡単だが,必要な関数とその使い方を調べるのに時間がかかった.
これらの関数の利用自体は簡単にできるが,情報が少なく導入するハードルが高い.
この記事で関数が手軽に利用されればと思う.