vimで構文強調を設定できるようにする(または追加のツールを必要としないように)、vimでこれを実行したいと思います。したがって、使用するにはをcat file | <some_sh_tool>
使用しますvim +"some_opts" +"..." +q file
。問題は、vimはシャットダウン時に前の画面を復元しますが、発生しないいくつかのリモートアクセスツールを使用するため、デフォルトでは構文強調機能を持つcatのように機能することです。
では、これは可能ですか?
編集する
もっと考えてみると、本当にすごいことだと思います。構文の強調に加えて、行番号、スペース、改行などのファイルの内容を表示するときにvimの他の機能を使用できます。特にスクリプトではvimがどこにでもあるのでさらにそうです。
答え1
この端末の代替画面を有効にするコードを空の文字列として指定して、代替画面を無効にできます。例:
vim --cmd 'set t_ti= t_te=' ...
しかし、もっと必要があることがわかります。努力する:
vim --cmd 'set t_ti= t_te=' +redraw +q file
はじめに。
答え2
私は次のパッケージで必要なものを見つけました。ウィムフォグ。
vimcatユーティリティと一緒に提供されます。
答え3
一度見てみたいかもしれませんenscript
- 複数言語の構文強調スタイルがあり、フィルタとして使用するように設計されており、出力はANSIエスケープ形式のシーケンスに限定されません。 PostScript、HTML、またはRTFも出力できます。
答え4
私に合ったものを見つけました。
すべてのvim設定を使用して、「file.py」ファイルの内容をSTDOUTとして印刷したいとします。私は次のように書くことができます:
vim --not-a-term -T ansi +silent\ %print +redraw +quit file.py
短くはありませんが効果的です。 「less」を介してパイプするには、次のように-R
スイッチを使用することをお勧めしますless
。
vim --not-a-term -T ansi +silent\ %print +redraw +quit file.py | less -R
(テキストの間隔が異常な場合は、端末のサイズを変更する必要があります。)
追加の設定/コマンドを追加するには、-T ansi
パラメータ+silent\ %print
の間に追加します。たとえば、 を実行するには、次の手順を実行し:set list
ます。
vim --not-a-term -T ansi +set\ list +silent\ %print +redraw +quit file.py
または:
vim --not-a-term -T ansi "+set list" +silent\ %print +redraw +quit file.py
(「set list」にはスペースが含まれているため、スペースをエスケープするか、「+set list」コマンドを引用符で囲む必要があります。)