人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

vimでRubyのメソッドやブロックをまとめて選択する方法を教えてください。

その他、選択系のTipsやプラグインなどがあれば教えて頂きたいです。(htmlタグの中身を選択等)

中括弧や丸括弧の中身をv_abやv_iBで選択するのと同じようなイメージです。

#helloメソッド全体を選択したい
def hello
puts "こんにちは1"
puts "こんにちは2"
puts "こんにちは3"
end

よろしくお願いいたします。

●質問者: guyon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:def Hello HTML Ruby TIPS
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● hsada
●23ポイント

コマンドモードでvを入力した後カーソル移動で選択できます。

http://www.ac.cyberhome.ne.jp/~yakahaira/vimdoc/motion.html

◎質問者からの返答

ご回答ありがとうございます。

カーソル移動というのは、defの位置でv4j$という操作のことでしょうか?だとしたら、ちょっと意味合いが違ってきます。

私が実現したいのは、例のような範囲を明示的に指定して選択というようなイメージで、テキストオブジェクト操作の選択版という感じです。

参考URLのhelp参考にさせて頂きます。


2 ● longicorn
●23ポイント

自分の環境では"def hello"の行でvのあと%で

"end"の行まで選択できます。


念のため自分の環境を書いておきます。

環境:Ubuntu 7.04

vim :7.0

◎質問者からの返答

ご回答ありがとうございます。

残念ながら、私のwindows vim7(kaoriya版)では実現できませんでした。

Linux環境でも後日試してみたいと思います。

--

ruby-matchit.vimをインストールしたら、%で移動はできるようになりましたが、選択はできませんでした。


3 ● セコン
●35ポイント

filetype が ruby の時は


" * ~ end block
nmap vab 0/end<CR>%V%0oj
nmap vib 0/end<CR>%V%0o
" def ~ end block
nmap vam $?\%(.*#.*def\)\@!def<CR>%V%0oj
nmap vim $?\%(.*#.*def\)\@!def<CR>%V%0o
" class ~ end block
nmap vac $?\%(.*#.*class\)\@!class<CR>%V%0oj
nmap vic $?\%(.*#.*class\)\@!class<CR>%V%0o
" module ~ end block
nmap vaM $?\%(.*#.*module\)\@!module<CR>%V%0oj
nmap viM $?\%(.*#.*module\)\@!module<CR>%V%0o

が読まれるようにしてます。これで vam や vim を押すとメソッド全体、メソッド内部の文字列を選択できるようにしています。

◎質問者からの返答

ズバリなご回答ありがとうございます。

補足のftpluginを入れたら、選択動作になりましたが、クラスやメソッドなどend行だけしか選択されません。(win,Linux環境とも)

vamnをタイプすることでdefからendまで選択することができましたが、vimメソッド内部を選択できる方法が思いつきませんでした。

教えていただいた方法で期待結果動作を得ることができなかったので、なにか自分の設定が足りなかったりするか考えてみます。

※追伸:いつぞや日記に書かれていた(冗談口調だった?)vimの本出版実現をちょっと期待していたりします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ