{"id":5523,"date":"2011-12-28T21:13:35","date_gmt":"2011-12-28T20:13:35","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=5523"},"modified":"2019-10-14T00:54:35","modified_gmt":"2019-10-13T22:54:35","slug":"zsh-und-vils-leerzeichen-von-dateinamen-in-vim-durch-unterstriche-ersetzen","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2011\/12\/28\/zsh-und-vils-leerzeichen-von-dateinamen-in-vim-durch-unterstriche-ersetzen\/","title":{"rendered":"Zsh und vils: Leerzeichen von Dateinamen in Vim durch Unterstriche ersetzen"},"content":{"rendered":"<p>Ich habe <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/10\/30\/die-shell-austauschen-der-wechsel-von-bash-zu-zsh\/\">vor einiger Zeit<\/a> aus Neugier die <a href=\"http:\/\/www.gnu.org\/software\/bash\/\">Bash<\/a> mit <a href=\"http:\/\/www.zsh.org\/\">Zsh<\/a> ersetzt und dabei auf die sehr n\u00fctzliche Konfiguration von .zshrc und .zshrc.local von <a href=\"http:\/\/grml.org\/\">Grml<\/a> zur\u00fcckgegriffen. Seitdem habe ich auf jedem Rechner mit Ausnahme des Toshiba Satellite 220cs, dort l\u00e4uft immer noch die ash von <a href=\"http:\/\/busybox.net\/\">Busybox<\/a>, die Shell ausgetauscht.<br \/>\nAn dieser Stelle will ich nicht lange \u00fcber Zsh schw\u00e4rmen und davon erz\u00e4hlen, warum euer Leben sinnlos ist, solange ihr Zsh nicht selbst ausprobiert habt. (Es gibt genug Seiten, die das tun.) Nein, wom\u00f6glich kommt man als normaler Mensch auch wunderbar mit der Bash aus, sowie das bei mir jahrelang der Fall war. Dennoch...<a href=\"https:\/\/www.gambaru.de\/blog\/2011\/10\/30\/die-shell-austauschen-der-wechsel-von-bash-zu-zsh\/\">der Austausch<\/a> war einfach und ich konnte mir das Installieren der <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/03\/28\/komplette-bash-completion-fur-debian\/\">bash-completion<\/a> und die <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/04\/14\/farbenfrohe-bash\/\">farbenfrohe Ver\u00e4nderung<\/a> der Bash dank Grml sparen.<br \/>\nAbgesehen davon, dass ich nun eine ph\u00e4nomenale Tab-Vervollst\u00e4ndigung habe und nicht mehr nur eine gro\u00dfartige, dass meine Tippfehler praktischerweise korrigiert werden und ich mit Hilfe von vils problemlos Dateien und Ordner in Vim umbenennen kann, musste ich mich bisher auch kaum umstellen.<br \/>\nMehr \u00fcber vils l\u00e4sst sich auf <a href=\"https:\/\/www.freshports.org\/sysutils\/vils\/\">freshports.org<\/a> erfahren, wo es zwei Links zum Herunterladen dieses kleinen Skripts gibt.<\/p>\n<ul>\n<li><a href=\" http:\/\/www.secnetix.de\/~olli\/scripts\/\">http:\/\/www.secnetix.de\/~olli\/scripts\/<\/a><\/li>\n<li><a href=\"ftp:\/\/ftp.freebsd.org\/pub\/FreeBSD\/ports\/distfiles\/\">ftp:\/\/ftp.freebsd.org\/pub\/FreeBSD\/ports\/distfiles\/<\/a><\/li>\n<\/ul>\n<p>Das Skript sollte man mit <code>chmod u+x<\/code> ausf\u00fchrbar machen und am besten gleich nach <em>\/usr\/local\/bin<\/em> kopieren, damit man es im $PATH benutzen kann.<br \/>\nDie Bedienung ist simpel. Man f\u00fchrt es im Verzeichnis aus, indem man die Dateien oder Unterverzeichnisse umbenennen m\u00f6chte, wodurch alle Namen in Vim importiert werden und dann beliebig ge\u00e4ndert werden k\u00f6nnen. Speichert man danach, werden alle Dateien und Ordner dementsprechend umbenannt.<br \/>\nAls Hinweise werden im Skript genannt:<\/p>\n<ol>\n<li>Man solle die Nummern vor jeder Zeile nicht entfernen.<\/li>\n<li>Wenn man eine Zeile l\u00f6scht und abspeichert, wird die Datei <strong>nicht<\/strong> gel\u00f6scht.<\/li>\n<li>Man kann jedes Zeichen zum Ersetzen benutzen, nur  muss man doppelt angeben.<\/li>\n<li>Es wird vor dem \u00dcberschreiben gleichlautender Dateinamen gefragt.<\/li>\n<li>Man kann den Dateinamen von zwei oder mehr Dateien nicht austauschen.<\/li>\n<li>Man kann gezielt einzelne oder mehrere Dateinamen in Vim laden, indem sie auf der Kommandozeile \u00fcbergeben werden. (vils datei1 datei2 datei3)<\/li>\n<\/ol>\n<h3>Leerzeichen mit Unterstriche tauschen<\/h3>\n<p>Ich entferne im Visual-Block-Modus immer die vorangestellten Nummern und f\u00fcge sie nach der Umbenennung wieder ein. <strong>STRG+v<\/strong>, dann <strong>d<\/strong> zum L\u00f6schen und sp\u00e4ter <strong>p<\/strong> zum Einf\u00fcgen. Das ist ein Weg um zu verhindern, dass das erste Leerzeichen zwischen der Nummer und dem Dateinamen durch einen Unterstrich ersetzt wird. Danach gen\u00fcgt im Normalmodus:<br \/>\n<code>:%s\/ \/_\/g<\/code><br \/>\nNachdem die Nummern wieder eingef\u00fcgt und alles abgespeichert wurde, sind s\u00e4mtliche Leerzeichen durch Unterstriche ersetzt worden.<br \/>\nWenn man sich nun noch ein paar Regul\u00e4re Ausdr\u00fccke vorstellt, l\u00e4sst sich so ziemlich jedes Umbenennungsproblem innerhalb von Vim mit Hilfe von vils l\u00f6sen und man kann auf <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/05\/14\/mehrere-dateien-umbenennen-mit-bash-und-vim\/\">diese L\u00f6sung<\/a>, die aber ebenso gut funktioniert, verzichten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe vor einiger Zeit aus Neugier die Bash mit Zsh ersetzt und dabei auf die sehr n\u00fctzliche Konfiguration von .zshrc und .zshrc.local von Grml zur\u00fcckgegriffen. Seitdem habe ich auf jedem Rechner mit Ausnahme des Toshiba Satellite 220cs, dort l\u00e4uft immer noch die ash von Busybox, die Shell ausgetauscht. An dieser Stelle will ich nicht &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2011\/12\/28\/zsh-und-vils-leerzeichen-von-dateinamen-in-vim-durch-unterstriche-ersetzen\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eZsh und vils: Leerzeichen von Dateinamen in Vim durch Unterstriche ersetzen\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[30,53,210,211,231],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5523"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=5523"}],"version-history":[{"count":1,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5523\/revisions"}],"predecessor-version":[{"id":10900,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/5523\/revisions\/10900"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=5523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=5523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=5523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}