Qual è il miglior editor di testo per la programmazione C su MacOS?

Molti vi diranno che avete bisogno di un IDE. Si sbagliano. Gli IDE sono grandi strumenti professionali, perché gestiscono tonnellate di cose che altrimenti dovresti fare manualmente. Gli IDE sono terribili per i principianti, perché fanno tonnellate di cose che non avete idea di fare, e si scavano buche profonde da cui non avete la conoscenza per uscire. Imparate prima a programmare. Diventa frustrato dalla noia di costruire programmi di medie dimensioni (e impara ad usare make), e poi usa un IDE quando non ne puoi più. XCode sul Mac è un tale IDE. Per le classi che insegno, è molto più di quello che ti serve, ma ho studenti che lo usano.

Tutto ciò che ti permette di digitare testo semplice in un file va bene, ma qualcosa che fa una bella indentazione e abbina parentesi graffe/parenti/cravatte è davvero utile. Pertanto, vi consiglio di scaricare Emacs (GNU Emacs download - GNU Project o GNU Emacs For Mac OS X) o di usare vim (io sono una persona Emacs, ma non ho nulla contro vim). Uno svantaggio di Emacs sono le convenzioni di formattazione predefinite. Impostatelo per usare gli standard di Linux (o almeno K&R). Molti dei miei studenti amano Sublime Text. Emacs è la mia scelta: è un editor, un sistema operativo, un sistema a finestre, un debugger, uno psicoterapeuta e un amico.

Vedi anche questo post: Qual è il miglior editor di testo/IDE in C?

Note: If you use Emacs, I recommend that you do put the following into a .emacs file in your home directory (it can be the first file you edit with Emacs!):

  1. (setq c-default-style 
  2. '((java-mode . "java") 
  3. (c-mode . "linux") 
  4. (c++-mode . "linux") 
  5. (other . "gnu"))) 

You may substitute “k&r” for “linux”, but see https://www.kernel.org/doc/Documentation/process/coding-style.rst.

On the Mac, I also prefer to use the Command (Apple) key as the Emacs meta key. To do that, put this in your .emacs file (if you don’t know what this means, try Emacs for a while and come back if you get bugged by using the Option key for meta):

  1. (setq mac-option-key-is-meta nil 
  2. mac-command-key-is-meta t 
  3. mac-command-modifier 'meta 
  4. mac-option-modifier 'none)