/
してcgn
した後に.
で繰り返せるのはべんりだけど、括弧のリマップがアレだと残念なことになる。
カーソル移動でundoが分断されるやつ
inoremap()()<Left>
違う、そうじゃない
fooをcgnで(bar)へ直してドットリピートしようとしている
1. (babababarrrr)
2. bar
3. hoge
4. foo
いつからあるのか知らないけど1、<C-G>U
を足すと期待する挙動になる。
inoremap()()<C-G>U<Left>
流石ねジェームズ
1. (bar)
2. bar
3. hoge
4. (bar)
ヘルプ
CTRL-G
U の使用例:inoremap<Left><C-G>U<Left>inoremap<Right><C-G>U<Right>inoremap<expr><Home>col('.')==match(getline('.'),'\S')+1 ? \ repeat('<C-G>U<Left>',col('.')-1) : \ (col('.')<match(getline('.'),'\S') ? \ repeat('<C-G>U<Right>',match(getline('.'),'\S')+0) : \ repeat('<C-G>U<Left>',col('.')-1-match(getline('.'),'\S')))inoremap<expr><End> repeat('<C-G>U<Right>',col('$')-col('.'))inoremap(()<C-G>U<Left>これにより undo を分割することなくカーソルキーを挿入モード内で使うことができ、
.
(および redo) は期待通りに動作するようになる。
また次のような (上記の "(" マッピングをともなう) テキスト入力:Lorem ipsum (dolorは
.
によって期待通り繰り返すことができるようになる。Lorem ipsum (dolor)
ジャンプするやつなかったんで、:h insert
して/CTRL-G
してください...
きょう気づいた ↩