0

Vim で置換を使用して手動でインデントを解除したい (< を実行する代わりに)

だから私はこれを行います:

:%s/^(^I)?//g

しかし、パターンが見つかりません。私は何を間違っていますか?

4

3 に答える 3

1

おそらく、andの代わりにandを使用する必要\(\)あり(ます)。また、^Iが1文字(たとえば、control-v TABを使用して作成)であり、2文字(たとえば、「^」と「I」を使用して作成)ではないことを確認してください。最後に、あなたが必要かどうかさえわかりません?

于 2012-06-29T19:36:53.713 に答える
1

Vim は、あなたが使用しているように見える Perl 風の正規表現構文を理解していません。それは違いない:

%s/^\t\?//

は必須ではなく、の(...)ように記述する必要があります\(...\)。の代わりに、 +を\t押すか、空白に一般的なアトムを使用することもできます。CtrlV Tab\s

于 2012-06-29T19:39:20.657 に答える
0

質問が代替を求めていることは理解していますが、同様の機能を提供するいくつかの元コマンドを提案する必要があると感じています。

  • ファイル全体のインデントを 1 レベル減らします。:%<
  • 行 1 ~ 5 のインデントを 1 レベル減らします。:1,5<
  • パターンに一致する行のインデントを 1 レベル減らします。:g/pattern/<
  • すべてのインデントを削除::%leftまたは:%le略して

詳細については、次を参照してください。

:h :<
:h :g
:h :left
:h :range
于 2012-07-13T21:28:29.160 に答える