私のvimのタブ入力切替マッピング ひとりぷちアドベントカレンダー2017 23日目
個人的に利用しているvim
のタブ入力切替のマッピングについてのお話です。
タブ切替マッピング
最近は次のような設定で落ち着いています。
nnoremap <Space>t2 :<C-u>setlocal softtabstop=2 shiftwidth=2 expandtab<CR> nnoremap <Space>t4 :<C-u>setlocal softtabstop=4 shiftwidth=4 expandtab<CR> nnoremap <Space>t8 :<C-u>setlocal softtabstop=8 shiftwidth=8 noexpandtab<CR>
スペース周りの設定値の意味はこんな感じです。
softtabstop
:タブ文字
をスペース
いくつ分と同じように扱うか。- 編集の際に
スペース
N個の纏まりをタブ文字
1個かのように追加/削除したい時に設定します。
shiftwidth
:- インデントしたい、という時にいくつ分の
スペース
を使うか。 - 内部の機能等で自動インデントする際にどれぐらいずらして欲しいかを設定します。
- インデントしたい、という時にいくつ分の
expandtab
:タブ文字
を入力した時に、代わりにスペース
に換えるかどうか。- ファイルに
タブ文字
をファイルに残したくない時に設定します。
tabstop
:タブ文字
をスペースいくつ分として表示するか。- 既にファイルにある
タブ文字
をどのようなサイズの見た目にしたいかを設定します。 - ファイル内のインデントが
タブ文字
の場合だけ(t8
相当)、好みで設定しても大丈夫です。
終わりに
簡単なショートカットで使えるようにしておくと便利です。