web-dev-qa-db-ja.com

C開発に最適なIDE / IDEでEmacsを使用する理由は何ですか?

そのため、以前の質問の1つに従って、Cスキルを磨いています。

私の質問は、人々がCの開発に何を使うのか?

多くの人々がEmacsを使用しており、何年も使用していますが、単にIDEを使用するよりもemacsを学ぶ方が良いでしょう GeanyやKDevelopなど?

また、他のアプリよりも依然としてemacsを使用、およびなぜ使用するのかからも興味がありますか?

無料のIDE /エディターにしか興味がないことに注意してください。

編集:

私の質問のいくつかに答えるリンクを投稿してくれてありがとう。

Emacs/vimを使用して編集することを学び、gcc-toolchainを使用してコンパイル/デバッグすることは、IDEを使用するだけでなく価値があるかどうか、そしてなぜですか?

IDEに移行しない人々の理由は何ですか?

誰かが端末中心の開発からIDE開発に移動しましたが、なぜ移動したのですか?

62

まず、Microsoftかどうかに関係なく、IDEを使用しました。それから、ずっと前にQNXで作業していたとき、テキストエディター+コンパイラー/リンカーを使用せざるを得ませんでした。今では、環境が許可している場合でも、この単純な組み合わせ(構文強調エディター+ Cコンパイラーとリンカーcli + make)をIDEに好んで使用しています。

その理由は、私にとって:

  1. どこにでもあります。 Cでプログラミングする場合、コンパイラーがあり、通常はエディターを入手できます。私が最初にすべきこと––Linuxではneditを、WindowsではNotepad ++を使用します。私はviを使いますが、GUIエディターはより良いフォントを提供します。これは、一日中コードを見るときに重要です

  2. 必要なときに、sshを介してリモートでプログラムできます。また、ターゲットにsshして、そこで簡単なことをできるようになることもあります。

  3. cLI、できればUNIX/Linux CLIの近くに私を保ちます。そのため、すべてのコマンドは指先にあり、必要なときにリファレンスブックを読む必要はありません。また、UNIX CLIでは、IDEでできないことを頻繁に行うことができます。開発者が必要と思わなかったため

  4. 最も重要なことは、マトリックスを生のコードで見ることに非常に似ています。私はファイルを操作するので、それらを管理しやすくする必要があります。コード内で物事を手作業で見つけているので、シンプルで整理された状態に保つことができます。構成管理を明示的に行うため、同期のタイミングと方法がわかります。 Makefileを知っているのは、Makefileを書いているからです。

    (それが「本当に大きなプロジェクト」で機能するかどうか疑問に思うなら、それは機能します。プロジェクトが大きくなればなるほど、パフォーマンスが向上します)

  5. 人々が私に自分のコードを見るように頼むとき、私はIDE彼らが使用することを学ぶ必要はありません

62
n-alexander

私はほとんどのプロジェクトで、ターミナルのテキストエディター+メイク環境からEclipseに移行しました。 CとC++から、JavaとPythonに至るまで、現在取り組んでいるいくつかの言語を挙げています。

その理由は、単に生産性です。他のことがより重要になったため、すべてのプロジェクトを「頭の中で」維持することに時間と労力を費やす余裕がありませんでした。

「ハードコア」アプローチ(端末)を使用する利点があります。たとえば、自分とコードの間にはるかに薄い層があるため、すべてがプロジェクトの「内部」にあるときに生産性を少し高めることができます。あなたの頭の上に。しかし、他の場所であなたの心が必要になったとき、それ自体のためだけにその働き方を守ることは不可能だと思います。

通常、コマンドラインツールを使用する場合は、生産性を低下させる多くの定型的な問題を頻繁に解決する必要があります。ツールの可能性を最大限に活用するには、ツールを詳細に知る必要があります。また、プロジェクトを維持するには、さらに多くの労力が必要です。リファクタリングは、メイクファイルなどの更新につながります。

要約すると、1つまたは2つのプロジェクトのみ、できれば気を散らすことなくフルタイムで作業する場合、「ターミナルベースのコーディング」は本格的なIDEよりも生産的です。ただし、思考エネルギーをより重要なものに費やす必要がある場合は、IDEが生産性を維持するための方法です。

適宜選択してください。

34
Anders Hansson

Emacs is IDE。

編集:OK、詳しく説明します。 IDEとは何ですか?

出発点として、頭字語である統合開発環境を拡張しましょう。これを分析するために、最後から始めます。

環境は、一般的に言えば、視点を囲む世界の一部です。この場合、それは私たちがモニターで見るもので(おそらくスピーカーから聞こえる)、キーボード(そしておそらくマウス)で操作します。

開発は、必要に応じて、この環境で行うこと、その目的です。環境を使用してソフトウェアを開発します。これは、必要なサブパートを定義します:エディター、REPLへのインターフェース、それぞれ。コンパイラ、デバッガへのインターフェイス、オンラインドキュメントへのアクセス(このリストは網羅的ではありません)。

Integratedは、環境のすべての部分が何らかの形で均一な表面の下にあることを意味します。 IDEでは、最小限の切り替えでさまざまなサブパートにアクセスして使用できます。定義された環境を離れる必要はありません。この統合により、さまざまなサブパートの相互作用が向上します。たとえば、エディターはどの言語で記述されているかを把握し、シンボルのオートコンプリート、定義へのジャンプ、自動インデント、構文の強調表示などを行うことができます。コンパイラから情報を取得し、自動的にエラーにジャンプし、それらを強調表示します。すべてではないにしても、ほとんどのIDEで、エディターは開発プロセスの中心に自然にあります。

Emacsはこれをすべて実行し、広範囲の言語とタスクを実行します。また、ユーザーがどこでも見逃した場合にシームレスに拡張できるため、卓越した実行を行います。

反例:メモ帳などを使用して開発し、FirefoxとXPdfからドキュメントにアクセスし、コンパイラーとデバッガーをシェルから操作できます。これは開発環境になりますが、統合にはなりません。

15
Svante

私は、EclipseをCDTプラグインで非常にうまく使用しました。

10
fluffels

Emacsにはテキストエディタがあればもっと良いでしょう... :-)

6
Jimmy J

Netbeansには CおよびC++の優れたサポート があります。肥大化と遅いと不満を言う人もいますが、私は個人的なプロジェクトのためにほとんど独占的に使用しており、気に入っています。コード支援機能は、私が見た中で最高の機能の1つです。

5
Joshua Rieken

Code :: Blocks を使用します。必要なものはすべて揃っており、GUIは非常にきれいです。

5
soulmerge

なぜ誰も言及していないのですか Bloodshed Dev C++? しばらく使用していませんが、C/C++を学びました。 MS Visual c ++と非常によく似ています。

3
santo101

見栄えの良い、クロスプラットフォームの無料のエディターを探している場合は、 Komodo Edit を試してください。 Komodo IDEほど強力ではありませんが、無料ではありません。 機能チャート を参照してください。

別の無料の拡張可能なエディターは jEdit です。 100%純粋なJavaであるクロスプラットフォーム。地球上で最速のIDEではありませんが、Javaの場合、実際には非常に高速で非常に柔軟で、見た目は良くありません。

どちらも非常に洗練されたコードの折りたたみ、構文の強調表示(考えられるすべての言語)を備えており、個人のニーズに合わせて構成することに関して非常に柔軟です。 jEditは、非常に簡単に拡張して、必要な機能を追加することができます(Javaのように見えますが、実際には「スクリプト化」された非常にシンプルなスクリプト言語があります)。

1
Mecki