SSブログ

[記]2010-8-23(月), [PC]だめ文字, [vim]だめ文字をハイライト

[記]2010-8-23(月)

[PC]だめ文字

Shift_JISの『だめ文字』にっかかってしまいました。
C言語では、バックスラッシュ(0x5C)はエスケープ文字としてわれ、行末にバックスラッシュがあると、連続しただとみなされます。
Shift_JISは、1文字が2バイトでされるのですが、2バイトが0x5Cになっている文字がいくつかあります。Shift_JIS認識しないプログラムが、これのせいで誤動作することがあります。


やってしまったのは、コメントの最後に『だめ文字』をいてしまう、ありがちなミスです。

// 最近のC言語は//コメントを使用可能

こんなじで、//コメントの行末に、「」という『だめ文字』をいてしまったわけです。
そのため、もコメントいになってしまい、のエラーがてしまいました。


んだことはしょうがないので、じミスをしないように予防します。
するに、行末に『だめ文字』があってはいけないわけですから、簡単です。
ける。
いやいや、そんなのは、予防になりません。ての『だめ文字』にして、注意うことなんて、できないです。


とりあえず、//コメントをやめる、というはあります。

/* 最近のC言語は//コメントを使用可能 */

でも、すでにいたコメントを変更しまくるのも面倒ですし、

/* 最近のC言語は//コメントを使用可能*/

というふうに、「」の直後にコメントじをいてしまうと、これもエスケープされてエラーになってしまいます。

  • Shift_JISなんかてて、UTF-8にする
  • そもそもコメントに日本語なんかかない

などという対策もありますが、過去コードの流用なんてのもあったりすると、そうもいかないわけで。

[vim]だめ文字をハイライト

常用しているテキストエディター『gvim』の設定えて、行末の『だめ文字』を目立つようにしました。
さえミスしなければ、がどうなろうとらんです。
下記.vimrcけばよいといます。

"---------------------------------------------------------------------------
" Check Dame moji
"---------------------------------------------------------------------------
if version >= 700
	if has("syntax")
		syntax on
		function! ActivateDameSJIS()
			syntax match DameSJIS /[―ソЫⅨ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭偆砡纊犾]$/ display containedin=ALL
			highlight DameSJIS ctermbg=yellow ctermfg=red guibg=yellow guifg=red
		endf
		augroup dame_sjis
			autocmd! dame_sjis
			autocmd BufNew,BufRead * call ActivateDameSJIS()
		augroup END
	endif
endif

fileencodingsjisとかcp932のときだけチェックすればいいのですが、面倒なのでにハイライト表示するようにしてます。
UTF-8記述したコードを、かがShift_JIS変換して使うかもれませんからね。

[記]2010-8-23(月)

[PC]だめ文字

Shift_JISの『だめもじ』にひっかかってしまいました。
Cげんごでは、バックスラッシュ(0x5C)はエスケープもじとしてあつかわれ、ゆくすえにバックスラッシュがあると、つぎのぎょうがれんぞくしたぎょうだとみなされます。
Shift_JISは、1文字が2バイトでひょうされるのですが、2バイトめが0x5Cになっているもじがいくつかあります。Shift_JISをにんしきしないプログラムが、これのせいでごどうさすることがあります。


やってしまったのは、コメントのさいごに『だめもじ』をかいてしまう、ありがちなミスです。

// 最近のC言語は//コメントを使用可能

こんなかんじで、//コメントのゆくすえに、「のう」という『だめもじ』をかいてしまったわけです。
そのため、つぎのぎょうもコメントあつかいになってしまい、なぞのエラーがでてしまいました。


すんだことはしょうがないので、おなじミスをしないようによぼうします。
ようするに、ゆくすえに『だめもじ』があってはいけないわけですから、はなしはかんたんです。
つぎはきをつける。
いやいや、そんなのは、よぼうさくになりません。すべての『だめもじ』にたいして、つねにちゅういをはらうことなんて、できないです。


とりあえず、//コメントをやめる、というかたほうはあります。

/* 最近のC言語は//コメントを使用可能 */

でも、すでにかいたコメントをへんこうしまくるのもめんどうですし、

/* 最近のC言語は//コメントを使用可能*/

というふうに、「のう」のちょくごにコメントとじをかいてしまうと、これもエスケープされてエラーになってしまいます。

  • Shift_JISなんかすてて、UTF-8にする
  • そもそもコメントににほんごなんかかかない

などというたいさくもありますが、かこコードのりゅうようなんてのもあったりすると、そうもいかないわけで。

[vim]だめ文字をハイライト

わたしがじょうようしているテキストエディター『gvim』のせっていをかえて、ゆくすえの『だめもじ』をめだつようにしました。
わたくしさえミスしなければ、ほかのひとがどうなろうとしらんです。
かきを.vimrcにかけばよいとおもいます。

"---------------------------------------------------------------------------
" Check Dame moji
"---------------------------------------------------------------------------
if version >= 700
	if has("syntax")
		syntax on
		function! ActivateDameSJIS()
			syntax match DameSJIS /[―ソЫⅨ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭偆砡纊犾]$/ display containedin=ALL
			highlight DameSJIS ctermbg=yellow ctermfg=red guibg=yellow guifg=red
		endf
		augroup dame_sjis
			autocmd! dame_sjis
			autocmd BufNew,BufRead * call ActivateDameSJIS()
		augroup END
	endif
endif

fileencodingsjisとかcp932のときだけチェックすればいいのですが、めんどうなのでつねにハイライトひょうじするようにしてます。
わたしがUTF-8できじゅつしたコードを、だれかがShift_JISにへんかんしてつかうかもしれませんからね。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

[記]2010-7-1(木)[記]2010-9-4(土), [MHP.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。