{"id":46,"date":"2011-02-11T23:47:46","date_gmt":"2011-02-11T21:47:46","guid":{"rendered":"http:\/\/www.nerdhead.de\/blog\/?p=46"},"modified":"2019-05-13T16:10:22","modified_gmt":"2019-05-13T14:10:22","slug":"perl-programming-with-vim","status":"publish","type":"post","link":"https:\/\/www.nerdhead.de\/blog\/2011\/02\/11\/perl-programming-with-vim\/","title":{"rendered":"Perl programming with vim"},"content":{"rendered":"<p>Da ich jetzt Hauptberuflich wieder viel Perl programmiere hab ich meinen Lieblings-Editor vim mal etwas auf Perl feinabgestimmt. Mit perltidy Integration f\u00fcr sch\u00f6ner formatierten Quellcode und ein paar Textmakros.<\/p>\n<p>Meine .vimrc sieht nun wie folgt aus:<\/p>\n<pre>\" get easier to use and more user friendly vim defaults\r\n\" Switch it off if you prefer real vi compatibility\r\nset nocompatible\r\n\" use visual bell\r\nset vb\r\n\" incremental search\r\nset incsearch\r\n\" show line numbers\r\n\"set number\r\n\" paste mode - this will avoid unexpected effects when you\r\n\" cut or copy some text from one window and paste it in Vim.\r\nset pastetoggle=&lt;F11&gt;\r\n\" encoding\r\n\"set encoding=utf8\r\nset encoding=latin1\r\n\" wrap lines at the end of the screen\r\nset wrap\r\n\" indent settings\r\nset tabstop=4\r\nset shiftwidth=4\r\nset softtabstop=4\r\n\"folding settings\r\nset foldmethod=indent\r\nset foldnestmax=3\r\nset nofoldenable\r\nset wildmode=list:full\r\nset wildmenu\r\nset wildignore=*.o,*.obj,*~\r\n\" font settings\r\nset guifont=Monospace\\ 11\r\n\" syntax coloring\r\nif has(\"syntax\")\r\n  syntax on\r\nendif\r\n\" perl specific settings\r\n\" set compiler to perl\r\nautocmd FileType perl compiler perl\r\n\" integrate perltidy with :Tidy or F12 it reformat the buffer\r\n\" or the selected virtual block\r\nautocmd FileType perl command! -range=% -nargs=* Tidy, !perltidy -q\r\nautocmd FileType perl noremap &lt;F12&gt; :Tidy\r\n\" Abbreviations for perl\r\nautocmd FileType perl iab dump# print Data::Dumper-&gt;Dump( [$self] );<\/pre>\n<p>Mit dieser Konfiguration kann ich durch einen einfachen F12 Tastendruck den Perl-Code mit perltidy formatieren und mit F11 den Copy and Paste Modus umschalten. Weiterhin ist es m\u00f6glich Code-Snipples mit den Schl\u00fcsselw\u00f6rtern <em>dump# <\/em>einf\u00fcgen.<\/p>\n<p>Meine <em>.perltidyrc<\/em> Konfiguration sieht wie folgt aus:<\/p>\n<pre># Einr\u00fcckungen mit Tabs wobei 4 Leerzeichen ein Tab sind\r\n-et=4\r\n# Geschweifte Klamemrn auf neuer Zeile\r\n-bl\r\n# Geschweifte Klammern f\u00fcr subs auf neuer Zeile\r\n-sbl\r\n# Keine Leerzeichen in for Statements vor dem Semikolon\r\n-nsfs\r\n# Keinen Zeilenumbruch nach offnenden Token\r\n-vt=2\r\n# Keine Einr\u00fcckung f\u00fcr extra lange Quotes\r\n-nolq\r\n# Keine L\u00e4ngenbeschr\u00e4nkung f\u00fcr Zeilen\r\n-l=0<\/pre>\n<p>So bin ich erstmal ganz zufrieden mit dieser Konfiguration. F\u00fcr weitere Tips und Tricks k\u00f6nnt ihr ja ein Kommentar hinterlassen. So bin ich immer auf der Suche meinen Arbeitworkflow weiter zu optimieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da ich jetzt Hauptberuflich wieder viel Perl programmiere hab ich meinen Lieblings-Editor vim mal etwas auf Perl feinabgestimmt. Mit perltidy Integration f\u00fcr sch\u00f6ner formatierten Quellcode und ein paar Textmakros. Meine .vimrc sieht nun wie folgt aus: &#8221; get easier to &hellip; <a href=\"https:\/\/www.nerdhead.de\/blog\/2011\/02\/11\/perl-programming-with-vim\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6],"tags":[17,18,13,15],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","category-development","category-howto","tag-development","tag-howto","tag-perl","tag-vim"],"_links":{"self":[{"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":8,"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"predecessor-version":[{"id":56,"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions\/56"}],"wp:attachment":[{"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nerdhead.de\/blog\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}