Eine IDE in einem Container oder auf einem entfernten Rechner? Oder zumindest ein Editor, der nahe an eine IDE herankommt? Ein Editor, der für die gängigen Sprachen Autocompletion anbietet und die Parameter von Methoden beschreibt? Ein Editor mit eingebauten Filebrowser?

Dieser Editor existiert in der Vim Distribution SpaceVim:

SpaceVim ist kein Fork von Vim, sondern eine Vim Distribution von gebräuchlichen und nützlichen Plugins. Den Vorteil von SpaceVim sehe ich persönlich vor allem darin, dass ich mir das Installieren und Konfigurieren von Vim Plugins und das Schreiben von Aufwändigen Vim Konfigurationen sparen kann.

Auf der SpaceVim Webseite ist das folgendermassen beschrieben:

SpaceVim is a community-driven Vim distribution with layer feature. SpaceVim manages collections of plugins in layers. Layers make it easy for you, the user, to enable a new language or feature by grouping all the related plugins together. It got inspired by spacemacs.

https://spacevim.org/about/

Installation in einen Container

Die Installation von SpaceVim inklusive benötigter Libraries:

docker container run -it --name=testcontainer ubuntu:bionic /bin/bash

apt update
apt install vim
apt install make  
apt install gcc
apt install curl
apt install git
apt install python3-pip
python3 -m pip install --user flake8
python3 -m pip install --user isort
python3 -m pip install --user yapf

curl -sLf https://spacevim.org/install.sh | bash
cd ~/.SpaceVim/bundle/vimproc.vim/
make

Konfiguration

Dann benötigt es noch etwas Handarbeit. Das SpaceVim Konfigurationsfile findet man unter ~/.SpaceVim.d/init.toml. Es kann aber auch direkt in Vim mit folgender Tastenkombination geladen werden: ‘Space’, f, v, d.

SpaceVim sollte nun das Konfigurationsfile geladen haben:

Folgender Code sollte hineinkopiert werden:

[[layers]]
name = "colorscheme"

[[layers]]
name = "tools"

[[layers]]
name = "debug"

[[layers]]
name = "lang#python"

[options]
filemanager = "nerdtree"

Colorscheme

Mit Colorscheme kann der Look angepasst werden. Die Themes sind auf SpaceVim aufgelistet. Im Dockercontainer war es mr unter root nicht möglich ein anderes Theme zu laden, in der VM funktioniert es aber tadellos. Geändert wird es im SpaceVim Konfigurationsfile (Tastenkombination ‘Space’, f, v, d) und Anpassen der Zeile:

colorscheme = "gruvbox"

lang#python

Mit dem Sprachsupport kommen auch Syntaxhighlighting und Autocompletion für spezifische Sprachen:

Am Anfang ist die Haptik etwas seltsam, aber man gewöhnt sich daran. Schnelles Editieren wie in VS-Code benötigt etwas Übung.

Filemanager

Der Filemanager kann mit <F3> aufgerufen werden, beim start von Vim wird er per Default aufgerufen.

Mit der Tastenkombination “2 x Crlt W” wechselt man in den Filemanager. Nerdtree sieht meiner Ansicht nach etwas besser aus, als der Standard Filemanager. Der Filemanager kann sich in Container als nützlich erweisen, wenn nur eine Session eröffnet wurde.

Die wichtigsten Shortcuts:

<F3>:      Anzeigen von Filemanager (Ein/Aus)
Shift + i: Anzeigen von Dotfiles (Ein/Aus)

Bookmarks

Bookmarks können beim Bearbeiten von grösseren Scripts sehr hilfreich sein.

m, m  : Bookmark setzen/entfernen
m, n  : zum nächsten Bookmark springen
m, p  : zum letzten Bookmark springen     

Handhabung

Neben vielen Shortcuts, unterstützt SpaceVim auch die Maus. Generell ist die Taste <Space> ein guter Anlaufpunkt: diese öffnet ein interaktives Menü.

Die wichtigsten Shortcuts

Control + W + <  : bei vsplit wird Windowsize des 
                   aktiven Windows verkleinert
<Space>, f, v, d : öffnen des SpaceVim Konfigurationsfiles 

Native Vim Commands sind natürlich auch unterstützt:

:split <Filename>  : öffnen eines Files in einem separaten 
                     Fenster
:vsplit <Filename> : öffnen eines Files bei einem  
                     horizontalen Split 

Fazit

Natürlich gibt es noch weit mehr über SpaceVim zu schreiben. Die Dokumentation ist umfangreich und man ahnt, wie konfigurierbar SpaceVim ist. Als minimalistische IDE auf einem entfernten Rechner oder notfalls in einem Container finde ich persönlich SpaceVim spannend.

Das Thema Git oder Debuggen habe ich in diesem Artikel nicht erwähnt. Vielleicht gibt es ja noch einen dritten Vim Teil, der sich um weitere Themen drehen.

Schreibe einen Kommentar