IDE(Eclipse)を使用してソフトウェアを開発しています。なぜvimまたはemacsに切り替える必要があるのですか?[閉まっている]


31

私の仕事はjava / web開発者です。私は日食を約5年間使用しています。私は素晴らしいと思いますし、javascriptとhtml / jspにWebstormも使用しています。

サーバーにsshして設定ファイルをいじる必要がある場合があります。このために私はviを使用し、それは私を苦しめます。私は構文/コマンドをリストするウェブページを立ち上げなければなりません:エスケープを押し、次にアスタリスクを3回回してくださいテキストはカーソルの2行上に入力されます。それは私にはとても直感的ではなく、90年代後半に育った人は誰でも想像します。

ここに、私は日食が素晴らしい(そして他のIDEを想定している)と考え、emacsやvimに切り替えない主な理由を挙げます。

  • プロジェクトを再コンパイルする必要がない強調表示エラー。
  • コードアシスト。
  • リファクタリング。
  • オープニングコールの階層/オープニング宣言。
  • ソース管理と完全に統合されています。
  • デバッガが含まれています。
  • サードパーティのプラグインが利用可能-例えば、findbugs / checkstyle。

私が聞いた議論の1つは、emacs / vimを使用すると独自のプラグインを作成できるということです。しかし、すべてがすでにそこにあるので、あなたはする必要はありません!この半分構築された車を買うと言っているように、あなたは残りを自分で構築できます。

なぜemacs / vimを使用しているのですか?それを使用する人々は、実際に大規模な組織の複雑なオブジェクト指向プロジェクトに取り組んでいますか?

vim / emacsに切り替える理由は何ですか。切り替えた場合、生産性はどのように向上しますか?


1
タイトルを言い換えてください。意味がありません。
ベトル

@vetler良い?
ニムチンプスキー

5
私は通常nanovimすべてのvimコマンドを学習するのに十分な頻度でCLIを使用しないため、ではなくを使用します。あなたはたまにしか、それを使用している場合は、私のようなものをシンプルに思うだろうnano...より良いサービスを提供でしょう
ディーン・ハーディング

ずっといい!:)
Vetle

昔、Unixを紹介されたとき、viとemacsの両方を試してみましたが、viは非常に奇妙で自明ではないように思えたので、emacsを使用することになりました(つまり、行末にテキストを追加するのは面倒です、間違いがあります)。また、viのコマンド/編集モードは個人的には機能しませんでした。
スキズ

回答:


36

ニーズに合ったツールを使用してください。リモートサーバーにログインして設定ファイルなどを編集する必要がある場合、VIMまたはEmacsを知ることは良いことです。私はVIMをかなりよく知っていますが、Javaでの開発にはVIMを使用しません。それがEclipse、Netbeansなどの目的です。


5
@NimChimpsky C、ruby、python、haskellなどのいくつかの言語でemacsを使用しています。しかし、JavaまたはC#の場合は、IDEを使用した方が良いと考えています。私の仕事では、VSでC#を使用しています。生産性が高いと感じるツールを使用してください。
hiena

8
「なぜviを学ぶ」と誰かに尋ねると、常に「いつかリモートサーバーにログインして設定ファイルを編集する必要がある」という答えが返ってくるのは面白いことです。実際に何人の開発者がこれをしなければならなかったのだろうか。
オリバーワイラー

2
PS:私は個人的にviが大好きですが、それが世界で最高のエディターだと思うからではなく、優れていると感じるからです:-)。
オリバーワイラー

2
@Helperメソッド:私はこれを時々しなければなりません!厳密にMS環境で作業しているのでなければ、必ず起こるでしょう。
user281377

1
構成ファイルの小さな編集を行うには、EmacsやVimは必要ありませんが、それらはまったく問題ありませんが、Nanoを同じように使用できる場所を学習する労力はありません。
アント

39

EmacsとViにはまだ場所があります。

  • UnixおよびUnixライクな環境で広く利用されており、他のほとんどの一般的なプラットフォームにインストールできます。

  • 彼らは人気があり安定しているので、それらを学ぶことは長期的に見返りがあります。

  • これらはテキスト端末で実行されるため、telnetおよびsshセッションで使用できます。

  • これらは、非常に新しい言語や非常にまれな言語など、さまざまな言語の編集モードと構文強調表示を提供します。(これは私のお気に入りの利点の1つです。)

ただし、これらのプログラムを理解するための鍵は、元々どのような問題を解決するつもりだったかを知ることです。Viの場合、これは300ボーという遅い接続でテキストファイルを編集していました。その環境では、メニューを表示したり、回避できる場合は画面の内容を根本的に変更したりする必要はありません。

Emacsは、より高速な環境で使用することを目的としていました。強みは、一度ロードすれば終了しないことです。ユーザーは、Emacsから必要な他のタスクを、離れることなく、多くの場合コマンドラインから実行するよりも友好的な方法で実行できます。人々は、Emacsウィンドウが開いているグラフィカルなデスクトップ環境を持っていませんでした。Emacsを使用すると、ユーザーは数回のキーストロークでほぼすべての通常のタスク(および多くの奇妙なタスク)を実行できます。組み込まれていないものはすべてスクリプト化できます。

これらのプログラムが導入されて以来、明らかに人々のニーズは大きく変わりましたが、それでもいくつかの本当の強みがあります。私は両方の基本を学び、それらを毎週使用しています。それでも、彼らの強みはしばしば誇張されていると思います。Emacs / ViがEclipseやVisual Studioよりも生産性を上げないと、人々は自分の弱点を認めないほど伝説的な地位を獲得し、代わりに何か悪いことをしていると考える傾向があります。

ここまでがポイントです。

Javaは、Eclipseで優れたサポートを備えた一般的な言語です。IDEを使用せずに、一般的なタスクをすばやく実行し、他のスクリプトを作成できる最新のオペレーティングシステムでコードを開発している可能性があります。切り替えても意味がないと思います。


まれな言語に対して+1を追加します。動的言語と非常に解析が難しい言語もemacsの利点ではないことを付け加えますが、IDEはemacs
jkに

16

私はemacsを5年以上使用しています。使用しているキーの組み合わせを伝えることができなくなり、指はそれらを覚えているだけで、キーボードを見て、手が入力しているのを確認する必要があります。

数年前、私はEclipseの使用を開始しましたが、自由にemacsに戻ることはできません。申し訳ありませんが、筋肉の記憶を失いました。古いものが欠けていてもC-x r SPC 1、Eclipseは私をより生産的にしてくれます。

いいえ、切り替える必要はないと思いますが、vimの基本を学ぶために数時間を費やす必要がありますので、もう調べる必要はありません。


EmacsよりもEclipseの方が速くできることについて詳しく説明していただけますか?
ゴードンガスタフソン

1
最近では、Eclipseがそれほど優れているとは思いません。しかし、リファクタリングや検索などを容易にするプログラミング言語のセマンティクスを理解しているという事実に関しては、それはまだemacsをはるかに上回っています。
マーティンウィックマン

7

なぜvimまたはemacsに切り替える必要があるのですか?

ほとんどの場合切り替えないください。Vimは優れた強力なテキストエディターですが、IDEに代わるものではありません。 EclipseはIDE固有のもののサブセットが非常に優れており、vimはテキスト編集固有のもののサブセットが非常に優れています。それぞれに独自の異なるフォーカスがあります。

IDEができることと同じIDE固有の機能の多くを実行できるように、vimの機能を拡張するプラグインがあることを知っています。しかし、それでもvimの主な強みではありません。IDEはほとんどの場合、より優れた機能を発揮します。それが彼らが焦点を合わせているからです。

私の日常業務では、C#の編集にVisual Studioとvimの両方を使用しています。それは私にとって非常にうまく機能し、私はそれらの1つを他のものに独占的に依存することは決してありません。

emacsに関する限り、私は専門家ではありませんが、Javaに関してはEclipseのIDE機能と競合できるとは思いません(間違っている場合は修正してください)。Lispで開発している場合、それは確かに優れたIDEと見なすことできますが、Javaを同じようにサポートしているとは思いません。

したがって、Eclipseと一緒に使用するより強力なテキストエディターが必要な場合は、vimまたはemacsのいずれかを学ぶことをお勧めします。しかし、補充としてではなく、サプリメントとして。どちらも特に簡単な学習曲線を持っていなくても、長い目で見れば実を結びます:)

ここで素敵な長めのリードのvimの強みについては。そして、ここにあなたができるいくつかの素晴らしいトリックのリストがあります。


6

基本的に、この(PDF)を読んで、Emacsが強力な理由を確認してください。Lispを知ったら、その拡張機能を書くのはほとんど簡単です(私が書いたアドオンを使って、いくつかのソース管理ワークフローとデプロイメントをスクリプト化していますemployer-mode)。上記のリストに関しては;

  • プロジェクトを再コンパイルする必要がない強調表示エラー。すべての言語に意味があるわけではありません。REPLs多くの言語を簡単に統合できます。今、私が持っているrubypythonhaskellcommon lispschemeおよびerlangemacsのにすべてのフック。ちなみに、JavaScriptアドオンにjs2-modeは完全なインクリメンタルな「コンパイル」機能があるため、構文エラーなどが強調表示されるため、確かに可能ですが、標準ではありません
  • コードアシスト。そのためのアドオンがありautocomplete.elEmacs wikiを確認してください。
  • リファクタリング。「自動リファクタリング」を意味すると思いますが、これはすべての言語で意味をなさない。おそらくいくつかのために存在しますが、私は知りません。
  • オープニングコールの階層/オープニング宣言。
  • ソース管理と完全に統合されています。Emacs 22.3の時点で組み込まれていますが、git-mode他のソース管理についてはわかりません
  • デバッガが含まれています。言語ごとの基礎はこちら。一般に、REPL統合がある場合、Emacsデバッガーもありますが、普遍的ではありません
  • サードパーティのプラグインが利用可能-例えば、findbugs / checkstyle。それらの特定のものについては知りませんが、なぜこれがベースパッケージではないのか、まったく軽薄なものまで、たくさんのアドオンがあります

とはいえ、もしあなたがLispが気に入らず、それを学ぶつもりがないなら、私は正直にEmacsを推薦することはできません。そこから得られる勝利は、多くの市販のMODを入手してそれらをつなぎ合わせるのではなく、ツール作成について学び、それらの原則を適用して自分の生産性を高めることです。


より便利なHaskellエディターの必要性は、emacsまたはvimを習得しようとする私の主要なドライバーです(emacsの方が好きです;))汎用ツールとして。
CodexArcanum

少なくともEmacs-land CEDETでは、cedet.sourceforge.net(Emacs開発環境ツールのコレクション)は、テキストエディターとIDEの間の境界線を本当に曖昧にします。これは主にC / C ++(およびその他)を対象としており、プロジェクトブラウザー(および自動Makefile生成)、コード補完、コードアシスト(カーソルで関数のプロトタイプを表示)、var / functionの他の使用法、auto genコンストラクタ/デストラクタなど。この種のツールを可能にするのは、Emacsの大規模な拡張性です。
クリス

3

ここには2つのオプションがあります。

  • 代わりにNanoを使用-これはLinux for Windowsのメモ帳とまったく同じです。ホットキーの組み合わせを必要とせず、入力するだけでnano somefile.conf素晴らしいエディタができます。構文の強調表示を追加することもできます
  • プログラムをローカルに保持し、SCPを介してサーバーに同期します。小さなWebサイトで作業する必要があるが、Apacheをローカルで実行するのに十分なリソースがない場合にこれを行います。WinSCPを起動し、必要なディレクトリを起動し、「リモートファイルを最新に保つ」を使用します。通常、変更は数秒で反映されます
  • エディター/ IDEでプラグインを使用してリモートファイルを「直接」操作します-リビジョン管理を気にする前に、Notepad ++(私の好みのエディター)を起動し、NppFTPを使用してファイルを操作しました。NppFTPはWinSCPオプションよりも高速です。これは、ファイルが保存されるとすぐにNppに通知され、すぐにアップロードされるためです。しかし、私が言ったように、あなたはリビジョン管理を失います。使用できるEclipseのプラグインがあると確信しています

お役に立てれば


nanoの+1、それを愛さなければならない。
-Dashogun

+1 Nanoは素晴らしいです。viを使用して、数年にわたる苦痛の前にそれを知っていたなら。
オリバーワイラー

2

個人的には、Vimはテキストの編集が非常に優れている、つまり非常に人間工学的(キーバインドが手をあまり負担にせず、マウスをそれほど使用する必要がない)で、使い慣れたら効率的に使用できるため、Vimが好きです。それ(もちろん、初心者にとって最も直感的なエディタではないため、時間と忍耐が必要になります)。

ただし、多くの機能がすぐに利用できるため、大規模なJava開発にはEclipseをお勧めします。もちろん、Eclipseをもう少し耐えられるものにするプラグインいくつかあります


1

Eclipseに満足している場合は、切り替えないでください。

必要な場所でEclipseを使用できる場合は、切り替えないでください。

プロジェクト/会社がほとんど排他的にEclipseを使用している場合は、切り替えないでください。

他に必要なものがめったにない場合は、いずれかのエディターのチートシートを印刷し、必要なときに引き出しから引き出してから、Eclipseの使用に戻ります。

SOで(同じ)質問を参照してください:https : //stackoverflow.com/questions/1346820/what-are-the-efficiencies-afforded-by-emacs-or-vim-vs-eclipse

「それを使用する人は、実際に大規模な組織の複雑なオブジェクト指向プロジェクトに取り組んでいますか?」-帽子のソニーを握りますが、答えは「はい」です。私は、この質問をするために使用しているコンピューターを実行するCPUを設計するというクリティカルパスで使用される数千万行のコードでプロジェクトに取り組んできました。そして、人々はEclipseを試しましたが、それが遅すぎて不格好であることがわかりました(確かに、私たちはJavaを使用していませんでした)。


1

emacsとvimはどちらも非常に構成可能で強力なエディターであり、基本的な概念を理解すれば、どちらも生産性を大幅に向上させます。

Viは基本的にセットベースの操作で勝ちます。たとえば、クラス定義で「foo」のすべてのインスタンスを「bar」に変更するのは1行です。

Emacsも同様に強力ですが、Emacs Lispを最大限に活用するには、Emacs Lispを学習する必要があります。

いずれの場合も、すべてに emacsまたはviを使用する予定がある場合にのみ切り替える価値があります


1

(短期的に)最良のツールは、非常に熟練しているツールです。

30歳以上の技術を使用しているのは、非常に熟練しているからです。彼らは、これらのツールを中心にワークフローと習慣を構築しました。Eclipseのような最新のIDEに精通している場合、切り替える理由はあまりありません。Eclipseをより効率的に使用する方法を学ぶことは、あなたの時間のより良い投資です(例えばMylynを使用します)。


1

現在、NetBeansからvimに切り替えようとしています。vimの学習には時間と練習が必要ですが、特定のケースでは「GUIエディター」と呼ぶよりも優れていると思います。

しかし、あなたとは異なり、私は主にRubyをコーディングしています。NetBeansとEclipseが提供するコード生成、オートコンプリート、リファクタリング、マイコードのすべての黒魔術は必要ありません。JavaまたはC#をコーディングしていた場合、ほとんど確実に切り替えようとしません。


私はvimを何年も使用しています。Rubyで非常にうまく機能します。学習曲線が得られると、効率がよくなります。
ラリーコールマン

1

emacsの長年のユーザーとして、私はemacsを編集および開発環境として非常に快適であると感じています(そしてある程度、ビルドプロセス、バージョン管理、クイックコンテキスト依存検索などと統合されているので、資格があると思います「IDE」として)。

また、viやviに似たエディターを使用することも非常に快適です(emacsは複雑すぎると考えたため、edを使い始めました;振り返ってみると、それは将来viを学習するための確かな基盤を与えてくれました)。主にemacsがインストールされていないリモートマシンで、「小さなクイック編集」のためにviを使用します。

「サーバーにsshして設定ファイルをめちゃくちゃにする必要がある場合があります。このためにviを使用します」シナリオでは、viについての小さなコマンドセットといくつかの一般的な考え方をお勧めします。

  • Viはモーダルではなく、 "a"(追加)、 "A"(行末に追加)、 "i"(挿入)および "I"(行の先頭に挿入)コマンドがあり、挿入するテキストを取得します。引数として、およびEscで「コマンドの終わり」を通知する
  • h、j、k、およびlは移動キーです。矢印キーを使用して動作する場合がありますが、一般的なVTスタイルの「私は矢印キーです」シーケンスがEscで始まるため、これは考えていないテキスト挿入コマンドを中断します
  • LINENUMの行に移動しますLINENUM、ライン1は、最上位ラインとラインの$は、一番下の1です
  • 「最後のコマンドを繰り返す」コマンドです(最初の箇条書きを参照)

「テキストファイルを自信を持って編集することはできますが、それで効率的ではないかもしれません」とviをいじるのに1〜2時間以上かかることはありません。 。それに失敗すると、タブとスペースの間の自動変換を気にしないエディタは、あなたの目的にとって「十分な」はずです。Eclipseがすべてのリモートサーバーにインストールされている場合、それを実際に大きな問題として使用することはありません。


なぜダウン投票なのですか?
バティーン

1

私は非常にEmacsの男です。私はすべてのプログラミングにそれを使用し、同僚にも積極的に使用するように奨励しています(そして、彼らは積極的に私を無視します)。どのIDEよりもはるかに生産性が高いと思いますが、私は決して変わらないでしょう。

私がJavaまたはC#を書いているのでなければ(そして、このカテゴリーには他の言語があると思います)。彼らは長い名前を持つものの非常に大きなライブラリを持っているので、Emacsを使用することで得られる利益すべてを覚えようとする際に完全に失われます。

vimやEmacs を試しみることを勧めします。しかし、おそらくEclipse for Javaに戻ってくるでしょう。


0

利用可能なさまざまなUNIXエディターに問題はありませんが、抗議の下でしか使用しません。私が言うように、私は彼らに問題があるからではなく、私がそれらを使用しなければならない場合、それは私たちの展開プロセスが何らかの形で欠けていることを意味するからです。

これはおそらくもう少しコンテキストに値するでしょう。私は大規模なeコマースソリューションに取り組んでおり、システムの実行を管理するすべてがワンクリックのビルド/デプロイプロセスによって生成されます。テスト環境の配列があるため、Eclipseを介していつでも変更を行い、それをcvsにチェックインしてビルド/デプロイをトリガーし、修正が機能したことを証明できます。したがって、「vi」でハックしている場合は、1時間の展開のターンアラウンドを待つことができないため、または展開が編集中のファイルをカバーしておらず、拡張する必要があるためですそうしないと、次回問題のファイルを変更する必要があるときにviでハッキングします)。


0

個人的に両方のプログラムは私を壁に押し上げます。Eclipseの問題は、大規模なプロジェクトで作業しているときは、「DGLPインデックス作成」などを行っていないときの速度が遅いことです。リポジトリを更新しますか?15分かかった?ああ、どうやってCtrl-Cでテキストを次にCtrl-Pでどこかでそれをどこかに移動するという気の利いたトリックについてはどうでしょうか?そもそも。ああ、私はVPNで大規模なプロジェクトでEclipseで作業することに言及しましたか?実質的に不可能です。

vimについては、偶然に未知のモードに陥った場合に何かをして、幸運をもたらすために完全に無意味なキーの組み合わせの多くを知っていると仮定すると、その素晴らしく速いです。また、vimを使用すると、正しいファイルを開くために、頭の中でプロジェクトのディレクトリ構造全体を知る必要があります。Vimの主な利点は、理論的にはすべてのキーがあるためコードを高速に作成できることですが、実際には、私が書いているテキストの量は気にしません。コードでは、入力する正確な内容(通常は非常に短い)がわかるまで、何十ものファイルを何時間も見つめ続ける必要があります。

私が望むのは、誰かがvimのようなコマンドラインプログラムを書くことです。これは実際には日食のようなディレクトリ構造、またはファイルを展開/折りたたみして開くことができるもののようなものです。誰かがこのようなことを知っていますか?


3
バッファ内のディレクトリを開くだけで、ディレクトリ内のファイルがリストされます。編集するファイルの上にカーソルを移動し、Returnキーを押すと、そのファイルが開きます。さまざまなvimプラグイン(NerdTreeなど)は、ウィンドウを自動的に分割し、1つのペインでファイルを開き、もう1つのペインでディレクトリツリーを保持するなど、より高度な機能を提供します。vimとemacsの一般的な難しさは、それらに機能が欠けていることではなく、メニューを参照しても機能がすぐに見つからないことです。ヘルプドキュメントを読む必要があります。
チャールズE.グラント

答えの最後の部分は別の質問です。
マチュー

「無意味」な作品を使用してキーの組み合わせを説明すると、アマチュアとして抜け落ちます。また、オタクツリーは、vimにプラグインされたときに、説明していることを実行します。
アルナーヴサニャール

-1

VIMまたはEMACSに満足できない場合は、そのマシンで他のテキストエディターを探すことができます。neditやgeditのフレーバーがあるかもしれませんし、もっと使い慣れたコマンド(たとえば、ctrl x、c、vおよびsがあなたが期待することをするでしょう)を使用できるものがあるかもしれません。

あなたはおそらくあなたのディストリビューションに2つ以上の選択肢があるので、見てみる価値があります。

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