0

私は .Net 開発者ですが、テキスト エディター タイプの反復的なタスクを実行する必要がある場合に備えて、最近 Vim (または私のインスタンスでは GVim) を使い始めました。

私の経験は基本的にありません。だから我慢してください。また、Visual Studio 内で使用できる GUI ツールやものがあることも認識していますが、時々新しいユーティリティ/アプリを習得したいので、Vim ルートを試しています。

次のような多くのプロパティ (ただし、任意のテキストである可能性があります) を含むテキスト ファイルがあるとします。

    public string AccountNumber { get; set; }

    public string CustomerName { get; set; }

    public string ExpiryDate { get; set; }

    public string IdentityNumber { get; set; }

    public string OfferDate { get; set; }

文字列置換メソッドを使用して、プロパティ名までとその後のすべてを削除したいと思います。

例:

 AccountNumber, 
 CustomerName, ... etc.

これまでのところ、私は成功しています

  • 1) Alt + 左クリック + ドラッグ 前の空白をすべて選択して削除
  • 2) :%s/public\ string\ //
  • 3) :% s/\ {\ get;\ set;\ }/,/

2番目のステップを更新して空白の削除を含めることができるかどうかを知りたいのは、純粋に好奇心からです。

^ 文字は行頭を意味し、\s は (私が思うに) 空白を意味しますが、それで私の知識は終わりです。

のようなことを考えていますか?

:%s/^\s+文字列//

4

3 に答える 3

3

これを解決する 1 つの方法は、マクロを記録することです。

qq          # start recording macro into register q
0w          # move to first non-whitespace caracter. Omit this if no WS at start of line
d2w         # delete 2 words
w           # move a word forward
D           # delete to en of line 
q           # quit macro recording

行の先頭に立って、@q 次の行でマクロを繰り返します。.

または、次の置換を試してください

:%s/^\s*public string\s*\([a-zA-Z]*\).*$/\1/ 
于 2013-04-11T12:32:04.787 に答える
2

私はこれを思いついた、

%s/^\v\s*(\s*\w+){2}\s?(\w+).*/\2/g

正確に言えば、この行はどの単語があなたの「所有物」であるかを知りません。行の 3 番目の単語を残して、それ以外はすべて削除します。

于 2013-04-11T12:34:35.097 に答える