C開発のための便利で生産的な開発環境のセットアップに関するアイデアを探しています。私が見つかりました。Vimの持つC編集は非常に役立つが、私は提案の広いサンプリングを取得したいと思います。
C開発のための便利で生産的な開発環境のセットアップに関するアイデアを探しています。私が見つかりました。Vimの持つC編集は非常に役立つが、私は提案の広いサンプリングを取得したいと思います。
回答:
Emacs / Vim / Eclipse / ...-個人的に私はEmacsユーザーです。制御シーケンスが小指を疲れさせる場合は、Viper-Modeを使用してください。Emacsはunixに非常によく統合されているため、すべてを1か所から非常に簡単に制御できます。ここでもVimはうまく機能していますが、ElispはVim Scriptよりもはるかに強力な拡張言語であることがわかりました。C開発用にEmacsをセットアップするすべての方法について何時間も話すことができます。 Flymakeモードは言及されており、物事へのスーパースタートです。私はEclipseに精通していません。コードを表示するための十分なスペースが画面に残っていないことや、どれほど肥大化しているのかが気になりません(VimユーザーはEmacsについて同じことを言うでしょう)。純粋に美的理由から、Javaで書かれたものに対して不当に偏っています。
Ctags -C(または他の多くの言語)関数にタグを付けて、VimやEmacsなどがファイル内でハイパーテキストリンクを少し実行できるようにします。あちこち歩き回っていて、関数が表示されていて、頭をかいて、「また何をするの?ネーミングが少しあいまいだ」としましょう。Plink-plank-plunk、あなたはそれの定義に直接打つことができます。
Cmake / Gnu-Autotools -Makeは素晴らしいですが、テストする方法のないあらゆる種類のシステムでプロジェクトを構築できるように、ある時点で少し抽象化する必要があります。* nixでコードをビルドするだけの人が必要な場合、Autotoolsは素晴らしいですが、実際には、とにかくCmakeに慣れる必要があります。Cmakeチームは、考えられるあらゆる構成でコードをビルドし、頭痛の種を経験する必要がないことを確認します。プロジェクトを簡単にピックアップして他の人を購入したい場合は、これらのツールの1つが重要です。
Git / Mercurial / Subversion / ...-バージョン管理ソフトウェアの調査に何ヶ月も費やすことができますが、おそらくGitだけを使用する必要があります。それはしっかりしていて、配布されており、@ $!#%&Linuxカーネルが追跡されます。Linusにとって十分なものであれば、それはあなたにとって十分なものでなければなりません。Mercurialの良い点も聞いています。G** gleがそれらを使用しているようで、おそらく悪くはありません。一部の人々は、SubversionやCVSなどを好きではないようです。それらはモノリシックであり、私には非常に不便で制限があるため、私はそれらが好きではありません。
Stumpwm / wmii / XMonad / ...-ある時点で、作業の流れを維持するためにできることは出力を大幅に改善することに気付くでしょう。脳がそのコンテキストを壊さないようにする最善の方法の1つは、タイルキーボード駆動型ウィンドウマネージャーに切り替えることです。私はウィンドウマネージャのEmacsであるStumpWMの個人的なファンです。オンザフライでカスタマイズ可能なCommon Lispプロセスに完全に実装されているため、繰り返し実行していることはすべて、関数に追放してコマンドにバインドできます。素晴らしいもの。私は他のことについてはあまり知りませんが、多分さらに詳しい説明は別のスレッドに任せたほうがいいでしょう。可能な限りキーボードを使用してください。
GDB-私は他のデバッガーに精通していませんが、これは事実上の標準のようです。
Valgrind-これがうまく機能することについて他に何も知りません。Valgrindは、続行したいすべての厄介なプロファイリング/メモリリークの探索に不可欠です。Valgrindなしでは、malloc / callocを使用してコードを作成することはできません。
私はしばらくVimにこだわっていましたが、VIMの基本を知っておく価値はあります。それだけの場所にUNIXボックスが常に見つかるのですが、私はEmacsを試し、振り返りませんでした。Eclipseは「モダン」な代替手段です。私はシステムに3つすべてを持っています!
これは個人的な好みなので、私が何を使っているかを説明する以上のことはできないと思います。私はEmacsにFlymakeモードを設定しています。Flymakeモードでは、作業中のファイルを定期的にコンパイルし、コンパイラー出力を解析して、発生したエラーを把握します。バッファ内のエラー/警告を強調表示し、関連するコンパイラエラーメッセージを表示します
Unix / LinuxでC開発を行っている場合、プロジェクトのサイズが非常に大きい場合はCscopeを使用する必要があります。
Cscopeは、ソースコードを参照するための開発者向けツールです。関数foobar
の定義にジャンプし、変数foo
が参照されているすべての場所を見つけ、を含むすべてのファイルを見つけbar.h
、のすべての出現をbar
intoに変更しますbaz
。
また、あなたの投稿でVimについて言及しました... VimとCscopeを一緒に使用するためのチュートリアルです。
G ++ / GCCで動作するNetbeans C / C ++パッケージを使用できます。
コンソールでVimを使ってCを編集します。私はメイクファイルを使用しており、gcc、clang(LLVM)、iccなど、コードをテストするためのいくつかのコンパイラーを持っています。私が開発環境の一部として検討している他のこと:grep、デバッガー、valgrindの使用。より複雑なビルド用のスクリプト言語。バージョン管理用のGit。
コードを編集するために何を使用するかよりも私の心の中でより重要なのは、コードの構造です。そのレイアウト方法はおそらくスタックオーバーフローの問題ですが、あなたが尋ねたように、私はしばしば配布用ではなくオブジェクトコード用の別のディレクトリと、結果のバイナリ(y | ies)用の別のフォルダーを持っています。私が書いているすべての一般的なコードとこれらのvalgrindを使用するCファイルと、最終的なプロジェクトファイルを含むテストフォルダーがあります。
組み込み端末でgeditを使用しています。