J'ai un document org-mode que je souhaite convertir au format de document ouvert. Lorsque j'essaie de faire cela ( exécutable "zip" nécessaire pour créer des fichiers OpenDocument. Abandonner. P>
blockQuote>
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. p>
merci p> Ctrl code> +
C code> +
E code> +
o code>) je reçois un message d'erreur: < / p>
3 Réponses :
Votre exécutable P7Zip doit être dans EMACS En outre, l'exécutable doit être appelé "zip" car il est codé dur dans la Vérifiez le réglage de EXEC-PATH CODE> VARIABLE, de sorte que EMACS peut le trouver.
org-odt-init-workfile code> fonction. p>
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`
Vous avez besoin d'info-zip. Voir http://lists.gnu.org/archive/ HTML / EMACS-ORGMODE / 2011-07 / MSG00485.HTML P>
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. P>
Ne pas avoir besoin Certaines situations que nous devons être connues: p> j'ai généré un la fonction 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 )
minizip code> ne supporte pas zip récursif li>
zip code> avait été codé dur dans
ox-odt.el code> li>
Minizip code> S option n'est pas compatible avec `ZIP ' LI>
ol>
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>
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"))))
Si vous exécutez
zip code> à 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 code> vous obtiendra ces utilitaires.