何これ?
Vim君と仲良くしていくうちに、順調に(?)vimrcの行数が増えてきました。
何の記事?
この記事は鎮宮'sアドベントカレンダー2025の14日目の記事です。
大分Vimプラグインに頼った設定も多いものの、素のVim設定──vimrcにも助けられているので、素の設定で良かった部分を抜き出して記事にすることにしました。
誰向け? どんな役にたつ?
- 他の人のvimrcが気になる人
- vimプラグイン以外の素のvim設定で便利なものが知りたいひと
vimrcの助かっている設定組み合わせ
検索にヒットした語句を、検索が終わってもハイライト表示する
set hlsearch # 検索コマンド実行後、対象になった単語のハイライトを持続する
nnoremap <Esc><Esc> :noh<Return> # 持続したハイライトを消す
検索した語句のハイライトが持続するのは便利なのですが、今回は消したいなというか眩しいな……ということがあるかと思います。
そんな時用に、Escを2回押すとハイライトが消えるように設定しています。
語句検索時に大文字小文字の区別をしない
set ignorecase # 検索時に小文字大文字を区別せずにヒットする
set smartcase # ただし、大文字が入力された場合は区別する
地味に便利です。
何も気にしなければ小文字でそのまま入力して検索できますし、大文字でも検索できるので、設定した故に不自由に……ということもありません。
コーディング時のインデントを自動でやってくれる
set autoindent
set smartindent
ファイルタイプで判定しているかと思うのですが、関数を開始した際や、前の行のインデントを見て自動で改行時に調整してくれる機能です。
改行した後にタブ押して……が発生しないので助かっています。
カーソル位置強調
set cursorline # カーソル位置の横を強調
set cursorcolumn # カーソル位置の縦を強調
それぞれ、カーソル位置のたて横を強調する機能です。
パッと「カーソルここ!」がわかるので助かっています。
インデントやタブスペース設定
set shiftwhidth=4
set softtabstop=4
set expandtab
set smarttab
クリップボードとヤンクを共有
set clipboard=unnamed
Vim外からCtrl+Cでコピーした文面をVimにpできたり、Vim内でyした語句をVim外へ貼り付けできたりする機能です。
いわゆる、クリップボードの内容とヤンクの内容を共有する感じです。
これができると、ある程度の長さの文面はVimでパーっと入力してからVim外に全ヤンクするなどができて便利です。
区切り系のキーマップ
inoremap [ []<left>
inoremap ( ()<left>
inoremap { {}<left>
inoremap 「 「」<left>
inoremap 【 【】<left>
inoremap ( ()<left>
inoremap " ""<left>
inoremap ' ''<left>
カッコ類や''等は、1つ打ったら閉じも自動入力されて、しかもカッコ内にいる……というキーマッピングをしています。
閉じ忘れになることがないので便利です。
カーソル形状を変更
" カーソル形状変更{{{
if has("termguicolors")
let &t_SI = "\e[6 q"
let &t_EI = "\e[2 q"
let &t_SR = "\e[4 q"
endif"}}}
カーソル形状が|だったので、四角表示になるようにしました。
iVimでは元からこの表示なのですが、Windowsだと|になってしまっていたのはなぜなのか……。
カラースキーマ系
if has("win32") || has("win64")
set t_Co=256
endif
ウインドウズのCLIウインドウは色が変になってしまうとのことで、カラーについても記述しています。設定については6日目の記事をご覧ください。
Vimrcについて
Vimプラグインを使い始めると、ついついプラグインでなんでもできてしまうとってしまうのですが、そもそもプラグイン無しの素のVimもとても心強いものです。
また、他の人のおすすめプラグインを見るのと同じくらい、他の人のvimrcを見ると発見があります。
なので、是非是非、ふとした時にvimrcをメンテナンスしてみてください。