Closed KottoSyu closed 4 years ago
ありがとうございます。
インサートモード時の <CR>
のマッピングが lexima.vim に取られるのはおっしゃるとおりです。
< CR>のマップをうまく両方適用させる方法はありますでしょうか?
これは <CR>
をどういうふうにマッピングしたいかによるのですが、可能な場合があります。
差し替えなければどういうマッピングを実現したいのか、教えてもらえますか?
ご返答ありがとうございます。
単純なことなんですが、
<CR>
押すたびに、undoの単位を作りたいのと、画面をzz
したいんです。
「実践vim 思考のスピードで編集しよう」を読んでいて、undoの単位を意識したいと思いました。
今のところ、
inoremap <CR> <CR>x<BS><C-o>zz
と考えています。
x<BS>
はautoindent
が消えないようにするためです。
他にいい方法が思いつきませんでした。
inoremap <CR> <CR>x<BS><Esc>zza
でも考えていましたが、<Esc>
入れてるのに、
undo
の単位が作られませんでした。
ドットの動作は更新されていました。
不思議です。
長々とすいません。 周りにvimmerが一人もいなく、 vimの話が出来るのが嬉しいです。
このマップの場合はどうでしょうか? よろしくお願いいたします。
なるほどです。 それであれば lexima.vim の map_hook を使うと良さそうです。ちゃんとドキュメント書いてないんですが、 vimrc に以下を書けば良さそうです。
call lexima#insmode#map_hook('after', "<CR>", "x<BS><C-o>zz")
上記で、<CR>
の通常の処理を lexima 側で行ったあとにユーザ定義のマッピングを挟むことができます。
そんな関数があるんですね! 早速やってみます。
大切なお時間でご対応頂きまして、 ありがとうございます。
cohamaさん、いつもlexima.vim活用させて頂いております。 ありがとうございます。 質問なんですが、自分の.vimrcで< CR>をmapしましたが、一回insertモードに入ると、< CR>のマップが、 lexima.vimによって、リマップされます。 lexima_newlineのルールのためだと解釈しております。 < CR>のマップをうまく両方適用させる方法はありますでしょうか? <例>
{ < CR>の場合のみ、lexima.vimのマップを適用させる。 それ以外の場合は、自分のマップを適用。
それか、lexima.vimのinsert modeののマップを他のキーマップに変えることは可能ですか?
<例>
自分の< CR>のマップを活かしつつ、
{ j< CR>でlexima_newlineを実行出来るようにする。
vimmerを目指すvim初心者のため、初歩的な質問ですが、 ご教示頂ければ、幸いです。