Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

秀丸を10年使い続けた私が、MacVimでgrepしてみた… 徒然備忘録

$
0
0

前置き

前回、「これから調べること」としてgrepを挙げていました。
でも秀丸のgrepにどっぷりだった私は、なんだかとっつきにくくて「食わず嫌い」な状態でした。

実は、そんな人多いんじゃない?

とにかく使ってみた

過去ログなんかを漁るのには、grep一択。
「今までなんとなく避けてたけど、使ってみるか…。」
という感じで、まずは基本的なコマンド

:vimgrep {pattern} {file}

:vimgrep shingargle kakoLog*.log
という感じですな。

で、検索結果がでるのですが、
(1 of 55): shingargle って素敵な名前
とかなるわけです。

え?え?一行だけ?
ヒット件数はわかるものの、全体が見渡せない…。
これが、とっつきにくい理由でした。

次の(前の)検索位置へ

ため息混じりにひとつひとつ確認です。

:cn:次の検索結果へ移動する
:cN:前の検索結果へ移動する:cpでもOK

もう面倒極まりない。

検索結果一覧表示

世界を席巻するVimmer達が、こんな作業をするはずがない。
と、ちょっと調べる。

:copen

grep直後にこのコマンドですよ。
すると、

:
kakoLog_2015-02-18.log|314 col 28| ....
kakoLog_2015-03-09.log|4 col 28| ....
:

ずらっと検索結果の一覧が別窓で表示されました。
当然、タグジャンプも可能。Vimでも「タグジャンプ」って言うのかは不明だけど。

で、検索し終わって別窓を閉じるときは

:cclose
です。

ワイルドカード

次に悩んだのが、ディレクトリを再帰的に検索する方法。
ワイルドカードを使用します。

" カレントディレクトリ以下のあらゆるファイルを対象にする
:vimgrep {pattern} **
" Documents/Logs以下のあらゆるファイルを対象にする(ディレクトリを再帰的に検索)
:vimgrep {pattern} Documents/Logs/**
" Documents/Logs/users内のファイルを対象にする
:vimgrep {patter} Documents/Logs/users/*
" Documents/Logs以下のlogファイルを対象にする
:vimgrep {pattern} Documents/Logs/**/*.log
" app/views以下でkakoで始まるlogファイルを対象にする
:vimgrep {pattern} Documents/Logs/**/kako*.log

知ってしまえば、なんてことない。チョロい。

QuickFixCmdPost というドーピング

使ってると「:copenを打つのも面倒だ。」となるわけです。慣れって怖いですね。
そんなあなたは(私は).vimrcに以下の一文を追記しましょう。

.vimrc
autocmdQuickfixCmdPost*copen

「QuickFix とは、エラー結果や grep の結果が表示される専用のウインドウ領域のこと」
参考:http://www.soum.co.jp/misc/v/vim-no-susume/7.html#id5

ワイルドカードを指定することで「QuickFixが使われたらcopenで自動的に開いてしまえ。」と。
きっとgrepの結果だけじゃなく、色々な場面で活躍してくれることでしょう。

まとめ

.vimrcに以下の一文を追記

.vimrc
autocmdQuickfixCmdPost*copen

基本コマンドは↓

:vimgrep {pattern} {file}

ワイルドカード

" カレントディレクトリ以下のあらゆるファイルを対象にする
:vim {pattern} **
" Documents/Logs以下のあらゆるファイルを対象にする(ディレクトリを再帰的に検索)
:vim {pattern} Documents/Logs/**
" Documents/Logs/users内のファイルを対象にする
:vim {patter} Documents/Logs/users/*
" Documents/Logs以下のlogファイルを対象にする
:vim {pattern} Documents/Logs/**/*.log
" app/views以下でkakoで始まるlogファイルを対象にする
:vim {pattern} Documents/Logs/**/kako*.log

ここで一句
「技術者は楽するために苦労する」
オソマツ


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>