VimとEmacsの長所と短所は何ですか? [閉鎖]

VimとEmacsの長所と短所は何ですか? [閉鎖]

これらの編集者をどのように比較しますか?それぞれの長所と短所は何ですか?

[ノート]これは、「1つを憎み、もう1つを愛する」、または両方を使ったことがない人が答えようとするものではありません。

答え1

私は両方を使用しますが、どちらかを選択する必要がある場合はどちらを選択するかを知っています。しかし、私はまだいくつかの問題を客観的に比較しようとします。

  • どこでも利用できますか?Unixシステムを使用するプロのシステム管理者であるか、組み込みデバイス(ルーター、Busyboxを搭載したスマートフォンなど)の上級ユーザーであれば、vi(Vimではない)を知る必要があります。 vi はすべての Unix システムで使用でき、大規模に使用されるためです。ほとんどのオペレーティングシステムで。デスクトップ、サーバー、組み込みなどのUnixシリーズシステム。一般ユーザーにとっては、この主張は重要ではありません。 Emacsはすべてのデスクトップ/サーバーオペレーティングシステムで簡単に使用でき、リモート編集をサポートしているため、デスクトップコンピュータにEmacsを配置するだけで十分です。

  • 膨らんだ?Emacsはかつてユーモラスに「8MBとの交換」を意味しました。私のコンピュータでは、Google ChromeはEmacsが100個の開いているファイルを処理するのに必要なタブごとのRAMと同じRAMを必要とし、Firefoxについては言及しません。 21世紀にEmacsの膨張は神話です。

    特徴注ぐことも問題になりません。使用しない場合、それが存在するかどうかを知る必要はありません。 Emacs機能は使用しないと邪魔にならず、ドキュメントも非常によく整理されています。

  • 開始時間:Vi(m)の支持者はEmacsの開始時間について文句を言います。はい、Emacsは遅く始まりますが、大きな問題ではありません。セッションごとに一度Emacsを起動して使用するだけですemacsclient。したがって、Emacsがゆっくり始まるのは主に神話です。

    1つの例外は、リモートコンピュータにログインしてそのコンピュータのファイルを編集したい場合です。リモートEmacsを起動するのは(通常)リモートVimを起動するよりも遅いです。場合によっては、画面内でEmacsを実行できます。 Emacs内でリモートファイルを編集することもできますが、端末がSSHセッションにある場合、プロセスは中断されます。 (XEmacs 21またはGNU Emacs 23からは、端末内で実行されているXインスタンスでEmacsウィンドウを開くことができます。)

    VimはEmacsよりロードするのにはるかに長い時間がかかることがわかりました(vim -u /dev/null比較emacs -q)。もちろん、これは奇妙なプラットフォーム(Cygwin)にあります。

  • 初期学習曲線:これは人によって異なります。Michael Mrozekのチャート私を笑わせた。真剣に、私はVimの学習曲線が最初から急で、他のどのエディタよりも急であることに同意します。ただし、gvimを使用するとこの現象を軽減できます。

    Emacsについていくつかの誤解を解決したので、viについての誤解も解決します。モーダルエディタは使用するのが難しく、苦痛ではありません。慣れるには少し時間がかかりますが、時間が経つと自然に感じられます。 vi(m) を再設計する場合は、必ずこのモードを維持します。

  • 漸近的学習曲線:VimとEmacsには多くの機能があり、長年にわたって新しい機能を発見し続けます。

  • 生産力: 非常に難しいトピックです。 vi(m) 支持者は、メイン行を離れることなくほぼすべてのことを行うことができ、最も必要なときにより効率的に働くことができると主張します。 Emacsの支持者は、Emacsに頻繁に使用されないコマンドが多いので、キーバインディングは必要ありませんが、必要に応じて非常に便利だと反論します(必須 xkcd リファレンス)。
    私の個人的な意見は、入力障害がない限り、最終的にEmacsが勝利することです。 (しかし、Ctrl+文字のような組み合わせではなくキーシーケンスのみを要求するようにEmacsを設定できます。)ホーム行キーは素晴らしいですが、モードを切り替える必要があるため、通常は成功しません。私の考えでは、Vimは何もできないと思います。かなりEmacsよりも効率的で、その逆も同様です。

  • カスタマイズ可能性: どちらのエディタもプログラム可能で、両方に利用可能な多くのソフトウェアパッケージがあります。しかし、Vimはマクロ言語を使用するエディタであり、Emacsはいくつかの一時的な基本要素を使用してLispで書かれたエディタです。 Emacsは、作者が考えていないことを試してみると、眩しく成功します。毎日起こるわけではありませんが、時間の経過とともに合計されます。

  • 単純な編集以上:Vimはエディタです。 Emacsは単純なエディタ以上です。 IDE、ファイルマネージャ、ターミナルエミュレータ、Webブラウザ、メールクライアント、ニュースクライアントなどがあります。これが良いのか悪いのかは議論の余地があります。ただし、Emacsを純粋なエディタとして使用できます(上記の「機能拡張」を参照)。

  • IDEとして:VimとEmacsはどちらも多くのプログラミング言語と他のテキストフォーマットをサポートしています。構文の色付けや自動インデントなどの基本機能に加えて、コードとドキュメントの相互参照検索、補助挿入とリファクタリング、統合バージョン管理、コンパイルの開始、および最初のエラーに移動する機能などの高度なIDE機能もあります。能力。

    EmacsがVimよりも確かに優れている部分は次のとおりです。非同期サブプロセス長いコンパイルを開始し、コンパイラの実行中に同じエディタインスタンスで別のタスクを実行したい場合。または誰かと交流したいとき読み取り - 評価 - 印刷ループ- Emacsはこの分野で本当に優れています。 Vimはいくつかの素朴なトリックしか提供できません。それにもかかわらず、vimの新しいフォークはネオビームこの問題は解決されたことが示されており、在庫vimでは実装されていないさまざまなバグ修正が実装されました。

答え2

私はそれぞれの主な利点だと思うものを投稿します。


Emacsには、ファイルシステムのナビゲーションやバージョン管理操作など、テキストエディタと漠然と関連する操作を実行できる拡張機能だけでなく、RSSフィードの読み込みなど、テキストエディタに関連しない拡張機能もたくさんあります。単純なテキストエディタではない環境が必要な場合は、VimよりもEmacsが優れています。また、私はEmacsが学ぶのが簡単だと思います。一部の人は次のように信じていますが、言葉です。

学習曲線漫画編集

具体的には、Vim初心者よりもEmacs初心者の方が速いと思います。


一方、Vimは確かに高速です。これが議論の重要な部分であるようですが、私の考えにはまったく議論の余地はありません。私は自分自身を上手なEmacsユーザーだと思いますが、Vimを同じようによく知っている少数の人と比較することはできません。問題は、Vimをそんなに早くマスターできる人の数が非常に少ないということです(Vimを使って30人ほどの人と定期的に会話をしているうちに、Vimを特に上手な人はたった一人だけだと思います)。間には大きなギャップがあります。可能スピードゲインと実際Emacsユーザーはほぼ99%のVimユーザーと同じくらい速く(Emacsセクションで述べたように)、初心者Emacsユーザーはおそらく初心者Vimユーザーよりも速くなります。

答え3

すべての(またはほとんど)Unixシステムには利用可能なエディタがありますが、vi他のエディタでは同じとは言えません。私の考えでは、これが学習とおなじみの最初の理由ですvi(「vim」の代わりに「vi」を参照してください)。私はデフォルトのインストールでEmacsを使用できることを見たことがありません。

Emacsを使用しないことがVimを使用する唯一の理由ではありませんが、独自のものではなくUnixシステムを使用したい場合は、viそれは普遍的な言語の一部です。

答え4

私は両方を頻繁に使用します。私はEmacsを「ライブ」エディタとして考えており、迅速なワンタイム操作にVimを使用しています。表面的には、EmacsはVimよりはるかに肥大しているので、確かにVimほど「実行」するのは簡単ではありません。しかし、私はまた、ユーザーインターフェースの哲学がこのパラダイムをサポートしていることを発見しました。 Emacsはユーザーを維持し、ユーザーが離れる必要がないように素敵で居心地の良いものにするのにもっと熟練していますが、vimは「Unixy」に近いもので、自分自身を大きなツールベルトの一部と見なします。

多くの人がEmacsへの依存度が高いので、Emacsを使用しません。バッキービットしかし、それは私にとってかなり愚かな理由のようです。 Vimと比較して、Emacsの本当の利点はカスタマイズ可能であり、Viperなどの機能を使用すると実際には問題になりません。もちろん、Vim-Scriptは独自のレベルのカスタマイズ機能を提供しますが、好みのプログラミング言語が適切な構文強調表示を提供しない場合は確かに書くことができますが、Emacsは最終的に独自のホスティングlispシステムなので、最終的にははるかに多くのことをしますできます。もっと、もっと遊んでみてください。ただそのようなツールはありません。牛に似た栄養または組織モデルVimではいくつかの例を挙げます。簡単に言えば、Emacsは単純な編集者ではなく、実際にクソのオペレーティングシステムです。

テキスト操作の場合は完全に同等だと言いたいです。

関連情報