vim6
[141:名無しさん@お腹いっぱい。 (2001/06/30(土) 20:38)]
virtualedit=all 時のバグか仕様かよくわからない現象発見。
2Byte文字上で、r して一文字書き換えようとすると・・・。
あらあら、2Byte文字上なのに、1Byte目しか書き換わらず、2Byte目がスペースに置き換わってしまいます。
うーむ。
[142:141 (2001/06/30(土) 20:40)]
"R" で連続的に書き換えるときは問題ないみたいです。
[143:KoRoN (2001/06/30(土) 21:57)]
>>141
タブをvirtualeditモードでrした時に、
見た目の配置が変わらないように必要な空白文字が挿入されます。
2バイト文字(マルチワイド文字)をrした時にも同様の仕組みが働いているのでしょう。
vimを使う人でvirtualeditを常用する人が多くないのに加え、
マルチワイドも使う人、その仕様に提案をする人はさらに少ないのでしょう。
明文化されていない仕様ということになるわけですが…
こうして欲しい、という要望があれば一考しますよ。
# すぐにできる、というわけではないのであしからず
[144:名無しさん@お腹いっぱい。 (2001/07/01(日) 15:47)]
colorsheme の Ignore はどんなところを色着けしてるんですか?
真っ黒黒スケなんですけど。
[145:名無しさん@お腹いっぱい。 (2001/07/01(日) 16:09)]
rとRで違うということはバグとみなしてよいのでは?
[146:KoRoN (2001/07/01(日) 20:10)]
>>145
個人的にはrの挙動の方が正しい動作に近いのではないかと考えています。
厳密にはちょっと動作が違ってますが、ve時のRはgRと同様になった方が直感的かなと。
# そうするとve時のrはgrかなぁ?
[147:KoRoN (2001/07/02(月) 01:24)]
>>144
ちょっとわからなかったので調べてみました。正確にはhighlightのIgnoreですね。
どうやら表示したくないものを背景色と同じにしているようです。
# …まんま、解説になってませんね…
:highlight Ignore guifg=red guibg=blue
:help changetick
とすると例となっているスクリプトの前後に目立つ>と<が見えるでしょう。
ここでは文章にSyntaxで色を付けるための1つの手法として使われています。
[148:名無しさん@お腹いっぱい。 (2001/07/02(月) 06:44)]
>>146
1バイト文字の空白挿入は納得できるけれど、2Byte文字のときは納得いかない。
レイアウト崩れるじゃん。
[149:名無しさん@お腹いっぱい。 (2001/07/02(月) 08:21)]
>>147
なるほど、調査ありがとう。
ということは Ignore はヘルプファイルにしか設定されていないということですよね?
そうじゃないと怖くて普通のファイルの作成・編集ができないからね。
#それでも Ignore にほんのりと色を着けたくなる慎重なオレ
[150:KoRoN (2001/07/02(月) 09:10)]
>>148
veのrで2バイト文字を2バイト文字で置き換える、と言うことでしたか。
そういう風に読み取ることができてませんでした、申し訳ないです。
XIMの一件が片付いたらそっちにかかります。
# betaリリースも近いようですしね。
>>149
使ったことはないですが、シンタックスファイルを見ると幾つか設定はされているようですよ。
$ cd $VIMRUNTIME/syntax
$ grep -n \\\<Ignore\\\> *.vim
read.cgi ver5.26+ (01/10/21-)