.vimrc
に設定しておくと便利な基本設定を、分かった気になれる程度にまとめました。
基本設定
Vim の文字コードを指定する
Vim の内部文字コードを設定する。
バッファの内容はこの文字コードで扱われる。
set encoding=utf-8
ファイル書き込み時の文字コードを指定する
fileencoding
を設定すると、バッファの内容がファイルに書き込まれる時の文字コードを指定することができる。
その際、encoding
からfileencoding
に文字コードの変換が行われる。
そのため、encoding
とfileencoding
の文字コードが同じ場合は、設定しなくてもよい。
set fileencoding-utf-8
ファイル読み込み時の文字コードを指定する
ファイル読み込み時に使用する文字コードを指定する。fileencodings
とencoding
の文字コードが違う場合は、encoding
の文字コードに変換されてバッファが開かれる。
set fileencodings=utf-8
BOM付きを指定する
Unicode
にはBOM無し
とBOM付き
の2種類がある。BOM
はバイトオーダーマーク(byte order mark)の略で、Unicode
で符号化したテキストの先頭に付与される数バイト程度のデータのこと。
set bomb
Vimスクロール時のスピードを速くする
j
、k
キーを押し続けスクロールする時などのスピードを上げる(との噂がある)。一応設定。
set ttyfast
deleteキーを有効にする
Vimでdelete
キーを押すと、^?
と出る時の対処法。
set backspace=indent,eol,start
タブを半角スペースに置き換える
インサートモードでTab
キー押下時やインデントの際、タブ文字ではなく、半角スペースが挿入されるようになる(ソフトタブという)。
set expandtab
タブ幅を設定する
Python
をはじめとしたインデント幅がスペース4つ分のコードを書く際は、タブ幅を4つにしておくと、少し幸せになれる。
set tabstop=4
オートインデント時のインデント幅の設定
tabstop
と同じ値にしておけばよい。
set shiftwidth=4
ソフトタブのスペース幅の指定
softtabstop
で<Tab>
を押下した時、いくつスペースを挿入するを設定する。値を0
にすると、softtabstop
の機能はOFFになる。
set softtabstop=0
新しいウィンドウを下に開く
Vimの初期設定では、ウィンドウの分割は、水平分割は上側に新規ウィンドウが表示される。
set splitbelow
新しいウィンドウを右に開く
Vimの初期設定では、ウィンドウの分割は、垂直分割は左側に新規ウィンドウが表示される。
set splitright
スムーズにbuffer切り替える
buffer
(ここでは、メモリ上に展開される複数のテキストファイルのこと)を切り替える際、編集中のファイルを保存しなくてもよいように設定(高速移動を実現)。
set hidden
検索結果をハイライトする
逆に、ハイライト表示したくない場合は、set nohlsearch
。
set hlsearch
インクリメンタルサーチの実現
検索中に文字を打つ際、(その都度)自動的に検索できる。
set incsearch
検索時、大文字と小文字を無視
set ignorecase
検索をより賢く設定
ignorecase
を有効にしている場合に、smartcase
を有効にすると、検索文字列に大文字が入ると、ignorecase
を無効化してスマートに検索できる(大文字、小文字を無視しない)。
全て小文字で検索すると、大文字と小文字は、通常通り(ignorecase
の効果で)、無視して検索される。
set smartcase
バックアップファイルを作成しない
Vimで編集する際、通常、~(チルダ)
がファイル名末尾についたバックアップファイルが作成される。それが邪魔であると感じるなら、nobackup
を設定する。
重要ファイルを編集する際は、意識的に、編集前にset backup
を実行して、バックアップファイルを作成するとよい。
set nobackup
スワップファイルを作成しない
Vimエディタでは、ユーザがオリジナルのファイルから変更した情報やアンドゥ用の情報をswap
ファイルに格納している。
スワップファイルが作成される場合は、以下二つ。
- 他のVimエディタで同じファイルを編集している
- ファイルを編集している最中にVimエディタがエラーで強制終了した
実際は、緊急時に備えて、noswapfile
に設定しないほうがいいかも。。
setnoswapfile
改行コードの自動認識
この設定で、日本語の文字コードを自動判別し、utf-8
環境で編集や表示が可能となる。
set fileformats=unix,dos,mac
カーソルの位置を表示する
Vimの最下部のバーの右側にカーソル位置を表示してくれる。%
表示してくれるため、今ファイルのどのあたりにいるかがわかる。
set ruler
行番号を表示する
setnumber
カーソル行の背景色変更
カーソル行(作業箇所)が視覚化できて操作しやすい。
set cursorline
スクロール開始位置を設定
例えば、下記のように、set scrolloff=20
と設定している場合、
- 下方向にスクロール時: 画面下端から20行上
- 上方向にスクロール時: 画面上端から20行下
でスクロール開始。
set scrolloff=20
ステータスラインを表示
0
: 表示しない1
: 2つ以上ウィンドウがある時だけ表示2
: 常に表示
set laststatus=2
モードラインを有効にする
ファイルにVim特有の記述をしておくことでそのファイルがVimで開かれた時に特定の設定を有効にすることができる。
set modeline
モードラインの検索行数を指定
ファイルの上下の端からmodelines
で指定された行数だけ、モードラインを探しに行く。
set modelines=10
ステータスバーの設定
set statusline=%F " ファイル名表示
set statusline+=%m " 変更のチェック表示
set statusline+=%r " 読み込み専用かどうか表示
set statusline+=%h " ヘルプページなら[HELP]と表示
set statusline+=%w\ " プレビューウインドウなら[Prevew]と表示
内容が変更されたら自動的に再読み込み
set autoread
エラービープ音の停止
set noerrorbells visualbell t_vb=
ヤンクした箇所をクリップボードにコピー
set clipboard+=unnamed
ターミナルでマウスを使用できるようにする
ノーマルモード(n)
、ビジュアルモード(v)
、インサートモード(i)
、コマンドラインモード(c)
の4つのモードを全て有効にできるa
がお手軽。
set mouse=a
シンタックスハイライトを有効にする
ON にしておくと、ファイルの拡張子で自動で各種キーワードをシンタックスハイライトで表示してくれる。
syntax on