2012-04-02 9 views
5

EXモードコマンドでビジュアル選択に特定のラインを追加することはできますか?Ex-Mode経由でビジュアル選択にラインを追加

私は、次の形式のテキストがあります。

+----------+-----------+ 
| Some text| other text| 
+----------+-----------+ 
| More text|| 
| And even more || 
| - ...|| 
+----------+-----------+ 

をそして、私はテキストは次のように表示したい:私は経由して+と行を削除したときに表形式のプラグインを使用して

+---------------+------------+ 
| Some text  | other text | 
+---------------+------------+ 
| More text  |   | 
| And even more |   | 
| - ...   |   | 
+---------------+------------+ 

ワークフローのワークフローは次のとおりです。

g!/+/d 
// Visually select the remaining lines 
Tab /| 
// Manually insert the +----+----+ lines 

区切り文字を維持する方法があるかどうか疑問に思っていました。 inesおよびvisual-:g!/+/ add-line-to-visual-selectionのように、EXモードを介して+を含まない行を選択します。

+2

[multiselect](http://www.vim.org/scripts/script.php?script_id=953)プラグインがありますが、Vimが非連続選択をサポートしているとは思いません。 (私はTabularがこのプラグインでうまくいくかどうか言うことはできません) – Xophmeister

+0

これは私が ':h Visual'と':h range'のどちらも有用なものになっていないときに考えたものです - 別のケースについて考えることはできませんその機能を逃してしまったので、私はex-methodを使って生きることができます。 – BergmannF

+0

これは愚かな質問かもしれません(私のSSHは現時点ではダウンしていますので、これをテストすることはできません)が、テーブル全体と 'Tab \ | 'を視覚的に選択するとどうなりますか?もしTabularがデリミタラインを上げてしまうならば、多分あなたはパラメータで何らかの種類の負のルックアラウンドアサーションを使うことができるので、それらのラインは無視されます。 – Xophmeister

答えて

3

あなたが使用することができます

:Tab /|\|+/l1 
:<range>g/+/s/ /-/g 

をあなたが:help /\|以上でグローバル:help pattern\|のヘルプを見つけることができ、それはVimの正規表現での交代を表現する標準的な方法です。したがって、/|\|+/は、|または+と一致する区切り文字を含むパターンです。 (:help pattern全体を読むと、投資収益率が優れています(参考)。

Tabularプラグインの/l1については、プラグインのヘルプをより詳しく読むことができます。セパレータと左揃えテキストの後にスペースが追加されます。

関連する問題