Entwicklungsumgebung für C

Ich benutze VIM mit:
- vim-html5
- rainbow_parentheses
- vim-airline
- vim-coffeescript
- vim-color-solarized
- vim-gitgutter
- vim-rails

Der Grund ist gar nicht mal so der "VIM ist l33t, darum VIM", sondern weil er einfach so universell ist. Ich meine, ich hänge ja nicht 24h am Tag hinter Code in einer Sprache. Mein aktuelles "kommerzielles" Projekt besteht z.B. gerade aus Ruby, SQL, PL/pgSQL, Javascript, Coffeescript, HTML5/CSS. Hier jetzt eine IDE finden, die alles gleich gut kann, ist extrem schwierig. Und nur weil ich jetzt an einem kleinen privaten C++ oder Java Projekt arbeiten will, habe ich keine Lust hier ständig die gewohnte Arbeitsumgebung zu verlassen.

VIM kann nicht alles gut, das ist klar. Aber es kann dafür vieles und den Großteil davon auch ziemlich gut. Und es hält mich auch nicht davon ab meinen Job in einer VM zu erledigen, die nur per SSH zu erreichen ist. Einfach dort einloggen und mit VIM loslegen. Kein X11 Forwarding oder sonstiger Remote-Desktop Kram. Privat und Arbeit sind so schön getrennt.
 
@Nuke: kannst du mal nen Screenshot zeigen, wie das dann bei dir aussieht? :)
 
Eine IDE hat nur ein Merkmal, was sie von der Arbeit mit Editoren unterscheidet. Sie integriert Werkzeuge und fasst ein Projekt zusammen zu einem Bündel. Mich stört das letztere. Das Problem ist nämlich, dass eine IDE meistens Projektdateien erzeugt, womit die freie Wahl der Werkzeuge eines Team-Mitglieds verhindert wird. Man sollte den Experten seine Werkzeugpalette selbst überlassen und ihm nicht irgendwelche hinderlichen Geschichten ans Bein binden.
Na ja, das mit der freien Werkzeugwahl ist bei größeren Projekten so eine Sache. So wie ich das sehe, muss man sich innerhalb einer (komplexeren) Projekts zumindest auf ein Build-System einigen, und diese Festlegung schubst einen bei der Wahl der Werkzeuge schon wieder in eine bestimmte Richtung. Wer CMake in größerem Umfang nutzt, findet in Kdevelop eine nützliche IDE, wer Autotools braucht, wird bei Eclipse CDT oder Anjuta (ich weiß, Geschmackssache :D) fündig. Bei so vielen Werkzeugen (Bug Tracker, Build-System, UT, Continuous Integration Server, ...) muss man sich ohnehin einigen - da bringt die Wahl des Editors nicht mehr allzu viel Individualität...

Ich bin jedenfalls schon lange davon ab, die eierlegende Wollmilch-Umgebung (egal ob IDE oder IDE*) zu finden. Kleinkram mache ich mit dem Editor, den ich grade in die Finger kriege - ScITE, Kate, Komodo, vim - alles gut (so lange es nicht Emacs ist - da wären wir dann wieder beim Geschmack). Für größere Sachen benutze ich aber, was sich richtig gut dafür eignet. Für C ist das in der Regel Kdevelop (da guter CMake Support an Bord ist), für Python PyCharm, für LaTeX TeXstudio und für Java eben Eclipse (v. a. bei RCP-Geschichten und anderem GUI Zeugs) oder IntelliJ (bei Maven-basierten Projekten).

* wer behauptet, Emacs oder Vim mit entsprechenden Plugins seien keine IDEs, der möge noch mal über die Bedeutung von "integrated" nachdenken ;)
 
@Nuke: kannst du mal nen Screenshot zeigen, wie das dann bei dir aussieht? :)

Hier ein Bild:
VIM.png


und hier dazu die vimrc. Die Plugins habe ich per pathogen eingebunden. Das muss man sich halt nach Anleitung installieren:

Code:
execute pathogen#infect('bundle/{}', '~/dotfiles/.vim/bundle/{}')
set nocompatible
syntax on
set showmatch
set smartcase
set ruler
set encoding=UTF-8
set bs=2
"set relativenumber
set number
set cursorline
set cursorcolumn
set laststatus=2

"identation stuff
set autoindent
set smartindent
filetype plugin indent on

"colorscheme stuff
set t_Co=256
set background=light
let g:solarized_termcolors=256
let g:solarized_termtrans=1
:colorscheme solarized

"rainbow Parenttheses
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces

"gitgutter
let g:gitgutter_escape_grep = 1

set noshowmode
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
hi! link SignColumn LineNr
"  hi! link GitGutterAdd LineNr
"  hi! link GitGutterChange LineNr
"  hi! link GitGutterDelete LineNr
"  hi! link GitGutterChangeDelete LineNr

set tabstop=2
set shiftwidth=2
set expandtab
map <up> g<up>
map <down> g<down>

" spellchecker
setlocal spell spelllang=en_us,de_de
hi clear SpellBad
hi SpellBad cterm=underline
",bold ctermfg=red

" wrap words at the end of the screen
set wrap linebreak textwidth=0

"folding settings
set foldmethod=indent   "fold based on indent
set foldnestmax=3       "deepest fold is 3 levels
set nofoldenable        "dont fold by defaul

Ist aber auch nur "zusammengeklaut" aus diversen anderen vimrc anderer Leute. Ist jetzt nicht so, als wenn ich von jeder Option da großartig Ahnung hätte :D
 
Ich benutze VIM mit:

Der Grund ist gar nicht mal so der "VIM ist l33t, darum VIM", sondern weil er einfach so universell ist. Ich meine, ich hänge ja nicht 24h am Tag hinter Code in einer Sprache. Mein aktuelles "kommerzielles" Projekt besteht z.B. gerade aus Ruby, SQL, PL/pgSQL, Javascript, Coffeescript, HTML5/CSS. Hier jetzt eine IDE finden, die alles gleich gut kann, ist extrem schwierig. Und nur weil ich jetzt an einem kleinen privaten C++ oder Java Projekt arbeiten will, habe ich keine Lust hier ständig die gewohnte Arbeitsumgebung zu verlassen.

Vim ist - genau wie Emacs - extrem bloated für einen Editor. Dafür kann man ihn aber herrlich zusammenstückeln und sich a la »one job - one tool« die passenden Erweiterungen ranfrickeln und ihn so für diverse Einsatzszenarien anpassen.

Eine IDE folgt, wie auch Desktop Environments, einer anderen Philosophie. Sie sind für den Anfang leicht zu gebrauchen und schnell einzurichten, so wie eine Tiefkühlpizza. Aber wenn ich etwas besseres kochen will, muss ich kochen lernen und mich mit den Zutaten und den Werkzeugen auseinandersetzen.
 
Ja, und mit vim kann man am Anfang ein Steak braten und bekommt verbranntes Schnitzel :D

Aber ich finde gvim (mit Erweiterungen) auch sehr praktisch als Allround-Editor.
 
Zurück
Oben