2017-07-11 1 views
0

J'ai eu du mal à faire fonctionner les fichiers que j'ai installés sur GNU Emacs (via l'archive de paquets). Les fichiers sont correctement installés, mais ne semblent pas avoir d'effet. Ci-dessous la section des archives de paquet de mon .emacs, qui ont été ajoutés automatiquement lorsque j'ai installé les paquets:Configuration correcte des paquets dans GNU Emacs

 '(package-archives 
     (quote 
     (("gnu" . "http://elpa.gnu.org/packages/") 
     ("melpa" . "https://stable.melpa.org/packages/")))) 
    '(package-enable-at-startup t) 
    '(package-selected-packages 
     (quote 
     (company-ycmd flycheck-irony company-rtags company-irony company-irony-c-headers dash solarized-theme)))) 

La section de configuration dans la section d'information des paquets Says par exemple pour flycheck-ironie, d'inclure: Cela n'apparaît nulle part dans mon fichier .emacs, ce qui m'amène à me demander si quelque chose me manque. Toute aide serait appréciée.

+0

Si vous faites 'Mx package-initialize' les paquets deviennent-ils disponibles? Si c'est le cas, alors vous pourriez essayer de mettre 'package-enable-at-startup' à' nil' et ajouter '(package-initialize)' dans votre fichier init ('~/.emacs.d/init.el' ou' ~/.emacs' très probablement). – Nick

+0

Cette instruction 'eval-after-load' est quelque chose que vous devrez ajouter manuellement dans votre fichier init. En plus de mettre à jour les sections 'customize' pour les variables et les visages, Emacs ne changera généralement pas votre fichier init - c'est un fichier que vous gérez vous-même. – phils

Répondre

1

Le principal avantage du package.el est l'automatisation de l'installation de base des paquets Emacs Lisp. Pour de nombreux paquets, tout ce que vous devez faire est d'installer le paquet . Cependant, pour certains paquets, en particulier les paquets qui doivent ajouter crochets à différents modes ou obliger l'utilisateur à sélectionner des fonctionnalités avancées ou fonctionnalités qui ont des alternatives que package.el ne peut pas prédire, en particulier choix en fonction des préférences de l'utilisateur, vous devrez Ajoutez le code init dans init.el ou .emacs.

J'ai trouvé le paquet use-package très utile pour gérer les paquets d'elisp.

Voici ce que j'ai dans mon dossier de init.el utiliser usage package

(add-to-list 'package-archives `("melpa" . "https://melpa.org/packages/")) 
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/")) 
(package-initialize) 

(unless (package-installed-p 'use-package) 
    (package-refresh-contents) 
    (package-install 'use-package)) 
(setq use-package-verbose nil) 
(eval-when-compile 
    (require 'use-package)) 
(require 'diminish) 
(require 'bind-key) 

Ensuite, je bloque l'utilisation-paquet pour chacun des paquets dont j'ai besoin. Certains paquets sont très simples, par ex.

(use-package undo-tree 
    :ensure t 
    :diminish undo-tree-mode 
    :config (global-undo-tree-mode)) 

use-package swiper 
    :ensure t 
    :bind ("C-s". swiper)) 

Le: assurer clé indique utiliser-package pour vous assurer qu'il obtient ce paquet à partir d'un référentiel ELPA . Il existe d'autres clés pour des choses comme épinglant à un référentiel spécifique , faire l'installation avant de charger le paquet, après le chargement du paquet, ajoutant auto = mode alist, les clés de liaison, etc.

la chose vraiment intéressante est que Une fois que vous avez tous vos blocs de package d'utilisation définis dans votre fichier init.el, vous pouvez déplacer ce fichier init.el vers n'importe quelle nouvelle machine et la première fois que vous démarrez emacs, il téléchargera automatiquement tous les packages dont vous avez besoin . L'autre bonne chose à propos de use-package est qu'il va mettre les choses à automatiquement les paquets. Cela peut considérablement accélérer votre temps de démarrage emacs. Vous pouvez également utiliser use-package pour gérer la configuration des fonctionnalités intégrées ou bibliothèques elisp installées manuellement. Vraiment aide à gérer votre fichier init.el et le rend très facile à ajouter/supprimer/déboguer des problèmes, car tout le code est en un seul endroit. Il est aussi puissant que vous avez besoin. Voici ma configuration de mode d'organisation . Ce n'est pas forcément une excellente configuration organisationnelle, mais cela montre comment utiliser use-package pour des configurations plus complexes - mon mode org est fortement configuré/personnalisé pour mes besoins spécifiques.

(use-package org 
    :pin org 
    :ensure org-plus-contrib 
    :init 
    (setq org-catch-invisible-edits 'smart 
     org-ctrl-k-protect-subtree t 
     org-default-notes-file "~/Dropbox/org/notes.org" 
     org-directory "~/Dropbox/org" 
     org-ellipsis "…" 
     org-list-allow-alphabetical t 
     org-list-indent-offset 2 
     org-pretty-entities t 
     org-startup-align-all-tables t 
     org-startup-with-inline-images (display-graphic-p) 
     org-support-shift-select t) 
    (setq org-modules '(org-bibtex 
         org-crypt 
         org-docview 
         org-eww 
         org-info 
         org-irc 
         org-protocol)) 
    (setq org-capture-templates 
     (quote 
     (("t" "todo" entry 
      (file "~/Dropbox/org/refile.org") 
      "* TODO %?\n\n %a" 
      :empty-lines-after 1 :clock-in t :clock-resume t) 
      ("r" "respond" entry 
      (file "~/Dropbox/org/refile.org") 
      "* NEXT Respond to %:from on %:subject\n SCHEDULED: %t\n %a" 
      :empty-lines-after 1 :clock-in t :clock-resume t) 
      ("n" "note" entry 
      (file "~/Dropbox/org/notes.org") 
      "* %? :NOTE:\n\n %a" 
      :empty-lines-after 1 :clock-in t :clock-resume t) 
      ("j" "journal" entry 
      (file+datetree "~/Dropbox/org/journal.org") 
      "* %?\n " 
      :empty-lines-after 1 :clock-in t :clock-resume t) 
      ("p" "phone" entry 
      (file "~/Dropbox/org/refile.org") 
      "* PHONE %? :PHONE:\n " 
      :empty-lines-after 1 :clock-in t :clock-resume t) 
      ("m" "mail" entry 
      (file "~/Dropbox/org/refile.org") 
      "* MAIL from %:from on %:subject\n\n %a" 
      :empty-lines-after 1 :clock-in t :clock-resume t)))) 
    (setq org-enforce-todo-checkbox-dependencies t 
     org-enforce-todo-dependencies t 
     org-log-done 'time 
     org-log-into-drawer t) 
    (setq org-todo-keywords 
     (quote 
     ((sequence "TODO(t)" 
        "NEXT(n)" 
        "STARTED(s!)" 
        "DELEGATED([email protected]/!)" 
        "HOLD([email protected]/!)" 
        "|" 
        "CANCELLED([email protected])" 
        "DONE(d!)")))) 
    (setq org-log-refile 'time 
     org-refile-allow-creating-parent-nodes 'confirm 
     org-refile-targets (quote ((nil :maxlevel . 5) 
            (org-agenda-files :maxlevel . 5))) 
     org-refile-use-outline-path (quote file)) 
    (setq org-clock-in-resume t 
     org-clock-out-remove-zero-time-clocks t 
     org-clock-persist 'clock 
     org-time-clocksum-format '(:hours "%d" :require-hours t 
              :minutes ":%02d" :require-minutes t)) 
    (setq org-agenda-files '("~/Dropbox/org") 
     org-agenda-remove-tags t) 

    (setq org-agenda-custom-commands 
     (quote 
     (("n" "Agenda and all TODO's" 
      ((agenda "" nil) 
      (alltodo "" nil)) 
      nil) 
      ("wr" "Weekly Report" 
      ((todo "DONE|CANCELLED" 
        ((org-agenda-overriding-header "Completed and Cancelled : Last Week"))) 
      (todo "STARTED|NEXT" 
        ((org-agenda-overriding-header "WIP"))) 
      (todo "HOLD|DELEGATED" 
        ((org-agenda-overriding-header "On Hold and Delegated Tasks"))) 
      (todo "TODO" 
        ((org-agenda-overriding-header "Task Backlog")))) 
      nil nil)))) 
    (setq org-src-tab-acts-natively t 
     org-hide-block-startup t) 
    (setq org-confirm-babel-evaluate nil 
     org-babel-noweb-wrap-start "«" 
     org-babel-noweb-wrap-end "»") 
    (setq org-babel-clojure-backend 'cider 
     org-babel-clojure-sync-nrepl-timeout 0) 
    (setq org-plantuml-jar-path (expand-file-name "~/.emacs.d/jars/plantuml.jar") 
     org-ditaa-jar-path (expand-file-name "~/.emacs.d/jars/ditaa.jar") 
     org-ditaa-eps-jar-path (expand-file-name "~/.emacs.d/jars/DitaaEps.jar")) 
    (setq org-export-backends '(ascii beamer html 
            latex texinfo 
            md odt org) 
     org-export-coding-system 'utf-8) 
    (setq org-latex-classes 
     '(("beamer" 
      "\\documentclass[presentation]{beamer}" 
      ("\\section{%s}" . "\\section*{%s}") 
      ("\\subsection{%s}" . "\\subsection*{%s}") 
      ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) 
      ("article" 
      "\\documentclass[12pt]{hitec} 
    [DEFAULT-PACKAGES] 
    [PACKAGES] 
    [NO-EXTRA] 
    \\settextfraction{0.95}\n" 
      ("\\section{%s}" . "\\section*{%s}") 
      ("\\subsection{%s}" . "\\subsection*{%s}") 
      ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 
      ("\\paragraph{%s}" . "\\paragraph*{%s}") 
      ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) 
      ("report" 
      "\\documentclass[11pt]{report}" 
      ("\\part{%s}" . "\\part*{%s}") 
      ("\\chapter{%s}" . "\\chapter*{%s}") 
      ("\\section{%s}" . "\\section*{%s}") 
      ("\\subsection{%s}" . "\\subsection*{%s}") 
      ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) 
      ("book" 
      "\\documentclass[11pt]{book}" 
      ("\\part{%s}" . "\\part*{%s}") 
      ("\\chapter{%s}" . "\\chapter*{%s}") 
      ("\\section{%s}" . "\\section*{%s}") 
      ("\\subsection{%s}" . "\\subsection*{%s}") 
      ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) 
      ("une-article" 
      "\\documentclass[a4paper,12pt]{scrartcl} 
    [DEFAULT-PACKAGES] 
    [PACKAGES] 
    \\usepackage[margin=1.5cm]{geometry} 
    [EXTRA]\n" 
      ("\\section{%s}" . "\\section*{%s}") 
      ("\\subsection{%s}" . "\\subsection*{%s}") 
      ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 
      ("\\paragraph{%s}" . "\\paragraph*{%s}") 
      ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) 
      ("une-logo" 
      "\\documentclass[a4paper,12pt]{scrartcl} 
    [DEFAULT-PACKAGES] 
    [PACKAGES] 
    \\usepackage[margin=1.5cm]{geometry} 
    [EXTRA] 
    \\definecolor{unegreen}{HTML}{7AB800} 
    \\definecolor{Black}{HTML}{000000} 
    \\definecolor{White}{HTML}{FFFFFF} 
    \\definecolor{dimgrey}{HTML}{696969} 
    \\makeatletter 
    \\def\\@maketitle{ 
    \\noindent \\begin{minipage}[c][4cm][t]{\\linewidth} 
    \\colorbox{Black}{% 
     \\begin{minipage}[t][4cm][c]{4cm} 
     \\flushleft 
     \\includegraphics{~/.emacs.d/img/unelogo_medium.png} 
    \\end{minipage}} 
    \\colorbox{unegreen}{% 
     \\begin{minipage}[t][4cm][c]{13.5cm} 
     \\flushright 
     \\Large \\textbf{\\color{White}{\\@title}} \\\\ 
      \\vspace{4pt} 
     \\small \\color{White}{\\@author} \\\\ 
     \\small \\color{White}{\\@date} 
     \\end{minipage}} 
    \\end{minipage}} 
    \\makeatother\n" 
      ("\\section{%s}" . "\\section*{%s}") 
      ("\\subsection{%s}" . "\\subsection*{%s}") 
      ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 
      ("\\paragraph{%s}" . "\\paragraph*{%s}") 
      ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) 
      ("old-article" "\\documentclass[11pt]{article}" 
      ("\\section{%s}" . "\\section*{%s}") 
      ("\\subsection{%s}" . "\\subsection*{%s}") 
      ("\\subsubsection{%s}" . "\\subsubsection*{%s}") 
      ("\\paragraph{%s}" . "\\paragraph*{%s}") 
      ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) 
     ) 
    (setq org-latex-hyperref-template 
     "\\hypersetup{pdfauthor={%a}, 
         pdftitle={%t}, 
         pdfkeywords={%k}, 
         pdfsubject={%d}, 
         pdfcreator={%c}, 
         pdflang={%L}, 
         colorlinks=true, 
         linkcolor=blue}") 
    (setq org-latex-listings t 
     org-latex-listings-options '(("basicstyle" "\\tiny") 
            ("frame" "single") 
            ("stringstyle" "\\color{orange}") 
            ("commentstyle" "\\color{cyan}") 
            ("keywordstyle" "\\color{blue}") 
            ("showstringspaces" "false") 
            ("breakatwhitespace" "false") 
            ("breaklines" "true"))) 
    (setq org-latex-pdf-process 
     '("lualatex -interaction nonstopmode -output-directory %o %f" 
      "lualatex -interaction nonstopmode -output-directory %o %f" 
      "lualatex -interaction nonstopmode -output-directory %o %f")) 
    (setq org-latex-packages-alist 
     '(("" "parskip") 
      ("" "xcolor") 
      ("" "listings"))) 
    (setq org-html-checkbox-type 'unicode 
     org-html-html5-fancy t 
     org-html-doctype "html5") 
    (setq org-ascii-charset 'utf-8 
     org-ascii-text-width 79) 
    :config 
    (org-element-update-syntax) 
    (org-clock-persistence-insinuate) 

    (add-to-list 'org-structure-template-alist 
       '("p" "#+BEGIN_SRC python\n?\n#+END_SRC" 
       "<src lang=\"python\">\n?\n</src>")) 

    (add-to-list 'org-structure-template-alist 
       '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC" 
       "<src lang=\"emacs-lisp\">\n?\n</src>")) 

    (add-to-list 'org-structure-template-alist 
       '("cl" "#+BEGIN_SRC clojure-mode\n?\n#+END_SRC" 
       "<src lang=\"clojure-mode\">\n?\n</src>")) 
    (org-babel-do-load-languages 
    'org-babel-load-languages 
    '((emacs-lisp . t) 
    (clojure . t) 
    (css . t) 
    (dot . t) 
    (java . t) 
    (js . t) 
    (latex . t) 
    (ledger . t) 
    (makefile . t) 
    (org . t) 
    (perl . t) 
    (python . t) 
    (ruby . t) 
    (scheme . t) 
    (shell . t) 
    (sql . t) 
    (C . t) 
    (ditaa . t) 
    (plantuml . t))) 
    (when *is-a-mac* 
    (use-package org-mac-link 
     :ensure t 
     :bind (:map org-mode-map 
        ("C-c g" . org-mac-grab-link)))) 
    (bind-key "C-c l" 'org-store-link) 
    (bind-key "C-c a" 'org-agenda) 
    (bind-key "C-c b" 'org-switchb) 
    (bind-key "C-c r" 'org-capture)) 
0

Vous pouvez perdre tout votre temps productif de cette façon. Erreurs sur les erreurs dans les nouveaux emacs. Je n'ai jamais vu un tel dans les 40 dernières années depuis le début!L'alternative est: Prenez un éditeur qui fonctionne vraiment et priez pour Stallman et ses emacs géniaux.

(! BTW .: Et pour Ian Murdock trop Nous VLive dans de très graves circonstances!)

Après 40 ans de très bon usage: Depuis la version 25 emacs n'est plus utilisable. Et beaucoup d'autres logiciels libres aussi! Les mathématiques (stochastiques) disent: Il est impossible que tout cela puisse être dangereux. Semble, il y a un tas de gens, qui veulent gâcher Stallman à mort par le sabotage caché d'emacs et il semble, il pourrait y avoir beaucoup d'ennemis cachés du logiciel libre, des saboteurs et des taupes dans la lignée des pirates gratuits eux-mêmes aujourd'hui ...

Je ne suis plus le plus jeune (dans mes plus hautes (sic.) ninetiees!) et j'en ai vu beaucoup dans le monde entier durant ma vie et je dis par expérience et par la distribution gaussienne: Cette accumulation d '"erreurs" dans les projets de logiciels libres de la dernière décennie n'est pas un hasard, elle est le résultat d'un sabotage organisé contre l'idée de logiciel libre et d'une sur-ingénierie cliniquement malade plus un problème de changement de génération. : Il y avait beaucoup de mathématiciens sérieux, bien éduqués, qui étaient aussi des développeurs dans le passé - aujourd'hui nous J'ai seulement une bande de hackers fous et de «porteurs» de cerveaux et donc la qualité du logiciel change radicalement pour le mauvais côté maintenant ... un désastre à mes yeux ... mais im trop vieux maintenant, pour passer ce combat plus loin ...

(Hella (presque 97))

BTW: il y avait (et est) un complètement en direct sans ordinateurs aussi - et il était pas le pire moment, si je me souviens ...