スパム対策として書込み時にID/PWを要求されますが、ローマ字で ほげ/ホゲ で書き込めるようになります。

折り畳みを使って検索結果を表示

  • ページ: tips
  • カテゴリー: 検索
  • 投稿日: 2005-01-17 14:04:44 (月)
  • バージョン:

メッセージ

VimTip? 77: Displaying search results using folds
http://vim.sourceforge.net/tip_view.php?tip_id=77
より

:Fs word

で word を検索し、マッチした行のみを残して、それ以外を折り畳ませる方法。

例えば、Java プログラムを編集中に

:Fs public\|protected\|private

とすれば、メソッドのヘッダだけを表示して折り畳んでくれる。

function! Foldsearch(search)
       normal zE          
       normal G$          
	let folded = 0     
       let flags = "w"    
       let line1 =  0     
       while search(a:search, flags) > 0
               let  line2 = line(".")
		"echo "pattern found at line # " line2
               if (line2 -1 > line1)
                       "echo line1 . ":" . (line2-1)
                       "echo "A fold goes here."
                       execute ":" . line1 . "," . (line2-1) . "fold"
						let folded = 1       
               endif
               let line1 = line2     
               let flags = "W"       
       endwhile
		" Now create the last fold which goes to the end of the file.
       normal $G
       let  line2 = line(".")
		"echo "end of file found at line # " line2
       if (line2  > line1 && folded == 1)
               "echo line1 . ":" . line2
               "echo "A fold goes here."
               execute ":". line1 . "," . line2 . "fold"
       endif
endfunction
" Command is executed as ':Fs pattern'"
command! -nargs=+ -complete=command Fs call Foldsearch(<q-args>)
" View the methods and variables in a java source file."
command! Japi Fs public\|protected\|private

オリジナルにはコマンドの一部と認識されてしまうコメントがあったので、その部分削除しました。





トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-14 (火) 01:13:17 (1288d)