vim als Dateibrowser und (S)FTP-Client

30. März 2009 von

vim bietet Funktionen an, um sich die Dateien in einem Ordner anzusehen.
Dafür braucht man nur statt einer Datei einen Ordner mit vim zu öffnen. Z.B. mit

vim meinordner

wird das Verzeichnis “meinordner” geöffnet. Oder aus vim heraus z.B. mit

:e .

um das aktuelle Verzeichnis in vim zu öffnen.

Nun wird der Ordnerinhalt angezeigt. Dort kann man wie gewohnt mit j und k den Cursor nach oben und unten Bewegen. Mit Enter öffnet man eine Datei oder einen Ordner. Die Ordner werden blau dargestellt und werden vor den Dateien einsortiert (wie auch in vielen graphischen Dateibrowsern).
Interessant in diesem Zusammenhang ist das Plugin NERDTree, welches die Standardfunktion mit einem Dateibaum ersetzt und einige Tastenkombinationen bietet um z.B. einen Teilbaum zu öffnen oder zu schließen.

Genauso leicht kann man auch Dateien über FTP oder SFTP bearbeiten. Dafür startet man vim einfach mit der URL als Argument:

vim ftp://servername.tld/pfad/zur/datei

bzw für SFTP:

vim scp://servername.tld/pfad/zur/datei

Man kann wie von ftp gewohnt auch den Usernamen direkt mit angeben:

vim ftp://user@servername.tld/pfad/zur/datei

So spart man sich das lästige Hoch- und Runterladen von Dateien über FTP.

Lesezeichen kann man in der Datei ~/.netrc speichern indem man für jeden Rechner eine Zeile mit folgendem Inhalt anlegt:

machine HOSTNAME login USERID password "PASSWORD"

(Die Groß geschriebenen Wörter müssen jeweils ersetzt werden)

Natürlich kann man auch auf dem FTP-Server den in vim integrierten Dateibrowser nutzen:

vim ftp://servername.tld/pfad/zum/verzeichnis/

Wichtig ist hier der Slash am Ende.

Jabber Bot zBot in Version 0.2

28. März 2009 von

Heute stelle ich die Version 0.2 von meinem Jabber Bot zBot vor.

Nun wird eine Logdatei unterstützt, in der alle Konversationen mit dem Bot gespeichert werden können. Die Option kann in der Datei modules/Configs.pm ein- und ausgeschaltet werden. Dort kann auch der Ort bestimmt werden, wo die Logdatei gespeichert werden soll. Ein Timestamp wird mit gespeichert. In einem MUC (Chat) wird das gesammte dortige Gespräch mit geloggt, nicht nur die Konversation mit dem Bot.

Des weiteren wurde die Plugin-Schnittstelle erweitert. Nun kann neben der Hilfe auch eine Kurzbeschreibung angegeben werden, die bei der Auflistung der verschiedenen Befehle angezeigt wird. Jetzt kann auch eine Referenz zu einer Idle-Funktion angegeben werden, die alle 15 Sekunden aufgerufen wird. Diese kann genutzt werden um z.B. regelmäßig RSS-Feeds abzurufen (bei einem RSS-Plugin) oder um ähnliche Aufgaben im Hintergrund zu erledigen. Die Vorhandenen Plugins können jedoch auch ohne Änderung weiter verwendet werden. Jedoch habe ich die Plugins hier auf dem Blog entsprechend aktualisiert, so dass sie nun eine Kurzbeschreibung enthalten.

Das Plugin “Say” (Kommando sag), welches den Bot in Chaträumen etwas sagen lässt wurde erweitert. Nun kann er auch in Räumen etwas sagen, die nicht in der Konfigurationsdatei angegeben sind und noch nicht mal auf dem angegebenen Conference-Server liegen müssen (In der modules/Configs.pm lässt sich der Bot jedoch auf den eigenen Conference-Server beschränken). Danach ist er in den entsprechenden Räumen eingeloggt und nimmt dort auch Befehle entgegen. mit dem Befehl

sag ignoriere raumname

kann man ihn im Raum raumname wieder zum schweigen bringen (Befehle aus diesem Raum werden dann ignoriert bis der Bot mit sag erneut etwas in dem Raum sagen soll). Mehr Infos sind in der Hilfe verfügbar (hilfe sag). Eine Funktion um den Bot aus dem Raum wieder abzumelden wird leider nicht von der Bibliothek (Net::Jabber::Bot) unterstützt.

Beim Befehl hilfe wird die Ausgabe der möglichen Befehle nun alphabetisch sortiert.

Eine Updatefunktion gibt es leider nicht. Da sich auch in der Konfigurationsdatei ein paar Änderungen ergeben haben, müssen alle Dateien ersetzt werden und die Daten erneut in die Konfigurationsdatei modules/Configs.pm eingefügt werden.

Die neue Version kann im ursprünglichen Artikel zBot – ein Jabber Bot in Perl herunter geladen werden. Dort findet man auch weitere Informationen zum Bot.

Tools zur VHDL Entwicklung in der Linux Konsole

25. März 2009 von

Wie versprochen hier ein Toolset zu VHDL in der Linux Konsole.

Um sich das ganze geklicke zum Synthetisieren und Implementieren unter ISE zu ersparen, hat Torsten Meißner ein Makefile mit einigen Batch Dateien erstellt, die von Simon Schulz erweitert wurden. Auf seiner Website kann man sie herunter laden (und darauf beziehe ich mich im Folgenden).

Wenn das Archiv entpackt ist, kann man seine vhd Dateien in den Ordner ./rtl kopieren. In der Datei ./config/settings werden grundlegende Einstellungen vorgenommen. Die ucf-Datei kommt in das Verzeichnis ./layout.

Nach einem make project sollte eigentlich alles Funktionieren. Jedoch wird in den Dateien ./syn/src/implement.sh und ./syn/src/synthesize.sh die nichtexistente Datei ~/Xillinx/settings.sh importiert, die einige Umgebungsvariablen definieren soll. Diese Definitionen habe ich einfach statt dem Aufruf der Datei in dei beiden Dateien geschrieben. Der Pfad zum ISE Verzeichnis muss entsprechend angepasst werden:

#set envirement for ise
#. ~/Xilinx/settings.sh
export PLATFORM=lin
export XILINX=/path/to/ISE
export LMC_HOME=${XILINX}/smartmodel/${PLATFORM}/installed_lin
export PATH=${XILINX}/bin/${PLATFORM}:${PATH}
export LD_LIBRARY_PATH=${XILINX}/bin/${PLATFORM}:/usr/X11R6/lib
export NPX_PLUGIN_PATH=${XILINX}/java/${PLATFORM}/jre/plugin/i386/ns4
export myxilinxrc=${HOME}/.qt/xilinxrc

In der Makefile hat das Target bitup bei mir nicht funktioniert, da ich die libusb-driver benuzte. Daher hab ich das Ziel durch folgendes ersetzt (der Pfad zu ISE muss entsprechend angepasst werden):

#upload bit to fpga
bitup :
    bash -c 'export LD_PRELOAD=/usr/lib/libusb-driver.so; /path/to/ISE/bin/lin/impact -batch impact/impact_upload_bit.cmd'

Da das Makefile im Verzeichnis ./syn/src liegt, die vhd Dateien jedoch in ./rtl ist ein Aufruf von make aus vim heraus nur umständlich möglich. Daher habe ich ein kleines Makefile generiert, welches man ins Verzeichnis ./rtl kopieren kann.
Es wechselt für jedes Ziel das Verzeichnis und ruft das echte Makefile mit dem entsprechenden Ziel auf:

#rule for synthesis
syn :
    cd ../syn/src && make syn
 
#rule for implementation
imp :
    cd ../syn/src && make imp
 
#project file generation
project :
    cd ../syn/src && make project
 
#upload bit to fpga
bitup :
    cd ../syn/src && make bitup
 
#upload prom to fpga
promup :
    cd ../syn/src && make promup
 
#generate prom
promgen :
    cd ../syn/src && make promgen
 
#reset/unlock pport cable (if impact says cable locked)
unlock_cable :
    cd ../syn/src && make unlock_cable
 
#rule for all
all : clean syn imp bitup
 
#rule for cleaning
clean :
    cd ../syn/src && make clean

Nun funktioniert alles und man kann aus vim heraus mit :make all den kompletten Vorgang starten.

Mittels

  • :make clean werden alle temporär erstellten Dateien gelöscht (inklusive Bit-Datei)
  • :make syn wird die Synthese gestartet
  • :make imp wird die Diesign Implementation gestartet (Map, Place & Route,…) und die Bit-Datei erstellt
  • :make bitup wird die Bit-Datei in den FPGA geladen
  • :make all werden alle 4 Vorgänge nacheinander gestartet

Nachdem Dateien hinzugefügt oder gelöscht wurden muss man die Datei ./config/settings anpassen und erneut make project ausführen.

ssh – mehr als nur eine sichere Shell als telnet-Ersatz

22. März 2009 von

Viele kennen ssh nur um sich – wie ein sicheres telnet – über ein Netzwerk (bzw. das Internet) auf einen entfernten Rechner einloggen zu können. In diesem Artikel möchte ich auf andere interessante Funktionen des Programms eingehen. So kann man mit ssh auch sicher Dateien übertragen, Tunnel aufbauen oder X Programme forwarden.

TCP Forwarding

Eine praktische Sache, wenn man z.B. hinter einer Firewall sitzt und somit nicht auf alle Ports zugreifen kann ist das TCP forwarding. Damit lässt sich eine Art Tunnel aufbauen um Ports durch ssh auf einen beliebigen Port des eigenen Rechners durchzureichen.

Am besten lässt sich dies mit einem Beispiel erläutern:

Man sitzt hinter einer Firewall, die zwar Verbindungen zum Port 22 (ssh) durch lässt, jedoch nicht zu Port 5222 (Jabber). Des Weiteren hat man im Internet (oder zu Hause) einen Server (in diesem Beispiel mit der Adresse: ownserver.tld) stehen, zu dem man eine ssh Verbindung aufbauen kann. Wenn man nun zu einem Jabber-Server (hier beispielhaft jabber.org) Verbinden möchte baut man eine ssh Verbindung zum eigenen Server auf und richtet einen Tunnel über den lokalen Port 1234 ein:

ssh user@ownserver.tld -L 1234:jabber.org:5222

Nun kann man sich mit seinem Jabber-Client zum Server localhost an Port 1234 verbinden und es wird automatisch über ssh an den Server getunnelt. Dieser baut dann die eigentliche Verbindung zu jabber.org an den Port 5222 auf.

(Natürlich könnte man auch direkt einen Account bei einem Jabber Server anlegen, den man über Port 80 erreichen kann. Doch wenn man schon einen Account auf einem Server hat, der nur Port 5222 anbietet, möchte man nicht unbedingt einen neuen anlegen (Kontakte fehlen dann ja auch). Es ist ja auch nur ein Beispiel :-) )

Das Tunneln funktioniert mit allen Ports und allen Servern. Die Verbindung zum eigenen Server wird natürlich verschlüsselt. Das kann also auch recht praktisch sein, wenn man in einem offenen WLAN unverschlüsselte Dienste wie IRC (nicht alle Server bieten SSL Verschlüsselung an) oder Ähnliches nutzen möchte. Die Verbindung vom Server zum eigentlichen Dienst ist jedoch wieder unverschlüsselt.

Das Einrichten eines ssh-Servers zu Hause und die Konfiguration der Weiterleitung im Router setze ich hier mal vorraus.

X Forwading

Um ein X Programm, welches auf einem entfernten Rechner läuft in der lokalen X-Umgebung bedienen zu können, kann man das X Forwarding von ssh nutzen. Das Programm läuft weiterhin auf dem entfernten Rechner, nur die Ausgabe (das graphische Fenster) wird auf den lokalen Rechner weiter geleitet.

Man loggt sich mittels

ssh -X user@remotehost.tld

auf dem entfernten Rechner ein. Ab jetzt wird das Fenster jedes graphischen Programms, welches in dieser Shell gestartet wird, automatisch auf dem eigenen Rechner angezeigt.

Sicheres Übertragen von Dateien

Zur Dateiübertragung können die beiden Befehle scp und sftp genutzt werden, die (zumindest in neueren Versionen) Bestandteil von ssh sind.

sftp kann genauso wie ftp genutzt werden: Mit put und get können Dateien hoch- bzw. heruntergeladen werden. Mit cd, ls, rm, mkdir, rmdir, pwd kann auf dem entfernten Rechner wie gewohnt navigiert werden. Mit den Befehlen lcd, lls,lmkdir und lpwd kann man auf dem lokalen Rechner navigieren.

scp funktioniert ähnlich wie das normale cp Kommando. So kann man z.B. mittels

scp user@remotehost.tld:file.txt filecopy.txt

die Datei file.txt vom Rechner remotehost.tld (im Home-Verzeichnis des Users user) ins aktuelle Verzeichnis als Datei filecopy.txt kopieren.

Genauso kann man umgekehrt mit

scp filecopy.txt user@remotehost.tld:test/filecopy.txt

die Datei filecopy.txt auf den Rechner remotehost.tld ins Verzeichnis test (im Home-Verzeichnis des Users user) kopieren.

Alle Befehle übertragen die Daten verschlüsselt, so dass man sie auch in einem offenen WLAN ohne Bedenken verwenden kann.

ssh Verbindungen ohne Eingabe des Passworts

Der Aufbau einer ssh Verbindung erfordert normalerweise die Eingabe des Passworts. Um ssh auch in Scripten nutzen zu können bzw. nicht jedes Mal das Passwort eingeben zu müssen, kann man den öffentlichen ssh-Key des lokalen Rechners auf dem entfernten Rechner speichern. Dabei ist es auch möglich nur bestimmte Befehle/Programme zuzulassen um die Sicherheit etwas zu erhöhen. Alle oben genanannten Funktionen funktionieren so auch ohne Passworteingabe.

Und so geht es:

Zuerst legt man auf dem lokalen Rechner unter dem Benutzer, mit dem man sich einloggen möchte (also normalerweise der User, mit dem man meistens arbeitet) einen ssh-Schlüssel an:

ssh-keygen -t rsa

Wenn nach einem Passwort gefragt wird, kann man einfach Enter drücken ohne eins einzugeben. Den öffentlichen Schlüssel, der nun in der Datei ~/.ssh/id_rsa.pub gespeichert ist kopiert man.

Nun wird auf dem entfernten Rechner unter dem Benutzer, als der man sich ohne Passwort einloggen können soll die Datei ~/.ssh/authorized_keys angelegt. In diese Datei wird der öffentliche Schlüssel kopiert. Man kann pro Zeile einen Schlüssel einfügen um so mehreren Benutzern (oder von verschiedenen Rechnern aus) den Zugriff zu gestatten. Das ganze könnte das so aussehen (der Schlüssel ist normalerweise länger):

ssh-rsa AbIkIdfyNfKfk1ie870qCEhmbQ== user@hostname

Um den Zugriff auf einen Befehl einzuschränken wird vor dem Schlüssel ein command=”befehl” eingefügt, wobei befehl für den erlaubten Befehl steht. Danach folgt der Schlüssel mit einem Leerzeichen dazwischen. Wichtig ist, dass alles in einer Zeile pro Schlüssel steht.

Das folgende Beispiel erlaubt nur das Kommando rsync (der Schlüssel ist normalerweise länger):

command="rsync --sserver --sender -vlogDtprz" ssh-rsa AbIkIdfyNfKfk1ie870qCEhmbQ== user@hostname

Linux und Open Source Reportage auf 3sat

21. März 2009 von

Das 3sat-Magazin “neues” hat eine recht schöne Dokumentation über Linux und opensource Software, die man sich auch kostenlos im Internet anschauen kann. Zuerst wird Linux erklärt und ein wenig auf dessen Geschichte eingegangen.

Danach wird versucht den Gedanken hinter opensource und dessen Vorteile zu erklären. Dabei werden einige Beispiele (unter Anderem OpenOffice.org und OpenStreetMap) für freie Software und andere freie Projekte angeführt.

Die 30-minütige Reportage kann online in einem JavaScript-Player angeschaut oder über den Link “Vodcast” als mp4 herunter geladen werden.

Hier der Link: Linux – Die Reise der Pinguine

VHDL Coding mit vim

19. März 2009 von

Es gibt zwar das ein oder andere mehr oder weniger gute vim-Plugin für VHDL, doch die meisten beschränken sich auf einige Mappings, Abkürzungen und Ähnliches. Es gibt jedoch eine sehr schöne Anleitung von Andreas Müller, wie man sein vim wirklich gut zum Coden von VHDL nutzen kann. Darin werden verschiedene Plugins, Mappings … beschrieben.

Dort wird unter Anderem das Taglist-Plugin verwendet. Um es nutzen zu können, muss Exuberant Ctags installiert sein, was man unter Ubuntu einfach per

apt-get install exuberant-ctags

installieren kann.

In der Anleitung steht bereits eine ctags-Konfigurationsdatei zur Verfügung. Sie wird einfach unter ~/.ctags gespeichert. Diese Datei habe ich in dem Abschnitt von VHDL um folgende Zeile erweitert um auch die Port Mappings anzuzeigen:

--regex-vhdl=/^[ \t]*([^ \t:]+)[ \t]*:[ \t]*[a-z0-9_]+[ \t]+port[ \t]*map[ \t]*\(/\1/m,port maps/i

Zusätzlich muss dafür die Definition von g:tlist_vhdl_settings in der .vimrc abgeändert werden (mehr zur .vimrc weiter unten):

let g:tlist_vhdl_settings   = 'vhdl;d:package declarations;b:package bodies;e:entities;a:architecture specifications;t:type declarations;p:processes;f:functions;m:port maps;r:procedures'

Hier die entsprechenden Zeilen der .vimrc für VHDL, die ich (mehr oder weniger) übernommen habe:

" VHDL Stuff
if has("autocmd")
	filetype plugin indent on
"	filetype dependent settings
	au Filetype vhdl call FT_vhdl()
else
	set autoindent
endif 
 
function FT_vhdl()
	if exists("+omnifunc")
		setlocal omnifunc=syntaxcomplete#Complete
	endif
	setlocal errorformat=ERROR:%.%#\ -\ \"\%f\"\ Line\ %l.\ %m,%EERROR:%m,%C\[%f(%l)\]:\ %m,%C%m,%Z%m
	let g:vhdl_indent_genportmap=0
"	for taglist
	let g:tlist_vhdl_settings   = 'vhdl;d:package declarations;b:package bodies;e:entities;a:architecture specifications;t:type declarations;p:processes;f:functions;m:port maps;r:procedures'
endfunction

Das Errorformat ist bisher kaum getestet. Verbesserungsvorschläge sind daher gern gesehen.
Mehr zum Thema Makefiles und Compilieren (eigentlich Synthetisieren, Mappen,…) gibts hier.

Die anderen Ideen von Andreas habe ich vorerst nicht übernommen, da mir dies im Moment reicht.

Alles Gute zum 21. Pi-Tag!

14. März 2009 von

Heute ist der 21. Pi-Tag. Ein inoffizieller Feiertag zu Ehren der Kreiszahl π (Pi).

π-Kuchen (Pi-Pie) - Quelle Wiki Commons

π-Kuchen (Pi-Pie) - Quelle Wiki Commons

Überall auf der Welt wird heute die Kreiszahl geehrt und runde Kuchen gegessen. Der Grund, warum gerade heute der Pi-Tag gefeiert wird, ist die amerikanische Datumschreibweise 3/14, was eine grobe Näherung an Pi ist (3,14). Manche feiern sogar um 1 Uhr 59 und 26 Sekunden um so die ersten 7 Nachkommastellen zu erreichen. Diese Tradtion findet dieses Jahr zum 21. mal statt, seit Larry Shaw sie 1988 gegründet hat.

Traditionell wird sich am heutigen Tag mit π beschäftigt. Z.B. indem man Nachkommastellen auswendig lernt. Hier sind die ersten 50:
3.1415926535897932384626433832795028841971693993751
Man kann sie sich auch mit folgendem Lied merken:

YouTube Preview Image




Hier noch einige Links zum Thema:

Ich wünsche noch einen schönen Pi-Tag :-)

OpenStreetMap – Freie (Land-) Karten und Geodaten für jeden

12. März 2009 von

Das Projekt OpenStreetMap (OSM) ist quasi die Wikipedia der Kartendienste. Im Gegensatz zu GoogleMaps stehen die Daten von OpenStreetMap unter einer freien Lizenz, so dass jeder sie nutzen kann, egal für welchen Zweck.


Kartenausschnitt von Berlin – Größere Karte anzeigen

Die Community hinter OSM sammelt GPS Daten und zeichnet zu Hause am PC die Karten anhand der Daten. Dabei werden nicht nur Straßen erfasst sondern auch Ampeln, Schilder, Feldwege, Eisenbahnstrecken, Flüsse, Briefkästen, Bodenwellen und vieles mehr. Auch Eigenschaften von Straßen wie z.B. Höchstgeschwindigkeit, Fahrbahnbreite, Belag usw. können erfasst werden. Dadurch könnte ein Navigationsprogramm – entsprechende Daten vorrausgesetzt – wesentlich mehr leisten als nur den kürzesten Weg zu errechnen. Es könnte z.B. anzeigen, was die momentan zulässige Höchstgeschwindigkeit ist (und anhand derer auch die schnellste Route berechnen) oder zu enge Straßen bei der Routenplanung meiden. Da die Daten jedoch noch nicht vollständig sind, kann man sich darauf natürlich nicht verlassen (und auch sonst wird die Karte wohl – wie jede andere Karte auch – niemals fehlerfrei sein).

Doch schon jetzt bietet das Projekt einige Vorteile gegenüber GoogleMaps und anderen kommerziellen Kartendiensten. So werden Veränderungen und Baustellen – je nach Standort – recht schnell eingetragen.

Auch sind die Daten teilweise genauer und die Angaben detaillierter. In OSM findet man auch Abkürzungen, die nur zu Fuß begehbar sind. In einigen Fällen sind die Daten von OSM wesentlich besser als die von GoogleMaps (in anderen Fällen jedoch nicht). Peter Eich hat danach gesucht und in seinem Blog 10  Beispiele für solche Fälle vorgestellt, wo OSM ganz klar überlegen ist. Sehr interessant finde ich auch Frank Sautters “Transparent Map”, bei der man beliebig die Transparenz zwischen GoogleMaps und OpenStreetmap umstellen kann und sich so einen Ort mit beiden Systemen ansehen kann.

Was mir sehr gefällt, ist die Möglichkeit, sich die Kartendaten auf das Handy zu laden und mittels verschiedener (teils opensource) Programme Routen berechnen oder sich einfach nur die Karten anschauen zu können. So hat man immer eine Straßenkarte dabei, wenn man unterwegs ist. Wenn man ein Handy mit GPS besitzt oder ein entsprechendes (bluetooth) GPS-Gerät besitzt kann damit sogar navigiert werden.

Schön finde ich auch, dass Kartendaten auf verschiedene Weise angezeigt und aufbereitet werden können. Im einfachsten Fall äußert sich dies lediglich durch verschiedene Farbgebungen. Das Map Compare von Geofabrik bietet eine schöne Möglichkeit verschiedene Anzeigemöglichkeiten miteinander (und mit GoogleMaps) zu vergleichen. Jedoch gibt es auch eine Reihe von Projekten, die speziell auf Wanderwege (UK), Fahrradwege, Skipisten,… ausgelegt sind. Bei Procedural wird sogar versucht 3D Darstellungen mittels der Daten zu erstellen. Weitere Projekte sind im OSM Schaufenster und in den Anwendungen des Wiki zu finden.

Leider sind die Karten von OpenStreetMap noch nicht vollständig, jedoch sind die meisten Städte und größeren Orte schon zum größten Teil vorhanden.

Und wie meistens bei offenen und freien Projekten kann jeder mitmachen. Wer ein GPS-Gerät (oder ein Handy mit GPS-Sensor) besitzt, kann auf Autofahrten oder während Spaziergängen GPS-Daten sammeln. Wer mag kann natürlich auch extra Touren machen um so seine Umgebung besser kennen zu lernen und das Projekt zu unterstützen.
Aber auch ohne GPS kann man das Projekt unterstützen, indem man in einem speziellen (opensource) Editor die Karten anhand von GPS-Punkten (die von anderen Usern hoch geladen wurden) nachzeichnet. Natürlich kann man auch bei der Softwareentwicklung oder der Übersetzung und Pflege des Wikis helfen.
Man kann auch einfach nur Fehler melden.

Das Projekt wächst sehr schnell und findet immer mehr Anhänger.

Hier noch einige Links:

Markierungen mit vim – schnell zu beliebigen Stellen einer Datei springen

8. März 2009 von

Mit vim kann man Textstellen mit einer Markierung versehen, die sich von überall aus schnell anspringen lässt. Es können bis zu 52 solcher Markierungen gesetzt werden (die den Buchstaben des Alphabets entsprechen).

Eine Markierung kann man mittels m{Marke} setzen, wobei {Marke} einem Buchstaben entspricht. Beispiele wären also ma, mb, mA, mC. Dies sind 4 verschiedene Markierungen. Großbuchstaben sind Dateiübergreifend. Wenn man mehrere Tabs geöffnet hat, so wird die Datei im aktuellen Tab geöffnet. Wenn sie bereits in einem anderen Tab geöffnet ist, wird sie in beiden Tabs angezeigt (und Änderungen finden in beiden Tabs statt). Markierungen mit Kleinbuchstaben hingegen können nur aus der Datei angesprungen werden, wo sie auch definiert sind.

Um zu einer Markierung zu springen gibt es verschiedene Möglichkeiten:

  • '{Marke} springt zur Zeile, in der die Marke gesetzt ist.
  • `{Marke} springt zur Cursorposition, auf der die Marke gesetzt ist.
  • '' springt zwischen den letzten beiden angesprungenen Zeilen hin und her.
  • `` springt zwischen den letzten beiden angesprungenen Cursorpositionen hin und her.

Man kann Markierungen auch als Ziel für Aktionen definieren. So kann man z.B. mit y'a bis zur Zeile mit der Markierung a kopieren, mittels d`b bis zur Markierung b löschen und so weiter.

Um sich alle Markierungen auflisten zu lassen kann man den Befehl :marks nutzen. :jumps zeigt alle Sprünge an, die man gemacht hat.

Ein nützliches Plugin um die Markierungen an der Seite anzeigen zu lassen gibt es von Christian Brabandt auf 256bit.org. Einfach in den Pluginordner (~/.vim/plugin falls der Ordner noch nicht existiert kann man ihn einfach erstellen) kopieren und schon kann man mit F6 die Markierungen anzeigen (und wieder ausblenden) lassen.

Celestia – eine Weltraumsimulation

5. März 2009 von

Wem Stellarium gefällt, findet sicher auch am opensource Programm Celestia gefallen.

Verfügbar ist es für Windows, Mac und Linux.

Mit diesem Programm kann man mit beliebiger Geschwindigkeit quasi zu jedem beliebigen Stern bzw. zu jeder Galaxie “fliegen”.

Aber auch kleine Objekte, wie die MIR oder ISS sowie Kometen kann man sich ansehen.
Man kann sich quasi beliebig durch den Raum bewegen. Es gibt einen Katalog mit allen Objekten in unserem Sonnensystem sowie einen Sternenkatalog, womit man direkt zu den Objekten fliegen kann.

Selbst die NASA und ESA benutzen dieses Programm zu Demonstrationszwecken.

Einige Features von Celestia:

  • Aufnahmen von Reisen
  • Anzeige der Namen aller Objekte
  • Anzeige von Umlaufbahnen und Sternzeichen
  • Anzeige von Infos (z.B. Entfernung, Temperatur…) von Objekten
  • Das Bild kann geteilt werden um mehrere Objekte gleichzeitig beobachten zu können
  • Die Zeit kann beliebig manipuliert werden (beschleunigt, verlangsamt… auf einen speziellen Zeitpunkt gesetzt)

Darüber hinaus gibt es über 10GB an Erweiterungen wie Texturen, weitere Objekte (Sterne/Galaxien) oder sogar ganze Universen wie z.B. das StarTrek Universum.
Es gibt jede Menge Touren und Missionen durch unser Sonnensystem.

Links:
http://www.celestia.info/ – deutsche Homepage
http://de.wikipedia.org/wiki/Celestia – Wikipedia Artikel
http://www.celestia.info/addons.html – deutsche Erweiterungen
http://www.celestiamotherlode.net/ – Über 10 GB an Erweiterungen (Seite auf Englisch, Erweiterungen in verschiedenen Sprachen)

Hier noch ein kleines Video, welches ich zu Celestia gefunden habe (auf Youtube gibts noch mehr):

YouTube Preview Image

Da 2009 das Jahr der Astronomie ist, werde ich versuchen jeden Monat einen Artikel über Astronomie zu schreiben. Im Januar gabs zwar keinen, dafür aber am 25. Dezember den Artikel über Stellarium. Im Februar schrieb ich über Alpha Centauri.


Bloggeramt.de frisch gebloggt Blogverzeichnis - Blog Verzeichnis bloggerei.de