-
Emacs / Vim / Eclipse / ... - Pessoalmente eu sou um Usuário do Emacs. Se você achar que as sequências de controle cansam seu mindinho, apenas o Viper-Mode. O Emacs está tão bem integrado ao unix, tornando muito fácil controlar tudo de um só lugar. O Vim também faz um bom trabalho aqui, mas acho que o Elisp é uma linguagem de extensão muito mais poderosa que o Script do Vim. Pode-se falar por horas sobre todas as formas de configurar o desenvolvimento do Emacs for C. O Flymake Mode foi mencionado, e é um super começo para as coisas. Eu não estou familiarizado com o Eclipse, eu não acho que deixa espaço suficiente na minha tela para o código, nem eu gosto de como é inchado (usuários do Vim vão dizer a mesma coisa sobre o Emacs). Eu também sou injustamente tendencioso contra qualquer coisa escrita em Java, por razões puramente estéticas.
-
Ctags - Tags suas funções C (ou muitas outras línguas) para que o Vim ou Emacs ou qualquer outra coisa possa faça um pouco de hipertexto nos seus arquivos. Digamos que você está vagando e vê uma função e está coçando a cabeça dizendo "O que isso faz de novo? A nomeação é um pouco vaga". Plunk-plank-plunk, você pode ir direto para sua definição.
-
Cmake / Gnu-Autotools - Make é ótimo, mas em algum momento você precisa abstrair as coisas um pouco para que seu projeto possa se construir em todos os tipos de sistemas que você não tem como testar. Se você só precisa de pessoas para construir seu código em um * nix, o Autotools é ótimo, mas na verdade você deve se familiarizar com o Cmake de qualquer maneira. A equipe do Cmake constrói o código em todas as configurações possíveis e garante que você não precise passar pela dor de cabeça. Se você quiser que seu projeto seja facilmente adquirido, compre outras, uma destas ferramentas é crucial.
-
Git / Mercurial / Subversion / ... - Você pode passar meses pesquisando a versão software de controle, mas você provavelmente deve apenas ir com o Git. É sólido, é distribuído, o @ $! #% & Linux Kernel é rastreado com ele. Se for bom o suficiente para Linus, tem que ser bom o suficiente para você. Eu também ouço coisas boas sobre o Mercurial, aparentemente G ** gle as usa, então provavelmente não é ruim. Algumas pessoas parecem gostar do Subversion, do CVS e de outras coisas. Eu não gosto deles porque são monolíticos, o que para mim é muito inconveniente e limitante.
-
Stumpwm / wmii / XMonad / ... - Em algum momento você vai perceber que qualquer coisa que você pode fazer manter seu fluxo de trabalho vai melhorar muito sua produção. Uma das melhores maneiras de evitar que o seu cérebro quebre o contexto é mudar para os gerenciadores de janela do KEYBOARD DRIVEN. Eu sou um fã pessoal do StumpWM, o Emacs dos gerenciadores de janela. Totalmente implementado em um processo Common Lisp personalizável on-the-fly, qualquer coisa que você se encontra fazendo repetidamente pode ser banida em funções e ligada a comandos. Coisas boas. Eu não sei muito sobre nenhum dos outros, mas talvez seja melhor deixar uma outra elaboração para outro tópico. USE TECLADO TANTO O POSSÍVEL.
-
GDB - Eu não estou familiarizado com outros depuradores, mas este parece ser o de fato padrão.
-
Valgrind - Eu não sei de mais nada que faça o que isso faz tão bem. O Valgrind é crucial para todos aqueles caçadores de fuga de perfil / memória traquinas que você deseja seguir. Você simplesmente não pode escrever código com malloc / calloc sem Valgrind.