{"id":12363,"date":"2017-05-04T22:00:53","date_gmt":"2017-05-04T20:00:53","guid":{"rendered":"https:\/\/tuxproject.de\/blog\/?p=12363"},"modified":"2017-05-04T22:00:53","modified_gmt":"2017-05-04T20:00:53","slug":"vims-vielfalt-ist-sein-untergang","status":"publish","type":"post","link":"https:\/\/tuxproject.de\/blog\/2017\/05\/vims-vielfalt-ist-sein-untergang\/","title":{"rendered":"Vims Viel\u00adfalt ist sein Unter\u00adgang"},"content":{"rendered":"<p><em>(Vor\u00adbe\u00admer\u00adkung: Es folgt lang\u00adwei\u00adli\u00adger Com\u00adpu\u00adter\u00adkram.)<\/em><\/p>\n<p>Im Jahr <a href=\"https:\/\/tuxproject.de\/blog\/2009\/12\/vis-vim-vi-2\/\">2009<\/a> jubel\u00adte ich:<\/p>\n<blockquote><p>Vim ist der beste Viel\u00adzwecke\u00addi\u00adtor die\u00adses Pla\u00adne\u00adten.<\/p><\/blockquote>\n<p>Manch\u00admal lie\u00adge ich falsch.<\/p>\n<p><!--more-->Von <em>neu\u00aden<\/em> Text\u00adedi\u00adto\u00adren wie <a href=\"https:\/\/tuxproject.de\/blog\/2014\/05\/github-auf-zum-atom\/\">Atom<\/a> und Visu\u00adal Stu\u00addio Code, die vor allem durch ihre <a href=\"https:\/\/github.com\/jhallen\/joes-sandbox\/tree\/master\/editor-perf\">qu\u00e4\u00adlen\u00adde Lang\u00adsam\u00adkeit<\/a> im Ged\u00e4cht\u00adnis blei\u00adben, m\u00f6ch\u00adte ich hier von vorn\u00adher\u00adein gar nicht anfan\u00adgen, die\u00adse blei\u00adben meist ein vor\u00ad\u00fcber\u00adge\u00adhen\u00addes Ph\u00e4\u00adno\u00admen und haben ver\u00admut\u00adlich einen kaum mess\u00adba\u00adren Anteil an einem etwa\u00adigen R\u00fcck\u00adgang der Beliebt\u00adheit Vims. Der gr\u00f6\u00df\u00adte Feind von Vim aber ist Vim selbst.<\/p>\n<p>Man\u00adches Ver\u00adhal\u00adten von Vim ist sicher\u00adlich <a href=\"http:\/\/andre.arko.net\/2013\/09\/11\/vim-is-the-worst-editor\/\">Geschmacks\u00adsa\u00adche<\/a>, auch, wenn mir nicht klar ist, wes\u00adsen Geschmack eine noto\u00adrisch defek\u00adte Code\u00adein\u00adr\u00fcckung ent\u00adspricht. Schlim\u00admer ist, dass, wo Vim drauf\u00adsteht, sel\u00adten auch ein dem Benut\u00adzer bekann\u00adter Edi\u00adtor drin\u00adsteckt.<\/p>\n<p>Das f\u00e4ngt schon bei der Unsit\u00adte an, dass die mei\u00adsten unixo\u00adiden Betriebs\u00adsy\u00adste\u00adme und Linux\u00addis\u00adtri\u00adbu\u00adtio\u00adnen \u2013 au\u00dfer jenen, deren Sch\u00f6p\u00adfer den POSIX-Stan\u00addard aus <a href=\"https:\/\/blog.flameeyes.eu\/2009\/10\/more-explanations-why-nano-is-gentoo-s-default-editor\/\">hane\u00adb\u00fc\u00adche\u00adnen Gr\u00fcn\u00adden<\/a> auch hier absicht\u00adlich igno\u00adrie\u00adren \u2013 sich zwar dar\u00adauf ver\u00adst\u00e4n\u00addigt haben, dass mit dem Befehl <tt>vi<\/tt> ein <a href=\"http:\/\/pubs.opengroup.org\/onlinepubs\/9699919799\/utilities\/vi.html\">POSIX-kon\u00adfor\u00admer<\/a> Edi\u00adtor auf\u00adge\u00adru\u00adfen wer\u00adden soll, aber nicht, wel\u00adcher; als eini\u00adger\u00adma\u00ad\u00dfen gesi\u00adchert kann nur ange\u00adse\u00adhen wer\u00adden, dass <tt>vi<\/tt> ent\u00adwe\u00adder einen Original-\u201evi\u201c (der aller\u00addings selbst auf \u00e4lte\u00adren Syste\u00admen kaum noch zu sehen sein d\u00fcrf\u00adte), einen Neo\u00adVim, einen <tt>elvis<\/tt>, einen <tt>nvi<\/tt> oder einen Vim star\u00adtet, was wie\u00adder\u00adum noch nicht viel aus\u00adsagt, denn Vim ist noch l\u00e4ngst nicht Vim.<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2017\/05\/Was-darfs-sein.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2017\/05\/Was-darfs-sein-300x218.png\" alt=\"Vim: Was darf's sein?\" width=\"300\" height=\"218\" class=\"alignnone size-medium wp-image-12364\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2017\/05\/Was-darfs-sein-300x218.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2017\/05\/Was-darfs-sein-120x87.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2017\/05\/Was-darfs-sein.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\"><\/a><\/p>\n<p>Der Sinn von <a href=\"https:\/\/xkcd.com\/927\/\">Stan\u00addards<\/a> soll\u00adte es, mei\u00adne ich, sein, dass man sich zumin\u00addest mit einer <em>sau\u00adbe\u00adren<\/em> (also lee\u00adren) Kon\u00adfi\u00adgu\u00adra\u00adti\u00adons\u00adda\u00adtei auf ein bestimm\u00adtes Ver\u00adhal\u00adten ver\u00adlas\u00adsen kann. Genau das ist bei Vim aber nicht der Fall, denn ver\u00adlas\u00adsen kann man sich auf das Vor\u00adhan\u00adden\u00adsein prak\u00adtisch kei\u00adnes <em>Fea\u00adtures<\/em>. Unter\u00adst\u00fctzt mein Vim jetzt eigent\u00adlich Python? Wenn ja, wel\u00adches?<\/p>\n<p>Zuge\u00adge\u00adben: Die ein\u00adkom\u00adpi\u00adlier\u00adte Unter\u00adst\u00fct\u00adzung zus\u00e4tz\u00adli\u00adcher Pro\u00adgram\u00admier\u00adspra\u00adchen wie Perl oder Racket ist <em>eigent\u00adlich<\/em> nur f\u00fcr den reich\u00adhal\u00adti\u00adgen Plug\u00adin\u00adfun\u00addus von Vim von Bedeu\u00adtung \u2013 je mehr ver\u00adf\u00fcg\u00adba\u00adre Spra\u00adchen, desto mehr ver\u00adf\u00fcg\u00adba\u00adre Plug\u00adins. Das Plugin\u00adsy\u00adstem von Vim ist aber l\u00e4ngst <em>ein Pro\u00adblem inner\u00adhalb des Pro\u00adblems<\/em> gewor\u00adden. Nach\u00addem es einst Usus war, dass Plug\u00adins h\u00e4n\u00addisch her\u00adun\u00adter\u00adge\u00adla\u00adden und in die ver\u00adschie\u00adde\u00adnen <em>pas\u00adsen\u00adden<\/em> Vim-Ord\u00adner (Doku\u00admen\u00adta\u00adti\u00adon, Syn\u00adtax\u00addin\u00adge und so wei\u00adter) kopiert wur\u00adden, kam mit \u201eVim\u00adballs\u201c eine Art Archiv\u00adfor\u00admat auf, das es erm\u00f6g\u00adlich\u00adte, auch kom\u00adple\u00adxe\u00adre Plug\u00adins als <tt>.vba<\/tt>-Datei her\u00adun\u00adter\u00adzu\u00adla\u00adden, die das Ver\u00adtei\u00adlen der \u00fcbri\u00adgen Datei\u00aden teil\u00adau\u00adto\u00adma\u00adti\u00adsie\u00adren konn\u00adte. Dabei h\u00e4t\u00adte man es belas\u00adsen k\u00f6n\u00adnen, hat man aber nicht, denn auch die\u00adses letz\u00adte biss\u00adchen Hand\u00adar\u00adbeit geh\u00f6r\u00adte abge\u00adschafft.<\/p>\n<p>Mit Stand von heu\u00adte (ich habe nur kurz die ein\u00adschl\u00e4\u00adgi\u00adgen Blogs \u00fcber\u00adflo\u00adgen) buh\u00adlen min\u00adde\u00adstens vier ver\u00adschie\u00adde\u00adne Paket\u00adma\u00adna\u00adger dar\u00adum, <em>der Stan\u00addard<\/em> sein zu d\u00fcr\u00adfen, und <em>nat\u00fcr\u00adlich<\/em> wer\u00adden fr\u00fc\u00adher oder sp\u00e4\u00adter die Ver\u00adlie\u00adrer die\u00adses Buh\u00adlens durch den Sie\u00adger ersetzt wer\u00adden m\u00fcs\u00adsen, weil sich nie\u00admand mehr um ihre wei\u00adte\u00adre Funk\u00adti\u00adons\u00adf\u00e4\u00adhig\u00adkeit bem\u00fc\u00adhen wird. Wer also wird das Ren\u00adnen machen \u2013 <a href=\"https:\/\/github.com\/junegunn\/vim-plug\">vim-plug<\/a>? <a href=\"https:\/\/github.com\/VundleVim\/Vundle.vim\">Vund\u00adle<\/a>? <a href=\"https:\/\/github.com\/Shougo\/neobundle.vim\">Neo\u00adBund\u00adle<\/a> oder des\u00adsen Nach\u00adfol\u00adger <a href=\"https:\/\/github.com\/Shougo\/dein.vim\">Dein.vim<\/a>? Ihnen allen ist gemein, dass sie es bevor\u00adzu\u00adgen w\u00fcr\u00adden, l\u00e4gen die zu instal\u00adlie\u00adren\u00adden Plug\u00adins alle\u00adsamt auf Git\u00adHub oder wenig\u00adstens in einem ande\u00adren Git-Depot her\u00adum. Nun ist es sicher\u00adlich so, dass die mei\u00adsten popu\u00adl\u00e4\u00adren Vim-Plug\u00adins \u00fcber Git\u00adHub ent\u00adwickelt und ver\u00adteilt wer\u00adden, die\u00adse Zen\u00adtra\u00adli\u00adsie\u00adrung aber aktiv zu f\u00f6r\u00addern hal\u00adte ich f\u00fcr einen unklu\u00adgen Schritt, da einer domi\u00adnan\u00adten Hosting\u00adin\u00adstanz, wenn sie erst ein\u00admal einen kri\u00adti\u00adschen Teil der eige\u00adnen Infra\u00adstruk\u00adtur absor\u00adbiert hat, dadurch die Macht zuge\u00adspro\u00adchen wird, unpo\u00adpu\u00adl\u00e4\u00adre oder sogar benut\u00adzer\u00adfeind\u00adli\u00adche Ent\u00adschei\u00addun\u00adgen (wie bei Git\u00adHub <a href=\"https:\/\/www.mirbsd.org\/permalinks\/wlog-10_e20170301-tg.htm\">bereits gesche\u00adhen<\/a>) mit nur gerin\u00adgem Wider\u00adstand durch\u00adzu\u00adset\u00adzen. Schlim\u00admer noch: Der Fokus auf Git als das Ver\u00adsi\u00adons\u00adkon\u00adtroll\u00adsy\u00adstem, das <em>sowie\u00adso jeder nutzt<\/em>, dr\u00e4ngt Plug\u00adins, deren Ent\u00adwick\u00adler teil\u00adwei\u00adse bewusst nicht auf Git set\u00adzen (etwa, weil sie aus tech\u00adni\u00adschen Gr\u00fcn\u00adden ande\u00adre Syste\u00adme bevor\u00adzu\u00adgen), ins Abseits und so all\u00adm\u00e4h\u00adlich in die Ver\u00adges\u00adsen\u00adheit.<\/p>\n<p>Irgend\u00adwann ein\u00admal lau\u00adte\u00adte ein von der All\u00adge\u00admein\u00adheit akzep\u00adtier\u00adter Vor\u00adteil von Vim, dass er <em>\u00fcber\u00adall<\/em> funk\u00adtio\u00adniert. Lei\u00adder hat die All\u00adge\u00admein\u00adheit dabei ver\u00adges\u00adsen, dass Fle\u00adxi\u00adbi\u00adli\u00adt\u00e4t nicht der Sam\u00admel\u00adbe\u00adgriff f\u00fcr vie\u00adle ein\u00adan\u00adder aus\u00adschlie\u00ad\u00dfen\u00adde Optio\u00adnen ist.<\/p>\n<p>Jemand soll\u00adte mal einen Text\u00adedi\u00adtor pro\u00adgram\u00admie\u00adren, des\u00adsen Lizenz denen, die \u201eneu\u201c f\u00fcr \u201ebes\u00adser\u201c hal\u00adten, sei\u00adne Benut\u00adzung ver\u00adbie\u00adtet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Vor\u00adbe\u00admer\u00adkung: Es folgt lang\u00adwei\u00adli\u00adger Com\u00adpu\u00adter\u00adkram.) Im Jahr 2009 jubel\u00adte ich: Vim ist der beste Viel\u00adzwecke\u00addi\u00adtor die\u00adses Pla\u00adne\u00adten. Manch\u00admal lie\u00adge ich falsch.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[19],"tags":[],"series":[],"class_list":["post-12363","post","type-post","status-publish","format-standard","hentry","category-nerdkrams"],"share_on_mastodon":{"url":"","error":""},"wp-worthy-pixel":{"ignored":false,"public":null,"server":null,"url":null},"wp-worthy-type":"normal","_links":{"self":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/12363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/comments?post=12363"}],"version-history":[{"count":0,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/12363\/revisions"}],"wp:attachment":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/media?parent=12363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/categories?post=12363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/tags?post=12363"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/series?post=12363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}