2017-05-21 6 views
-1

に#の後の行のすべてのテキストを除去するために、私はgvimを内のテキストを以下に「#」(R言語のコメント)が発生した後の行のすべてのテキストを削除する必要があります。正規表現gvimを

This line should stay. 

    # one (after initial spaces) - delete this line 
    #two (after initial tab) - delete this line 
# three (no initial space)  - delete this line 
one two #three (after initial words) - delete text after hash. 

This line should also stay. 

I以下を試しましたが、これらは機能していません:

:%s/#.$//g 
:%s/\v#.$//g 
:%s/\#.$//g 
:%s/\v\#.$//g 

私は推定します。改行以外のものを示します。問題はどこでどのように修正できますか?ありがとう。

+0

限定子が必要です: ':%s /#.*// g' –

+0

最初の3回の間は、完全な行が削除されます。 – rnso

答えて

1
:%s/^\s*#.*\n\|#.*// 
  • ^\s*#.*\n削除ラインを完全にはラインとコメント文字他
  • \|#.*の開始時に、オプションのホワイトスペースを持っている場合、行の最後までコメント文字から削除
+0

これは私が欲しかったものです。 – rnso

1

2段階で行います。

  1. 最初にコメントのみを持つ行を見つけて削除します。

    :g/^ *#.*$/d

  2. ライン内のコメントを検索して削除します。

    :%s/#.*/

+0

最初の3行は空白行を残すことなく削除されます。 4行目は、#(#を含む)の後のテキストのみを削除する必要があります。 – rnso

+0

これにより、最初にコメントが残っていた空白行も削除されます。私はコメント行だけを削除したい。他の空白行はそのまま残すべきです。 – rnso

+0

@rnso:今すぐ確認してください。 – Rahul