Vis は、vi(m) と sam の両方の長所を組み合わせた、レガシーのない最新のシンプルかつ効率的なエディターを目指しています。
これは、複数のカーソル/選択に対する組み込みサポートで vi のモーダル編集を拡張し、sam の構造的正規表現ベースのコマンド言語と組み合わせます。
ユニバーサルエディターであるため、適切な Unicode サポートがあり、大きなファイル、バイナリファイル、または単一行ファイルなどの任意のファイルに対応できます。
効率的な構文の強調表示は、解析式文法を使用して提供されます。これは、LPeg 形式の Lua を使用して簡単に表現できます。
エディターのコアは、適切な量のクリーンな (実際の使用量は異なる場合があります)、最新のレガシーフリーの C コードで書かれており、リソースに制約のある環境でも実行できます。実装はハッキングが容易であり、実験を促進する必要があります。インプロセス拡張用の Lua API もあります。
Vis はシンプルであることを目指し、その中核となるタスクである効率的なテキスト管理に重点を置いています。クリップボードとダイグラフの処理、およびあいまいなファイルを開くダイアログはすべて、独立したユーティリティによって提供されます。クライアント/サーバー アーキテクチャを使用し、ウィンドウ管理をウィンドウ システムまたはお気に入りのターミナル マルチプレクサに委任する計画が存在します。
その目的は、vi(m) とバグごとに互換性を持たせることではありません。その代わり、
私たちは、エレガントなデザインとクリーンな実装に基づいて、より強力な編集機能を提供することを目指しています。
vis をビルドするには、C99 コンパイラー、POSIX.1-2008 互換環境に加えて、以下が必要です。
これらの依存関係が満たされていると仮定して、次を実行します。
$ ./configure && make && sudo make install
デフォルトでは、 configure
スクリプトはpkg-config(1)
を使用して Lua のサポートを自動検出しようとします。サポートされているオプションのリストについては、 configure --help
を参照してください。生成されたconfig.mk
ファイルを手動で調整することもできます。
または、単にディストリビューションが提供するパッケージの 1 つを使用します。
エンドユーザーのドキュメントはvis(1)
マニュアル ページと Wiki にあります。よくある質問については FAQ をご覧ください。それぞれsam(1)
およびvim(1)
と比較したいくつかの違いについて学びます。
C API および Lua API のドキュメントも利用できます。
実装されないいくつかの機能:
#ifdef
が混乱貢献する方法はたくさんありますが、以下にいくつかのアイデアを示します。
:help
出力を改善する開発者概要を確認して開始し、libera の#vis-editor
IRC チャネルでお気軽に質問してください (ブラウザから参加)。