7
votes

Org-mode zip nécessaire, comment aller trop venir?

J'ai un document org-mode que je souhaite convertir au format de document ouvert. Lorsque j'essaie de faire cela ( Ctrl + C + E + o ) je reçois un message d'erreur: < / p>

exécutable "zip" nécessaire pour créer des fichiers OpenDocument. Abandonner.

J'ai installé P7zip sur ma machine, mais je ne sais pas comment dire Emacs c'est là. Je ne suis pas sûr de quoi vouloir le mode org, je ne suis pas sûr de quoi configurer .emacs.

merci


2 commentaires

Si vous exécutez zip à partir de la ligne de commande (DOS-Invite si vous êtes sous Windows, vous semblez être) le reconnaît-il comme une commande ou un programme?


Si vous exécutez Debian ou Ubuntu ou un dérivé similaire de GNU / Linux, alors apt-get install Zip Unzip vous obtiendra ces utilitaires.


3 Réponses :


6
votes

Votre exécutable P7Zip doit être dans EMACS EXEC-PATH CODE> VARIABLE, de sorte que EMACS peut le trouver.

En outre, l'exécutable doit être appelé "zip" car il est codé dur dans la org-odt-init-workfile code> fonction. p>

Vérifiez le réglage de Exec-chemin code> d'abord pour vous assurer qu'il inclut l'emplacement de votre exécutable ZIP . P>

`M-x customize-variable RET exec-path RET`


0 commentaires

0
votes

Vous avez besoin d'info-zip. Voir http://lists.gnu.org/archive/ HTML / EMACS-ORGMODE / 2011-07 / MSG00485.HTML

p7zip peut ne pas être compatible avec Zip Command-Line Utility, si je passe par ce post: http://sourceforge.net/projects/sevenzip/forums/forum/45797/topic/1521207?Message=3786349 . Donc, je pense que P7Zip n'est peut-être pas une option viable ici.


0 commentaires

0
votes

Ne pas avoir besoin p7zip code> ou info-zip code> Programmes externes, emacs DEPS code> expédié avec un programme ZIP: minizip code >. (Pour plus d'informations, voir moyen le plus simple d'installer les bibliothèques de support Windows EMACS Windows )

Certaines situations que nous devons être connues: p>

  1. minizip code> ne supporte pas zip récursif li>
  2. zip code> avait été codé dur dans ox-odt.el code> li>
  3. Minizip code> S option n'est pas compatible avec `ZIP ' LI> ol>

    j'ai généré un zip.bat code> lot dans elisp code> Ajoutez le chemin d'accès de zip.bat code> à % Chemin% code> (pour ORG Export à ODT) et EXEC-PATH CODE> (pour les fichiers ZIP, DIRED-DO-Compress-to p> P> zip.bat code>: p> xxx pré>

    la fonction marque-zip-battonné code> qui génère zip.bat Code>: P>

    (defun make-zip-bat (zip &rest ignore)
      "Make ZIP.bat in `exec-path' for minizip or 7za."
      (declare (indent 1))
      (when (stringp zip)
        (save-str-to-file
         (concat "@echo off\n"
                         (format "REM zip.bat for %s on Windows\n" zip)
                         "REM generated by More Reasonable Emacs https://github.com/junjiemars/.emacs.d\n\n"
                         (concat "REM local variable declaration\n\n"
                                         "setlocal EnableDelayedExpansion\n"
                                         "\n"
                                         "set _OPT=%*\n"
                                         "set _ZIP=\n"
                                         "set _ARGV=\n"
                                         "\n"
                                         "REM parsing command line arguments\n\n"
                                         ":getopt\n"
                                         (cond ((string= "minizip" zip)
                                                        "if \"%1\"==\"-mX0\" set _OPT=%_OPT:-mX0=-0% & shift & goto :getopt\n")
                                                     ((string= "7za" zip)
                                                        (concat
                                                         "if \"%1\"==\"-mX0\" set _OPT=%_OPT:-mX0=-mx0% & shift & goto :getopt\n"
                                                         "if \"%1\"==\"-0\" set _OPT=%_OPT:-0=-mx0% & shift & goto :getopt\n"
                                                         "if \"%1\"==\"-9\" set _OPT=%_OPT:-9=-mx9% & shift & goto :getopt\n")))
                                         "\n"
                                         "REM ignore options\n"
                                         (let ((options nil))
                                             (dolist (x (cond ((string= "minizip" zip)
                                                                                 (append '("-r" "--filesync" "-rmTq") ignore))
                                                                                ((string= "7za" zip)
                                                                                 (append '("-r" "--filesync" "-rmTq"))))
                                                                    options)
                                                 (setq options
                                                             (concat options
                                                                             (format "if \"%%1\"==\"%s\" set _OPT=%%_OPT:%s=%% & shift & goto :getopt\n" x x)))))
                                         "\n"
                                         "REM extract zip and argv\n"
                                         "if not \"%1\"==\"\" (\n"
                                         "  if \"%_ZIP%\"==\"\" (\n"
                                         "    if \"%_ARGV%\"==\"\" (\n"
                                         "      set _ZIP=%1\n"
                                         "    )\n"
                                         "  ) else (\n"
                                         "    set _ARGV=%_ARGV% %1\n"
                                         "  )\n"
                                         "  set _OPT=!_OPT:%1=!\n"
                                         "  shift\n"
                                         "  goto :getopt\n"
                                         ")\n\n")
                         (cond ((string= "7za" zip)
                                        (concat "REM 7za call\n"
                                                        "7za a %_OPT% -tzip -- %_ZIP% %_ARGV%\n"
                                                        "if exist %_ZIP% (\n"
                                                        "  7za d %_OPT% -tzip -- %_ZIP% %_ZIP%\n"
                                                        ")\n"))
                                     ((string= "minizip" zip)
                                        (concat "REM minizip recursive call\n\n"
                                                        "call :loop %_ARGV%\n"
                                                        "goto :end\n"
                                                        "\n:zip\n"
                                                        "set _file=%1\n"
                                                        "set _file=%_file:./=%\n"
                                                        "if not \"%_file%\"==\"%_ZIP%\" (\n"
                                                        "  if exist %_ZIP% (\n"
                                                        "    minizip %_OPT% -a %_ZIP% %_file%\n"
                                                        "  ) else (\n"
                                                        "    minizip %_OPT% %_ZIP% %_file%\n"
                                                        "  )\n"
                                                        ")\n"
                                                        "goto :end\n"
                                                        "\n:loop\n"
                                                        "for %%i in (%*) do (\n"
                                                        "  if exist \"%%i/*\" (\n"
                                                        "    for %%f in (%%i/*) do (\n"
                                                        "      call :loop %%i/%%f\n"
                                                        "    )\n"
                                                        "    for /d %%d in (%%i/*) do (\n"
                                                        "      call :loop %%i/%%d\n"
                                                        "    )\n"
                                                        "  ) else (\n"
                                                        "    call :zip %%i\n"
                                                        "  )\n"
                                                        ")\n"
                                                        "\n:end\n"))))
         (v-home% ".exec/zip.bat"))))
    


0 commentaires