2017-07-11 95 views
0

我一直在获取GNU Emacs上安装的文件(通过软件包压缩文件)工作时遇到问题。这些文件已正确安装,但似乎没有任何影响。下面是我的.emacs文件,当我安装的软件包,其自动添加的包文件的部分:正确配置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)))) 

在包的信息部分的配置部分说,例如用于flycheck嘲讽,包括:

 (eval-after-load 'flycheck 
     '(add-hook 'flycheck-mode-hook #'flycheck-irony-setup)) 

这在我的.emacs文件中没有出现,使我不知道是否缺少某些东西。任何帮助,将不胜感激。

+0

如果你做'Mx包初始化'包是否可用?如果是这样,那么你可以尝试将'package-enable-at-startup'设置为'nil'并将'(package-initialize)'添加到你的init文件('〜/ .emacs.d/init.el'或' 〜/ .emacs'最可能)。 – Nick

+0

加载eval-after-load'语句是你希望手动添加到你的init文件的东西。除了更新变量和面的'customize'部分之外,Emacs通常不会更改您的init文件 - 它是您自己维护的文件。 – phils

回答

1

package.el的主要优点是基本的 安装Emacs lisp软件包的自动化。对于很多软件包,你只需要安装 这个软件包。但是,对于某些包,特别是需要将 挂钩添加到不同模式或要求用户选择高级功能或 功能,这些功能具有package.el无法预测的替代功能,特别是基于用户首选项的 选择,您需要在init.el或 .emacs中添加init代码。

我发现use-package软件包对管理elisp 软件包非常有用。

以下是我在我的init.el文件中使用的用包

(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) 

然后我都有用包块每个我所需要的软件包。一些包装 非常简单,例如

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

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

的:确保重点讲述使用包装,以确保它从ELPA 库得到这个包。还有其他键之类的钉扎到特定 仓库,做之前设置安装包,装包后, 将自动=模式ALIST,结合键等

真正好处是,一旦你在你的init.el文件中定义了所有使用包模块 ,你可以将该init.el文件移动到任何新机器上,并且在你第一次启动emacs时,它会自动下载你需要的所有包。关于use-package的另一个好处是它将自动加载软件包设置为 。这可以显着加快您的emacs启动时间。您还可以使用use-package来管理内置功能的配置或手动安装的elisp库。真的有助于管理你的init.el文件 ,并且使添加/删除/调试问题变得非常容易,因为所有相关的 代码都在一个地方。它也像你所需要的那样强大。这是我的组织模式 配置。它不一定是一个很好的组织结构,但它确实显示了如何使用use-package进行更复杂的设置 - 我的组织模式根据我的特定要求进行了大量配置/定制。

(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

你可以用这种方式浪费你的整个生产时间。新emacs中的错误。我从一开始就看到了过去40年来的这样一个人!

另一种方法是:请一位真正有效的编辑并为Stallman和他的亲切emacs祷告。

(!顺便说一句:而对于伊恩·默多克也是我们vlive非常严重的情况下!)

经过40多年的很好用的:由于25版的Emacs是不再可用。还有很多其他的免费软件!数学(随机)说:这是不可能的,所有这些都可能是一个危险。

似乎有一群人想要通过隐藏的emacs破坏来摧毁Stallman,看起来,自由软件,破坏者和痣可能会隐藏在自由黑客行列中的很多隐藏的敌人他们今天...

我不是最年轻的了(在我的更高(原文如此)的九十年代!),在我的生活中,我在整个世界都看过很多,我说的是经验和高斯分布:过去十年免费软件项目中“错误”的积累不是一种危险,它是由于对自由软件概念的有组织破坏加上临床病态过度工程加上产生变化的问题:有很多认真,受过良好教育的数学家,过去也是开发者 - 今天我们只有一群疯狂的黑客和脑筋急转弯的“运营商”,所以软件的质量正在急剧变化,以至于现在的糟糕的一面......我眼中的一场灾难......但现在我太老了,为了更进一步地通过这场战斗...

(海拉(近97))

BTW:有(是)现场完全没有电脑 - 并且它不是最糟糕的时候,如果我记得......