矩形選択時のputハック
サクラエディタふぁんくらぶ part7 >>654 より
ちなみに俺はサクラの矩形処理ではコピペ関連が好きだな。
vimで出来るかどうかは知らんが、1行コピーして4行矩形選択して張り付けると4行分張り付けられたり
矩形選択してコピーしたものは、矩形選択せずに張り付けても、矩形貼り付けになったりね。
vim ではできないのでできるようにした。
文字単位でヤンクして矩形選択してプットすると4行分プットされる。
--- ../src.orig/normal.c Sat Apr 29 22:11:18 2006 +++ normal.c Sun Sep 10 12:16:32 2006 @@ -9002,6 +9002,19 @@ #endif do_put(cap->oap->regname, dir, cap->count1, flags); + if (was_visual && VIsual_mode == Ctrl_V && get_reg_type(cap->oap->regname, NULL) == MCHAR) + { + int visualsize = cap->oap->end.lnum - cap->oap->start.lnum; + int li; + + for (li=0; li<visualsize; li++) + { + curwin->w_cursor.lnum += 1; + curwin->w_cursor.col = cap->oap->start_vcol; + do_put(cap->oap->regname, dir, cap->count1, flags); + } + } + #ifdef FEAT_VISUAL /* If a register was saved, put it back now. */ if (reg2 != NULL)
[追記:2006-09-11]
矩形選択して I
矩形選択に関しては vim よりサクラの方が優れていると思う。
というか全体的に vim のヤンク・プットは使いづらい。
p と P の使い分けもその1つだ。
これはカーソルは常に文字の上に置かれるものという考えに起因する。Emacs や Windows のエディタのように、カーソルは文字と文字の間を指すものと定義すればよかったのだ。