2016-05-15 5 views
-3

改行文字を古典的なvi(arch linuxの場合)の単語に置き換えようとしています。代替コマンドは次のようになります。vimとviの動作が異なっています

:%sの/ \ N /ワード/ gのvimの中で仕事をする

。私が作業しているファイルは、Calcのコピー/ペーストの結果です(データウェアハウスプログラムのcsvからのものです)。

VIM出力は、行が置換されているため(私は別のプログラムにフィードする必要があるコマンドである非常に長い行になります)。 これをWindowsとLinuxでVIMでテストしました。同じファイルに

Viの出力は、次のとおりです。「代替パターンマッチ失敗しました」

を私は使用していますviのバージョンは、アーチのデフォルトです:バージョン4.0(グリッター)12/25/06

どの古典的なviです。

私はVIMでこれを行うことはできませんでしたが、なぜviでこれが動作しないのですか?この仕事をする方法はありますか?私は解決策を模索しようとしましたが、有用なものは何も出てこなかった。

答えて

1

viは、ほとんどPOSIX Basic Regular Expressionsであり、Cスタイルのエスケープシーケンスを必要としません。ex regular-expressionsを使用します。代わりにjoin commend from exを使用して、変更を防止するために!(通常はスペースを調整します)を使用できます。

:%j! 

代替コマンドを使用して、改行の置換をシミュレートすることができます。

:2,$s/^/start 
:1,$-s/$/end 
:%j! 
+0

ありがとう、この回答は非常に有用で有益です。 – Giankun

関連する問題