私の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相当)、好みで設定しても大丈夫です。
終わりに
簡単なショートカットで使えるようにしておくと便利です。