<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ubuntuverse.at &#187; vim</title>
	<atom:link href="http://www.ubuntuverse.at/tag/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ubuntuverse.at</link>
	<description>Berichte aus dem Ubuntu Universum</description>
	<lastBuildDate>Tue, 01 Jun 2010 09:50:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Web-Entwicklung mit Ubuntu</title>
		<link>http://www.ubuntuverse.at/2009/11/11/web-entwicklung-mit-ubuntu/</link>
		<comments>http://www.ubuntuverse.at/2009/11/11/web-entwicklung-mit-ubuntu/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 12:43:18 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[webentwicklung]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=1794</guid>
		<description><![CDATA[Das Vorurteil das man keine Webseiten unter Linux entwickeln kann, möchte ich hiermit mal aus der Welt schaffen. Ich arbeite fast täglich an Webseiten mit Linux, seit Jahren und würde mit keinem Betriebsystem tauschen wollen. Der Editor Der Editor ist Geschmackssache dazu will ich nicht viele Worte verlieren. Ich verwende vim und bin durch die [...]]]></description>
			<content:encoded><![CDATA[<p>Das Vorurteil das man keine Webseiten unter Linux entwickeln kann, möchte ich hiermit mal aus der Welt schaffen. Ich arbeite fast täglich an Webseiten mit Linux, seit Jahren und würde mit keinem Betriebsystem tauschen wollen.</p>
<p><strong>Der Editor</strong></p>
<p>Der Editor ist Geschmackssache dazu will ich nicht viele Worte verlieren. Ich verwende vim und bin durch die ganzen Plugins und der Konfigurationsmöglichkeiten sehr zufrieden damit. Quanta und Bluefish sind zwei speziell für web development zugeschnittene Editoren.</p>
<p><strong>kleine Helfer</strong></p>
<p>Ich finde eine Bildschirmlupe die Bereiche des Bildschirms vergrößert darstellt sehr praktisch dazu verwende ich kmag. Um Pixeln zumessen verwende ich kruler, das ein Bildschirmlineal ist das man in alle 4 Himmelsrichtungen drehen kann. Ksnapshot ist ein Programm das Screenshots erzeugt, es ist unter anderen möglich nur ein Fenster oder nur eine Region auszuwählen.</p>
<p><strong>Firefox-Plugins</strong></p>
<p>Der Firefox ist zum Entwickeln besonders geeignet durch die große Anzahl an Plugins.<br />
Mit Firebug und dem Web Developer ist es möglich Informationen aller Art herauszufinden und direkt CSS oder HTML zu ändern. Tamper Data ist ideal um Werte von Formularen abzufangen und die Einträge zu manipulieren. Mit Selenium IDE kann man Navigationen und Interaktionen auf einer Webseite aufzeichnen und abspielen. </p>
<p><strong>Browserchecks</strong></p>
<p>Webseiten sollten auf allen gängigen Browsern funktionieren. Um Webseiten auf Windows zu testen verwende ich virtual box, eine Virtualisierungs Software mit einer Windows XP Installation und allen möglich installierten Browsern. Es gäbe auch das Programm <a href="http://www.tatanka.com.br/ies4linux/page/Main_Page">ie4linux</a> das verschiedene IE Versionen mit wine emulieren kann. Leider ist das sehr langsam, nach meiner Erfahrung. Für Safari den OSX Browser verwende ich Konqeuror der ebenfalls wie Safari Webkit verwendet zum rendern der Webseite und man so ziemlich die selbe Darstellung hat. Mit Lynx kann man auch Webseiten im Textmodus testen. Es gibt auch das Webservice <a href="http://browsershots.org/ ">browsershots.org</a> die von einer URL mit beliebig einstellbaren Browsern Screenshots erzeugt.</p>
<p><strong>Validierung</strong></p>
<p>Um zu überprüfen ob die Seite valides HTML und CSS liefert, kann direkt der Validator von <a href="http://validator.w3.org/ ">w3.org</a> zum überprüfen verwendet werden. Wenn die Seite lokal am Rechner liegt kann man tidy verwenden, es gibt auch das Firefox Plugin Html Validator womit man auch offline validieren kann.</p>
<p><strong>Server-Technik</strong></p>
<p>Da auf den meisten Servern auch ein Linux lauft ist es natürlich klar das man auch die selbe Server-Technik lokal am Desktop installieren kann. Ein Webserver wie den Apachen lässt sich genau so einfach wie MySQL, PHP, Django oder Rails mittels aptitude installieren.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.ubuntuverse.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.ubuntuverse.at/2009/11/11/web-entwicklung-mit-ubuntu/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Diese Woche in der Konsole #8</title>
		<link>http://www.ubuntuverse.at/2009/08/30/diese-woche-in-der-konsole-8/</link>
		<comments>http://www.ubuntuverse.at/2009/08/30/diese-woche-in-der-konsole-8/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 05:23:18 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Konsole]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[dwik]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[rename]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[spell]]></category>
		<category><![CDATA[tac]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=1537</guid>
		<description><![CDATA[Wissenswerte Tastenkürzeln CTRL l Leert den gesamten Bildschirm, das selbe wie der Befehl clear. CTRL w Löscht nach links einzelne Wörter ab der Cursorposition. CTRL r Inkrementelle Suche durch die Liste der letzt ausgeführten Befehle (bash history). ! ! Den letzten Befehl wiederholen. CTRL d Um die Sitzung zu beenden, das selbe wie der Befehl [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Wissenswerte Tastenkürzeln
<p><span class="key">CTRL</span> <span class="key">l</span> Leert den gesamten Bildschirm, das selbe wie der Befehl <em>clear</em>.</p>
<p><span class="key">CTRL</span> <span class="key">w</span> Löscht nach links einzelne Wörter ab der Cursorposition.</p>
<p><span class="key">CTRL</span> <span class="key">r</span> Inkrementelle Suche durch die Liste der letzt ausgeführten Befehle (bash history). </p>
<p><span class="key">!</span> <span class="key">!</span> Den letzten Befehl wiederholen.</p>
<p><span class="key">CTRL</span> <span class="key">d</span> Um die Sitzung zu beenden, das selbe wie der Befehl <em>exit</em>.
</li>
<li>Wenn der letzte Befehl einen einfachen Schreibfehler hat wie hier eine &#8220;3&#8243; wo ein &#8220;e&#8221; sein sollte, so ist es möglich eine Korrektur vorzunehmen:
<pre>
$ echo "F3hler"
F3hler

$ ^3^e
echo "Fehler"
Fehler
</pre>
</li>
<li>
<p>Herausfinden welcher Prozess (Id) auf Port 31337 lauscht.</p>
<pre>
$ sudo fuser 31337/tcp
31337/tcp:           29883
</pre>
</li>
<li>Dateien umbennen mit rename. Als Beispiel werden alle .htm zu .html Dateien umbenannt.
<pre>$ rename htm html *htm</pre>
</li>
<li>In vim Deutsche Rechtschreibprüfung verwenden mit dem Paket <em>vim-spell-de</em>.
<pre>:setlocal spell spelllang=de</pre>
<p>Danach sind alle falsch geschriebenen Wörter farblich markiert.
</li>
<li>
Dateiinhalte von unten nach oben anzeigen lassen, ein verkehrtes <em>cat</em> eben <img src='http://www.ubuntuverse.at/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>$ tac datei.txt</pre>
</li>
<li>Kopf oder Zahl ohne Münze.
<pre>$ ruby -e 'puts ["Kopf", "Zahl"][rand(2)]'
Kopf
</pre>
</li>
</ol>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.ubuntuverse.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.ubuntuverse.at/2009/08/30/diese-woche-in-der-konsole-8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Diese Woche in der Konsole #1</title>
		<link>http://www.ubuntuverse.at/2009/07/05/diese-woche-in-der-konsole-1/</link>
		<comments>http://www.ubuntuverse.at/2009/07/05/diese-woche-in-der-konsole-1/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 05:23:21 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[dwik]]></category>
		<category><![CDATA[Konsole]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=868</guid>
		<description><![CDATA[Mit curl von der Komandozeile aus twittern: curl -u Benutzername:Passwort \ -d status="Nachricht" http://twitter.com/statuses/update.xml Suchen und Ersetzen mit einem Ruby Einzeiler: ruby -i.bkp -pe "gsub(/suche/, 'ersetze')" *.php Hier werden alle PHP Dateien in dem aktuellen Ordner ersetzt und zusätzlich wird eine Backup Datei (.bkp) erstellt. Einen Ordner via ssh mittels rsync clonen: rsync -avz -e [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ubuntuverse.at/wp-content/utilities-terminal.png" alt="Diese Woche in der Konsole" title="Diese Woche in der Konsole" width="64" height="64" /></p>
<ol>
<li>Mit curl von der Komandozeile aus twittern:
<pre lang="bash">curl -u Benutzername:Passwort \
-d status="Nachricht" http://twitter.com/statuses/update.xml</pre>
</li>
<li>Suchen und Ersetzen mit einem Ruby Einzeiler:
<pre lang="ruby">ruby -i.bkp -pe "gsub(/suche/, 'ersetze')" *.php</pre>
<p>Hier werden alle PHP Dateien in dem aktuellen Ordner ersetzt und zusätzlich wird eine Backup Datei (.bkp) erstellt.</li>
<li>Einen Ordner via ssh mittels rsync clonen:
<pre lang="bash">rsync -avz -e 'ssh -p portnummer' user@host /Quellordner /Zielordner</pre>
<p>Wird der Quellordner ohne abschliessenden / angegeben, so wird der Quellordner selbst kopiert. Ansonsten nur der Inhalt</li>
<li>Datenbank von einem anderen Server via ssh übernehmen:
<pre lang="bash">ssh user@host mysqldump -u dbuser_server -p dbpwd_server databasename \
--lock-tables | mysql --verbose -u dbuser_local -p dbpwd_local</pre>
</li>
<li>Verschlüsselte Text-Datei mit Vim anlegen:</li>
<pre lang="bash">vim -x datei</pre>
</ol>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.ubuntuverse.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.ubuntuverse.at/2009/07/05/diese-woche-in-der-konsole-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Suchen und finden mit Vim</title>
		<link>http://www.ubuntuverse.at/2009/06/29/suchen-und-finden-mit-vim/</link>
		<comments>http://www.ubuntuverse.at/2009/06/29/suchen-und-finden-mit-vim/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 05:23:15 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=824</guid>
		<description><![CDATA[In einer Datei suchen Eine Datei wird mit dem Schrägstrich / im Kommandomodus ESC durchsucht. Natürlich kann hier auch regular expression angewendet werden: /^require Mit n gelangt man zum nächsten Treffer. Um auf den Treffer davor zu kommen drückt man N. Auf einer Zeile suchen Beim Navigieren in einer langen Zeile ist f sehr hilfreich. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="post_img" height="41" width="51" title="vim-logo" alt="vim-logo" src="http://www.ubuntuverse.at/wp-content/vim-logo.png"/> <strong>In einer Datei suchen</strong></p>
<p>Eine Datei wird mit dem Schrägstrich <span class="key">/</span> im Kommandomodus <span class="key">ESC</span> durchsucht. Natürlich kann hier auch regular expression angewendet werden: </p>
<pre lang="vim">/^require</pre>
<p>Mit <span class="key">n</span> gelangt man zum nächsten Treffer. Um auf den Treffer davor zu kommen drückt man <span class="key">N</span>.</p>
<p><strong>Auf einer Zeile suchen</strong></p>
<p>Beim Navigieren in einer langen Zeile ist f sehr hilfreich. So springt der Cursor bei <span class="key">f</span> <span class="key">></span> auf die erste Übereinstimmung, mit dem Zeichen >. Ein <span class="key">F</span> <span class="key">></span> sucht von der aktuellen Cursor Position von rechts nach links weiter. Um zum nächsten Treffer zu gelangen reicht ein <span class="key">;</span>.</p>
<p><strong>In mehreren Dateien suchen</strong></p>
<p>Dateien können mit grep durchsucht werden:</p>
<pre lang="vim">:grep require *.rb</pre>
<p><span id="more-824"></span></p>
<p>gefunden werden alle Dateien die das Wort &#8220;require&#8221; beinhalten und die Dateiendung rb haben. Ein Ergebnis könnte in etwa so aussehen:</p>
<pre lang="plain">Press ENTER or type command to continue
start.rb:4:require 'open-uri'
model.rb:1:require 'active_record'
youtube.rb:1:require 'nokogiri'
youtube.rb:2:require 'open-uri'
</pre>
<p>Drückt man nun <span class="key">ENTER</span> wird sofort der erste Treffer start.rb mit Cursor auf Zeile 4 in Vim geöffnet.</p>
<p>Um eine Liste der gefunden Ergebnisse zu erhalten, wird ein :cl im Kommandomodus <span class="key">ESC</span> gemacht:</p>
<pre lang="vim">
:cl
1 start.rb:4:require 'open-uri'
2 model.rb:1:require 'active_record'
3 youtube.rb:1:require 'nokogiri'
4 youtube.rb:2:require 'open-uri'
</pre>
<p>Um z. B. auf den letzten Treffer zu gelangen, wird die erste Zahl (4) bei den Treffer angegeben.</p>
<pre lang="vim">:cc 4</pre>
<p>Es ist natürlich auch möglich bekannte grep Funktionen wie -r für rekursive Suche oder -P für Perl regular expression, zu verwenden.</p>
<p><strong>Einstellungen für die .vimrc</strong></p>
<p>Die erste Einstellung soll schon bei der Eingabe, die ersten Ergebnisse anzeigen und nicht erst beim Absenden des ganzen Suchbegriffes:</p>
<pre lang="vim">set incsearch</pre>
<p>Eine weitere Einstellung ist hlsearch. Sie zeigt alle Treffer an und nicht nur den ersten Treffer in der Datei.</p>
<pre lang="vim">set hlsearch</pre>
<p>Das Suchtreffer in Vim dauerhaft markiert bleiben, finde ich eher störend, darum habe ich mir in meiner vimrc die <span class="key">ENTER</span> Taste so belegt das sie die Markierung aufhebt.</p>
<pre lang="vim">nnoremap <CR> :nohlsearch<CR>/<BS><CR></pre>
<p>Damit kann ich nach der Suche, wenn ich die Markierungen nicht mehr benötige einfach ein <span class="key">ENTER</span> drücken und sie verschwinden.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.ubuntuverse.at/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.ubuntuverse.at/2009/06/29/suchen-und-finden-mit-vim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
