- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/16(金) 00:56:51 ]
- Vim 6以降に関する話題、Part16です。
www.vim.org/ 前スレ Vim Part15 pc11.2ch.net/test/read.cgi/unix/1202050038/ 関連情報は>>2-8あたり。
- 339 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 09:29:14 ]
- そんなことより、Vimの話しようぜ。
- 340 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 12:44:49 ]
- $ stat -c %s /usr/local/bin/vim
1658148 デカ過ぎ。この1/10のチビvimが欲しい。
- 341 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 13:34:22 ]
- $ stat -f %z /usr/bin/vi /usr/local/bin/vim
281980 1264028
- 342 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 14:22:44 ]
- 行頭の # が>>コマンドでインデント出来ない。
行頭じゃなければ出来る。なんで? Kaorya gvim 7.2.148
- 343 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/06(土) 14:29:36 ]
- :set nosmartindent
- 344 名前:342 mailto:sage [2009/06/06(土) 15:10:21 ]
- >>343
どうもです。
- 345 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/09(火) 14:39:39 ]
- C言語のインデントで、 gg=G みたいな事をやると
// if (hoge == 0) { などという、コメントアウトした括弧まで反映されて困るんですが なんとかならないんでしょうか?
- 346 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/11(木) 01:50:26 ]
- :set cindent
- 347 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/12(金) 22:17:30 ]
- オートインデントで
if (hogehoge) {<CR> ----<CR> としたら if (hogehoge) { ---- になるんだけど勝手にインデント削除させないようにするにはどうすればいいの?
- 348 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/13(土) 18:57:34 ]
- :set autoindent
- 349 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 00:58:29 ]
- いろいろやってみたけど、インデントは削除されてしまうので
特にレスをしなかったんだけど、>>348じゃ解決できないよね? けど、そのインデントを残しておきたい理由って何なんだろう? あとからその行に書きたいときのことを想定してたりする?
- 350 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 07:48:05 ]
- >>349
Pythonじゃ勝手に消されると困るし他の言語でも空行もインデントするようにしてるんで
- 351 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 15:43:02 ]
- >>347
set cindent inoremap <CR> x<BS><CR> でいちおうできた。 他に弊害があるかはわからん。
- 352 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 16:30:15 ]
- >>351
thx それで大丈夫そうだ
- 353 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/15(月) 16:56:44 ]
- python使ったことないけど、空行作るためには先頭に空白を入れなければならない言語なのか
なれるまで大変そうだね。。
- 354 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/16(火) 01:11:00 ]
- >>353
そんな必要全然ないよ。 >>350のは編集するとき不便だって話じゃないかな。 ただそれでも隣接行からo/Oすれば十分だとは思うけど。
- 355 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/16(火) 16:49:42 ]
- >>350のソースを引き継いだ俺は、まず :%s/ *$//<CR> と入力するのであった。
- 356 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 13:58:14 ]
- pythonは西欧圏でやたら流行ってる印象が
そんなにいいもんかな
- 357 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 20:25:33 ]
- 今時のLinux環境は何かしらでpython必須だしょ?
ソフトの拡張用途でも定番、クロプラ物はとくに とにかくrubyよりはまし
- 358 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 21:05:21 ]
- 全然必須じゃないが
- 359 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 22:11:05 ]
- OpenOfficeでpythonつこてるよね。
- 360 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 22:26:45 ]
- つこてないよ
- 361 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/17(水) 23:41:40 ]
- IPAが つ こ う た。
- 362 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 02:29:25 ]
- なにかしらで使われてることは知った上で、そんなにいいもんかなという印象なんだけど。
shとまではいかないまでも、perlぐらいの地位は得てるの?
- 363 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 04:50:44 ]
- ここ ヴぃm すれ
- 364 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 07:33:30 ]
- そんな呼び方は断じて認めない。ぶいあいえむ。
- 365 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 10:17:11 ]
- ftp://ftp.vim.org/pub/vim/runtime/doc/intro.txt
*pronounce*
- 366 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 17:35:00 ]
- vimでphpのウェブ開発をしたいんですが、
実行結果の確認って、一々Ffとかieのブラウザをリロードしなきゃいけないんですか? ideみたくvim内で実行結果を確認することって出来ないんです?
- 367 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 17:41:46 ]
- IDE使えば?
- 368 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 17:47:11 ]
- ('A`)ヒィィ
- 369 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 21:58:30 ]
- だって一番大事なコンソールでそれ実装できないし
- 370 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 22:07:30 ]
- vimの挿入モードだけど、常に挿入モードにしてる奴ってどのぐらいいる?
それとも起動後、必ず i 入力するの?
- 371 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 22:22:44 ]
- どちらでもないな。
iはinsertを行いたい場面で使うし、挿入モードにしたいときに適したコマンドで挿入モードにするよ 新規ファイルを編集したいときに限定すれば起動した後必ずといっていいほどiを入力してるかな
- 372 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/18(木) 22:25:55 ]
- どういう使い方でもそれが便利だと思ったら、その人にとってはそれが正解だよ
- 373 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 10:46:02 ]
- Git のコミットログコメントを入力する時にvimを起動しているんですけど、コメントが長いと勝手に改行されてしまうようです。
これをやめさせるにはどうしたらいいでしょうか。 たぶんgitモードかなんかになっていると思うので、それをやめさせればいいのだと思いますが。
- 374 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 13:04:43 ]
- どういう使い方でもそれが便利だと思ったら、その人にとってはそれが正解だよ
アイン・シュタイン
- 375 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 15:16:08 ]
- twを0にするとか?
- 376 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 16:07:25 ]
- snipMateをインストールしたんですが、*.c や *.rb では機能が有効になっているのに、*.py では無効になっています。
*.pyでも有効にするにはどうしたらいいでしょうか。 Emacsから乗り換え中で、あまりよくわかっていません。 vim 7.2 使用中
- 377 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 17:40:21 ]
- >>366
そういうのは screen + w3m とかで。
- 378 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 19:51:18 ]
- >>376
.vimrcの先頭に filetype plugin on を入れたら、*.pyでもうまくいくようになりました。
- 379 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 22:14:03 ]
- >>371
vim仕様の原理主義的な発想を排除して聞きたい。 なんで、新規ファイルの時は毎回 i を入力してるの?
- 380 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/19(金) 22:18:00 ]
- 常時挿入の人は移動はカーソルキーのみ?
- 381 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 00:49:06 ]
- >原理主義的な発想を排除して
がどの辺までかワカランけど 新規ファイルだろうがaを百個打ちたかったら 100ia[esc]ってiの前に数字打ったりするだろ バッファが空だろうと挿入モードに入る前にやることなんていろいろある 例えば新規ファイルを開いた瞬間インサートモードになってる、とかいう仕様じゃ困るよ
- 382 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 00:54:32 ]
- あぁ、スマン>>371の人限定の質問だったのか
横から答えちゃった、申し訳ない
- 383 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 00:55:10 ]
- そんなことは聞いてない。
なんで、「毎回」 i を打つの? って聞いてる。 おまえが、「毎回」 aを100個入力するなら、すまんかったな。が、そうじゃないだろ? 原理主義は越えないとその先へは進歩できないぞ。
- 384 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 00:57:24 ]
- それで慣れちゃったからなぁ。
先に行きたい人は行けばいいじゃない。 おれはほっといてくれていいよ。
- 385 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 00:57:29 ]
- なんだ、当人じゃないのか…。
- 386 名前:384 mailto:sage [2009/06/20(土) 00:59:26 ]
- あ、371とは別人です。
381とも別人。
- 387 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 01:15:59 ]
- 毎回「絶対」iするってんなら、371は最初からそう設定しとけよ!ってこと?
それで原理主義を乗り越えたことになるのか 普通に不便そうだがw人によっては便利なのかもね
- 388 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 01:18:52 ]
- >>387
小さな一歩だが、原理主義を乗り越えるべき大きな前進。 だって、毎回 i をいれるなら、めんどくさく感じないと駄目な気がする。
- 389 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 01:26:00 ]
- 既存ファイルからヤンク、新規ファイルに挿入、とか良くやるから
勝手に挿入モードに入られても困る
- 390 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 01:41:16 ]
- 毎回先頭に文字挿入するわけじゃないしなぁ。
/hoge した 50G したりしてから i するじゃん。
- 391 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 01:47:36 ]
- 原理主義ってどういうこと?
- 392 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 01:48:23 ]
- 「毎回」iをタイプしたりはしないなぁ
vim起動後その前後の行に入力したければoとかOをタイプするし 行末に文字を追加したければAをタイプする どこに文字を挿入するかで違う 最初から挿入モードで使いたい, モードなんて無視したい人にはcreamおすすめ
- 393 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 02:19:43 ]
- 新規ファイルのときという条件らしいよ。
- 394 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 02:35:51 ]
- 編集時に毎回iを押して挿入モードにすることをめんどくさがらないから原理主義者、
っていうのはなんか違う気がする。 自分でめんどうだと思っているのにそのまま使っている人の方がどちらかと言えば近いような気もする。
- 395 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 02:36:20 ]
- 「新規ファイルの時だけ限定で最初から挿入モード」が便利な人もいるかもしれないけど
「何か入力する前にi(またはa)」と指や意識が慣れちゃってる人はわざわざ使い分けるのが面倒かもね 普段の考え方が一入力離脱型かベッタリ入力時々編集型かで分かれそう 「新規ファイルなんて滅多に作らない」人って業務スタイルによっては結構いそうだし 「面倒なことはガンガン設定して楽しようぜ」というのは良いことだとは思う
- 396 名前:392 mailto:sage [2009/06/20(土) 02:43:31 ]
- 新規ファイルでも,セレクションからペーストして編集する事も多いから
「毎回」iをタイプしたりはしないね
- 397 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 02:46:26 ]
- 自分の場合は、半分くらいの場合、入力から入って、のこりの半分はコマンド実行から入るみたいだ。
で、最初から、入力になるように試してみたんだけど、入力を抜けるのが面倒くさく感じたぞ。 oやiは1キーだけど、C-[は2キー使うからな。慣れの問題かもしれん
- 398 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 07:18:38 ]
- かなりの割合でまず移動する
- 399 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 20:08:08 ]
- snipMateを使っているんですけど、~/.vim/snippets/*.snippets を編集したあとリロードするには、vimを再起動するしかないのでしょうか。
できれば現在編集中のvimを終了することなく、編集した*.snippetsの内容を反映させたいんですが。
- 400 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 20:44:29 ]
- >>394
そう言う話でてくると思った。でも、程度問題って事なんだよね。その程度では原理者義者ではない。って趣旨だから。 でも、原理主義者のほとんどは「俺は違う」って思ってる。
- 401 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 22:13:29 ]
- >>400
どういう意味?
- 402 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 22:18:11 ]
- >>400
×そう言う話でてくると思った ○そういうレスを待っていた
- 403 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/20(土) 23:33:01 ]
- imapコマンドで、Ctrl+. を表現するにはどうしたらいいですか。
つまり imap <C-o> foo を imap <C-.> foo にしたいのですが、「.」が入力されるだけで、うまくコマンドが実行されません。
- 404 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 01:50:03 ]
- >>401
それって原理主義だろ? って言うと「脊髄反射で否定する」って事さ。
- 405 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 02:06:56 ]
- >>401
人を原理主義者呼ばわりする奴はキチガイの煽り屋だから相手しちゃダメ、てこと
- 406 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:05:53 ]
- >>379
亀ですまん。 新規ファイルを作ったらなんか書きたいので、大抵すぐ挿入モードにしてる。 :enewだとか:spだとかの場合はまた違うけど。
- 407 名前:371 mailto:sage [2009/06/21(日) 03:08:36 ]
- ちょ、いろいろ議論されててびびった。
ええと、とりあえず言いたいのは > なんで、新規ファイルの時は毎回 i を入力してるの? 毎回とは書いてないよ。大抵って書いてる。 その理由は>>406です。
- 408 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:13:27 ]
- 大抵とも書いてなかった。ほんとすまん。
言いたいことは伝わってるかな…?
- 409 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:17:58 ]
- >>405
それが脊髄反射。
- 410 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:31:27 ]
- >>403
CTRLと組み合わせできるのは基本的には ja.wikipedia.org/wiki/ASCII ここのASCII制御文字の表にあるような文字だけ。 :echo getchar() に続けてキーを押すとキーコードが確認できるので、それで CTRL のありなしで同じ結果になる場合は区別できないということ。
- 411 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:37:58 ]
- >>410
ありがとうございます。 これってvimというよりはterminalの制限ですよね。GUIバージョンでも同じ制限があるんですか。残念。 かわりに Ctrl+¥ や Ctrl+_ を使う事にします。 あと、現在vimスクリプトに挑戦しているんですけど、「カーソルのある場所の文字」を見て分岐するような関数はどうやって書くのでしょうか。 if カーソル状の文字が '<' なら 関数foo()を実行 else 関数bar()を実行 end みたいなのです。 重ね重ねすみませんが、よろしくお願いします。
- 412 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:48:43 ]
- 今初めてスクリプトについて調べたのでもうちょっと楽な方法あるのかもしれないけど
strpart(getline("."),col("."),1) で取れたよ
- 413 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 03:51:32 ]
- ごめん。col関数は1オリジンの値を返すようでした。
strpart(getline("."),col(".")-1,1)
- 414 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 10:49:28 ]
- >>411
GUI版なら設定可能だよ。できないというのであればもう少し使用環境を詳しく書いて。 > カーソルのある場所の文字 >>413の方法もあるけど私はgetline('.')[col('.')-1]の方が好みかな。 他にも方法はあるけどややこしいだけだから気にしなくてもいいよ。
- 415 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 11:59:56 ]
- >>412-414
ありがとうございます。getline('.')[col('.')-1] を使うことにします。 それでですね、カーソル上の文字によって、iまたはaを使いたいんですが、うまくいきません。 """ 別の関数(ここではstrftime())の実行結果を挿入する。 """ カーソル上の文字が '@' ならその右側に、それ以外なら左側に挿入する。 function Func1() let ch = getline('.')[col('.')-1] if ch == '@' "exec "normal a<C-r>=strftime('%c')<CR>" return "a<C-r>=strftime('%c')<CR>" else "exec "normal i<C-r>=strftime('%c')<CR>" return "i<C-r>=strftime('%c')<CR>" endif endfunction ":nmap <C-¥> :call Func1() :nmap <expr> <C-¥> Func1() これを実行すると、<C-r>=strftime('%c')<CR> がそのまま挿入されてしまいます。 どなたか助けてください。
- 416 名前:412 mailto:sage [2009/06/21(日) 13:41:53 ]
- >>414
おお、そういう感じに取れるんですね。一文字の場合はそっちがすっきりしてよさげです。 >>415 \<C-R>という風に記述してみたらどうでしょうか?
- 417 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 19:04:42 ]
- >>416
>¥<C-R>という風に記述してみたらどうでしょうか? それで行けました。さんくすです。 >>414 >GUI版なら設定可能だよ。できないというのであればもう少し使用環境を詳しく書いて。 できますか? 環境はMacVM.appです。vim7.2相当。
- 418 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 20:02:40 ]
- Vimで、カーソル直前の単語を大文字にするやり方を教えてください。
たとえば request_method と入力して、なにかキーを押すと REQUEST_METHOD となるようにしたいです。
- 419 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 20:14:45 ]
- 大文字小文字の反転でよければ
viw~
- 420 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 20:16:17 ]
- と、レスしたはいいけど、ありそうな気がしたのでヘルプ見たらUでできた
viwU でどうでしょ
- 421 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 23:02:21 ]
- えーとですね。i [esc] i [esc] i [esc] i [esc] って連続して入力していくと、
カーソルがどんどん左に行ってしまうんですが、なんか止める方法ナイスかね。
- 422 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 23:12:03 ]
- ガムとかかんで気を紛らわす
- 423 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/21(日) 23:22:25 ]
- >>421
a [esc] a [esc] a [esc] a [esc] と入力するようにすればいいんじゃナイスかね
- 424 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 10:37:14 ]
- >>421
なんでそんな入力してるの?
- 425 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 10:43:41 ]
- set insertmode なんてあるのか。
- 426 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 10:47:18 ]
- vimでキーバインドの一覧を表示する機能ってありますか
:map とすると、なんかカスタマイズしたぶんだけが表示されて、一覧ではないようです イメージ的にはEmacsの C-h l が欲しいんですけど。
- 427 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 10:49:34 ]
- あとvisualモードやinsertモードでの一覧もみたいです
- 428 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 10:55:20 ]
- >>420
ありがとうございます。これを参考に vbU でやってみました。 あとカーソルが移動しちゃってるので、移動しないようにしたいのですが、どうしたらいいでしょうか。 vbUw とすると、カーソルが次の単語の先頭に移動しちゃいます。
- 429 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 11:19:00 ]
- >>424
vbUw じゃなくて vbUe でよさそうです。eなんていうのがあるとは知りませんでした。 で、関数にしてみたんですけど、どうでしょうか。添削お願いします。 function MyUpcaseWord() normal vbUe endfunction ":imap <C-q><C-u> <C-r>=MyUpcaseWord()<CR> :imap <C-q><C-u> <Esc>:call MyUpcaseWord()<CR>a :nmap <C-q><C-u> :call MyUpcaseWord()<CR>l
- 430 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 12:56:07 ]
- 関数、マップ方法については添削できるほどの知識がないので、動けばよいのでは?としか言えないですorz
require_function<ESC>としたときにカーソルはnにあるのでiwを使っていました。 require_function<ESC>vbとすると、末尾のnは選択されないように思うのですが、そのへんは大丈夫です?
- 431 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/22(月) 16:20:10 ]
- >>430
手元の環境では、「n」にカーソルがある状態で vb とすると、「n」も含めて選択されました。 vimのバージョンによって違うのかもしれないですね。 けどvimスクリプトは難しい
- 432 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 07:17:42 ]
- 現在編集中のバッファから、指定した正規表現にマッチする行を一覧表示し、
かつその一覧表示から該当する行にジャンプするようなvimスクリプトってありますか。 イメージとしては、現在編集中のバッファから '^¥s*def ¥w+' や '^¥s*class ¥w+' に一致する行を一覧表示させ、 そこからクラス定義やメソッド定義に簡単にジャンプしたいです。
- 433 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 07:30:06 ]
- taglist.vim
tagexplorer.vim あたりを使えばよいように思う。
- 434 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 09:05:50 ]
- >>432
:vimgrep /^\s*\<\%(class\|def\)\> \w\+/j % | cwindow とかでどうですか?
- 435 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 12:42:56 ]
- >>433,434
朝はやくからありがとうございます。 ctagsはあらかじめ実行しておく必要があるし、ちょっと目的とは違うようなので、 :vimgrep のほうを使うことにします。 :vimgrep は、検索結果のウィンドウでEnterキーを押したら該当箇所にジャンプしてくれて便利ですね。 これをカスタマイズして、ジャンプすると同時に検索結果のウィンドウを閉じるような関数をつくり、 それを <C-j> とかに割り当てたいんですけど、どうしたらいいでしょうか。 検索結果のウィンドウでだけキーバインドを変える方法があれば教えてください。
- 436 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 13:40:44 ]
- taglist.vimは指定時間置きに自動更新じゃなかったっけ
- 437 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 14:39:36 ]
- >>435
わざわざ関数を作ってマップする必要はないと思うけど :autocmd BufReadPost quickfix nnoremap <silent> <buffer> <C-j> <CR>:cclose<CR>
- 438 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 21:22:12 ]
- あ、あれ?
目的見てからtaglist勧めたのに。すまんこ
- 439 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/06/25(木) 22:29:19 ]
- >>437
どうもありがとうございます。 >:autocmd BufReadPost quickfix nnoremap <silent> <buffer> <C-j> <CR>:cclose<CR> 自分なりに調べたところ、 ・:autocmd を使って、quickfix というバッファでBufReadPost イベントが発生したときに、 ・nnoremp を使って C-j にコマンドをバッファローカルに割り当てる ということでいいでしょうか。 うーん難しい。 >>438 こちらこそすみません。ctagsは複数のファイルを横断的に検索するのと、 あらかじめ実行しておかなければいけないから変更直後には使用できないと 思ってやめました。 例が def と class だったので ctags のほうをお勧めされたと思うのですが、 実際にはそれ以外の wiki や html や不定形のファイルも扱いたかったので。
|

|