この文書は、RuVim の設定方法と :set 系オプションの現状仕様をまとめたものです。
$XDG_CONFIG_HOME/ruvim/init.rb~/.config/ruvim/init.rb(XDG_CONFIG_HOME 未設定時)$XDG_CONFIG_HOME/ruvim/ftplugin/<filetype>.rb~/.config/ruvim/ftplugin/<filetype>.rb設定ファイルは Ruby DSL(ConfigDSL)として評価されます。
--clean
-u path/to/init.rb
-u NONE
--cmd {cmd}
:set 系コマンド(現状):set
:set {name}
on:set no{name}
off:set inv{name}
:set {name}?
:set {name}={value}
:setlocal ...
window or buffer):setglobal ...
init.rb / ftplugin/*.rb では DSL メソッドも使えます。
set "number"
set "relativenumber"
set "ignorecase"
set "smartcase"
set "hlsearch"
setlocal "tabstop=4"
setglobal "tabstop=8"
実装の定義元は lib/ruvim/editor.rb の RuVim::Editor::OPTION_DEFS です。
補足:
DONE / PARTIAL / 定義のみ は、RuVim 内での実装の反映度を示します(Vim 完全互換度ではありません)PARTIAL は「主要な場面では効くが、Vim の細部互換までは未実装」の意味ですnumber (bool, default false) [DONE]
Screen の行番号ガター描画に反映されます。relativenumber (bool, default false) [DONE]
number 併用時は current line を絶対行番号で表示します。wrap (bool, default true) [PARTIAL]
linebreak (bool, default false) [PARTIAL]
wrap 時に空白位置を優先して折り返します。breakindent (bool, default false) [PARTIAL]
wrap の継続行に元行のインデントを反映します。cursorline (bool, default false) [DONE]
scrolloff (int, default 0) [DONE]
Window#ensure_visible に反映されます。sidescrolloff (int, default 0) [DONE]
numberwidth (int, default 4) [DONE]
number / relativenumber のガター幅計算に反映されます。colorcolumn (string, default nil) [DONE]
80 や 80,100 のような数値列指定のみ対応です。signcolumn (string, default "auto") [PARTIAL]
yes / yes:N の幅予約に対応する最小実装です(サイン自体の描画は未実装)。list (bool, default false) [PARTIAL]
listchars と組み合わせた描画の最小対応です。listchars (string, default "tab:>-,trail:-,nbsp:+") [PARTIAL]
tab, trail, nbsp のみ使用します。showbreak (string, default "") [PARTIAL]
wrap 継続行の先頭に表示する文字列です。showmatch (bool, default false) [PARTIAL]
match メッセージ表示です。matchtime (int, default 5) [PARTIAL]
showmatch の一時メッセージ表示時間(0.1秒単位)です。match メッセージの自動消去時間に反映されます。whichwrap (string, default "") [PARTIAL]
h / l、左右矢印(left / right、< / >)の最小対応です。virtualedit (string, default "") [PARTIAL]
onemore と all の最小対応(主に左右移動と描画)です。ignorecase (bool, default false) [DONE]
smartcase と組み合わせて挙動が変わります。smartcase (bool, default false) [DONE]
ignorecase 有効時に、パターンに大文字を含む場合だけ case-sensitive にします。hlsearch (bool, default true) [DONE]
incsearch (bool, default false) [PARTIAL]
/ ? の入力中に逐次検索プレビューを行います。splitbelow (bool, default false) [DONE]
:split 時に現在 window の下側へ分割を挿入します。splitright (bool, default false) [DONE]
:vsplit 時に現在 window の右側へ分割を挿入します。hidden (bool, default false) [PARTIAL]
:e, :buffer, :bnext, :bprev, :tabnew, gf の主要経路で参照します。autowrite (bool, default false) [PARTIAL]
:buffer, :bnext, :bprev, :e {file}, :tabnew, gf の主要経路で最小対応です。clipboard (string, default "") [PARTIAL]
* / + に連携する方針を指定します。unnamed, unnamedplus の基本連携のみ対応です。timeoutlen (int, default 1000) [DONE]
ttimeoutlen (int, default 50) [DONE]
backspace (string, default "indent,eol,start") [PARTIAL]
start, eol, indent, 2 の最小判定です(Vim 完全互換ではありません)。completeopt (string, default "menu,menuone,noselect") [PARTIAL]
menu, menuone, noselect, noinsert をメッセージ行ベースの簡易 UI に反映します。pumheight (int, default 10) [PARTIAL]
wildmode (string, default "full") [PARTIAL]
longest, list, full の最小対応です(list:full 形式も可)。wildignore (string, default "") [DONE]
File.fnmatch? ベースで判定します。wildignorecase (bool, default false) [DONE]
wildignore のパターンマッチを大文字小文字無視にします。wildmenu (bool, default false) [PARTIAL]
termguicolors (bool, default false) [PARTIAL]
cursorline、colorcolumn の背景色に最小反映されます。path (string, default nil) [PARTIAL]
gf などのファイル探索ディレクトリを指定します(, 区切り)。gf の最小探索に利用します(file:line の line ジャンプにも対応)。lib/** のような再帰探索(簡易)に対応します。suffixesadd (string, default nil) [PARTIAL]
gf などで補完する拡張子候補を指定します(, 区切り)。gf の最小探索に利用します(file:line の path 部分に適用)。textwidth (int, default 0) [定義のみ]
formatoptions (string, default nil) [定義のみ]
expandtab (bool, default false) [DONE]
softtabstop / tabstop と組み合わせて空白数を決めます。shiftwidth (int, default 2) [PARTIAL]
smartindent の追加インデント幅で使用します。softtabstop (int, default 0) [PARTIAL]
expandtab 時の空白 Backspace(最小)で使用します。autoindent (bool, default true) [DONE]
Enter、o/O に反映されます。smartindent (bool, default true) [PARTIAL]
{ [ ( で終わる場合に shiftwidth 分の空白を追加します。iskeyword (string, default nil) [PARTIAL]
w/b/e、* / #、一部 text object、Insert 補完の単語抽出に反映します。tabstop (int, default 2) [DONE]
filetype (string, default nil) [DONE]
spell (bool, default false) [DONE]
]s / [s で次/前のミスにジャンプできます。gitcommit filetype ではデフォルトで有効です。/usr/share/dict/words を使用します(Pure Ruby 実装)。spelllang (string, default "en") [定義のみ]
undofile (bool, default true) [DONE]
:set noundofile で無効化可能。undodir (string, default nil → $XDG_DATA_HOME/ruvim/undo/) [DONE]
nil の場合は ~/.local/share/ruvim/undo/ を使用します。syncload (bool, default false) [DONE]
true にすると大きなファイルの非同期ロード(Stream::FileLoad)を無効化し、常に同期ロードします。:set syncload または CLI --sync-load で有効化。grepprg (string, default "grep -nH") [DONE]
:grep / :lgrep が使用する外部コマンドを指定します。grepformat (string, default "%f:%l:%m") [DONE]
:grep / :lgrep の出力パース書式を指定します。:set all / :setlocal 一覧の整形表示は未実装(簡易表示)+=, -=, ^= などの複合代入は未対応&(デフォルトへ戻す)や <(global 値に戻す)などは未対応nu)は未対応