異なるvim実装の違いは何ですか?


25

Emacsのいくつかの異なるvim実装を知っています。邪悪なモード、バイパー、vimpulse、vim-modeがあります。他にありますか?彼らはどのように比較しますか?

evil-*MELPAには多くのパッケージがあり、それらのどれも100%機能が完全ではないことを示唆しています。どのようなvim機能が提供され、どのvim機能が欠落していますか?

(私は、「かなり完全なEmacs実装であるviマクロのセット」である逆には興味がありません!)


1
リストされたモードの目的は、Emacsの上にエディター全体を実装するのではなく、希望する動作を提供することなので、おそらく「エミュレーション」はより正確で混乱が少ないでしょう。
wasamasa 14年

回答:


35

vivipおよびviper(作成日順)はEmacsに組み込まれており、それらはすべてVIをエミュレートします。vim-mode実際にVimをエミュレートするための新しい、スタンドアローンの努力がある、vimpulseの上に余分のセットでviper最も有用なVimが特長1を与えるために。evilの代替として作成されましたvim-mode

evilは最新のプロジェクトであり、積極的に開発されている唯一のプロジェクトです。その目標は、Vimの編集モデルを忠実にエミュレートし、可能な限り既存のEmacs機能を活用することです。個人的には、いくつかの新しいコマンド(などgn)が欠落しているため、約90%完了していると思います、いくつかのディスプレイ関連の機能は再現するのがかなり難しく(ファイルの終了後のチルダの表示など)、実装されていませんVimscriptインタープリターまたはExモードの基本を超えたもの。ただし、オリジナルよりも拡張や内観が容易であり、evil-*拡張機能はほとんどすべての場合でVimプラグインと同等のEmacsです(evil-leaderたとえば、Emacsキーマップのサポートを検討する必要がないため、例外になります)。

evilポイントでVimを上回ることを考慮して(:sその視覚的なプレビューまたは有用な新しいモードポーズを作成する労力がどれだけ少ないか)、Emacsのモーダル編集に興味があるすべての人に心からお勧めします。


あなたg/はVimで新しいコマンドであることを述べました。私はそれを見たことがなく、それに関するドキュメントを見つけることができません。Vimでは何をしますか?
イヴァン

ごめんなさい、私は意味しましたgn。検索結果をテキストオブジェクトに変換します。また、今では実装されています。
wasamasa

ああ、なるほど。Vimでそれをかなり使っているので、実装されたと聞いてうれしいです。
イヴァン

9

以来evil、私の知識にのみ積極的に開発vimのエミュレーションモードで、私は私の答え悪固有作ってあげます。evil非常に使いやすく、vimのような体験に非常に近いですが、(設計上)実装されない可能性が高いvim機能と、不完全であるが最終的に追加されるvim機能があります。追加される可能性最も低いもののいくつかの例:

  1. vimscriptインタープリターはなく、私の知る限り、vimscriptインタープリターを実装する予定はありません。
  2. Emacsのキーバインドでは重要すぎるためC-a、数値のインクリメントとデクリメント(およびC-x)は追加されませんC-x
  3. リーダーキーの組み込みの概念はありません。代わりに、デフォルトで\バインドさevil-execute-in-emacs-stateれています。
  4. C-uEmacsのキーバインドとしてはあまりにも重要であるため、デフォルトでは上にスクロールしません(これはで上書きできますevil-want-C-u-scroll)。

(この回答を書いている時点で)まだ実装されていない vim機能のリストを見つけるには、問題追跡ツールが最適です。リストにあるもののランダムサンプリング:

  1. ファイルの追加exは実装されていません
  2. 一部のモーションコマンドはvimのように動作しません
  3. :makeにマッピングされていませんM-x compile
  4. C-oinsert、それはvimの中にないようにモードは非常に動作しません
  5. スワップウィンドウバッファは実装されていません

未解決の問題のリストにないコマンド(特に複雑なexコマンド)を含め、さらに多くの機能がありますが、リストからわかるように、それらはかなりマイナーまたはあいまいなvim機能である傾向があります(vimは100%の機能パリティを達成します)。


emacsはlispを使用するため。不可能はない。たとえば、リーダーキーは組み込まれていませんが、プラグインevil-leaderをインストールできます。
チェンビン14

もちろん@chenbinは、組み込みでデフォルトで有効になっているものを指していました。
shosti 14年

3

Evilの目標はVimをエミュレートすることですが、Viperの目標はViをエミュレートすることです。Vim-modeとVimpulseはEvilの前身であり、私の知る限りではもう開発されていません。Evilプロジェクトは、これらのプロジェクトの欠点に対処するために開始されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.