7

!MacVim を使用していますが、コマンドをカラーで印刷したいと考えています。例えば:

bash では、次の echo ステートメントによって Hello World が緑色で出力されます (予想どおり)。

$ echo -e "\033[32m Hello World" 
 Hello World

ただし、VIM では出力はカラーではなく、エスケープ コードが出力されます。

:!echo -e "\033[32m Hello World" 
 [32m Hello World

VIM (および特に MacVim ビルド 57) でコマンドの出力を出力し、!ANSI カラー エスケープを尊重するにはどうすればよいでしょうか。

4

5 に答える 5

4

できません。ただし、エディターを一時停止して、比較的迅速にシェルにドロップできます。

または、 を使用Ansi Filterしてエスケープ シーケンスを削除することもできるため、少なくとも混乱は見られません。

于 2011-05-25T15:05:39.237 に答える
2

これが役立つかどうかはわかりませんが、Vim 内で RSpec テストを実行すると、--colorオプションを使用して色付きの出力が得られます。次のコマンドを使用して、現在のスペック ファイルをインラインで実行します。

:map ,t :w\|:!rspec --color %<cr>

于 2012-05-26T20:42:47.457 に答える
2

これです:

:!echo $(tput setaf 1)Hello world$(tput sgr0)

カラー印刷Hello worldになります。

エスケープ シーケンスを使用しないで、名前付き tput エントリを使用します。(この例だけでなく、常に)。読む:
man teminfo; 男infocmp; man tput - 詳細については。

コメントに基づいて、この質問は非常に興味深いことがわかりました。

より良い解決策をまだ探していますが、今のところhttp://code.google.com/p/conque/を見つけてください。MacVim のバッファ内で色付きのコマンドを実行できるようにします。

于 2011-05-25T15:20:43.933 に答える
1

macvim をコンソール モード (mvim ではなく vim) で実行する場合は、 all :! コマンドはシェルにリダイレクトされ、そこで実行されます。ウィンドウの 3 分の 1 ではなくウィンドウ全体を使用し、コンソールにたまたまあるテーマを使用します。

しかし、あなたはアンチカラーを取得します。

于 2012-09-19T21:02:01.340 に答える
0

あなたの質問 (および @avocade によって行われたそのポップアップ) は、私の aurum プラグインでのいくつかの印刷に関する問題に対処したため、ansi_esc_echo プラグインを書きました (書き始めましたが、最も重要な機能は既にここにあります)。あなたのものでそれを使用するには、それをインストールし、fraworをインストールして実行する必要があります

execute frawor#Setup('0.0', {'autoload/ansi_esc_echo': '0.0'})
call s:_r.ansi_esc.echo("\e[33mabc")

. 現在、キャリッジ リターン、バックスペース (テストされていない)、タブ、改行、および CSI カラーのみを処理します (特殊文字またはシーケンスについてのみ話します)。

于 2012-05-28T10:02:53.333 に答える