• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Editoren/IDEs? (Multiple Fenster, Syntax Highlighting, Terminal, Tabs...)

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Hallo,

ich bin auf der Suche nach einem neuen Editor oder IDE für die Entwicklung von C und Python, später auch irgendwann mal C++ - gelegentlich vielleicht aber auch mal HTML, CSS und PHP.

Zur Zeit verwende ich Netbeans 8 - also ähnliche Features wären schon interessant, sind aber nicht zwingend notwendig, schön wäre es dennoch ;)
Ich arbeite derzeit fast nur noch unter Linux Windows nur noch ganz selten.

Ich bin mir bewusst das ein Editor nicht an die Features eines IDEs herankommt, aber ich nutze persönlich auch nicht alle Features eines IDEs (build system, version control über das IDE, Templates...) und für mich wäre in erster Linie nur für einen guten Editor wichtig das er die Sprache unterstützt, Syntax Highlighting und Code Completion anbietet und auch Objekte/Strukturen (C) analysieren und vervollständigen kann. Aber ich gehe weiter unten mal auf Editoren/IDEs ein die bisher so nicht schlecht fand, vielleicht fehlt ja noch der ein oder andere.

Kurz zur Vorgeschichte:
Ich hab mich heute mit VIM unter Linux beschäftigt und den Vim Tutor soweit bis zur Mitte durchgearbeitet und bin schwer begeistert über den Editor und würde diesen gerne zum programmieren testweise einsetzen wollen, aber mir sind schon Features aufgefallen die ich spontan vermisse was andere Editoren/IDEs bieten. Aber vielleicht gibt es noch andere gute Editoren die ich noch nicht kenne.

Was mir bisher ein wenig in VIM fehlt oder ich hab es bisher nicht gefunden:
Was die Kontrollen angeht ist der Editor soweit wirklich echt interessant, aber was mir bisher fehlt sind Multiple Fenster beim editieren, ich würde gerne sehen in welcher Datei ich mich befinde und auch zu anderen offenen springen können, mittels Shortcut ;)

Ein Infopanel in welcher Zeile/Spalte sich der Cursor befindet, permanent sichtbar wäre auch gut.

Und auch wie es aussieht mit Syntax Highlighting oder gar so etwas wie Code Completion - gibt es da etwas für beispielsweise C oder Python?

Ein weiterer Request/Wunsch, ich hab schon gemerkt das man mit ":!Befehl" auch externe Kommandos aus VIM heraus ausführen kann, aber da fehlt zum teil der Überblick und die Inhalte die vorher geöffnet waren, gibt es die Option eine Terminal Instanz in VIM zu integrieren?

Vielleicht ist das jetzt auch der falsche Editor, aber solche Features wären klasse. Falls jemand eine andere Empfehlung hat mit ähnlichem Funktionsumfang wäre auch nicht abgelehnt, wobei ich schon jetzt gerne etwas mit VIM machen würde ;)

----------

Vielleicht kann man den Thread auch dazu verwenden Editoren zu sammeln mit gefühlten/erlebten persönlichen Stärken/Schwächen eines jeden Editors/IDEs?
Meiner Meinung nach, je generelle der Editor/IDE desto besser - sollte aber zum Coden geeignet sein und am besten nicht nur für Windows vorhanden sein.

Mal einen Überblick was auf den Tisch bei mir liegt:
- Netbeans (mein bisher favorisiertes Freeware IDE für C)
- Idle (Standard Python Code Editor, unterstützt leider kein wxWidgets)
- Sublime Text (gefiel mir beim ersten durchstöbern nicht so, aber über eine zweite Meinung würde ich mich sehr freuen da ihn ja doch viele nutzen)
- Atom (sehr erweiterbares Freeware IDE, sah auf den ersten Blick auch wirklich super aus hat aber leider keine Deep Code Inspection Features was Netbeans besitzt um beispielsweise Structs/Pointer Variablen zu vervollständigen, nur getestet mit C Code, Python wird aber unterstützt, wäre meine zweite Wahl neben Netbeans)
- NinjaIDE (reines Python IDE, aber sieht gut aus, Freeware)
- PyCharm (nur Python, fand ich eigentlich ganz gut mit zu arbeiten, aber leider kostenpflichtig)
- CodeBlocks (habe ich noch nicht aktiv mit gearbeitet, gibt es aber wohl schon länger und spezialisiert auf C++ Entwicklung(?))
- VIM (ein reiner TextEditor?)

Es fehlen mit Sicherheit noch so einige Editoren/IDEs - aber das sind die mir so geläufigen für die Sprachen mit denen ich mal gearbeitet habe. Erweiterbarkeit mittels Plugins wäre natürlich ein Plus falls man mal etwas exotisches ausprobieren will.

Warum nenne ich dann auch sprachspezifische Editoren/IDEs? Weil die ja zum Teil Ihre Sache sehr gut machen, halt aber nur für einen Anwendungsfall gedacht sind.

Mir wäre es mir per se egal ob Editor oder IDE, nur ist die zweite und dritte Frage in wie weit einem die Software entgegenkommt bei der Arbeit und auch wie produktiv man damit sein kann wenn man die Features wirklich ausnutzt die geboten werden. Erfahrungsberichte wären natürlich nicht schlecht.

Bedienungskomfort wäre natürlich auch schön, wobei das lernen von ein paar Tastenkombos in der Regel nicht das Problem darstellt so fern diese nicht aus dem blauen Dunst kommen, VIM ist hier natürlich ein etwas sehr krasses Beispiel. :D


Was meint ihr? :)
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #3
Mhh, sieht ja ganz gut aus - nachdem ich die About Seite gefunden hab ;)
Aber warum hast du gerade den Editor vorgeschlagen? :)
 

CiCero

gonna hate

Registriert
14 Juli 2013
Beiträge
683
Sublime Text sagte dir ja erstmal nicht so zu, war bei mir auch so. Ich nutze den für C/C++.

Build System gibt es, Plugins für Versionskontrolle und alles mögliche andere auch. Ein riesen Pluspunkt ist der Paketmanager für Plugins. Man muss zwar oft noch was von Hand konfigurieren, aber die Installation von Plugins und Updates laufen automatisch. Wenn du direkt Fehler beim schreiben angezeigt bekommen willst, geht das AFAIK auch mit Plugins und externen Lintern, aber die Einrichtung war mir bis jetzt immer zu blöd.
Wie gesagt gefiel mir der Editor am Anfang auch nicht so direkt - man muss sich halt ein wenig einarbeiten. Atom kann auch alles was ST kann, aber es ist halt ein riesen Ungetüm, weil es mit kompletten Chromium kommt.

CLion ist auch ein Blick wert, für Studenten gibts den auch kostenlos. Das ist eine vollständige IDE für C/C++ mit CMake.
 

keksautomat

Neu angemeldet

Registriert
15 Juli 2013
Beiträge
471
CLion ist für C++ wohl recht flott.
Phpstorm nutze ich für JS/PHP/HTML eigentlich ausschließlich. Hier und da mal, weil Gründe, nutze ich dafür aber auch Sublime3.

Bei Python habe ich keine Ahnung.
 

Pleitgengeier

offizielles GEZ-Haustier

Registriert
14 Juli 2013
Beiträge
7.375
Ort
127.0.0.1
Ich benutze für schlanke C-Programme meist Code::Blocks, der ist sehr schnell und klein, allerdings mehr als ein Editor.

Wenn ich nur kurz in einer C-Datei was nachsehen will, öffne ich sie mit kate - solltest du dir auch ansehen.
 

sia

gesperrt

Registriert
26 März 2015
Beiträge
5.931
Ort
FFM (NSFW)
warum hast du gerade [Geany] vorgeschlagen? :)

Ich nutze Geany selbst für sämtliche Programmierarbeiten und habe mir mehrere Profile und Workflows mit automatischem Compiler und sogar Testumgebungen angelegt. Das Ding fliegt mir zwar bei jeder kleineren Änderung von Github oder dem Workflow generell um die Ohren, aber bis dahin spare ich mir einfach mal die 2min Startzeit von größeren IDEs ;)
 

electric.larry

\''; DROP TABLE user; --
Teammitglied

Registriert
13 Dez. 2014
Beiträge
4.549
Ort
Raum 43
Ich arbeit auch zu 90 % unter Linux. Für kleinere Programmierarbeiten bin ich großer Notepad++ Fan, der läuft auf Ubuntu/Mint unter wine einwandfrei. Neben Splitscreen und Syntax Highlighting für alle relevanten Sprachen, ist für mich das Ftp Addon ein "Killer Feature", da ich ständig auf Remote Servern arbeit.
Der Editor ist neben vielen Addons trotzdem schlank und läuft schnell, was ich ziemlich wichtig find. Während meiner "Eclipse-Phase" sind mir regelmäßig die Finger während dem Programmieren eingeschlafen.

Ein kleiner Nachteil ist für mich trotzdem, dass Notepad++ unter Wine läuft, weshalb ich immer wieder auf der Suche nach einer "nativen" Lösung bin. Da ich aus der Windows Welt etwas von Visual Studio verwöhnt bin, hab ich im letzten Monat vorwiegend Microsoft Visual Studio Code Editor verwendet. Der ist - obwohl aus dem Hause Microsoft - ein cross-platform Editor und auch als Linux/Mac Executable verfügbar. (Ich nehm an, das ist im Zuge der "Opensourcierung" von .NET passiert.)
Er hat so gut wie alles, was ich mir beim Entwickeln wünsche und wäre beinahe mein neuer Lieblings-Editor geworden, würde ihm nicht das FTP Feature fehlen. Ist man Np++ gewohnt, muss man sich an die Bedienung vielleicht erst ein wenig gewöhnen, er hat aber die meisten interessanten Features und ein "frisches" UX Design.

VIM verwende ich bei der Arbeit auf Remote Shells ständig. Wenn man auf Shortcuts steht, ist das sicher einer der besten Editoren. Die grafische Variante GVim hat ja auch ein Menü, damit man sich nicht alllle 10 Millionen Shortcuts merken muss.

Was die Kontrollen angeht ist der Editor soweit wirklich echt interessant, aber was mir bisher fehlt sind Multiple Fenster beim editieren, ich würde gerne sehen in welcher Datei ich mich befinde und auch zu anderen offenen springen können, mittels Shortcut

Multiple Fenster sind für Vim eigentlich kein Problem:


Mit der Kombination STRG+w,n (sprich: Strg und W gleichzeitig, danach n) teilst du das aktuelle Fenster horizontal. Mit STRG+w,v teilst du das Fenster vertikal. Mit STRG+w,w bzw. STRG+w gefolgt von einer Pfeiltaste springst du zwischen den Fenstern hin und her. In einem leeren Fenster kannst du mit :e <pfad> eine Datei öffnen. Mit :q schießt du ein Fenster wie gewohnt.



Ein Infopanel in welcher Zeile/Spalte sich der Cursor befindet, permanent sichtbar wäre auch gut.

Die Zeilennummern kannst du mit ":set number" aktivieren, mit ":set nonumber" wieder ausblenden.
Zeilen- und Spaltennummer siehst du ganz unten rechts. z. B. 16,5 bedeutet, du bist auf Zeile 16 in Spalte 5. Mit ":24" springst du in die 24ste Zeile mit ":$" landest du am Ende der Datei.

Und auch wie es aussieht mit Syntax Highlighting oder gar so etwas wie Code Completion - gibt es da etwas für beispielsweise C oder Python?

Gibt es für so ziemlich alle Programmiersprachen. ":set syntax" schaltet Syntax Highlighting allgemein ein und versucht die passende Sprache anhand der Dateiendung zu erraten. Mit ":set syntax=javascript" kannst du die Sprache selbst festlegen.

Code Completion verwend ich nicht, aber z. B. hier: https://valloric.github.io/YouCompleteMe/

Eine imho wichtige Einstellung bei Vim ist, dass man CTRL+c und CTRL+v verwenden kann. Ich hab dafür eine ~/.vimrc File in der die Keymappings gemacht werden und noch ein paar andere Einstellungen, die ich beim Programmieren brauchen kann:

[src=bash]colorscheme desert
set number
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab
vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+
filetype plugin indent on[/src]
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
VIM (ein reiner TextEditor?)
Da muss ich Dich leider enttäuschen. Vim ist in Deiner Liste wohl der, der die meisten Features haben kann, wenn du sie denn einbaust.

Ich hab mit Vim vor ca. 4-5 Jahren begonnen. Das Ding war schrecklich. Hab ca. 2 Jahre benötigt, bis ich die meisten Shortcuts intus hatte. Mittlerweile will ich keinen anderen Editor mehr.

Mal ein paar kleine Sachen, die man so nicht überall gleich findet:
  • Vertikal teilen: :vsp - Umschalten mit Strg+w
  • Horizontal teilen: :sp
  • Tabs (=View, 1 View kann auch mehrere gesplittete Fenster enthalten): Neuen anlegen: :tabnew - nächster Tab: gt - vorheriger Tab: gT
  • Dateimanager: :Ex
  • Wort unter dem Cursor suchen: * (mit n/N zum nächsten Sucheintrag)
  • Mit * gesuchtes Wort in die Suche einfügen: / <Ctrl+r> /
  • Zur anderen Klammer springen { -> }: <Shift+5>
  • Einfügen des <Ctrl+c>-Zwischenablagespeichers aus anderen Programmen: <Shift+Einfügen> oder <Shift+Ctrl+v>
  • Einfügen der Xorg-Zwischenablage (Markierung mit der Maus): <Ctrl+r> *

Ansonsten nehm ich Vim gern als Diff-Viewer (vimdiff). Da Vim aber ziemlich auf die englische Tastatur optimiert ist, hab ich die {} auf ÖÄ und die [] auf öä gelegt.

Mit YouCompleteMe hast du eine Code-Vervollständigung, die auf On-The-Fly-Basis compiliert. Im Hintergrund startet das Ding einen Server, der Clang und LLVM nutzt. In Kombination mit Syntastic hast du noch einen Syntax-Checker.

Ach ja, zum Installieren der Plugins solltest du einen Vim-Paketmanager verwenden, sonst kommst du leicht in Teufels Küche. Ich verwende dazu Vundle.

Meine vimrc (hat noch ein paar Bugs beim Zeilenumbruch):
Code:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Tastenbelegung + Remapping:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" F2			- Dateibrowser (Nerdtree)
" F3            - PrettyXML
" F5 			- Solution neuladen (YouCompleteMe)
" Ctrl + F5		- Tagfile neubauen (YouCompleteMe)
" F7 			- Projekt neu compilieren (YouCompleteMe)
" F12 			- Go to definition (YouCompleteMe)
" Ctrl + F12 	- Go to declaration (YouCompleteMe)
" j/k			- gj / gk: Cursor auch bei Zeilenumbruch
" <leader> \	- ü
" [ ]			- ö ä
" { }			- Ö Ä
" ühm           - Hexmodus an aus (Hexman)
" ühd           - Hexzeichen unterm Cursor löschen (Hexman)
" ühi           - Hexzeichen vor Cursor einfügen (Hexman)
" ühg           - Goto Offset (Hexman)
" ühn           - Nächster Offset (Hexman)
" ühp           - Vorheriger Offset (Hexman)
" ühs           - HexStatus (Hexman)

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Remapping:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" <leader> = \

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vundle-basierte Installation
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
" Installation:
"	mkdir -p /var/vim/bundle/vundle
" 	git clone http://github.com/gmarik/vundle.git /var/vim/bundle/vundle
"	vim
"	:PluginInstall
"
" Hilfe:
"	:PluginList				- Liste der konfigurierten Plugins
"	:PluginInstall(!)		- In der vimrc.local aufgelistete Plugins 
"							  installieren
"	:PluginSearch(!) $paket	- Suche oder Aktualisieren Cache von $Paket
" 	:PluginClean(!)			- Bestätige die Entfernung von nichtbenötigten 
" 							  Plugins
"
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vundle-Setup
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible
filetype off
set rtp+=/var/vim/bundle/vundle/
call vundle#rc("/var/vim/bundle/")

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vundle-Plugins
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Plugin 'gmarik/vundle'

Plugin 'tpope/vim-repeat'
Plugin 'vim-scripts/matchit.zip'
Plugin 'scrooloose/nerdtree'
Plugin 'Valloric/YouCompleteMe'	" Hexe + Miniding
Plugin 'scrooloose/syntastic'	" Hexe + Miniding
Plugin 'bling/vim-airline'
"Plugin 'nginx.vim'				" Nas
Plugin 'chikamichi/mediawiki.vim'
Plugin 'sukima/xmledit'
Plugin 'hexman.vim'
Plugin 'marijnh/tern_for_vim'   " Javascript autocompletion
Plugin 'othree/html5.vim'

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim-Einstellungen - Allgemein
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible	" Keine VI-Kompatibilität
set history=100		" Default: 20
set noerrorbells	" Ton ausschalten
set novisualbell	" auch nicht blinken
set hidden			" Buffer verstecken anstatt zu schließen
"set modeline		" Modelines erlauben Änderung der Setting per Textfile
"set exrc			" erlaubt Settings für jedes Verzeichnis
"set secure			" sollte zusammen mit exrc verwendet werden
set clipboard=unnamedplus	" Vim-Zwischenablage in globale Zwischenablage

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Einrücken + Tabs + Zeilenumbruch
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set autoindent		" Voraussetzung für Smartindent
"set smarttab		" Tab mit Leerzeichen
set shiftwidth=4	" Anzahl Spaces bei autoindent
set tabstop=4		" Tabweite in Spaces
set expandtab		" Spaces einfügen wenn Tab gedrückt wird
set wrap			" Zeilenumbruch auch in Wortmitte
set linebreak		" Zeilenumbruch nur nach ganzen Wörtern ohne EOL
set nolist 			" Notwendig, damit linebreak funktioniert
set textwidth=0		" Zeilenumbruch nach x Zeichen mit EOL
set wrapmargin=0	" Zeilenumbruch bei x Zeichen vom rechten Rand mit EOL
set ruler			" Zeile und Spalte anzeigen
set backspace=indent,eol,start	" Backspace normal verwenden
set whichwrap+=<,>,h,l          " mit h,l über Zeilenenden hinaus
set formatoptions=tcrqn         " autowrap and comments (see :h 'fo-table)
"set showmatch		" Zusammengehörende Klammern anzeigen
set hlsearch		" Gesuchten Begriff highlighten
set incsearch		" Highlighting schon beim eintippen
"set list			" Tabs und Leerzeichen am Zeilenende anzeigen
"set listchars=tab:\|\ ,trail:.,extends:>,precedes:<

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" UI
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set report=0		" Immer anzeigen, wieviele Zeilen geändert wurden
set fillchars=vert:\ ,stl:\ ,stlnc:\    " Blanker Trennbalken bei vsp/sp
set laststatus=2	" Statuszeile immer anzeigen
"set statusline=%n\ %f\ %w%y%r%m%{&fileformat}\ %{&fileencoding}\ %=\ %l/%L,%-5c\ %P\				" Statusanzeige -> airline
set lazyredraw		" Kein Bildudpate, wenn Macros ausgeführt werden
set scrolloff=5 	" Scrollen schon 5 Zeilen von unten/oben beginnen
set number			" Zeilennummern anzeigen
syntax on			" Syntax-Highlighting Defaultfarben
set t_Co=256		" 256-Farben-Konsole
set bg=dark
"colorscheme torte	" Theme

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Farben: http://i.stack.imgur.com/U5AJI.png
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
hi Pmenu ctermfg=lightgrey ctermbg=235
hi PmenuSel ctermfg=black ctermbg=250
"hi Normal     ctermfg=LightGrey  ctermbg=Black
hi Search     ctermfg=Black      ctermbg=yellow     cterm=NONE
hi Visual      ctermfg=lightgrey  ctermbg=darkgrey
"hi Cursor     ctermfg=Black      ctermbg=Green   cterm=bold
"hi Special    ctermfg=Brown	???
"hi Comment    ctermfg=Cyan
hi StatusLine 	ctermfg=lightgrey 	ctermbg=darkblue	cterm=NONE
hi StatusLineNC 	ctermfg=lightgrey 	ctermbg=darkblue	cterm=NONE	"obere Statuszeile
hi Statement	ctermfg=Yellow						cterm=NONE
hi Type										cterm=NONE
hi cursorline 	ctermbg=17 							cterm=NONE "dunkelblau
set cursorline

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Syntax-Highlighting
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:tex_flavor = "latex"

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Dateihandling + Encoding
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nobackup					" Backup~ vor Überschreiben deaktivieren
set encoding=utf-8 				" intern UTF-8 benutzen
set fileencoding=utf-8 			" Default for new files
set termencoding=utf-8 			" Terminal encoding
set fileformats=unix,dos,mac 	" support all three, in this order
set fileformat=unix 			" default file format
 
filetype plugin indent on 				" load filetype plugins

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Tastatur-Remapping
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Achtung: Keine Kommentare hinter dem Remapping!

"Cursor auch bei Zeilenumbruch: j -> gj / k -> kg
noremap j gj
nnoremap k gk

"Backslashtaste auf ü legen
" Sonderkonfiguration Windows
" ü=CHAR-252 - Escapezeichen \ damit der CHAR akzeptiert wird
"let mapleader="\<CHAR-252>"
let mapleader="ü"

" [] im Normalmodus auf öä legen
" Sonderkonfiguration Windows
" ä=CHAR-228, ö=CHAR-246
"noremap <CHAR-228> ]
noremap ö [
"noremap <CHAR-246> [
noremap ä ]

" {} im Normalmodus auf ÖÄ legen
" Sonderkonfiguration Windows
" Ä=CHAR-196, Ö=CHAR-214
"noremap <CHAR-214> {
noremap Ö {
" noremap <CHAR-196> }
noremap Ä }

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Mousescrolling
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set selectmode=mouse 			" Markieren und Einfügen ohne Visual-Mode
set mouse=a						" im Visual- und Normalmodus

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Nerdtree 		
" F2			- Dateibrowser auf F2
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <F2> :NERDTreeToggle<CR>
let NERDTreeHighlightCursorline=1
let NERDTreeIgnore = ['tmp', '.yardoc', 'pkg']


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" YouCompleteMe
" F5 			- Solution neuladen
" Ctrl + F5		- Tagfile neubauen
" F7 			- Projekt neu compilieren
" F12 			- Go to definition
" Ctrl + F12 	- Go to declaration
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:ycm_path_to_python_interpreter = '/usr/bin/python2'
"let g:ycm_server_keep_logfiles = 1
"let g:ycm_server_log_level = 'debug'

" auch in Kommentaren autocomplete
let g:ycm_complete_in_comments = 1					

" Autocomplete auch aus CTags-File
let g:ycm_collect_identifiers_from_tags_file = 1	
let g:ycm_add_preview_to_completeopt = 1			" Preview String

" Vervollständigung durch Ctrl+P - klappt nicht
" let g:ycm_key_invoke_completion = '<C-p>'			
let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_previous_select_completion = ['<Up>']

" Globale ycm_extra_conf - meckert trotzdem
let g:ycm_confirm_extra_conf = '/var/vim/ycm_extra_conf.py'	
let g:ycm_confirm_extra_conf = 0

" GoTos in Split-Window öffnen
let g:ycm_goto_buffer_command = 'horizontal-split'	

nnoremap <F5> :YcmCompleter ReloadSolution<CR>		" Dateien neu einlesen
nnoremap <C-F5> :!ctags -R -o tags --c++-kinds=+p --fields=+iaS --extra=+q ./ 
nnoremap <F7> :YcmForceCompileAndDiagnostics<CR>	" checkt den Quellcode
nnoremap <F12> :YcmCompleter GoToDefinition<CR>		" Definition in Split
nnoremap <C-F12> :YcmCompleter GoToDeclaration<CR>	" Deklaration in Split


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Airline
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:airline#extensions#tabline#enabled = 1
let g:airline_theme='understated'
"let g:airline_powerline_fonts = 1	"TODO: gepatchte Powerline-Fonts


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Syntastic
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:syntastic_cpp_check_header = 1
let g:syntastic_cpp_compiler = 'clang++'
let g:syntastic_cpp_compiler_options = ' -std=c++14 -stdlib=libc++'
" Die linke Fehlerzeile permanent anzeigen, um das Bildspringen zu
" verhindern - Funktioniert überall - nur nicht in C/C++
"augroup mine
"	au BufWinEnter * sign define mysign
"	au BufWinEnter * exe "sign place 1337 line=1 name=mysign buffer=" . bufnr('%')
"augroup END

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" PrettyXML
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! DoPrettyXML()
  " save the filetype so we can restore it later
  let l:origft = &ft
  set ft=
  " delete the xml header if it exists. This will
  " permit us to surround the document with fake tags
  " without creating invalid xml.
  1s/<?xml .*?>//e
  " insert fake tags around the entire document.
  " This will permit us to pretty-format excerpts of
  " XML that may contain multiple top-level elements.
  0put ='<PrettyXML>'
  $put ='</PrettyXML>'
  silent %!xmllint --format -
  " xmllint will insert an <?xml?> header. it's easy enough to delete
  " if you don't want it.
  " delete the fake tags
  2d
  $d
  " restore the 'normal' indentation, which is one extra level
  " too deep due to the extra tags we wrapped around the document.
  silent %<
  " back to home
  1
  " restore the filetype
  exe "set ft=" . l:origft
endfunction
command! PrettyXML call DoPrettyXML()
nnoremap <F3> :PrettyXML<CR>

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Hexman
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" http://www.vim.org/scripts/script.php?script_id=666

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Tern for Vim
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" https://github.com/marijnh/tern_for_vim
" Post-Installation: cd /var/vim/bundle/tern_for_vim && npm install
" Node.js muss installiert sein
Vundle musst du manuell erst mal installieren. Bei YouCompleteMe musst du nach der Installation das Install-Script (bei mir: /var/vim/bundle/YouCompleteMe/install.sh --clang-completer --system-clang) ausführen. Und damit es funktioniert, brauchst du noch in Deinem Verzeichnis, in dem du Dein C/C++-Projekt hast eine .ycm_extra_conf.py. Dazu findest du eine Vorlage ebenfalls im YouCompleteMe-Installationsverzeichnis.

Du kannst Vim sogar als Frontend für den gdb benutzten. Hab ich aber noch nicht ausprobiert.

Eine imho wichtige Einstellung bei Vim ist, dass man CTRL+c und CTRL+v verwenden kann.
Und der Visual-Modus?
 
Zuletzt bearbeitet:

BurnerR

Bot #0384479

Registriert
20 Juli 2013
Beiträge
5.505
Ah nice.
Ich liebäugel auch grad mit vim.
Gründe: Auf jedem vernünftigen Serversystem installiert :p. Wird es auch in 25 Jahren noch geben und aktiv gepflegt werden. Hardcore plugins für etliche prog. sprache oder framework. Extrem gut konfigurierbar.
Eine Liebe fürs Leben.
Ich habs auch schon rudimentär verwendet immer wenn ich irgendwo per ssh war. Ich kann nicht viel, aber das wenige was ich kann finde ich ziemlich angenehm.

PS.: Direkt mal ausprobiert was ihr hier an Befehlen gezeigt habt. Schick :D.
 
Zuletzt bearbeitet:

electric.larry

\''; DROP TABLE user; --
Teammitglied

Registriert
13 Dez. 2014
Beiträge
4.549
Ort
Raum 43
Und der Visual-Modus?

Was meinst du damit genau?

Wenn ich im Visual Modus etwas kopiere :y kann ich es mit :p wieder einfügen, alles klar. Wenn ich aber GVim am laufen hab, im Browser eine Zeile kopiere (STRG + c) kann ich sie im visual modus nicht mit :p oder STRG + v einfügen. Deshalb das Keymapping.

Überseh ich hier irgendetwas? Geht das auch ohne ein eigenes Mapping?

Wie mächtig vim ist, wurde mir eigentlich erst richtig klar, als ich das Vdebug Addon bzw. Xdebug verwendet habe um PHP Scripts über SSH Sessions zu debuggen.
 

BurnerR

Bot #0384479

Registriert
20 Juli 2013
Beiträge
5.505

Das ist nett. aber guckt euch das hier mal an, das habe ich gestern abend beim stackoverflow surfen entdeckt :D.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #14
Erstmal riesen Dank für eure reges Feedback hier im Thread :)

Die vorgeschlagenen Editoren sehen alle sehr gut aus, was ich persönlich bei den lizenzierten Editoren (bzw. IDEs) als Problem sehe ist das ständige nachrüsten wenn eine neue Version aufkommt, was gar nicht so günstig ist auch wenn das Geld irgendwo ja gut investiert ist. Die JetBrain Produkte an sich sind auch sehr gut, aber leider wirklich immer nur für einen Anwendungszweck gestaltet und ich mag deren Lizenzpolitik leider überhaupt nicht auch wenn man innerhalb eines Jahres aufrüsten kann ab Kaufdatum. Da muß man schon den Release Cycle clever abpassen um nicht drei mal zu kaufen. ;)

Es äugt mir, man könnte scheinbar schon allein über VIM einen eigenen Thread aufmachen. Aber ich bin überrascht das es scheinbar doch so viele Optionen und Wege gibt den Editor zu erweitern bzw. anzupassen. Ist natürlich wieder ein riesen Toolset was dabei beherrscht werden will, neben dem Editor.

Da kann ich musv Aussage verstehen das er wirklich "Jahre" damit gekämpft hat bis er alles soweit intus hatte damit umzugehen.

Ich werde mich wohl erst nächstes Wochenende mit euren Beiträgen richtig auseinandersetzen, für mal eben nebenbei ist das viel zu viel Input und das will ja auch verinnerlicht gewusst sein und ausprobiert werden. :cool:

Das Notepad++ Problem kenne ich auch, das ist wirklich ein Allrounder und ein Katzenjammer das es nur für Windows vorhanden ist...

Kate habe ich mir btw. schon angesehen, gefällt mir wirklich sehr gut, besonders das so viel Syntax(e) unterstützt werden, obwohl der Name so unscheinbar ist, auch hier Danke für den Tip :)

Geany wäre auch einen Blick Wert, werde ich mal antesten wie weit ich mit dem Editor beim programmieren komme - oder ob ich nach 10 Minuten verzweifle. ;)
 
Zuletzt bearbeitet:

sia

gesperrt

Registriert
26 März 2015
Beiträge
5.931
Ort
FFM (NSFW)
Viel besser als bei Notepad++ finde ich bei Geany die Erweiterbarkeit und die Integrierbarkeit in meinen Workflow (Stand: vor 3 Jahren, kA was N++ drauf hat mittlerweile), wie schon erwähnt. Ich wüsste nicht, was Geany nicht kann was Notepad++ kann. Habe allerdings Notepad++ auch nicht wirklich oft genutzt.

EDIT: Geany kann auch sämtliche Syntaxe unterstützen. Und wenn nicht, kannst du dir deine eigene Syntax nachrüsten. Ich empfehle auch, die zahlreichen Plugins mal zu durchstöbern, eventuell ist da für dich was cooles dabei.
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
Was meinst du damit genau? [Visual Mode]
Du mappst Einfügen auf <ctrl+v>. Diese Kombination nutzt aber Vim, um den Visual Mode zu aktivieren.

Wenn ich aber GVim am laufen hab, im Browser eine Zeile kopiere (STRG + c) kann ich sie im visual modus nicht mit :p oder STRG + v einfügen. Deshalb das Keymapping.
Probier mal <strg+shift+v>

Wie mächtig vim ist, wurde mir eigentlich erst richtig klar, als ich das Vdebug Addon bzw. Xdebug verwendet habe um PHP Scripts über SSH Sessions zu debuggen.
Kannst du da mal 'ne verständliche Anleitung geben? Ich hatte xdebug vor langer Zeit mal probiert, war aber zu blöd dafür. Hab's nicht auf die Reihe bekommen.

Kate habe ich mir btw. schon angesehen,
Kate hat auch einen Vim-Eingabemodus.
 

electric.larry

\''; DROP TABLE user; --
Teammitglied

Registriert
13 Dez. 2014
Beiträge
4.549
Ort
Raum 43
@musv: Visual Mode startet afaik per Default mit "v"

Leider keine Ahnung welches xdebug Tutorial ich verwendet hab. Brauch das selten und habs einfach jedes Mal gegoogelt.
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
@musv: Visual Mode startet afaik per Default mit "v"
v - Visual Mode
<ctrl+v> - Visual Mode Block
<shift+v> - Visual Mode Zeile

Btw. wenn wir schon bei Kulteditoren sind, sollte an der Stelle natürlich Emacs nicht unerwähnt bleiben. Schließlich haben es schon irgendwelche Leute geschafft, den Editor zum Windowmanager umzubauen.

https://qph.is.quoracdn.net/main-qimg-b6567fd9d5f1b8bc7d14f8016d64efed?convert_to_webp=true
http://mrozekma.com/editor-learning-curve.png
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
  • Thread Starter Thread Starter
  • #19
Ich melde mich auch nochmal zu Wort, ich bin nun mal eure Tastenkombos und Configs durchgegangen. Alles hat bei mir nicht funktioniert, aber vermutlich vermisse ich da irgend ein Colorsheme das nicht per default installiert ist. Die Defaults haben zumindest alle funktioniert und sind zum größten Teil auch selbsterklärend. :)

Das Keyremapping hab ich auch noch nicht ganz geblickt. War eine etwas ernüchternde Erfahrung das es so nicht auf anhieb klappte.

Was mir jedoch den letzten Nerv gekostet hat war die Vundle und Plugin Installation - da gabs so einige Probleme. Ich hab es nicht gebacken bekommen eine Plugin in meine "vimrc" eintragen zu lassen... Die Plugins wurden zuerst in das Home Verzeichnis des Users kopiert, was ich dann auf eine fixen Home-Pfad versetzt habe damit ich als Non-Sudo User Plugins installieren kann. Aber darauf hin(?) wurde die vimrc nicht bearbeitet und keine Plugins eingebunden.
Ich hatte diesen Schritt auch nicht weiter getestet, sondern es als normaler User probiert.

Den Pfad mit "~.vimBundle/Verzeichnis" ist also de facto auch keine gute Idee, weil sonst alles relativ für den aktuellen User gespeichert wird, die Pfade lassen sich ja auch anpassen, bleibt aber nur noch das der normale User keine Schreibrecht auf "vimrc" bekommt bzw. "vimrc.local" (in der ich die Änderungen bisher übernommen hatte).

In meinem Home Verzeichnis (Debian/Stretch) fand ich auch kein ".vim" Verzeichnis.

In der aktuelle Doku von Vundle findet sich darüber auch nichts, auch war in den Logs keine Fehlermeldung das etwas nicht bearbeitet/eingetragen werden kann damit die Plugins automatisch korrekt laden. ("vimrc" ?).

Zu guter Letzt hab ich etwas entnervt aufgegeben und Vundle erst mal wieder entfernt - hätte natürlich mal testen sollen ob die Installation/das Eintragen eines Plugins als Root User funktioniert hätte - aber andersherum wäre es mir schon lieber wenn man das auch ohne Root vollautomatisch machen lassen könnte, oder man sollte es dazu schreiben das Vundle Schreibrechte auf /etc/vim/vimrc benötigt.
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
Ja, die Installation ist systemweit, also als root. Bin grad im Urlaub, und hab nur das Handy als Internetzugang. Ich meld mich noch mal am 4.11. Dann können wir das mal detaillierter durchgehen.
 
Oben