cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

些末なるVim scriptのTips

実際に使った、役に立ったもの

あるechoの表示で一時停止させてユーザに確認を促したい

echo の直後で call getchar() する

インプットメソッドを強制的にオフにしたい

'imdisable'で一時的にIMをオフにする。

let save_imd = &imd
set imdisable
let &imd = save_imd

まだ役に立つかどうか未知数

マルチバイト文字にマッチするパターン

>マルチバイト文字にマッチするようなパターン
ものすごーくざっくりやるとすると、
[^\x00-\x7f]
かなぁ
うまくいかないパターンもあるかも

http://lingr.com/room/vim/archives/2013/12/10#message-17781111

undobreak

undobreak1

haya14busa:
undojoin案件、その後のundobreak的なコマンド抜けてて困ったことあったから、vim-overのソースみてみたらちゃんとそこも対応してた。さすがだ

t9md:
undobreak とは。どういうケースで必要になるんですか。僕も undojoin は使ってるので知りたい。
Plugin 内で undojoin した後 u するよカーソルがあらぬ方向にいっちゃうの何とか出来るのか知りたい。

http://lingr.com/room/vim/archives/2013/12/10#message-17781824

undobreakとは

:undojoinはあるけど:undobreakはない。

しかし:undobreak相当のことは次のコマンドでできるようだ。 :execute 'normal!' "i\u\"
すなおに:undobreakよういしてください

http://lingr.com/room/vim/archives/2009/09/08#message-3450

haya14busa:
undobreakこれです。 > t9mdさん

まさに、プラグイン内でundojoinしてそのあと履歴を区切らないと、uしたときに前の部分まで戻ってカーソル動いちゃうと思います。

http://lingr.com/room/vim/archives/2013/12/10#message-17784905

undobreak2

thinca:
command! Undobreak let &undolevels = &undolevels

http://lingr.com/room/vim/archives/2013/12/10#message-17785046

haya14busa:
undobreak相当のこと、thincaさんがおっしゃってる let &undolevels = &undolevelsでもできるんですね
どっちがいいんだろう

thinca:
現在のモードに依存しないので undolevels いじった方がいいと思っている

http://lingr.com/room/vim/archives/2013/12/10#message-17786194