Evil: EmacsをVimのごとく使う - 付録 (カスタム変数一覧)

Evilのカスタム変数の一覧です.

カスタム変数一覧

evil-auto-indent
boolean
初期値
t
バージョン
1.0.0
Vim
autoindent

自動的にインデントするかどうか. Vimと違いデフォルトで有効です.

evil-shift-width
integer
初期値
4
バージョン
1.0.0
Vim
shiftwidth

<オペレータ(evil-shift-left)と>オペレータ(evil-shift-right)で使うオフセット値. Vimと違い初期値は4です.

evil-shift-round
boolean
初期値
t
バージョン
1.0.0
Vim
shiftround

<オペレータ(evil-shift-left)と>オペレータ(evil-shift-right)を使用したとき, evil-shift-widthの値で丸めるかどうか. tの場合は, シフトした後のインデントの深さがevil-shift-widthの倍数になるようにします. Vimと違いデフォルトで有効です.

evil-cross-lines
boolean
初期値
nil
バージョン
1.0.0
Vim
whichwrap

カーソル移動時に行をまたぐかどうか. tVimwhichwrap=b,s,h,l,<,>,[,]に相当(バージョン1.0-devからはwhichwrap=b,s,h,l,<,>,[,],~に相当)し, nilVimwhichwrap=[,]に相当します. Vimの初期値とは異なります.

evil-move-cursor-back
boolean
初期値
t
バージョン
1.0.0
Vim
-

挿入ステートを抜けるときにカーソルを後退するかどうか. また, nilの場合, Vimとは違ってカーソルを改行文字の上に移動することができるようになります.

evil-repeat-move-cursor
boolean
初期値
t
バージョン
1.0.0
Vim
-

繰り返しコマンド.(evil-repeat)がカーソルを移動するかどうか. nilに設定すると, 繰り返し操作の後もカーソルが元の場所に留まります.

evil-kbd-macro-suppress-motion-error
nil | t | record | replay
初期値
nil
バージョン
1.0.0
Vim
-

キーボードマクロの記録(繰り返しコマンド.で使う操作の記録)時に, エラーを無視するかどうか. nilの場合は無視せず, recordの場合はキーボードマクロの記録中のみ無視, replayの場合はキーボードマクロの実行中のみ無視, tの場合はどちらの場合も無視します.

evil-track-eol
boolean
初期値
t
バージョン
1.0.0
Vim
-

$コマンド(evil-end-of-line)を実行した後の操作で行末に留まるかどうか. これは矩形選択の挙動をVimに合わせるために導入されました.

evil-bigword
string
初期値
"^ \t\r\n"
バージョン
1.0.0
Vim
-

Wコマンド(evil-forward-WORD-begin)が単語とみなす文字集合. 正規表現[]の中に指定する文字列を指定します.

evil-mouse-word
symbol
初期値
evil-move-word
バージョン
1.0.0
Vim
-

マウスでダブルクリックした際の単語選択に使用する関数.

evil-cjk-emacs-word-boundary
boolean
初期値
nil
バージョン
1.0.0
Vim
-

日本語等の単語境界をEmacsのものにするかどうか. nilの場合はVimと互換で, 漢字・ひらがな等の種類が変わるところが単語境界になります. tの場合はEmacsと互換で, 漢字の直後にひらがなが続く場合は, 漢字部分とひらがな部分を同一の単語とみなします(日本語の文節に近いものを単語とみなします).

evil-cjk-word-separating-categories
(list (cons (character . character)))
初期値
...
バージョン
1.0.0
Vim
-

単語の境界を判別するためのリスト. 2つの連続する文字のカテゴリをペアにしたものが, このリストに入っている場合は, その部分は単語境界とみなされます. デフォルトではVimの単語境界を表す値が入っています. 詳細はM-x describe-variable RET word-separating-categories RETを, 文字のカテゴリについてM-x describe-categories RETを参照して下さい.

evil-cjk-word-combining-categories
(list (cons (character . character)))
初期値
...
バージョン
1.0.0
Vim
-

単語の途中を判別するためのリスト. 2つの連続する文字のカテゴリをペアにしたものが, このリストに入っている場合は, その部分は単語の途中とみなされます. デフォルトではVimの単語の途中を表す値が入っています. 詳細はM-x describe-variable RET word-combining-categories RETを, 文字のカテゴリについてM-x describe-categories RETを参照して下さい.

evil-want-fine-undo
boolean
初期値
nil
バージョン
1.0.0
Vim
-

cwなどの操作を元に戻す単位を細かくするかどうか. nilの場合, 元に戻す単位はVim同様, 挿入ステートに入ってから挿入ステートを抜けるまでの操作になります. tの場合, 元に戻す単位はEmacs本来のものとなり, より細かくなります.

evil-want-change-word-to-end
boolean
初期値
t
バージョン
1.0.0
Vim
-

cwceのように振る舞うようにするかどうか. nilに設定すると, cwwで移動する位置までを変更するようになります.

evil-want-C-i-jump
boolean
初期値
t
バージョン
1.0.0
Vim
-

C-iをジャンプコマンド(evil-jump-forward)に割り当てるかどうか. デフォルトでVimと同様にC-iはジャンプコマンドに割り当てられます. デフォルト設定のままだと, TABC-iの区別がないため, ノーマルステートやビジュアルステートではTABで自動インデントなどの操作ができません.

evil-want-C-u-scroll
boolean
初期値
nil
バージョン
1.0.0
Vim
-

C-uを上スクロール(evil-scroll-up)に割り当てるかどうか. Vimと違い, デフォルトではEmacsプレフィックス引数を無効化しないように, 上スクロールには割り当てません.

evil-want-C-w-delete
boolean
初期値
t
バージョン
1.0.0
Vim
-

挿入ステートでC-wを単語削除(evil-delete-backward-wordに割り当てるかどうか). nilに設定すると挿入ステートでもC-wはウィンドウ移動コマンドになります.

evil-want-C-w-in-emacs-state
boolean
初期値
nil
バージョン
1.0.0
Vim
-

EmacsステートでもC-wをウィンドウ移動コマンドに割り当てます.

evil-want-visual-char-semi-exclusive
boolean
初期値
nil
バージョン
1.0.0
Vim
-

限定的に選択範囲からカーソル位置を除くかどうか. nilの場合は, Vimと同様に, 選択範囲にはカーソル位置を含みます. tの場合は, 行頭と行末ではEmacsと同様に選択範囲にカーソル位置を含みません.

evil-show-paren-range
integer
初期値
0
バージョン
1.0.0
Vim
-

対応する括弧をハイライトする範囲. 括弧からカーソルまでの距離がこの値以下のときに括弧をハイライトします.

evil-highlight-closing-paren-at-point-states
(list symbol)
初期値
(not emacs insert replace)
バージョン
1.0.0
Vim
-

カーソル下に閉じ括弧があるときに括弧をハイライトするステートのリスト. このリストに入っているステートでは, Vimノーマルモードのように, カーソル下に閉じ括弧がある場合に括弧をハイライトします. これ以外のステートでは, Emacsのように, カーソルが閉じ括弧の直後にある場合に括弧をハイライトします. リストの先頭がnotの場合は条件を反転します.

evil-search-module
isearch | evil-search
初期値
isearch
バージョン
1.0.0
Vim
-

検索に使うモジュール. isearchEmacsに組み込みの検索モジュール, evil-searchはEvil独自の検索モジュールです. evil-searchを選択すると, Vimの検索により近い挙動になります.

boolean
初期値
t
バージョン
1.0.0
Vim
-

検索に正規表現を使うかどうか. この設定はevil-search-moduleisearchの場合のみ有効です.

evil-search-wrap
boolean
初期値
t
バージョン
1.0.0
Vim
wrapscan

検索時にバッファ末尾に到達した場合にバッファ先頭に戻るかどうか. この設定はevil-search-moduleisearchの場合のみ有効です.

evil-flash-delay
number
初期値
2
バージョン
1.0.0
Vim
-

検索にマッチした部分のハイライトをやめるまでの秒数. この設定はevil-search-moduleisearchの場合のみ有効です.

nil | t
初期値
nil
バージョン
1.0-dev
Vim
-

*#で単語単位ではなくシンボル単位で検索するかどうか.

evil-magic
very-magic | t | nil | very-nomagic
初期値
t
バージョン
1.0.0
Vim
magic

検索パターンで使える特殊文字の範囲. この範囲に含まれている文字は, \をつけない限り特殊文字として扱われます. また, このオプションを変更しなくても, Vim同様, 検索パターン中に\v, \m, \M, \Vのいずれかのトークンが現れると, それ以降のパターンでは特殊文字の範囲が切り替わります(ただしこれらのトークン自身に関しては変わりません). 設定値と範囲, トークン, Vimのオプションの対応は以下の通りです.

設定値 トーク Vimオプション 範囲
very-magic \v 0-9A-Za-z_以外
t \m magic ][{}*+?.&~$^
nil \M nomagic ][}{*+?$^
very-nomagic \V \

この設定はevil-search-moduleevil-searchの場合のみ有効です.

evil-ex-search-case
sensitive | insensitive | smart
初期値
smart
バージョン
1.0.0
Vim
ignorecase, smartcase

検索時に大文字・小文字を区別するかどうか. sensitiveの場合は区別し, insensitiveの場合は区別せず, smartの場合は, 先頭が大文字のときは区別し, 先頭が小文字のときは区別しません. Vimと違い, 初期値はsmartです. この設定はevil-search-moduleevil-searchの場合のみ有効です.

evil-ex-search-vim-style-regexp
boolean
初期値
nil
バージョン
1.0.0
Vim
-

Vim風の正規表現を使うかどうか. nilの場合は従来のEmacs正規表現を用います. tの場合はVimと互換な正規表現を内部でEmacs正規表現に変換します. Vimと違い, デフォルトではEmacs正規表現を用います. この設定はevil-search-moduleevil-searchの場合のみ有効です. evil-search-moduleisearchの場合は常にEmacs正規表現を用います.

evil-ex-hl-update-delay
number
初期値
0.02
バージョン
1.0.0
Vim
-

検索結果のハイライトをするまでの待ち時間. この値をキーリピートの間隔よりも短くすることで, (jC-eによる)スクロール中にもハイライトが更新されるようになります. この設定はevil-search-moduleevil-searchの場合のみ有効です.

evil-ex-search-interactive
boolean
初期値
t
バージョン
1.0.0
Vim
(incsearch)

検索をインタラクティブにするかどうか. tの場合は検索結果がハイライトされ, 検索パターンの入力中にもハイライトが更新されます. この設定はVimincsearchに似ていますが, nilの場合もハイライトされないだけで検索そのものはこの設定によらず常にインクリメンタルにする点が異なります. Vimと違い, デフォルトで有効です. この設定はevil-search-moduleevil-searchの場合のみ有効です.

evil-ex-search-highlight-all
boolean
初期値
t
バージョン
1.0.0
Vim
hlsearch

検索結果をすべてハイライトするかどうか. tの場合, :nohlsearchするか, 別のパターンを検索するまでハイライトされ続けます. Vimと違いデフォルトで有効です. この設定は, evil-search-moduleevil-searchで, evil-ex-search-interactivetの場合のみ有効です.

evil-ex-interactive-search-highlight
all-windows | selected-window | nil
初期値
all-windows
バージョン
1.0.0
Vim
-

検索結果をハイライトする範囲. all-windowsの場合はすべてのウィンドウでハイライトされます. selected-windowの場合は現在のウィンドウでハイライトします. nilの場合はハイライトしません. この設定はevil-search-moduleevil-searchの場合のみ有効です.

evil-ex-substitute-case
nil | sensitive | insensitive | smart
初期値
nil
バージョン
1.0.0
Vim
-

置換時に大文字・小文字を区別するかどうか. sensitiveの場合は区別し, insensitiveの場合は区別せず, smartの場合は, 先頭が大文字のときは区別し, 先頭が小文字のときは区別しません. nilの場合は, evil-ex-search-caseの設定に従います.

evil-ex-substitute-global
boolean
初期値
nil
バージョン
1.0-dev
Vim
gdefault

置換時にデフォルトで複数回マッチするかどうか. tにすると, gフラグをつけなくても複数回マッチするようになり, 逆にgをつけたときは複数回マッチをやめるようになります.

evil-ex-substitute-highlight-all
boolean
初期値
t
バージョン
1.0.0
Vim
-

置換対象をハイライトするかどうか. tの場合, 置換(:substitute)の際に置換パターンにマッチする部分をすべてハイライトします.

evil-ex-substitute-interactive-replace
boolean
初期値
t
バージョン
1.0.0
Vim
-

置換結果を表示するかどうか. tの場合, 置換(:substitute)の結果を, 置換対象の部分の直後にインタラクティブに表示します. この設定はevil-ex-substitute-highlight-alltの場合のみ有効です.

evil-ex-visual-char-range
boolean
初期値
nil
バージョン
1.0-dev
Vim
-

:コマンドを文字単位の選択範囲に対して適用するかどうか. nilの場合はVimと同様に, '<,'>:によって挿入されます. tの場合は, Vimにはない`<,`>が挿入されます. Evilでは, :'<,'>は行単位の選択範囲, :`<,`>は文字単位の選択範囲に対してコマンドを適用することを表します.

evil-ex-complete-emacs-commands
nil | t | in-turn
初期値
in-turn
バージョン
1.0-dev
Vim
-

コマンドライン(:)でEmacsのコマンドを補完の対象にするかどうか. nilの場合はVimのコマンドのみ補完します. tの場合は常にEmacsのコマンドも補完します. in-turnの場合は, Vimのコマンドにマッチするものがない場合のみ, Emacsのコマンドを補完対象にします.

evil-complete-all-buffers
boolean
初期値
t
バージョン
1.0.0
Vim
(complete)

補完の際にすべてのバッファから候補を探すかどうか.

evil-complete-next-func
function
初期値
...
バージョン
1.0.0
Vim
-

挿入ステートのC-nコマンド(evil-complete-next)で使う補完関数.

evil-complete-previous-func
function
初期値
...
バージョン
1.0.0
Vim
-

挿入ステートのC-pコマンド(evil-complete-previous)で使う補完関数.

evil-complete-next-minibuffer-func
function
初期値
minibuffer-complete
バージョン
1.0.0
Vim
-

ミニバッファのC-nコマンド(evil-complete-next)で使う補完関数.

evil-complete-previous-minibuffer-func
function
初期値
minibuffer-complete
バージョン
1.0.0
Vim
-

ミニバッファのC-pコマンド(evil-complete-previous)で使う補完関数.

evil-complete-next-line-func
function
初期値
...
バージョン
1.0.0
Vim
-

ミニバッファのC-x C-nコマンド(evil-complete-next-line)で使う補完関数.

evil-complete-previous-line-func
function
初期値
evil-complete-next-line-func
バージョン
1.0.0
Vim
-

ミニバッファのC-x C-pコマンド(evil-complete-previous-line)で使う補完関数.

evil-lookup-func
function
初期値
woman
バージョン
1.0.0
Vim
-

キーワード検索コマンドK(evil-lookup)で使う関数.

evil-default-cursor
(set ...)
初期値
("black" t)
バージョン
1.0.0
Vim
-

デフォルトのカーソル. cursor-typeに設定するカーソルの形状, カーソル色を表す文字列, あるいはカーソルを変更する0引数関数を要素として含むリストを設定します. デフォルトのカーソル色は(frame-parameter nil 'cursor-color)の値(もしnilのときは"black")です.

evil-mode-line-format
before | after | (after . symbol) | (before . symbol)
初期値
before
バージョン
1.0.0
Vim
-

ステートをモードラインのどの位置に表示するか. beforeはモードリストの前, afterはモードリストの後です. consセルを指定することで, mode-line-format中の特定のシンボルの前か後を指定することもできます.

evil-echo-state
boolean
初期値
t
バージョン
1.0.0
Vim
-

エコー領域にステートの変更を通知するかどうか.

evil-fold-level
integer
初期値
0
バージョン
1.0.0
Vim
foldlevel

デフォルトの折り畳みレベル.

evil-auto-balance-windows
boolean
初期値
t
バージョン
1.0-dev
Vim
-

Evilのコマンドによってウィンドウが作成/削除されたとき, ウィンドウの大きさを揃え直すかどうか. ただし, Emacsの組込み関数が直接あるいは他のパッケージから間接的に呼び出された場合は, 揃え直しません.

evil-esc-delay
number
初期値
0.01
バージョン
1.0.0
Vim
-

ESCが押された際に後続のキーを待つ秒数. 端末では単体のESCM-を区別することができないため, ごく短い間に(事実上同時に)他のキーが押された場合のみM-として認識する必要があります. 端末そのもの(screentmux)でも同様に短い時間待つ設定がある場合は, そちらの調整も必要です.

evil-intercept-esc
nil | t | always
初期値
always
バージョン
1.0-dev
Vim
-

ESCキーをinput-decode-mapで特別扱いするかどうか. ターミナル上のEmacs(emacs -nw)ではESCとメタキーが同じイベントになるため, input-decode-mapESCを特別扱いし, イベントを変換する必要があります. この変数はどういう場合にイベントを変換するかを制御します. nilの場合は一切変換しません. tの場合はターミナル上のEmacsでのみ変換します. alwaysの場合はGUI版のEmacsでも変換します. GUI版でのイベント変換は, C-[ESCの代わりに使いたい場合に必要です.

evil-toggle-key
string
初期値
"C-z"
バージョン
1.0.0
Vim
-

Emacsステートと行き来するキー.

evil-default-state
symbol
初期値
normal
バージョン
1.0.0
Vim
-

初期状態のステート.

evil-buffer-regexps
(alist string symbol)
初期値
...
バージョン
1.0.0
Vim
-

バッファの初期状態のステートを表す連想配列. キーはバッファ名の正規表現で, 値はステートまたはnilです. nilの場合, そのバッファではEvilが完全に無効になります.

evil-emacs-state-modes
(repeat symbol)
初期値
...
バージョン
1.0.0
Vim
-

初期状態でEmacsステートになるべきメジャーモードのリスト.

evil-insert-state-modes
(repeat symbol)
初期値
...
バージョン
1.0.0
Vim
-

初期状態で挿入ステートになるべきメジャーモードのリスト.

evil-motion-state-modes
(repeat symbol)
初期値
...
バージョン
1.0.0
Vim
-

初期状態で移動ステートになるべきメジャーモードのリスト.

evil-overriding-maps
(alist symbol symbol)
初期値
...
バージョン
1.0.0
Vim
-

Evilのキーバインドを上書きするキーマップの連想配列. キーにはキーマップのシンボルを, 値にはどのステートで上書きするかを指定します. ステートにnilを指定するとすべてのステートで上書きします.

evil-intercept-maps
(alist symbol symbol)
初期値
...
バージョン
1.0.0
Vim
-

Evilのキーバインドを遮るキーマップの連想配列. キーにはキーマップのシンボルを, 値にはどのステートで遮るかを指定します. ステートにnilを指定するとすべてのステートで遮ります. ここで指定したキーマップはEvilのあらゆるキーより優先的に処理され, デバッグ用途に用いられることを想定しています. 通常はevil-overriding-mapsを使うべきです.

evil-motions
(repeat symbol)
初期値
...
バージョン
1.0.0
Vim
-

移動コマンドとして認識されるべきコマンドのリスト. ここに指定したコマンドは, Evilの移動コマンドと同様に, 移動コマンドと認識されます. 繰り返し操作などで非Evilな移動コマンドがうまく扱われない場合はこのリストに追加するとよいでしょう.

evil-visual-newline-commands
(repeat symbol)
初期値
...
バージョン
1.0.0
Vim
-

選択範囲に対するコマンドのうち, 末尾の改行を含めてはいけないもののリスト. 行選択で末尾に改行が含まれるとうまく動作しない場合はこのリストに追加するとよいでしょう.

  1. 導入編
  2. 設定編
  3. 拡張編
  4. 付録