vim-altercmdからleximaに乗り換える
done
code:vim
function! s:lexima_alter_command(original, altanative) abort
let input_space = '<C-w>' . a:altanative . '<Space>'
let input_cr = '<C-w>' . a:altanative . '<CR>'
let rule = {
\ 'mode': ':',
\ 'at': '^\(''<,''>\)\?' . a:original . '\%#$',
\ }
call lexima#add_rule(extend(rule, { 'char': '<Space>', 'input': input_space }))
call lexima#add_rule(extend(rule, { 'char': '<CR>', 'input': input_cr }))
endfunction
command! -nargs=+ LeximaAlterCommand call <SID>lexima_alter_command(<f-args>)
lexima.vimはcnoremapでも使える
altercmdと違って行頭じゃなくても展開できそうだから乗り換えたい
code:help
mode (String) (Optional)
Specify whether the rule is enabled on Insert mode and/or Command-line
mode.
"mode" is String containing some following characters.
"i": enabled on Insert mode
":": enabled on Command line mode (Ex-Command)
"/": enabled on Command line mode (forward search)
"?": enabled on Command line mode (backward search)
"c": enabled on Command line mode (same as ":/?")
If omitted, "i" is used (only Insert mode).
cap[ture] Capture みたいなのは cap\%[ture] で代替できるらしい
code:help
*/\%[]* *E69* *E70* *E369*
\%[] 任意にマッチするアトム列です。これは常にマッチします。アトム単位で最長
一致し、最初にアトムがマッチしなかったところでストップします。例:
これは、"r"、"re"、"rea"、"read" にマッチします。1 番長いマッチが使わ
れます。Ex コマンドの "function" は、"fu" が必須で、"nction" は省略可
能ですが、次の例は、そのようなものにマッチします:
"full" の "fu" にマッチするようなことがないように、単語末尾のアトム
"\>" が使われています。使う機会はあまりないかもしれませんが、普通の文
字以外のアトムを使って、さらに複雑なものも表現できます。例:
これは、"r"、"re"、"ro"、"rea"、"roa"、"read"、"road" にマッチします。
[] の中では \(\)、\%(\)、\z(\) は使えません。\%[] はネストできません。
"を含めるには "[[" を、"]" を含めるには "[]]" を使ってください。
例:
/index\%[]0[]
これは "index"、"index["、"index[0"、"index0" にマッチします。 {|+syntax| が有効な場合のみ利用可能}