トップページunix
994コメント386KB

Vim6 Part6

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。NGNG
Vim 6.xに関する話題、Part6です。
http://www.vim.org/

前スレ
http://pc.2ch.net/test/read.cgi/unix/1045365370/

関連情報は>>2-6あたり。
0944名無しさん@お腹いっぱい。NGNG
:g/]$/d
0945名無しさん@お腹いっぱい。NGNG
>>938
エスケープの種類を設定できると使い勝手が良いんですけど。
\" とか "" とか言語によって違う場合もあるので。
0946名無しさん@お腹いっぱい。NGNG
もしくは、filetypeによってエスケープを自動判別とかですね

自動判別しつつ設定も可能だと、よりカコイイですが
0947KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
設定可能にしておけばあとはftpluginの方で対応できるでしょう。
0948名無しさん@お腹いっぱい。NGNG
>>943
サンクスコ
% とか改行記号は使わなくてもできるんですね。
知らんかった。
0949名無しさん@お腹いっぱい。NGNG
vimって結局Emacsみたいなエディタなんですか?
0950KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>947
> 設定可能にしておけばあとはftpluginの方で対応できるでしょう。
buffer localなstringオプションとして 'quoteescape' を追加しました。
http://www.kaoriya.net/testdir/quote_textobject2.diff
:set quoteescape=\"
とすると""なエスケープに対応できます。元に戻すには
:set quoteescape=\\
0951名無しさん@お腹いっぱい。NGNG
そろそろ新スレの時期ですね。
0952名無しさん@お腹いっぱい。NGNG
これは便利そう。
バイナリ配布が待ち遠しいです。
0953名無しさん@お腹いっぱい。NGNG
>>950
エスケープ複数指定は出来ませんか?
cgi系のコード書いている時は結構混ざるんで。
0954KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>951
…950踏んじゃってた…

>>953
:set quoteescape=\\\"
とかしてみましたか?
0955KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
建てました。1の書き込みにPartのミスがありますが許してください。
  Vim6 Part7 http://pc.2ch.net/test/read.cgi/unix/1068963346/
0956名無しさん@お腹いっぱい。NGNG
>>954
試せる環境に居ないので試していませんでした。
すみません。
0957KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>950
リクエストがあったので作りました。
http://www.kaoriya.net/testdir/quote_textobject.avi
0958KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
netupvimに>>950のパッチを当てたバイナリをアップロードしました。
0959名無しさん@お腹いっぱい。NGNG
>>958
キタ━━━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(  )━(゚  )━(∀゚ )━(゚∀゚)━━━!!
0960名無しさん@お腹いっぱい。NGNG
>>958
ヴィジュアルモードは実装していないとのことですが今後の実装予定はありますか?
KoRoNさんのデモみたいに

printf("Hello, world!\n");

となっている場合 vi" で""内を選択、hhh で左に選択範囲を狭めて \n だけ残して c とか
したい場合があるんで出来れば実装してもらいたいです。
0961KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>960
selectモードの挙動は未実装なのでおかしくなるかもしれませんが、visualモードに
ついては手元のバージョンでは実装されてます。
0962名無しさん@お腹いっぱい。NGNG
>>961
速いお仕事感謝です。
安心しました。
selectモードは使っていないのでこの際どうでも良いとか思ったりしてw
0963名無しさん@お腹いっぱい。NGNG
今開いているファイルの文字コードを指定して書き直すにはどうしたらいいんですか?
具体的には、
windowsでeuc-jpをcp932と誤判定しているファイルを
:e ++enc=euc-jp file で開きなおしてもcp932のまま開かれてしまう。
という状態です。
0964KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>963
正確にはeuc-jpとして不正な文字があるために開けないのでcp932になってしまってい
るか、KaoriYa版を使っている場合にはeuc-jpで開けはするがcp932として解釈可能であ
るが故にverifyenc.vimがcp932に補正してしまっているかです。前者であれば文字化け
で読めない文字が存在するはずです。後者であれば文字化けは発生しません。

対症法としては前者の場合++enc=euc-jisx0213で開いてみる方法があります。これで開
けないようであればVimでは編集できないファイルということになります。そのような
ケースでは大概たった1文字が原因となっていますのでiconv.exeを使ってその文字を特
定して消すなどの処置をとることになります。nkfやqkcを使ってcp932に予め変換して
しまうという方法もありますが、根本的な解決にはならないかもしれません。

後者ならば:VerifyEnc offとしてから再度開き直してみてください。
0965KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>963 あ、肝心なところに答えてませんでした。

文字コードを指定して(例ではeuc-jp)保存するならば、ファイルを開いた状態で
:set fenc=euc-jp
してから:wです。
0966名無しさん@お腹いっぱい。NGNG
今日、i"とか使ってみた。
ibとかより使用頻度高くなりそう。便利だった。
0967名無しさん@お腹いっぱい。NGNG
>>965
便乗なんですけど改行コードを統一したい場合どうしたら良いでしょうか。
たまに\r\nのファイルに\nだけとか\rだけとかその逆があったりして面倒で・・・
:%s/\n$/\r\nとか(適当に書いたのであっているかどうか解らない)で置換するしかないのでしょうか。

それから"のテキストオブジェクト凄く便利でした。
0968名無しさん@お腹いっぱい。NGNG
なるほど、不正な文字ですか。
了解しました。
0969名無しさん@お腹いっぱい。NGNG
>>967
:set ff=unix
とか
:set ff=dos
などはどう?
0970名無しさん@お腹いっぱい。NGNG
誤判定されたファイルだと、set fencにも失敗しますね・・・
ちなみに、このファイルをeucと判定されるエディタで無変更のまま保存しなおして、
diffとったりすると、違う箇所が出てきます(w
しかし、その保存しなおしたファイルをvimで開いてもまだ誤判定されます。
さらに、そのファイルをlinux上で正常に開くことはできます(ように見えているだけかな?)。

0971名無しさん@お腹いっぱい。NGNG
新スレは一応たってますので。
ころあいを見て移行を。

Vim6 Part7
http://pc.2ch.net/test/read.cgi/unix/1068963346/
0972名無しさん@お腹いっぱい。NGNG
>>969
ダメみたいです。
0973名無しさん@お腹いっぱい。NGNG
>>972
:!qkc %
はいかが。
0974名無しさん@お腹いっぱい。NGNG
>>972
だめとは?
0975名無しさん@お腹いっぱい。NGNG
改行文字が混在してる場合は :s で消すしかないんじゃない?
0976名無しさん@お腹いっぱい。NGNG
統一させるだけなら、エディタよりperlなどに頼った方がいいかも。
"s/\x0D\x0A|\x0D|\x0A/\n/g;"
0977KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
混ざっていると大概はff=unixになるので
:%s/\r\n\?/\r/g
でどうでしょう
0978名無しさん@お腹いっぱい。NGNG
nkf で(ry
0979名無しさん@お腹いっぱい。NGNG
なるほど。
そうすると、:set ff=unix して :%s/\r//g とかやってもいいんですか?
0980KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>979
そうするとMac改行が混ざっていた時に一行へ連結されちゃいますが、それが望む動作であれば可です。
0981名無しさん@お腹いっぱい。NGNG
たしかに、そうですね。
勉強になりました。
0982名無しさん@お腹いっぱい。NGNG
C Magazineに、Vimの本が出るとか書いてあったのだが、
0983名無しさん@お腹いっぱい。NGNG
>>979
\r\r\nまで混ざっていました・・・
デザイン会社が作ってくるHTMLなんてこんなモノですw

とりあえず、:set ff=unixすると\r\r\nが\r\nになるのでそれからKoRoNさんの
:%s/\r\n\?/\r/gで変換します。
でも、これvimじゃなくフィルター通した方が良いですねw
お騒がせいたしました。
0984名無しさん@お腹いっぱい。NGNG
レス版間違えた _| ̄|○
>>977でした。
0985名無しさん@お腹いっぱい。NGNG
>>982
だれが著者?
0986名無しさん@お腹いっぱい。NGNG
>>985
ttp://www.amazon.com/exec/obidos/ASIN/0735710015/102-1954857-7504930
これの日本語版らしい
0987名無しさん@お腹いっぱい。NGNG
>>986
それって 5.* がベースになってたような。
0988名無しさん@Vim%ChaliceNGNG
いままでターミナルでvimを使ってたんですけど,
いろんなcolorテーマを使いたくてgvimを使い始めました.

で, いきなり問題にぶちあたったんですけど,
iとか/しかときにいきなり日本語入力モードになってるのは
どうにかできませんか?
さらに, その状態からShift+spaceで日本語入力を切る→Esc
とすると, 今後iや/で日本語を使おうと思っても
Shift+spaceが効かなくなるんですが…
0989KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>988
> iとか/しかときにいきなり日本語入力モードになってるのは
> どうにかできませんか?
.gvimrcの中で:set imi=0 ims=0としてください。

> とすると, 今後iや/で日本語を使おうと思っても
> Shift+spaceが効かなくなるんですが…
この先は使っているIMやツールキットのバージョンに拠るのですが、とりあえずimak
を設定してみてください。
:set imak=s-space
0990名無しさん@お腹いっぱい。NGNG
とりあえず `:se imd' しとき。
0991名無しさん@お腹いっぱい。NGNG
わっ、KoRoNさん速っ!
0992988NGNG
いきなり日本語入力モードなのは解決しました.
でも再び日本語入力モードにできないという問題は
解決できませんでした.
:set imak=s-spaceはエラーになるようです.

E474: Invalid argument: imak=s-space

日本語入力環境はCannaとkinput2です.
0993KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>992
Vimのバージョンは幾つですか?

あと次の例のようにguiコマンドの後にimakを設定した場合はどうなりますか?
:gui
:set imak=s-space
0994988NGNG
>> Vimのバージョンは幾つですか?
$ gvim --version
VIM - Vi IMproved 6.2 (2003 Jun 1, compiled Sep 17 2003 15:59:36)
Included patches: 1-8, 10-12, 14-18, 20-21, 25-32, 34-35, 37, 40, 43-46, 48-55, 58-59, 61-65, 67-72
(以下略)

>>:gui
>>:set imak=s-space
これでうまくいきました. ありがとうございます.
レス数が950を超えています。1000を超えると書き込みができなくなります。