これらのエディターをどのように比較しますか?それぞれの長所と短所は何ですか?
[ 注 ]これは、「一方を嫌い、もう一方を愛している」人や両方を使用していない人が回答することを意図したものではありません。
これらのエディターをどのように比較しますか?それぞれの長所と短所は何ですか?
[ 注 ]これは、「一方を嫌い、もう一方を愛している」人や両方を使用していない人が回答することを意図したものではありません。
回答:
両方を使用しますが、どちらかを選択する必要がある場合は、どちらを選択するかを知っています。それでも、いくつかの問題について客観的な比較を試みます。
どこでも利用できますか?Unixシステムを使用するプロのシステム管理者、または組み込みデバイス(ルーター、Busyboxを搭載したスマートフォンなど)のパワーユーザーは、vi(Vimではなく)を知っている必要があります。 Unixライクなシステム(デスクトップ、サーバー、組み込み)。通常のユーザーにとって、この引数は無関係です。Emacsはすべてのデスクトップ/サーバーOSで簡単に使用でき、リモート編集をサポートしているので、とにかくデスクトップマシンで使用できます。
肥大した?Emacsはかつて「8メガバイトと絶えずスワッピング」のユーモラスな立場でした。現在、私のマシンでは、Google ChromeはEmacsが100個の開いているファイルに対して必要とするのと同じくらいのタブごとのRAMを必要とし、Firefoxについては言及しません。21世紀では、Emacsの肥大化は単なる神話です。
機能の肥大化も問題ではありません。使用しない場合は、そこにあることを知る必要はありません。Emacsの機能は、使用しないときは邪魔にならず、ドキュメントは非常によく整理されています。
起動時間:Vi(m)の支持者はEmacsの起動時間について不満を言っています。はい、Emacsは起動に時間がかかりますが、これはたいしたことではありません。Emacsをセッションごとに1回起動してから、で実行中のプロセスに接続しemacsclient
ます。そのため、Emacsの遅い起動はほとんど神話です。
例外が1つあります。これは、リモートマシンにログインして、そこにあるファイルを編集する場合です。リモートEmacsの起動は(通常)リモートVimの起動よりも遅くなります。状況によっては、EmacsをScreen内で実行し続けることができます。Emacs内からリモートファイルを編集することもできますが、ターミナルでsshセッションを使用している場合はフローが中断します。(XEmacs 21またはGNU Emacs 23以降、ターミナル内で実行中のXインスタンスからEmacsウィンドウを開くことができます。)
表を見てみると、VimがEmacsよりもロードに著しく時間がかかっていることがわかりました(vim -u /dev/null
対emacs -q
)。確かに、これは奇妙なプラットフォーム(Cygwin)で行われました。
初期学習曲線:これは人によって異なります。マイケル・ムロゼクのグラフは私をくすくす笑わせた。真剣に、私はVimの学習曲線が他のどのエディタよりも急で急勾配で始まることに同意しますが、これはgvimを使用することで軽減できます。
いくつかのEmacsの神話を払拭したので、viの神話を払拭しましょう。モーダルエディタは使いにくく、苦痛もありません。少し癖がありますが、しばらくするととても自然に感じます。vi(m)を再設計する場合、モードを確実に保持します。
漸近的な学習曲線: VimとEmacsの両方には多くの機能があり、長年使用しても新しいものを発見し続けるでしょう。
生産性:これは非常に難しいトピックです。vi(m)の支持者は、ホーム行を離れることなくほとんどすべてのことができると主張します。そして、それはあなたがそれを最も必要とするときあなたをより効率的にします。Emacsの支持者は、Emacsには頻繁に使用されないコマンドがたくさんあるので、キーバインディングは保証しませんが、必要なときに便利だと反論します(必須のxkcdリファレンス)。
私個人の意見では、タイピング障害がない限り、最終的にはEmacsが勝ちます(それでも、Emacsを設定して、Ctrl+ letter などの組み合わせではなくキーシーケンスのみを要求できます)。ホーム行のキーは便利ですが、モードを切り替える必要があるため、多くの場合、それほどの勝利ではありません。Vimが大幅にできることはないと思う Emacsよりも効率的ですが、逆は事実です。
カスタマイズ可能性:両方のエディターはプログラム可能であり、両方に利用可能なパッケージの広範な本体があります。ただし、Vimはマクロ言語を備えたエディターです。Emacsは、いくつかのアドホックプリミティブを備えたLispで書かれたエディターです。著者が考えもしなかったようなことをしようとすると、Emacsは見事に勝ちます。これは毎日発生するわけではありませんが、長年にわたって蓄積しています。
エディター以上:Vimはエディターです。Emacsは単なるエディターではありません。IDE、ファイルマネージャー、ターミナルエミュレーター、Webブラウザー、メールクライアント、ニュースクライアントなどでもあります。それが良いか悪いかは議論の対象です。ただし、Emacsは単なるエディターとして使用できます(上記の「機能の肥大化」を参照)。
IDEとして:VimとEmacsは両方とも、多くのプログラミング言語と他のテキスト形式をサポートしています。構文の色分けや自動インデントなどの基本を超えて、両方ともコードとドキュメントの相互参照検索、支援された挿入とリファクタリング、統合されたバージョン管理、コンパイルを開始して最初のエラーにジャンプする機能などの高度なIDE機能を備えています。
EmacsがVimよりも優れているドメインの1つは、非同期サブプロセスとの相互作用です。これは、長いコンパイルを開始し、コンパイラが混乱している間に同じエディターインスタンス内で別の何かを実行したい場合です。または、Read-eval-printループとやり取りしたい場合— Emacsがこれに本当に優れているのは、Vimが提供する不器用なハックしかありません。それでも、viomの新しい分岐であるNeovimは、これを修正し、ストックvimには実装されていない他のさまざまなバグ修正を実装したことが証明されています。
それぞれの主な利点であると思うものを投稿します。
Emacsにはかなり多くの拡張機能があり、ファイルシステムの閲覧やバージョン管理の混乱など、漠然とテキストエディター関連のタスクを実行できるほか、RSSフィードの読み取りなど、テキストエディター関連ではない拡張機能があります。テキストエディターだけでなく環境が必要な場合、EmacsはVimよりも優れているでしょう。私はまた、Emacsを学ぶ方がはるかに簡単だと思います。
特に、初心者のEmacsユーザーは初心者のVimユーザーよりも速くなると思います
一方、Vimは間違いなく高速です。これは議論の中核部分のように思えますが、私の意見では、コンテストはまったくありません。私は自分が流EなEmacsユーザーだと思います。Vimについて同じ知識を持っている私が知っている2人の人々には私は匹敵しません。問題は、Vimを十分に使いこなすのに十分な人の数が信じられないほど少ないことです(私が定期的にVimを使用している30人のうち、たった1人だけが非常に優れていると思います)。可能な速度ゲインと実際の速度ゲインとの間には大きなギャップがあります。Emacsユーザーは、Vimユーザーの99%とほぼ同じ速度になります(Emacsセクションで述べたように)Emacsユーザーの開始は、おそらくVimユーザーの開始よりも速くなります。
そこでvi
利用可能なすべてのUNIXシステム上では(またはほとんど)、しかし、あなたはこのことについて、他のエディタを言うことはできません。これが一番の理由であり、imoを学び、慣れる必要がありますvi
(「vim」ではなく「vi」に注意してください)。Emacsがデフォルトのインストールで利用可能になるのを見たことはありません。
Emacsを使用しない、またはこれがVimを使用する唯一の理由であると言っているわけではありませんが、あなたのものではないUnixシステムを使用したい場合vi
は... がユニバーサル言語の一部です。
vim
ユーザーが、私は多くの場合、それが困難な使用することを見つけるvi
ためにENDキーで、最も可能性が高い(Vimはそれをサポートしていますが、VIはないか、少なくともデフォルトではない)
nano
、ファイルにijkloOahが大量にあることになります...これらをナビゲーションに使用できないことに気付くまで。矢印キーを使用して移動しません。
vim
:)
両方とも素晴らしいと思います。どちらもあなたが想像できることなら何でもできると思いますし、どちらも非常にカスタマイズ可能で、カスタマイズを終えるまでに、どちらもまさにあなたが望むものになります。
Emacsは、ユーザーインターフェイスの使いやすさと一貫性のISO / IEC標準に少し近づいている(まだ満たしていない)ので、私にとって際立っています。したがって、vimの「本能」と同じくらい多くのトリックをしません。他のプログラムと連携して開発した本能の寿命は、あなたに反することはありません。
Vimは完全に異なるモデルであり、多くの点で、Cntrl / Altシーケンスへの依存度がはるかに低いという点でそれ自体が優れており、代わりにそのモードのみに依存しているため、ホームの列と入力でハードを維持できますもっと早く。ただし、vimは非常にユニークであり、非常に珍しい付属ソフトウェア(Vimperator、Jumanji / Zathuraなど)をインストールしない限り、vimを使用して開発した本能は他のプログラムに適用されません。とは言うものの、私は自分でvimに決めました。両方を習得するのは難しいので、遅かれ早かれ、良くも悪くもどちらかに落ち着かなければなりません。
私は両方を定期的に使用しています。私はEmacsを「ライブ」エディターと見なしますが、Vimを使用して1回限りの迅速な作業を行います。表面的には、EmacsはVimよりもはるかに肥大化しているため、Vimほど「起動」するのはそれほど便利ではありませんが、ユーザーインターフェイスの哲学がこのパラダイムをサポートしていることもわかりました。Emacsはユーザーを内部に保持するように構築されており、物事を快適で快適にするため、離れる必要はありませんが、vimははるかに「Unixy」であり、より優れたツールベルトの一部であると考えています。
バッキービットに大きく依存しているため、多くの人がEmacsから逃げていますが、これは私にとってかなり愚かな理由です。EmacsのVimに対する真の力はカスタマイズ可能性であり、Viperなどの力を使えば、これは本当に問題ではありません。確かにVim-Scriptは独自のカスタマイズレベルを提供します。たとえば、お気に入りのプログラミング言語に適切な構文ハイライターが提供されていなければ、確かに1つを作成できますが、Emacsは最終的に自己ホスト型のLispマシンです。最後に、あなたはもっともっといじることができます。いくつか例を挙げると、Vimにはgnusやorg-modeなどのツールはありません。一言で言えば、Emacsは単なるエディターではなく、事実上、とてつもないオペレーティングシステムです。
テキストを操作するために、私はそれらがまったく同程度であると言うでしょう。
emacsとXEmacsを使用して数年を費やし、vimに移行したので、0.02ドル相当の価値を投入します。公平を期すために、私は実際に1990〜1992年ごろにviをかなり使用していたので、そのユーザーインターフェイスに精通していました。
Emacs
Emacsはたまたまエディタを書くために使用されたLispシステムとして説明されてきましたが、これには真実があります。環境を理解するために時間をかけたい場合は、elispに必要なものをほぼすべて実装できます。私はそれをよく知るようになったとは言えませんが、たまにフリグをしました。EmacsとXemacsはこのレベルでは完全に互換性がないため、サードパーティのスクリプトは一方では実行できますが、他方では実行できません。
RMSやその他の著名なEmacsハッカーは、OOSの問題のためにプログラミングから引退しなければならなかったことが観察されています。BillJoy、Bram Moolenaar、およびその他のさまざまな著名人がまだそこにいます。Emacsはあなたの小指の指では難しいです。
Emacsはviよりもはるかにカトリック的なシステムであり、ソフトウェアの包絡の標準的な例と見なされています。Netscapeとともに、これはこの法律の証明に対するjwzの貢献の1つです。
私がかつてxemacsで行ったユニークなことの1つは、マシン上で実行し、同じ実行中のインスタンスの同じバッファーに対して、別の部屋のxterminal(実際には古い再利用Sun 3/60)でxセッションを開くことでした。
長所:拡張性があり、人間に知られている他のどのエディターよりも強力で、ほぼすべての主要なフリーソフトウェアプログラミングツールとの成熟した統合。
短所:疑わしい人間工学、elispを学ぶのは簡単ではありません。
Vim
Disclamer-約10年前にemacsからvimに移行し、WindowsおよびUnix / Linuxベースのシステムで習慣的にvimを使用しています。
Viとその子孫には、編集タスクを自動化するための非常に優れたキーボードマクロ機能があります。vimのスクリプト機能はelispほど洗練されていませんが、Python、Tcl、Perl、およびその他のシステムをサポートして構築できます。vim用のスクリプト(.vimrcファイル以外)を作成したのはたまにしかありません。
Vimのフットプリントはemacsよりも小さくなりますが、最近ではそれほど大きな問題ではありません。
Vimのドキュメントとオンラインヘルプはかなり優れています。Emacsには非常に優れたオンラインドキュメントがありますが、vimほど包括的なものではないと思います。
Vimはviの風変わりなモーダルユーザーインターフェイスを継承しますが、挿入モードでナビゲートできるため、modlessエディターのように動作するようになりました。Windowsでは、Windowsアプリケーションとまったく同じように動作できます。
長所:優れたキーボードマクロ機能、十分に優れた拡張性とスクリプト、しかしemacsほど優れていません。Vimまたはviから派生したエディターは、すべてではないにしても、ほとんどのUNIXまたは汎用Linuxディストリビューションの標準です。間違いなく人間工学。
短所:モーダルユーザーインターフェイスは、Windows UIに慣れている人には奇妙に感じます。最近ではvimの問題は少なくなっています。
私は通常Vimを使用していますが、どちらも素晴らしいエディターです。
viを使用することを学ぶことは厄介でしたが、私はそれを乗り越えて好きになることを学びました。私の最もイライラする瞬間は、Caps Lockキーがオンのときでした。gVimを試すこともできますが、viとEmacsの最大の利点の1つは、キーボードに手を触れたまますっきりとできることです。(同時にローグライクゲームをプレイすることを学ぶと、カーソル移動キーの練習ができましたが、ドキュメント内で斜めに移動しようとすることがありました。)
Emacsはおそらくより親しみやすいでしょう。これはモードレスであり、Caps Lockキーを押して自分を台無しにすることはありません。コントロールキーを押しながら文字を入力することでエディターを制御するという考えは、現代のパワーユーザーにとってあまり一般的ではありません。繰り返しになりますが、マウスを使用できるバージョンでは、長期的にはほとんどメリットがありません。
どちらも効果的に使用するにはある程度の専門知識が必要です。たとえばメモ帳とは異なり、ただ座って編集することはできません。
どちらも設定可能ですが、同じLispで拡張機能を作成するための私のお金のために、エディターはよりスムーズなエクスペリエンスを作成します。(Emacsは、通常配布されているように、実際にはエディターではありません。エディターを含む多くの事前に作成されたソフトウェアを備えた、テキスト処理用に調整されたLisp環境です。より良いエディタ。」)
私は通常、Vimを使用します。なぜなら、広範なトレーニングの後、簡単に感じるからです。これは、ホーム行の近くで1本の指を使用して膨大な数のコマンドを使用できるモードシステムの利点、またはエディターに非常に当てはまる「ベイビーダック症候群」に起因する可能性があります。それに。
どちらを使用しても問題はありません。
vi / vimを使用しない主な理由は、それがモーダルだからです。私がviを使用する主な理由は、ほとんどすべての場所で利用できることです。
上記の「vimはモーダルです」というコメントは間違っていると思います。Vimにはコマンドがあります。「11aNowはすべての善良な人のための時間です。」を実行すると、ファイル内に11行の同一の新しいテキスト行ができます。これはコマンドであり、モードではありません。しかし、実際にはVimコマンドとEmacsコマンドには非常に基本的な違いがあります。説明できるかどうかは定かではありませんが、Eric Fischerは10年以上前にEmacsスタイルのライン編集をTTYドライバーに組み込み、それについての論文を発表しました。
http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf
彼は、Emacsスタイルのライン編集がviスタイルとは根本的に異なることを発見しました。
したがって、Emacsには、他の多くのこと(bash、gnuplot、zsh、ksh、頭の中で思いがけないもの)がすべてEmacsスタイルのライン編集を実装するという利点があります。
私は常にVimを個人的に使用していることに注意してください。私はたまにしかEmacsユーザーではありません。
set -o vi
中bash
またはzsh
あまりにも実行するのは難しい(またはに入れていないrc
ファイル)私の意見で。
gnuplot
、PostgreSQLのpsql
は、MySQLのmysql
、その他のインターフェイスのトン全てのEmacsモードを行う多かれ少なかれ、デフォルトで。Oracleだけsqlplus
がコマンドライン編集を行えるようになった場合...いいえ、いいえ。大企業に求めるには多すぎます。彼らはフォローするトレンドを持っています!
inputrc
、シェルツールを使用しますが、j
ターミナルから切り替えた後、Mendeley Desktopなどでなぜスクロールダウンしないのか、0.5秒間不思議に思っています。残念ながら、すべてを網羅することはできず、一貫した環境を整えることはできません。
mysql(1)
、psql(1)
、gnuplot(1)
、またpython(1)
、perlconsole(1)
、lftp(1)
、smbclient(1)
対話型プログラムのと実際に多くの行編集のためのキーバインディングを懸念しました。これらのソフトウェアはすべてGNU Readlineを使用するだけで、GNU Readlineのデフォルトモードは(当然)GNU Emacsに似ています。set editing-mode vi
あなた~/.inputrc
と出来上がり–これらのツールはすべてviのようなキーバインドを持っています。
Vim / gVimを使用します。
以前はEmacsを使用していましたが、gVimは一般に低速のマシンで高速に動作することがわかりました。さらに、POSIXの要件により、viはほとんどどこでも使用できます。
VimまたはgVimを使用する場合、マウスを頻繁に使用しますが、そのサポートは素晴らしいと思います。
Emacsを使い始めたのは、初心者ユーザーにとって使いやすいからです。nanoを使用すると、何らかの理由でエラーが発生しやすくなり、ある時点で、viを使用する方がはるかに快適であることに気付きました。
現在、それは混合物です。私もかなり頻繁にEclipseとgeditを使用しています。しかし、Vimは今でも私のお気に入りで最も使用されているエディターです。
私はgVimとEmacsの両方を十分に使いこなし、生産性を高めていますが、どちらにも精通しています。確実に言えることの1つは、Windows 7ラップトップ(仕事で使用する必要がある)でVimとgVimがより高速に実行されることです。WindowsボックスのEmacsは、キーボードバッファーに蓄積されたすべてのものを急いで吐き出す前に、キーボード入力を受け入れ続けている間でも、最大1分間「一時停止」して応答しなくなるという奇妙な癖があります。これはMac OSまたはLinuxでは発生しません。それでも、ほとんどの場合、すべてのプラットフォームでVimまたはgVimを使用しているので、停止して、使用しているエディターや調整しているエディターについて考える必要はありません。とはいえ、純粋に* nix環境では、モードレス編集が少し自然であると思うので、おそらくEmacsにとどまるでしょう。
結論:私の意見では、両方のエディターは、あらゆるテキスト編集のニーズを処理するのに十分強力です。選択は、実用的な考慮事項(プラットフォーム実装の仕様など)と作業スタイルに基づいている必要があります。
EmacsとVimの主な違いは人間工学です。ご存知のように、手根管症候群、CTSがあります。Emacsは、CTSがあり、CTSを誘発する場合、非常に「危険」です。Vim-違います。多くの場所でこの違いについて読むことができます。たとえば、Vimでは1本の指でのみテキストを編集できます。Emacsでは-できません:)
「VimとEmacsの長所と短所は何ですか?」-ハ!
私は主にプロを他の人に任せます。
これらの両方の短所は、両方とも古い学校であるということです。Basicラインエディターから超高速アセンブリコードエディター(1つはVEDIT)、派手なGUIエディターまで、長年にわたって50種類のエディターを使用してきました。ForthStarという独自の特別なエディターを作成し、btrieveの葉のツリーを編集するように調整しました。強力な検索用の複数のインデックスがあり、編集したばかりの最後の葉を即座に見つけたり、コードコンポーネントやリーフの親をすばやく見つけたりすることができますまたは子供。
viとemacsはどちらも筋肉よりも宗教だと思います。それらを構築した創造的な心は大きく前進し、新しいサポートにはそれらを再発明する勇気とスキルが欠けています。
はい、Emacsは多くのことを実行できますが、美しく、現在ではほとんど使用されていない言語であるlispによって遅くなります。
両方とも難しいキーボードレイアウトで立ち往生しています。Emacsは、少なくとも、旧式のMetaではなくAltキーがあることを認識することで、ユーザーに少し調整することができます。また、WordStarのように、スピードタイピングは区別する価値がないときにCA CBをCA Bからまっすぐに保つことを認識しています。どちらかのキーコンボによって起動されるものを単に持っている方が良いです。はい、キーバインドを変更できますが、その後は混乱します。
Viは賢いのですが、Notepad ++のような強力な検索と置換が欠けているため、見つかったものを表示し、拡張して、選択的にカラーで適用することができます。
最近の他のほとんどのGUIアプリケーションでは、マウスホイールを使用したズームが可能です。Emacs GUIはこれを機能させるようには見えません。そして、ケイトが持っているような素晴らしい挨拶はどこにありますか?
長年の私のお気に入りのキーボードレイアウトは、Wordstarのカーソルダイヤモンドでした。少なくとも学びやすく、すぐに意味がありました。私が一番嫌いなのはWordPerfectで、これは複雑さを増し、ややemacに基づいているようです。
最近では、ほとんどの世界にGUIがあります。好むと好まざるとにかかわらず、テキストエディタは年齢にややこだわっています。
emacs、vi、wordstar、その他の重要なレイアウトを簡単に切り替えることができ、提供する必要がある強力なコマンドを失うことなく、ユニバーサルエディターを使用する方が良いと思います。本物のプログラマは、さまざまな編集ツールを使用する必要があります。私たちに物事のやり方を強制するのではなく、仕事を終わらせるために私たちのニーズを満たすエディタを持っていませんか?
M-! emacs RET
これは、「グーグル」の検索Googleのようなものだ