トップページ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あたり。
0907名無しさん@お腹いっぱい。NGNG
>>906
DivX5.1入れてみましたー
済みません初心者的質問なんですけどコマンドのリストが出て選んで実行するのがありますよね。
あれってどうやっているんですか?
0908KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>907
q: もしくは :<C-F> です。他にも / についても同じことができます。

スローで見ると色々やっているのが判るかもしれません。
0909名無しさん@お腹いっぱい。NGNG
>>908
おぉー、スゴイ!!
出来ました。

> スローで見ると色々やっているのが判るかもしれません。
一応スローで見たんですが _| ̄|○
0910名無しさん@お腹いっぱい。NGNG
KoRoNさまが見てる
0911名無しさん@お腹いっぱい。NGNG
>>910
見てるつーか常駐してるぞ
0912名無しさん@お腹いっぱい。NGNG
なんか挑戦的な……(w
0913名無しさん@お腹いっぱい。NGNG
Goodbye hogeはいただけかと・・・

いあ、エディタ論争もしくは嵐を呼び込みたいのならいいんでしょうけど・・・
0914名無しさん@お腹いっぱい。NGNG
s/いただけ/いただけない/
0915名無しさん@お腹いっぱい。NGNG
いいのか?エスカレートしかねないぞ?
0916名無しさん@お腹いっぱい。NGNG
http://www.toranoana.co.jp/mailorder/comic/recomcomic/marimite-top.html
0917名無しさん@お腹いっぱい。NGNG
>>906
これ使ってFLASHにおとせば?
ttp://www.forest.impress.co.jp/article/2003/03/05/camstudio.html
0918KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>917
最新版のCamStudioはSWFの吐き出しができなくなってます。
SWFを吐きたければRoboDemoを買えっていうことらしいです。
最終公開版であった2.0だとバグなのかライン欠けが起こるので見た目が美味しくありません。
0919名無しさん@お腹いっぱい。NGNG
批判しているヤツもいるが単純に面白かった。
でも、KoRoNさんってひょっとして普段テキストオブジェクト使ってない?
自分はあまり使わないんだよね。
だいたいbcwで済ませてしまう。
0920名無しさん@お腹いっぱい。NGNG
>>918
あ、そうなんですか。
じゃぁこれは?Windowsじゃないのが何ですが。
ttp://namazu.org/~satoru/x11rec/
0921KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>919
()系オブジェクトは使うのでそこそこ指が慣れているんですが、同じオブジェクトでも
wは使ってませんね。だからいざ使おうとすると…ムービーでも慣れたbcwにしとけば良
かったですね。最近は""をテキストオブジェクトにしたいシーンが多いです。

>>920
マルチプラットホームで見るにはSWFが良いですよね。MNGは現状では無しの方向で。ビ
ジュアル的にショボイVimですがGIFの256色制限はキツイかもしれません。>>906で紹介
したWinkならSWFが吐けるんで良いんですけど、フレームレートの調整にちょっと難が
ある感じです。でもチュートリアル系ムービーのオーサリングには最適です。これがフ
リーで公開されていることは実に驚きです。
0922名無しさん@お腹いっぱい。NGNG
>>921
> ジュアル的にショボイVimですがGIFの256色制限はキツイかもしれません。>>906で紹介
> したWinkならSWFが吐けるんで良いんですけど、フレームレートの調整にちょっと難が

あ〜、よく読んでいませんでした。Winkですか、入れてみます。
0923名無しさん@お腹いっぱい。NGNG
>>921
> 最近は""をテキストオブジェクトにしたいシーンが多いです。
すごい偶然の一致。
これ今から要望だそうと思っていたんですよ。
(や{のテキストオブジェクトより使用頻度絶対に高いと思うんですよね。
MSの例のムービーじゃ無いですけど今後XMLがいろんなカタチで絡んでくるとさらに必要に迫られるかと。
F"ct"はやっぱり面倒ですし。
0924名無しさん@お腹いっぱい。NGNG
間違えた
T"ct"でした。
0925名無しさん@お腹いっぱい。NGNG
確かに text object 使わないな。
()だって()の中身って引数の場合がほとんどだと思うんだけど一つ消すならまだしも全部消す事なんてまず無いし。
{}も同じように全部消すことはあまり無い。
それに比べて""の中は消したくなることはかなりある。
欲しいね"" の text object。
0926KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
omapが使えないですからソースコード弄らなきゃいけないんですが、マジメにやろうと
すると""オブジェクトの判定は厄介なんですよね。エスケープされていた場合や、1行
に複数の""があった場合、それから複数行に跨る場合も考えなきゃいけません。
0927名無しさん@お腹いっぱい。NGNG
エスケープ判断してくれなくて良いからほすぃ・・・
0928KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
キーマップの問題もありました。""は良いとしても''や``はダメですね。

omapで実現できるならともかく、ソースコードを弄る以上はエスケープと
複数の""くらいはやりたいものです。
0929名無しさん@お腹いっぱい。NGNG
実現できそうならお願いいたしますです。

さっきからKoRoNさんのムービー何回もループしている私。
長編も欲しかったり(grepを使ったり画面割ってバッファ移動したりするヤツ)
0930KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
ここに作るのに必要なツール類へのポインタが用意してありますから是非。
http://www.kaoriya.net/bbs/bbs.cgi?bbs=alter&;363
0931名無しさん@お腹いっぱい。NGNG
>>893
お答えありがとうございます。

> :behave mswin
> 他にも代わってしまうマッピングがありますから
> :e $VIMRUNTIME/mswin.vim
> を参考に必要なものを抜き出すと良いでしょう。
中を覗いてみたんですけどShift + カーソルを設定している部分が見つけられませんでした。
とりあえず、一つずつ消して調べてみます。

> > ただ、HTMLの中のJavaScriptの記述の部分だけはタブにしたいというちょっと我が儘な注文なんですけどw
> 簡単にはできません。実現方法のロジックだけ紹介しておきます。autocmdでファイ
> ル保存直前(BufWritePre)をフックして、<script>と</sript>の間をset noetしてか
> ら:retabするようなスクリプトを書きます。
保存時に変換するしか手がないみたいですね。
文章中のタブも変換されてしまいそうですし、編集時に反映されていないのでこれは諦めます。
とりあえず、HTMLの自動インデントを外して対処と言うことで。

> 後ろ向きには書き方のスタイルを変える方法もあります。
もう馴れてしまっているのと見た目でifの連なりが認識しずらいと言う点でこれもまた諦めます。

いろいろと我が儘な注文失礼いたしました。
もう少し詳しくなってから再度疑問・質問などをお伺いさせて頂きます。
0932名無しさん@お腹いっぱい。NGNG
人がエディタ操作してるのを見るのはなかなか面白いな。
0933名無しさん@お腹いっぱい。NGNG
vim6.1(RedhatLinux 7.3についてきたもの)を使っていますが、
C言語などのソースを編集しているときの入力モードにおけるCTRL+Hの振る舞いが
私の希望と異なり困っています。

入力モードでCTRL+H を押すと、BackSpace的動作(つまりカーソル位置の左の文字を消してカーソルが1文字左に移動)ではなくて
なぜかDEL的動作(つまりカーソル位置の文字を消す. vi でなら x的動作の方が的確な説明でしょうか)になってしまう。

私としてはCTRL+H は素のvi同様にBSの様な動作になって欲しいのですがどうしたらこれを変えられるでしょうか?
また、なぜこうなってしまったのでしょうか?
0934名無しさん@お腹いっぱい。NGNG
"noremap ? ^H
"noremap! ? ^H
"noremap <BS> ^H
"noremap! <BS> ^H
0935933NGNG
>>934
ありがとうございました.
自分でも理解できていないのですが,
:noremap! <BS> ^H
で無事希望の設定に変更できました.
(入力開始位置はもちろん, 前の行までBSが有効になってしまったりと微妙に
希望とはずれていますがほぼ希望通りです)
remap もよく分かっていないので(:help remapもよく分からない)もう少し勉強しています.
入力モードにおける設定は map じゃなくて ab の様な気もしますが..
0936933NGNG
>>935 自己レス
:map! で 入力モードまでmapできるのですね。不勉強でした。
0937名無しさん@お腹いっぱい。NGNG
>>933
fixdel
0938名無しさん@Vim%ChaliceNGNG
>>921
> 最近は""をテキストオブジェクトにしたいシーンが多いです。
    http://www.kaoriya.net/testdir/quote_textobject.diff
パッチ作りました。a", i", a', i', a`, i`が追加されています。Perlのような複数行
のquoteには対応していませんがエスケープには対応しています。a"を指定した時に""
の後の空白文字を含めるかどうかが微妙なのですが、ちょっと試してみて含めないよう
にしました。バイナリ配布はもうちょっと先です。
0939名無しさん@お腹いっぱい。NGNG
DivX落としてきて、見れたのですが、かなりきたなくてよくわかりませんでした。
圧縮してないファイルも上げてもらえないでしょうか?
0940KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
>>939 オリジナルはもう消しちゃいました。あしからず。
0941KoRoN@Vim%Chalice ◆8XALICEsdk NGNG
…ところで判読不能なほど汚いかしら?
0942名無しさん@お腹いっぱい。NGNG
] で終わる行をすべて削除するにはどうすればいいのですか?
0943名無しさん@お腹いっぱい。NGNG
:g/]$/d
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を超えると書き込みができなくなります。