Vimのgrepの使い方がわからない?詳しい解説と実際の使い方をご紹介
- WindowsXPでvimを使い始めたのですが、grepのやり方がよくわかりません。一応、unixでgrepやviは最低限レベルでは使えます。
- grepは指定のテキストから特定の文字列を検索して、結果を一覧で表示させ、ジャンプして表示することができるツールです。詳しい使い方やコマンドの書き方を解説します。
- grepの機能は結果の表示までで、具体的な行へのジャンプまではできません。また、grep対象のファイルは毎回入力する必要があります。しかし、現在編集しているファイルを対象にしたい場合、特殊な変数を使用することができます。
- ベストアンサー
vimのgrepの使い方がよくわかりません
WindowsXPでvimを使い始めたのですが、 grepのやり方がよくわかりません。 一応、unixでgrepやviは最低限レベルでは使えます。 やりたいこととしては、 指定のテキストから、特定の文字列を検索して、 結果を一覧で表示させて、 その中からどれか選んで、その行へジャンプして表示する ということがやりたいです。 で、たぶんgrepでやれるんじゃないかと思って質問しています。 grepに関する簡単な解説を読むと、 (esc)したあと、 :grep hoge hoge.txt でできる、というようなことが書いてあるのですが、 上記で実行すると、 :!findstr /n hoge hoge.txt > c:xxxxxxxx 2>&1 (1 of 1): 1:hoge と出ますが、ここから何をしていいかわかりません。 grepの機能としてはここで終わりなのでしょうか? ここから結果の行へジャンプしたりできないのでしょうか? また、grep対象のファイルって毎回自分で入力するのでしょうか? たとえば、現在編集しているファイルを対象としたい場合、 現在のファイル名となる変数みたいものはあるのでしょうか?
- valtelsafrurle
- お礼率5% (13/257)
- その他([技術者向] コンピューター)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://www002.upp.so-net.ne.jp/janus/vim.html の記述が参考になるかと思います。 試しに、vim 7をインストールして動かしてみました。 grepをし、リターンキーを入力すると検索された最初のファイルを開いて、該当個所にジャンプします。 次に :cwで別ウインドを開いて(そこには検索で引っかかったファイルの一覧が表示されている)、該当する行にカーソルを移動してリターンキーを押すと、そのファイルを開いて該当する行にジャンプしています。
関連するQ&A
- findstrでヒットした1行前の文字を拾いたいです。
findstrでヒットした1行前の文字を拾いたいです。 Windows文字検索コマンドのfindstrがあります。 > findstr "ヒットしたい文字" c:\hoge.txt で、hoge.txtの「ヒットしたい文字」を取り出せますが、 ヒットした1行前の文字を抜き出す方法はありますでしょうか? unixのgrepだと"-1"のオプションで1行前の文字摘出ができました。 findstrのオプションでは無さそうなので代替案がありましたら お願いします。
- 締切済み
- その他(プログラミング・開発)
- viで検索してその行に飛ぶには?
viで、 / で検索すると、1語ずつ検索しますが、 grepのように検索結果を行単位で一覧で出して、 その中から選んだ行にジャンプする、 ということをしたいのですが、どうすればできますか? vimでなくviについての質問ですが、 vimでならこうすればできる、というのもあれば教えてください
- ベストアンサー
- その他([技術者向] コンピューター)
- cygwinでのvim??の使い方
たびたびお世話になっております。 読んでいただいてありがとうございます。 さっそくなのですが、今仕事でLinuxを扱っているのですが 普段 "vi"には慣れず "vim"をつかっております。 そこでは、vim (ファイル名) と打てば ファイルが開き、入力する際には"i"と打って 入力モードにしてから あとは 普通にキーボードで wordなどを使うときと同じように back spaceもdeleateも 文字入力もできまるよね。 そして、編集が終わって 保存して抜けたいときは esc押してから :wq 保存しないで終了したいときは :q!と打って抜けますよね。。。 そのような操作を cigwin上でも使いたいのですが、 vim であっても どうやらそのようにできません。。。 gvimとやらいうのは わりと上記に近く使えそうなのですが、 編集し終わって esc押しても またすぐ自動的にinsertモードに 戻ってしまって :wqと打っても 普通に文字列として認識されて ファイル内に入力されてしまって 終了の仕方が分からないのです。 一応 秀丸をインストールしたので それを使いながら作業できると 言えばできるのですが、すべてcygwin上で作業できるようになるので あれば、そうしたいので、 どなたかアドバイスください。 すみませんが、よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- grepコマンドの使い方
下記のようなファイルがあるとします。 カレントディレクトリ /home から"hello"という文字列が含まれるテキストを grepしたい場合、コマンドはどのようにすればいいのでしょうか? 色々な方法があると思いますが、よろしくお願いします。 ---------------------------------------------------------------------- /home/hoge1/foo1.txt foo2.exe foo3.txt /home/hoge2/hogehoge2/foo4.txt foo5.exe /home/hoge3/hogehogehoge3/foo6.txt foo7.exe foo8.zip ----------------------------------------------------------------------
- 締切済み
- Linux系OS
- 連続で複数の単語をGREPしたい
Windows7端末でサクラエディタを用いてGrepしていますが、Grepしたい単語数が多いので困っています。イメージとしては以下のようにできれば良いと考えています。 ・検索したい単語のリスト C:\単語リスト.txt ・結果を出力するファイル C:\結果テキスト.txt(結果ファイルは単語ごとに出力しても可能) ・検索対象フォルダ(サブフォルダも検索) C:\SourceCode\ 単語リストから一行ずつ取得して検索対象フォルダから該当のファイル名と該当行を結果テキスト.txtに出力します。結果は一つのファイルにまとめて出す場合は、単語ごとにGrepした結果を分けて出力したいです。 もしくは単語単位に複数の結果テキスト.txtを出力しても構いません。 方法ご存知のかた教えて頂ければ幸いです。
- 締切済み
- その他([技術者向] コンピューター)
- grepができるフリーソフトを探しています
Grepツールは沢山存在すると思いますが、特に必要な機能として、 「重複結果を除外する」というものがほしいのです。 例えば、テキストファイルに以下のような内容が記載されているとします。 -----------テキストファイル文----------- hostname:hoge1 IP:192.168.1.5 hostname:hoge2 IP:192.168.1.6 hostname:hoge3 IP:192.168.1.7 hostname:hoge1 IP:192.168.1.5 hostname:hoge3 IP:192.168.1.7 -----------ここまで----------- よくあるgrepツールでこれを「hostname」でgrepすると、出力結果として hostname:hoge1 hostname:hoge2 hostname:hoge3 hostname:hoge1 hostname:hoge3 と結果が得られると思いますが、上記は重複分が2箇所あるので、これを除外して出力できるツールを探しています。 ※つまり、上記の例だと以下のような結果が得られれば良い hostname:hoge1 hostname:hoge2 hostname:hoge3 よろしくお願い致します。
- ベストアンサー
- Windows XP
- 圧縮ファイルのgrepソフト
階層的に複数圧縮されたファイル内の文字列を解凍せずにgrepするソフトを探しています。 現在、圧縮ファイルの閲覧ソフトとして、Explzhを使っています。これはこれで解凍せずに閲覧できて便利なのですが、ファイル内の文字検索する機能がありません。(と思って使っています) grepソフトとしては秀丸を使っていますが、これは圧縮ファイル内のgrepには対応していません。(と思っています) そこで、階層的に複数圧縮されたファイルを下位階層まで含めて全て全文文字検索かけてくれて結果を表示、選択すれば当該ファイルの当該文字位置にジャンプ表示するようなソフトを探しています。 どなたか良いソフトをご存じであれば教えて下さい。 基本フリーウェアを探していますが、情報としてはシェアウェアも含めて情報頂けると助かります。 場合によっては購入も考えますので。(金額次第ですが。。。)
- ベストアンサー
- フリーウェア・フリーソフト
- 秀丸のGREP検索
GREP検索をした時、該当する単語のある行が表示されなくなってしまいました。 viyon.txt(17) suisen.txt(114) のようにファイル名と行番号しか表示されません。 以前は、検索単語と周囲の文字列も表示されてたんですけど・・・・・・ 元に戻せませんか?
- ベストアンサー
- その他(ソフトウェア)
- windows でのvimのにimap
windows版のgvim(ver 7.2)を使っています。 ファイルからの読み込みを楽に行いたくて、つぎのキーバインドを作りました。 map <F12> :r d:\vi\tmp\test.txt<CR> normal modeではうまくできるのですが、挿入モードでも同じことを行いたいと 次のキーバインドを作りましたが、うまく動作しません。 map! <F12> :r d:\vi\tmp\test.txt<CR> この場合は :r d:\vi\tmp\test.txt という文字列が表示されてしまいます。 normal modeと同じ動作をさせるには、どのようにすればよいのでしょうか。
- 締切済み
- その他([技術者向] コンピューター)
- 改行を含んだgrep
お世話になっております。質問です。 エディタでサクラを使っています。 改行を含んだgrepはできますか? また、以下のやりかたを見ていただいて、良いやり方がありましたらご教示下さい。 ABCを含んだ行を対象に、;(行の終わり)までを抽出したいのです。 現在以下のような条件でgrepしていますが、ABCを含む行全てが抽出されません。 ABC.*(\r\n)*.*; また、以下のようにgrepすると、ABCを含む行全てがgrepされますが、対象ファイル内で改行されていた場合、;まで抽出されず、改行場所までしか抽出されません。 ABC; 詳しい方、宜しくお願い致します。
- 締切済み
- その他([技術者向] コンピューター)
補足
できました。ありがとうございます。