Hinzufügen von Vim-Tastenzuordnungen zu Xcode mit XVim

June 19, 2017
Autor:in:
Sam Agnew
Twilion

Hinzufügen von Vim-Tastenzuordnungen zu Xcode mit XVim


Hallo und Danke fürs Lesen! Dieser Blogpost ist eine Übersetzung von <link to original>. Während wir unsere Übersetzungsprozesse verbessern, würden wir uns über Dein Feedback an help@twilio.com freuen, solltest Du etwas bemerken, was falsch übersetzt wurde. Wir bedanken uns für hilfreiche Beiträge mit Twilio Swag :)

Beim Erstellen von iOS-Anwendungen arbeiten wir normalerweise mit Xcode. Xcode ist ein hervorragendes Tool, allerdings vermisse ich den Kick der modalen Textbearbeitung von meinem bevorzugten Texteditor: Vim. Vim ist zwar standardmäßig auf OSX verfügbar, aber es lässt sich nur schwer für die iOS-Entwicklung nutzen. XVim hingegen vereint das Beste aus beiden Welten. Hier können Vim-Tastenzuordnungen und -Funktionen zu Xcode hinzugefügt werden.

Vorbereiten eines Zertifikats für die Code-Signierung

Bevor wir fortfahren, müssen wir sicherstellen, dass Xcode geschlossen ist.

Seit Xcode 8 lädt Apple keine Drittanbieter-Plug-ins mehr, deshalb müssen wir zu diesem Zweck Xcode eine Code-Signierung hinzufügen. Du kannst entweder den Schritten auf dieser Seite folgen oder einfach weiterlesen.

Falls wir bereits ein Zertifikat vom Apple-Entwicklerprogramm haben, können wir diesen Abschnitt überspringen und direkt mit dem nächsten fortfahren. Andernfalls führen wir die folgenden Schritte durch:

  1. Wir öffnen „Keychain Access“ (unter „Applications“ -> „Utilities“) und klicken im linken Fensterbereich auf „Login“.
  2. Wir wählen die Option „Create a Certificate“ aus (unter „KeyChain Access“ -> „Certificate Assistant“) (siehe Screenshot):
xcode screenshot
  • Wir geben den gewünschten Namen ein und wählen „Code Signing“ als Zertifikatstyp aus. Dieser Name wird später in einem Terminalbefehl verwendet, deshalb sollten wir hier einen leicht zu unterscheidenden Namen auswählen. In unserem Beispiel verwenden wir „XcodeSigner“.
xcode screenshot

Damit haben wir ein Zertifikat für die Code-Signierung erstellt.

Erstellen von XVim

Mit unserem Zertifikat führen wir den folgenden Befehl im Terminal aus:

sudo codesign -f -s XcodeSigner /Applications/Xcode.app

Das dauert vermutlich eine Weile, deshalb können wir uns mit einer kleinen Jam-Session die Zeit vertreiben.

jamming gif

Jetzt sind wir endlich soweit, um mit XVim loszulegen. Ich freue mich schon jetzt auf die modale Textbearbeitung, die die Zukunft für uns bereithält. Zuerst klonen wir das XVim-GitHub-Repository. Hierzu geben wir den folgenden Befehl in das Terminal ein:

git clone git@github.com:XVimProject/XVim.git
cd XVim

Als Nächstes prüfen wir, ob xcode-select auf unser Xcode verweist:

xcode-select -p

In meinem Fall liegt es unter /Applications/Xcode.app/Contents/Developer

Mit xcode-select -s können wir das ändern, falls es nicht stimmt. Im XVim-Verzeichnis führen wir den folgenden Befehl aus:

make

Wir sehen eine etwas unsinnig erscheinende Ausgabe im Terminal, aber am Ende sollte die Meldung ** BUILD SUCCEEDED ** angezeigt werden. Wenn wir Probleme mit der neuesten Xcode-Version haben, hilft uns eventuell dieses GitHub-Thema weiter. Bei Problemen wechseln wir zum develop-Zweig: git checkout develop.

Während des Erstellungsprozesses werden wir möglicherweise über eine Meldung, die besagt, dass die Kompatibilität mit unserer Xcode-Version nicht bestätigt werden konnte, um eine Berechtigung gebeten. Falls das der Fall ist, geben wir einfach y ein. Anschließend sollte XVim kompiliert sein. Jetzt kommen wir endlich zum interessanten Teil: die Anpassung der .xvimrc.

Erstellen einer .xvimrc für die Anpassung

Jeder, der mit Vim zu tun hat, weiß zu schätzen, dass Tastenzuordnungen ganz nach Belieben konfiguriert werden können. Manchmal fühle ich mich etwas verloren, wenn ich das reine Vim oder vi verwende oder wenn die Einstellungen einfach nicht passen.

Grundsätzlich funktioniert XVim ganz ähnlich. Wir erstellen einfach eine .xvimrc in unserem Stammverzeichnis und fügen dort alles hinzu. Das funktioniert bei Bedarf auch mit Vim:

vim ~/.xvimrc

Wir rufen den Einfügemodus auf (es sei denn, wir verwenden einen anderen Texteditor) und fügen Folgendes ein, wenn wir eine grundlegende .xvimrc-Beispieldatei erhalten möchten:

" Maps escape to jj and jk so you don't ever have to actually hit that pesky
" escape key to get out of insert mode. Feel free to switch this with another
" common choice: Caps Lock.
inoremap jj <Esc>`^
inoremap jk <Esc>`^

" Quick command mode
nnoremap ; :

" Search the string cursor points to. Very Useful.
map ,s viw:xccmd findSelectedTextInWorkspace<CR>

" Save when esc
ino <Esc> <Esc>:xcmenucmd Save<CR>

" tab new
map ,tn :xccmd newTab<CR>
" tab close
map ,tc :tabclose<CR>
" tab pre
map ,ti :xccmd selectPreviousTab<CR>
" tab next
map ,to :xccmd selectNextTab<CR>

Das kann natürlich ganz nach Belieben abgeändert werden oder du kannst deine eigenen Eingaben machen. Bei dieser .xvimrc-Datei handelt es sich um ein Grundgerüst, das ich zusammengestellt habe und für sehr nützlich halte. Xcode handhabt zwar bereits die wichtigsten Dinge, die bei Vim fehlen, aber jetzt können wir uns die modale Textbearbeitung zunutze machen.

Wir können jetzt Xcode starten und den Funktionsumfang von Vim nutzen.

XVim

Ich würde gern mehr davon erfahren, an was du gerade arbeitest. Kontaktiere mich, wenn du Tipps und Tricks zu Vim oder Xcode teilen möchtest.