VimやEmacsは、.NetやJavaなどの言語に実用的ですか?[閉まっている]


18

そのため、私は主に.Net開発者であり、Java、Python、その他いくつかの作業を随時行っています。多くの人が、基本が決まったら、VimとEmacsの効率を大幅に高めると称賛していると聞きました。十分な練習をすれば、どれだけの機能が非常に役立つかは間違いなくわかりますし、学習曲線はおそらく努力する価値があるとさえ信じています。しかし...平均的な開発者がVisual Studio、Netbeans、Eclipse、または他のプラットフォームにいるのと同じくらいVimまたはEmacsで効率的にするには、マクロとホットキーのある種のウィザードでなければならないようです。私はVimの使い方を学び始め、その機能のいくつかは素晴らしいと思います(たとえば、列の編集)が、ヘビーウェイトIDEが提供するツールの多くは単純に置き換えることができず、最もジューシーなテキストでも購入できないようです編集者。

  • Linq-to-SQL用のdbmlファイルの生成
  • 自動テスト
  • UIの設計
  • プロジェクトとソリューションの作成/整理

VimとEmacsはVSができること(インテリセンス、リファクタリングなど)と同じことを非常に強力に行うことができることを知っています。これらのプラットフォームで作業している人が実際にVimやEmacsの恩恵を受けることはありますか?


2
私たちは私のショップのEclipseで働いていますが、ここではVimを彼のpimaryエディターとして使用し、Eclipseをコンパイルおよびコード管理タイプのタスクだけに使用している人がいます。
マイケルK

回答:


14

そこにはさまざまな概念がありますが、VSはかなり異なる機能を多く組み合わせているため、驚くことではないでしょう。(このサイトからの)ある引用は、Emacsは良いIDEではなく、Unixは良いIDEであることを示唆しています。Linux / Unixの世界では、すべてを実行する1つのモノリシックツールではなく、一緒にうまく機能する複数の専用ツールに依存しているという考えです。

今、私は主にC#でプログラムし、VSを使用してそれを行います。また、私はEmacsが大好きで、基本的にその他すべてにEmacsを使用しています。さて、あなたが言うように、EmacsでできることとEmacsで行う方が良いことは明確です。ただし、多くの場合、1対1のマッピングではなく、テキストエディターや他のツールを使用して同じ目標を達成するためのさまざまな方法があります。

私はもともとあなたのそれぞれのポイントに対処するつもりでしたが、答えは常に何らかの形で「はい、できます」に要約されました。通常、次のいずれかに依存します。1)コードを生成するための外部ツール(UIデザイナーなど)、インポート。2)反復タスクを自動化するためのエディター内(EmacsのElispコードなど)からの自動化サポート。または3)視覚的なツールの代わりにテキストベースのツールを使用するように調整します(MSBuildを使用して、VSのセットアップに依存する代わりに独自のプロジェクトファイルを作成するなど)。

Emacsの世界では、すべてを実行するツールはありません。多くのツールがあり、必要に応じてより多くのツールを成長させることができます。私はそれをすべて行うのに十分な知識がまだないので、VSを使用し、VSが提供するツールに満足しています。VSは非常に強力で非常に優れたIDEです。Javaをやっていたのなら、EclipseやIntelliJをよく知らないので、使用するツールを議論する必要があります。他の言語については、他のテキストエディタやこれらの言語が使用するかもしれない中途半端なIDEよりも多くのことをしてくれるので、Emacsがかなり勝ちます。(おそらくSmalltalkを除くが、それはユニークなケースです。)


6

しかし、これらのプラットフォームで作業している人が実際にVimまたはEmacsの恩恵を受けると言うのは現実的ですか?

私の例を挙げましょう:私は、C#で大部分(100%ではない)コーディングされているシステムで作業しています。システムをVisual Studioから構築することはできません。非常に複雑です。そのため、私はslnファイルを持っていません(それを使用して製品をビルドしていなくても、それを維持しようとしましたが、それは不可能なタスクであることが判明しました)。クラス図など。私に役立つツールは、vim + ctagsです。それも完璧ではありません(ctagsは混乱しやすい)が、コードブラウジングをサポートしていない劣悪なコードエディターを使用するよりもはるかに優れています。

今、私はほとんどの.NETまたはJava開発者が私と同じ立場にないことを理解しており、優れたコードエディタまたは少なくともデフォルトのものを改善するアドインがあればIDEを使用する方がおそらく良いでしょう。Visual Studioには、VsVimのようなアドオンがあり、コーディング体験をより楽しくすることができます。Eclipse AFAIKでも同じです。


3

VIMやEmacsを独占的に使用している人はもういないと思います。しかし、テキストエディター(それらの1つでも他の1つでも)を使用していない開発者を、いまだに多くの場合、完全なIDEのなかで見つけていません。

Java、C#、またはC ++コードを書くことよりもはるかに多くの仕事があることに注意してください。ANTスクリプト、メイクファイル、XMLファイル、さまざまな種類の構成ファイルがあります。そして、多くの小さな仕事のために、そのIDEの起動時間は単に長すぎるかもしれません。Eclipseの起動には数分かかる場合がありますが、VSも同様です。単一のソース内の何かをすばやく変更したり、既知のファイル内の何かをチェックしたりするには、長すぎます。VIMでのファイルのロードには数秒しかかかりません。


1
ただし、notepad ++も同様です。
ラファエル

決してそれを使用したことはありませんが、実際に他の人がそれを使用するのを見ました(私はVIMがだらしない:))。
-jwenting

2

IDEとvim(私の個人的なお気に入りのエディター)の使用は、相互に排他的な概念ではないことがわかりました。.NET開発を行うとき、通常、IDEでvimで作業している現在のファイルを開き、カーソルを同じ場所に置くホットキーコンボを設定します。このようにして、vimが得意なこと(マクロの使用、垂直編集、再インデント、差分など)を行いたい場合は、キーコンボを押して、お気に入りのエディターを起動します。変更を加え、ファイルを保存して終了すると、再びIDEに戻ります(VSでIDEの外部で編集されたときにファイルが自動的に再読み込みされるように設定できます)。この方法で、両方の長所を最大限に活用できます。

以前はスクリプト言語を使用して、複雑な方法でテキストファイルを操作していました。vimのマクロ(およびその他の機能)を使用する力を発見したら、スクリプト言語を使用するよりもはるかに迅速かつ効率的にこれらの種類の編集/操作を実行できることを発見しました。

私がvimを使用していくつかの複雑なことを行うために1回限りのシェルスクリプトを生成し、作成したシェルスクリプトを実行してから破棄することは非常に一般的です。

私の2セント:)


ええ、私はVS用のいくつかのプラグインをいじって、emacsに飛び込んだり、emacsを「コードエディタウィンドウ」として使用したり、emacsキーバインドを使用したりしました。それらのどれも愛していない。ただし、emacsをポップして同じカーソルスポットにジャンプするマクロは、かなりクールなアイデアのように聞こえます。私はそれを試さなければならないかもしれません。重いテキスト操作を行う必要があるとき、私は主に2つの間でコピー&ペーストするだけです。
CodexArcanum

0

OpenIDEおよびContinous Testsプロジェクトをご覧ください。1つ目は、VIMやEmacsなどのエディターに.NETプロジェクトサポートを追加することに焦点を当てています。もう1つは、RubyのAutoTest / pythons Sniffer / Autonoseに似た継続的なテストランナーです。VSプラグインまたはスタンドアロンとして実行できます。

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