RuVim は「Vim ライクな Ruby 製ターミナルエディタ」です。Vim 完全互換ではなく、Vim の操作感を優先しつつ一部を独自拡張・簡略化しています。
~/.config/ruvim/init.rb)
nmap, imap, map_global, set, setlocal, setglobal, command, ex_command, ex_command_call:ruby / :rb で実行中に Ruby eval が可能(Vim の :ruby とは別物)ctx.editor / ctx.buffer / ctx.window API:vsplit 後に :split すると、対象カラムだけが上下分割される(Vim と同様のツリー構造)Shift+Arrow キーによるスマート分割
tail -f 相当):follow コマンドまたは -f CLI フラグでファイル追従モード/, ?, :s はすべて Ruby の Regexp を使用:help regex でヘルプ表示d, y, c + motion / text objectiw/aw, ip/ap, i"/a", i`/a`, i)/a), i]/a], i}/a}. repeat: x, dd, d{motion}, p/P, r<char>, i/a/A/I/o/O, cc, c{motion}
. は内部再生キーを macro に混ぜないw, b, e(iskeyword 対応)q{reg}, @{reg}, @@m, ', `, '', ` `` , "), named("a〜"z, "A append), black hole("_)"0, numbered delete "1〜"9"+, "*(pbcopy/pbpaste, wl-copy/wl-paste, xclip, xsel):w, :q, :wq, :e, :buffer, :bnext, :bprev, :bdelete, :ls, :split, :vsplit:qa, :qa!, :wqa:vimgrep, :lvimgrep, :grep, :lgrep, :copen, :cnext, :lopen, :lnext:tabnew, :tabnext, :tabprev, :tabs:args, :next, :prev, :first, :last:d / :delete, :y / :yank:set, :setlocal, :setglobal(global / buffer-local / window-local)number, relativenumber, cursorline, wrap, linebreak, breakindent, showbreak, list, listchars, colorcolumn, signcolumn, numberwidth, scrolloff, sidescrolloff, termguicolorsshiftwidth, softtabstop, expandtab, autoindent, smartindent, tabstopignorecase, smartcase, hlsearch, incsearchsplitbelow, splitrightgrepprg, grepformathidden, autowrite, clipboard, timeoutlen, ttimeoutlen, backspace, whichwrap, iskeyword, filetype, path, suffixesadd, 補完系(completeopt, pumheight, wildmode, wildmenu, wildignore, wildignorecase)Ctrl-n / Ctrl-p)--help, --version, --clean, -u, -R, -M, -Z, -f, -o/-O/-p, -c, +{cmd}, -V, --startuptime, --cmd-Z)-Z で restricted mode を有効化:!(シェル実行):ruby / :rb(Ruby eval):grep / :lgrep(外部 grep 実行):git(Git 操作全般):gh(GitHub 操作全般):grep / :lgrep はシェル経由ではなく argv 配列で安全に実行(シェルインジェクション対策済み). repeat のカウント互換は完全ではないSIGWINCH + self-pipe + IO.select でリサイズ追従:w! は現状 :w とほぼ同じ(権限昇格や readonly 強制保存は未実装):command は Ex 文字列エイリアス展開の簡易実装y/d の最小対応(blockwise text object / paste の Vim 互換挙動は未実装)nu, ts 等)は未対応:set の高度な構文(+=, -=, ^= 等)は未対応"- は未実装:make, :cfile, :lfile(:grep, :lgrep は実装済み)g, i, I, n, e, c)undofile は実装済み)-d(diff mode), -q(quickfix mode), -S(session)は placeholder のみ