Emacs 重新开始,从心开始
重装系统之后,也重装了emacs,采用了GNU Emacs 25.3.1,重新整理了.emacs配置
只保留最基本的功能.达到简化的目的,我认为以下功能是必需的,记录与此.
1. emacs 默认白底黑字, 通过菜单改为黑底白字. 保存后会在.emacs生成对应客户化配置.
2. emacs 默认启动About Gnu Emacs 窗口, 禁用之:
3. 用list-package命令, 发现才269个包, 怎么那么少, 没有我喜欢的插件,所以需要配置一下源.
添加gnu 和 melpa 的源, 用国内镜像也许会快点,但也可能有别的问题.
再启动emacs, 一下子有4057个包, 这下够用了,从里面选择喜欢的吧.
4. 最大化窗口设置 (只用鼠标点击,最后还是要输入几个字的,fullscreen,maximized.
5. 关闭产生备份文件(~文件),设置一个变量.
同时通过变量设置也设置了标题栏显示i格式,显示列号
6. ace-jump 插件,方便屏幕上光标移动. 设置快捷键C-c SPC, C-x SPC
7. ace-window 插件,方便切换窗口. 设置快捷键 C-x o (覆盖旧切换方式)
8. 打开recentf minor 模式
9. 引入autosave 插件, 能自动帮我们存储改动的文件.
关于不启动emacs, 重新加载.emacs 或者执行其中的语句或函数
C-x C-e 执行光标前面的一条语句。
选择一个 region , M-x eval-region
M-x load-file ~/.emacs
都是立即生效!
如此便是一个强悍的shell 和 具有完备功能的文本编辑器
附上配置代码:
(setq package-archives '(("gnu". "http://elpa.gnu.org/packages/")
("melpa"."http://melpa.milkbox.net/packages/")))
;; Added by Package.el. This must come before configurations of
;; installed packages. Don't delete this line. If you don't want it,
;; just comment it out by adding a semicolon to the start of the line.
;; You may delete these explanatory comments.
(package-initialize)
;;禁用启动画面
(setq inhibit-startup-message t)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(initial-frame-alist (quote ((fullscreen . maximized))))
'(package-selected-packages (quote (ace-window ace-jump-mode))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :background "black" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 128 :width normal :foundry "unknown" :family "Ubuntu Mono")))))
;;for ace-jump mode
(autoload
'ace-jump-mode
"ace-jump-mode"
"Emacs quick move minor mode"
t)
(define-key global-map (kbd "C-c SPC") 'ace-jump-mode)
(autoload
'ace-jump-mode-pop-mark
"ace-jump-mode"
"Ace jump back:-)"
t)
(eval-after-load "ace-jump-mode"
'(ace-jump-mode-enable-mark-sync))
(define-key global-map (kbd "C-x SPC") 'ace-jump-mode-pop-mark)
;; shell mode 自己重新定义了c-c SPC, 我们这里重新定义c-c SPC到ace-jump-mode
(add-hook 'shell-mode-hook
(lambda ()
(local-set-key (kbd "C-c SPC") 'ace-jump-mode)))
(global-set-key [C-return] 'set-mark-command);; 重新设置mark 快捷键
(global-set-key (kbd "C-x o") 'ace-window);; 启用ace-window 快捷键
(setq frame-title-format "%f");;标题栏显示 %f 缓冲区完整路径 %p 页面百分数 %l 行号
(setq column-number-mode t);; 显示列号
(setq make-backup-files nil) ;; 不出现备份文件(~文件)
(show-paren-mode t);; 高亮匹配符号
(fset 'yes-or-no-p 'y-or-n-p);;用y-n替代yes,no
;;recentf
(recentf-mode t)
(setq recentf-max-menu-items 25)
(setq recentf-max-saved-items 100)
(global-set-key "\C-x\ \C-r" 'recentf-open-files)
;;autosave
(add-to-list 'load-path "~/mylisp") ;;添加路径
(require 'auto-save) ;; 加载自动保存模块
(auto-save-enable) ;; 开启自动保存功能
(setq auto-save-slient t) ;; 自动保存的时候静悄悄的, 不要打扰我
换国内的源:
(setq package-archives '(("gnu" . "http://elpa.emacs-china.org/gnu/")
("melpa" . "http://elpa.emacs-china.org/melpa/")))
用list-packages 命令,出现如下错误
Failed to verify signature archive-contents.sig:
No public key for 066DAFCB81E42C40 created at 2019-10-02T10:10:02+0100 using RSA
Command output:
gpg: Signature made Wed 02 Oct 2019 10:10:02 AM BST
gpg: using RSA key C433554766D3DDC64221BFAA066DAFCB81E42C40
gpg: Can't check signature: No public key
说是没有密钥,需要从服务器获得.
其它方法没实验成功,下面方法可行.
gpg --homedir ~/.emacs.d/elpa/gnupg --receive-keys 066DAFCB81E42C40
gpg: 密钥 066DAFCB81E42C40:公钥“GNU ELPA Signing Agent (2019) <[email protected]>”已导入
gpg: 没有找到任何绝对信任的密钥
gpg: 合计被处理的数量:1
gpg: 已导入:1
确实下来了一些文件,重启emacs, list-packages 检查通过