トップページunix
986コメント327KB

Vim6 Part10

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@w3mNGNG
Vim 6.xに関する話題、Part10です。
http://www.vim.org/

前スレ
http://pc5.2ch.net/test/read.cgi/unix/1086135625/

関連情報は>>2-7あたり。
0750名無しさん@お腹いっぱい。05/02/11 15:56:22
お前自己中過ぎ 全部読め
075171505/02/11 16:40:13
全部読みましたがなにか?
0752名無しさん@お腹いっぱい。05/02/11 17:01:39
じゃ、解決だね。
0753名無しさん@お腹いっぱい。05/02/11 17:46:14
>ttp://skawina.eu.org/mikolaj/vimgdb/
>vimスレで紹介されてた、vim上でgdbデバッグを可能にするパッチ
>を当ててvimをインストールしたのですが、
>gdbを起しに行くあたりで、ptyがうまく開けないようで使えせん。
>linuxのvimでは問題なく動いているので、おそらく、bsd pty固有の問題
>だと思うのですが(ここいらへんあまり良くわかってないです)、何か
>解決へのアドバイスあったら下さい。

FreeBSDスレで質問したのですが、解決しなかったので
もしわかるかたいましたら教えてください。
0754KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/11 20:38:36
>>749
FreeBSD5.3以降は、C99に準拠したせいかmblenの挙動がステートフルに変わってるの
です。そのためリセットする操作が必要になっているようなんです。香り屋版の
src/mbyte.cへのパッチを読んでみてください。mblen(NULL, 0)という呼び出しが追
加されています。
0755名無しさん@お腹いっぱい。05/02/11 20:53:06
>>753
FreeBSD5-STABLEでvim-6.2.tar.bz2にvim62-gdb6.tar.bz2のパッチを当てて
コンパイルしてみました。ちょっと試しただけですが、とりあえず動いてます。
075673805/02/12 09:11:46
>>740
ありがとん
0757名無しさん@お腹いっぱい。05/02/13 00:11:08
対応する括弧をみたいのですが カーソルの位置の括弧に対応するもう一方の括弧を知る方法はありますか?
0758名無しさん@お腹いっぱい。05/02/13 00:19:01
%
0759名無しさん@お腹いっぱい。05/02/13 00:19:04
vi の超基本 %
0760名無しさん@お腹いっぱい。05/02/13 13:52:13
ctrlと何かを同時押ししたら補完のような動作をしたのですが、あれが幻でないとしたら何ですか?
0761名無しさん@お腹いっぱい。05/02/13 13:54:58
補完のような動作です。
0762名無しさん@お腹いっぱい。05/02/13 14:06:14
そうですか。
0763名無しさん@お腹いっぱい。05/02/13 14:53:13
>>760
pかn

だれかIntellisense for vimってC++で使ってる人います?
入れては見たがうまく動かない・・・
0764名無しさん@お腹いっぱい。05/02/13 16:00:12
使い始めたばかりです。
viのキーストロークって多分英語キーボード向けになってるんだと思うけど、
英語キーボード使って覚えた方がいいんでしょうか。
0765KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/13 16:10:33
>>764
確かに英語(ASCII)キーボードを使った方が細かい違和感は少ないのですが、日本語
キーボードに慣れているのならばそちらを使ったほうが良いです。
0766名無しさん@お腹いっぱい。05/02/13 16:15:37
英語キーボードはどのへんがいいの?
日本語キーボードしか使ったことないからわからん。
0767名無しさん@お腹いっぱい。05/02/13 16:16:26
>>765
ありがとう。そうします。
0768名無しさん@お腹いっぱい。05/02/13 18:18:39
英語キーボードだと:押すのにいちいちShift押すのがマンドクセ
0769名無しさん@お腹いっぱい。05/02/13 18:24:32
>>768
意味が判りません
0770名無しさん@お腹いっぱい。05/02/13 18:25:41
>>768
判ります
0771名無しさん@お腹いっぱい。05/02/13 19:12:50
日本語キーボードだと " が遠過ぎてかなわん。
0772名無しさん@お腹いっぱい。05/02/13 19:24:41
キーボードはどっちが不便ってこともないけど、仕事で両方使うからつらい・・・
なんで違う配置にしたんだろう
コロン、セミコロン、括弧とか &^'"*[] あたり、いつも打ち間違えるよ
0773名無しさん@お腹いっぱい。05/02/13 21:05:50
シフト押さないとコロンが入らなかったり
Enterの隣にバックスラッシュがあったり
チルダが見つからなかったり
0774名無しさん@お腹いっぱい。05/02/13 21:28:26
英語キーボードだと ' が押しやすいね。
0775名無しさん@お腹いっぱい。05/02/13 21:32:58
'なんて全然使わないから、いらん。
0776名無しさん@お腹いっぱい。05/02/13 21:43:02
markって使わない?
077777505/02/13 22:51:10
>>776
私は使いません。
0778名無しさん@お腹いっぱい。05/02/13 23:27:51
vim から入った人は mark 覚える必要ないのかもね。
0779名無しさん@Vim%Chalice05/02/13 23:31:22
確かに:はshift押さなきゃいけないけど,あまりに
多用するキーなので使ってるうちに違和感など
微塵も無くなる.

vimは英語キーボードを基に考えられたキーバインド
なので(あたりまでだが…),英語キーボードの方が
つじつまが合っている.

例えば前方検索の*と後方検索の#,英語キーボードでは
shiftを押しながらそれぞれ右手・左手の中指を延ばした
所にあるキーであるとかね.

(ここからはまったく個人的な意見だが),そもそも(vimに関係なく)配列は
英語キーボードの方がつじつまが合ってると思う.
'をshift押しながらだと"になったり,;をshift押しながらだと:に
なったり,なんか理論整然としてると思うのは私だけ?

ただ人間工学的には日本語配列の方が優れているという記事を
読んだ覚えもあるけどね.

ま,要は各々で使いやすい方で良いという結論なわけだが…
0780名無しさん@お腹いっぱい。05/02/13 23:34:47
次 dvorak ユーザの反論どうぞ↓
0781名無しさん@お腹いっぱい。05/02/13 23:47:02
dvorakは優れているがviとの相性は最悪
0782名無しさん@お腹いっぱい。05/02/13 23:48:46
×理論整然
○理路整然
0783名無しさん@お腹いっぱい。05/02/13 23:57:14
で、なんで日本語キーボードと英語キーボードは配列が違うんだ?
0784名無しさん@お腹いっぱい。05/02/14 00:02:47
シフトキーによってASCIIコードの下位4ビットが変化しない
のをロジカルペアリングっていうんだってさ。
http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%BC%E9%85%8D%E5%88%97
0785名無しさん@お腹いっぱい。05/02/14 00:06:33
おれはdvorak使ってるけど
そんなに相性悪くないと思うが
0786名無しさん@お腹いっぱい。05/02/14 00:44:45
>>784
なるほど、じゃあJIS配列の方が理路整然としてるね。
0787名無しさん@お腹いっぱい。05/02/14 00:45:40
うむ。おれもそう思う。
ただ、今となっては慣れただけのような気がするがな。
qwertyでUnixコマンドは打てるけど、viは使えないな。
0788名無しさん@お腹いっぱい。05/02/14 01:39:22
そろそろキーボードスレへ
0789名無しさん@お腹いっぱい。05/02/14 09:05:19
hjklの場所さえ変わらなければ(dvorakはここで既にアウトだが)、
一応どんなキーボードでも 慣れれば 使えそうな気がする
0790名無しさん@お腹いっぱい。05/02/14 19:31:54
ywでバッファに格納されているワードを検索したくてしょうがないのです
0791KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/14 19:39:35
>>790 /<C-R>"
0792名無しさん@お腹いっぱい。05/02/14 20:29:56
>>791 C-Rってやって"って表示されるのは、"を押せっていう意味だったんですね。クスコ。
0793名無しさん@お腹いっぱい。05/02/14 20:39:50
>>792
いやいや、まてまて苦笑
0794名無しさん@お腹いっぱい。05/02/14 20:47:34
そんな瑣末なキーバインドの話はWikiにでも書いとれよ小物
0795名無しさん@お腹いっぱい。05/02/14 21:06:36
書いとれよ小物
0796名無しさん@お腹いっぱい。05/02/14 21:06:46
まあ確かに<C-r>の次は"を押すのことが多いが。
0797名無しさん@お腹いっぱい。05/02/14 21:09:07
漏れは=も結構使う
0798名無しさん@お腹いっぱい。05/02/15 00:37:56
<C-R><S-2> or <S-'>って結構手間だよね。
挿入やコマンドでは貼り付けってあまりしないものなのかな
0799名無しさん@お腹いっぱい。05/02/15 05:32:33
貼り付けの前には範囲選択や削除をするわけだから
挿入モードで貼り付ける場面ってそんなにないような。
0800名無しさん@お腹いっぱい。05/02/15 09:58:28
vimからファイルをテキストとしてではなく実行させてひらくことってできますか?
0801KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/15 10:16:15
>>800
実行してその出力を、ということであれば :help :r! を参照してください。
0802名無しさん@お腹いっぱい。05/02/15 10:52:24
>>801
ご回答ありがとう御座います。
ちょっと違うようです。説明がへたくそで吸いません。
たとえば、あるmp3をvimのコマンドラインからひらいて音をならすとと言うようなことです。
:e であるディレクトリを開いて該当のファイルの上で x をおすと実際に実行できるのですがこれを
コマンドラインからできないでしょうか?
0803名無しさん@お腹いっぱい。05/02/15 11:26:00
:!mplayer hoge.mp3 &
とかいう話?
0804名無しさん@お腹いっぱい。05/02/15 11:27:32
help :start

>:e であるディレクトリを開いて該当のファイルの上で x をおすと実際に実行できるのですがこれを
vim のファイルブラウザはスクリプトで出来てるんだから、おんなじことやってるはず。
explorer.vim 見ろ。
0805名無しさん@Vim%Chalice05/02/15 11:27:41
vimとは直接関係内のですが、テラターム越しで操作すると
<S-UP>などが使用できません。これは仕方がないんでしょうか。
今はmapしているので問題ないのですが・・・
0806名無しさん@お腹いっぱい。05/02/15 11:35:12
端末が通さないんだからvim側ではにんともかんとも
0807KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/15 11:36:10
>>802
環境がUNIXで、利用するプログラムが決まっているならば803さんの方法です。
Windowsで、そのデフォルト設定に従いたいのならば、ちょっとややこしいのですが
  :!start rundll32 url.dll,FileProtocolHandler "ファイル名"
ってな感じです。

詳細は $VIMRUNTIME/plugin/explorer.vim の115行目あたりからを読んでください。
0808名無しさん@お腹いっぱい。05/02/15 20:28:02
(´-`).。oO(このvim保守係はなんでこんなに知性の片鱗もないのだろうか・・・
0809名無しさん@お腹いっぱい。05/02/15 20:31:25
画面をスクロールさせたいんだけど
カーソル? を移動させないで(カーソルがスクロールさせる前の文字の上のまま)
移動させることはできますか?
w3mで言う J みたいなことがしたいです
0810名無しさん@お腹いっぱい。05/02/15 21:08:16
↑<C-Y>
↓<C-E>

憶えにくいキーではある
0811名無しさん@お腹いっぱい。05/02/15 21:52:27
オレ結構使う。
0812名無しさん@お腹いっぱい。05/02/15 22:07:07
(´-`).。oO(vimユーザはどうして知性の有無を評価できるのだろうか・・・
0813名無しさん@お腹いっぱい。05/02/16 02:02:58
KoRoNさん、VisVimのことなんですが、
_vimrcで
:cnoremap <c-j> <left>
とマップしてあると
VC6から起動させようとすると
:drop hogehoge.cp:123p
の様にコマンドラインに表示されるだけになってしまいます。
VisVimの方で対処してもらうってことは無理ですか?
0814KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/16 03:04:20
>>813
詳細までは調べていませんが、恐らくVim本体のOLEインターフェースに問題があるの
で、VisVimでの対応はしたくありません。ヘタにVisVim側だけで対応してしまうと、
別のキーマップで同じようなことが起こる可能性があるのです。

実際の修正をどうするかはわかりません。また申し訳ないですが、いついつまでに対
応できるというお約束もできません。

この件に限らず、既存のキーマップを書き換えるようなmapを利用する場合は、公開
されているスクリプトやマクロやツールが動かなくなってしまうことが十分に予想さ
れます。そのリスクを認識した上で、ある程度は覚悟の上でmapするようにしてくだ
さい。
# できればそういったキーについてはmapしないことを推奨しておきます。
0815名無しさん@お腹いっぱい。05/02/16 03:45:51
じゃあレス返すなよ
0816名無しさん@お腹いっぱい。05/02/16 07:19:28
つまり、警告は要らん、と言いたいのか?
0817名無しさん@お腹いっぱい。05/02/16 15:43:00
KaoriYa版付属のformat.vimなんすけど、
文章を後で( V}gq などで)整形するとちゃんと禁則を処理してくれるのに
、入力中の場合はこのように句読点が先頭になってしまいまつ。
後でもう一度gqすればいいのではありますが、これなしで最初からちゃん
と禁則処理できるようにはならないでしょうか。
0818KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/16 16:02:39
>>817
残念ながらなりません。スクリプトレベルでは実現が難しいのに加えて、かといって
本体にそのような仕組みを組み込むというのも現状では(主に政治的な理由で)容易で
はありません。将来、状況が変われば実装可能ですが、直近では難しいとお考えくだ
さい。
081981305/02/17 01:17:48
>>814
normal!的に処理することは出来ないのかなと思い、聞いてみたのですが
インターフェースの問題と言うならあきらめます。

># できればそういったキーについてはmapしないことを推奨しておきます。
私もそうしたいのですがcmapって特に余ってるkeyが少なくありませんか?
<right>と<left>をcmapさせるのに都合の良いkeyってありませんかねー?
0820KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/17 02:27:26
>>819
> normal!的に処理することは出来ないのかなと思い、聞いてみたのですが
私もそう思ったんですよ。でもいざ掘り返してみると歴史的(!)な事情で、できない
ようになっていることがわかりました。

> <right>と<left>をcmapさせるのに都合の良いkeyってありませんかねー?
http://vim.mydns.jp/?%A5%AD%A1%BC%A5%D0%A5%A4%A5%F3%A5%C9
とりあえずココ見て考えるのが良いでしょう。
0821名無しさん@お腹いっぱい。05/02/17 03:56:05
Vim製作者でもないのに
> 歴史的(!)な事情で、できない
とかまるで自分が作ったかのような態度ってどうよ?
0822名無しさん@お腹いっぱい。05/02/17 09:06:37
歴史的な事情かどうかは、作者じゃなくたってわかるでしょう。
820の文章をどう読めば821のように思えるのかがわからん。
0823名無しさん@お腹いっぱい。05/02/17 10:21:37
815 From:名無しさん@お腹いっぱい。 Date:05/02/16 03:45:51  Mail:sage
 じゃあレス返すなよ
821 From:名無しさん@お腹いっぱい。 Date:05/02/17 03:56:05  Mail:sage
 Vim製作者でもないのに
 > 歴史的(!)な事情で、できない
 とかまるで自分が作ったかのような態度ってどうよ?


きっとKoRoNさんのファンなんでしょう。
0824名無しさん@お腹いっぱい。05/02/17 11:05:36
        祭りの会場はここか?     腕が鳴るぜ      踊るぞヤロウども!
                   ____
       ∧         ∧ /;;;;;;;;;;;;;;;;;;;;;i\ , -``-、         , -``-、
        / ヽ        ./ .∧ \;;;;;;;;;;;;;;;;;;;/ ヽ   \      /     )
     /   `、     /   ∧  `、;;;;;;;;;;;;;;/  \    \    /    /
    /       ̄ ̄ ̄    ヽ           ヽ    ̄ ̄     /
  ( ̄ ̄ ̄ ̄ ̄祭り命 ̄ ̄ ̄ ̄) ̄祭り命 ̄ ̄ ̄)  ̄祭り命 ̄ ̄ ̄)
   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄.\ ̄ ̄ ̄ ̄ ̄ ̄ \  ̄ ̄ ̄ ̄ ̄ ̄ \
  /:::::::::: ヽ-=・=-′ ヽ-=・=-  /=・-   -==・-  |・=-   -=・=-  |     
  ヽ:::::::::::    \___/    /  \___/   /  \___/   /  
    ヽ__::::::::::::::  \/     /::::::::  \/    /:::::::  \/    /
  /\\          //\\       //\\       //\
 |   \\       //  |\\    //  |\\    //  |
0825名無しさん@お腹いっぱい。05/02/17 12:18:36
>>815
813 は KoRoN 氏にレスを期待したのだから、KoRoN 氏がどう答えようと、813 の捉え方次第であって、
たまたま 821 がそのレスを、嫉妬感情で捉えただけなんじゃ?
0826名無しさん@お腹いっぱい。05/02/17 14:49:06
Windowsなら窓使いの憂鬱で弄れば特定アプリ内での
整合性保ったままでもかなりのカスタマイズができるよ

他のアプリに対してもワンショットトグルでvim風操作とか
vim風操作モード作って切り替えたりとかさ
0827名無しさん@お腹いっぱい。05/02/17 18:11:09
>>826
それはそうだけど、gvim じゃないと無理じゃないか?
0828名無しさん@お腹いっぱい。05/02/18 00:45:46
"/", "?"で検索して別な場所に飛んだ後、元の場所に戻るのって
マーク使わなきゃダメなんでしょうか?
0829名無しさん@お腹いっぱい。05/02/18 01:02:03
>>828
<C-o>
''
``
0830名無しさん@お腹いっぱい。05/02/18 01:17:26
オウyes!!バッチリできました。どうもありがとうございました
0831名無しさん@お腹いっぱい。05/02/18 21:40:49
dicwin で、検索した単語の履歴保存してくれませんか?
何度も重複して検索している単語から印刷して、勉強したい。
0832KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/18 22:09:45
>>831
申し訳ありませんが、KaoriYaで配布するdicwinにそのような機能を実装する予定は
ありません。
0833名無しさん@お腹いっぱい。05/02/18 22:12:27
なんで?
0834名無しさん@お腹いっぱい。05/02/18 22:22:03
>>832
漏れは昔棒辞書ソフトにその機能要望したら無視された
便利と思うんだがなあ
0835名無しさん@お腹いっぱい。05/02/18 22:23:01
なんで自分で組もうとは思わないの?
0836KoRoN@Vim%Chalice ◆8XALICEsdk 05/02/18 22:34:52
>>833
dicwinは学習支援を目的としてはいないからです。またそうする予定もありません。

本当に勉強する気ならば、いきなり人が書くスクリプトには頼らず、まず手動で履歴
を残していくという手段を取ってみてはいかがでしょう。手動でやることが面倒にな
れば、キーボードマクロとして定義するのも良いでしょう。
    <C-K><C-W>yj<C-W><C-P>:sp +$ ~/dichist.txt<CR>p<C-W><C-C>
こんな感じですかね。

# 個人的には、紙の辞書でひいたほうが遥かに覚えが良い、と考えています。
0837名無しさん@お腹いっぱい。05/02/18 23:07:39
matchit.vimで、C言語の
switch
case
case
とか
if
else if
else if
とかって対応できますか?

とりあえずこんなかんじで書いてみたものの、ifと最初のelseで行
ったり来たりしてしまう。
    let b:match_words =              
\ '\%(^\s*\)\@<=\%(if\|switch\)\>:' .
\ '\<\%(else\|else\s\+if\|case\)\>'  
0838名無しさん@Vim%Chalice05/02/19 00:09:26
は〜、Chalice は快適じゃのう

>>831
> dicwin で、検索した単語の履歴保存してくれませんか?

s:OpenDictionary(dic, word) 関数の、「Output  result」と書いてあるとこらへん。


sp + ~/dichist.txt
call append('$', a:word)
xit
0839名無しさん@Vim%Chalice05/02/19 00:15:33
>>837

ヒント
autocmd FileType vim let b:match_ignorecase=0 | let b:match_words=
    \ '\<if\>:\<elsei\%[f]\>:\<el\%[se]\>:\<en\%[dif]\>,' .
    \ '\<wh\%[ile]\>:\<con\%[tinue]\>:\<brea\%[k\]>:\<endw\%[hile]\>,' .
    \ '\<fu\%[nction]\>:\<retu\%[rn]\>:\<endf\%[unction]\>,' .
    \ '\<try\>:\<cat\%[ch]\>:\<fina\%[lly]\>:\<endt\%[ry]\>'
0840名無しさん@お腹いっぱい。05/02/19 00:32:46
cindentを設定していますがswitchのcase:文の中で break; を書いたあとで
改行してもcaseの位置までインデントが戻りません。これは正常な動作ですか?
0841名無しさん@お腹いっぱい。05/02/19 00:45:30
パーサじゃないからね。
0842名無しさん@お腹いっぱい。05/02/19 01:06:08
>>839
うーん。if else if elseはなんとかできたけど、最後のelseがな
い場合はうまくいかない。switchは全然だめ。
let b:match_words =
\ '\%(\%(^\|;\)\s*\)\@<=if\>:' .
\ '\<else\s\+if\>:' .
\ '\<else\>\%(\s\+\<if\>\)\@!,' .
\ '\<switch\>:' .
\ '\<case\>'
0843名無しさん@お腹いっぱい。05/02/19 01:10:10
>>840
次のcaseで元に戻るからいいじゃん。
0844名無しさん@お腹いっぱい。05/02/19 01:44:28
>>836
> # 個人的には、紙の辞書でひいたほうが遥かに覚えが良い、と考えています。
ソースコードを編集するときもVimなんて使わずに
紙にプリントアウトして鋏と糊で切り貼りすればいいじゃん。
0845名無しさん@お腹いっぱい。05/02/19 02:18:45
学生時代 Vz エディタのマクロでそんなの作ったな。
epwing の辞書引きながら履歴残してくやつ。
重要単語なのに何度も引いてるような単語を重点的に覚えたりできたので、
使えないことはなかった。
0846名無しさん@Vim%Chalice05/02/19 02:23:53
>>842

勘違いしているね。
Vim の if には必ず endif が付いている。
C の if には、そういうものがない。

if( 1 ) puts("hello world");

だから C の if には、match_words の定義がない。
084784205/02/19 02:33:34
>>846
まあそうなんだけど、elseやelse ifがあったときはそこを経由し
て巡回したいなと思って。
特にswitch文でcaseを辿りたいときは便利かなと。
0848名無しさん@Vim%Chalice05/02/19 02:57:49
は〜、Chalice は快適じゃのう

>>847
>まあそうなんだけど、elseやelse ifがあったときはそこを経由し
>て巡回したいなと思って。
"else if のない if" と、"else if のある if" が入れ子になったらどうなる?

> 特にswitch文でcaseを辿りたいときは便利かなと。
case は1つですか? 複数の場合があるでしょ。
switch に、一意に対応しない。


:h 'matchpairs'
ここからはじまったの
084984705/02/19 11:08:17
>>848
caseはもちろん複数あるよ。

switch -> case 'a' -> case 'b' -> case 'c' -> switch

switch (a) {
case 'a':
case 'b':
case 'c':

たぶんmatchitではできないんだろね。あきらめるよ。
■ このスレッドは過去ログ倉庫に格納されています