{"id":967,"date":"2018-01-12T00:35:01","date_gmt":"2018-01-12T00:35:01","guid":{"rendered":"http:\/\/blog.datentraeger.li\/?p=967"},"modified":"2018-06-13T07:59:00","modified_gmt":"2018-06-13T07:59:00","slug":"vim-doc-odt-pdf-und-co","status":"publish","type":"post","link":"https:\/\/blog.datentraeger.li\/?p=967","title":{"rendered":"vim: doc, odt, pdf und Co."},"content":{"rendered":"<p>Grad auf <a href=\"https:\/\/www.reddit.com\/r\/vim\/comments\/7pmv3d\/workflows_that_work\/\" target=\"_blank\" rel=\"noopener\">Reddit<\/a> gesehen und finde es erw\u00e4hnenswert: mit diesem Schnipsel kann man Word-Dokumente, LibreOffice-Dokumente etc direkt in vim \u00f6ffnen (RO). Nat\u00fcrlich m\u00fcssen die ben\u00f6tigten Tools installiert sein (antiword, pandoc, odt2txt etc).<\/p>\n<pre class=\"lang:default decode:true \">augroup read_special_files\r\n    au! \r\n    au BufWinEnter  *.{doc,docx,epub,odp,odt,pdf,rtf}  call s:filter_special_files()\r\naugroup END \r\n\r\nfu! s:filter_special_files() abort\r\n    if get(b:, 'did_filter_special_file', 0)\r\n        return\r\n    endif\r\n    let fname = shellescape(expand('%:p'), 1)\r\n    let ext = expand('%:e')\r\n    let ext2filter_cmd = { \r\n    \\                      'doc' : '%!antiword '.fname,\r\n    \\                      'docx': '%!pandoc -f docx -t markdown '.fname,\r\n    \\                      'epub': '%!pandoc -f epub -t markdown '.fname,\r\n    \\                      'odp' : '%!odt2txt '.fname,\r\n    \\                      'odt' : '%!odt2txt '.fname,\r\n    \\                      'pdf' : '%!pdftotext -nopgbrk -layout -q -eol unix '.fname.' -',\r\n    \\                      'rtf' : '%!unrtf --text',\r\n    \\                    }\r\n    setl ma noro\r\n    sil exe has_key(ext2filter_cmd, ext)\r\n    \\?          ext2filter_cmd[ext]\r\n    \\:          ''\r\n    setl noma ro nomod\r\n    let b:did_filter_special_file = 1 \r\nendfu<\/pre>\n<p>Und das ganze funktioniert dann auch noch verdammt gut. Geil.<\/p>\n","protected":false},"excerpt":{"rendered":"Grad auf Reddit gesehen und finde es erw\u00e4hnenswert: mit diesem Schnipsel kann man Word-Dokumente, LibreOffice-Dokumente etc direkt in vim \u00f6ffnen (RO). Nat\u00fcrlich m\u00fcssen die ben\u00f6tigten Tools installiert sein (antiword, pandoc, odt2txt etc). augroup read_special_files au! au BufWinEnter *.{doc,docx,epub,odp,odt,pdf,rtf} call s:filter_special_files() augroup END fu! s:filter_special_files() abort if get(b:, &#8216;did_filter_special_file&#8217;, 0) return&hellip;\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36,4,51],"tags":[],"class_list":["post-967","post","type-post","status-publish","format-standard","hentry","category-cli","category-debiangnu-linux","category-vim"],"_links":{"self":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=967"}],"version-history":[{"count":3,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/967\/revisions"}],"predecessor-version":[{"id":970,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/967\/revisions\/970"}],"wp:attachment":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}