0

コメントアウトしたいので、コメントアウトされていないステートメント/printを検索するために使用しています。print検索と置換を使用して最初にすべてのコメントを削除してから適用できることはわかっていますが、次のコメントアウトされていない print ステートメントを見つけたいだけで、その方法がわかりません。

たとえば、私は持っています:

    #print fooVal
        #... do stuff
        #print barF
        #... more stuff
            print gold # <-- I want to use vim to jump straight to this line 

はこれを一致させたいprintので、. print#

:s/^\s+printandを使ってみまし/^printたが、vimが気に入りません。また、こちらも調べましたが、情報が見つかりませんでした。

4

2 に答える 2

2

あなたの場合、印刷の前にスペースはありません。したがって、「+」の代わりに「*」を使用してみてください。

これは私のために働く:/^\s*print

あまり便利でないパターンは、コメントされていない行を印刷で強調表示する必要があります。/^[^#]*\s*print

于 2013-02-03T05:43:00.403 に答える
1

あなたの場合、@ Takyのソリューションは私が思うに最高ですが、vimの正規表現に関するコメントに気づきました。私はこれを最後の日に研究したので、おそらくそれを書き留めておくことをお勧めします。

vimworldでは、egの使用*^および$正規表現としての特殊文字は「マジック」と呼ばれます(set magicデフォルト)。デフォルト+では正規表現文字ではなく、\+「正規表現+」を意味するように使用する必要があります。ただし、小さな変更を加えるだけでも「魔法」になる可能性があります。vimhelp-検索パターン(vimエディターと同じですが、HTMLと同じで、上部に優れた検索機能があります)。
vimヘルプも参照してください-パターン

ここに少し短いガイドがあります(ルールはリストを覆します):
設定:
:set ignorecase検索と置換で
:set smartcase大文字と小文字を無視し、大文字が使用されていない限り大文字と小文字を無視します(ignorecase機能するにはオンにする必要があります)。
:set magic一部の文字を正規表現の特殊文字として使用できるようにします。たとえば*、前に。を付ける必要はありません\。これはデフォルトです(私は思います)。

検索パターンのルール(設定を上書き)
\c大文字と小文字を区別しない大文字と\C小文字を区別する
例:/\cxxx「大文字と小文字を区別しない」、/\Cxxx大文字と小文字を区別する(置換構文の\cフラグと同じ) 「magic」(設定と同じ)を使用し、「magic」は使用しない。 is/xxx/yyy/i
\mmagic\M

これがvimパターンで使用する興味深い部分+です:
\v「非常に魔法」と呼ばれ、正規表現を使用するときに私たち全員が慣れているものだと思います。
\V「verynomagic」、ALLは文字通り、\特別な意味しかありません。

これで、のよう+に直接使用できます/\v\s+print(ただし、*特定の場合に使用することをお勧めします+。行を開始する「プラグイン」は見つかりません)。
たとえば、が使用されていない場合、{式にも必要です。\\v

ヒント:\v検索パターンで常に使用するには、.vimrcでこれらのマッピングを実行してください。

" To get 'normal' behavior for regexps (use "\V" to avoid)
nnoremap / /\v
vnoremap / /\v

\v(そして、不要なときに「バックスペース」するのは非常に簡単です)。

于 2013-02-04T19:53:47.080 に答える