Learn Emacs in 21 Days: day 2 学习笔记

时间:2022-12-26 13:27:34

子龙山人Learn Emacs in 21 Days: day 1 学习笔记
Youtube
youku

1. 继续配置emacs

取消备份文件

默认会在打开的文件的目录生成相关的~文件,于以下命令可以取消生成备份文件
(setq make-backup-files nil)

最近打开文件

M-x recentf-mode
recentf-mode 激活后可以在File 中看到最近打开文件(Open Recent)
init.el 开启中加入recentf

(require 'recentf)
(recentf-mode 1)            
(setq recentf-max-menu-items 25)
(global-set-key "\C-x\ \C-r" 'recentf-open-files)

分屏

C-x 2 上下分屏

C-x 3 左右分屏

打开emacs-lisp buffer

在org-mode 里中SRC 块中,执行C-c ’ 可以打开emacs-lips buffer


    #+BEGIN_SRC emacs-lisp
    (setq make-backup-files nil)
    #+END_SRC 

设置文档中语法高亮

    (require 'org)
    (setq org-src-fontify-natively t)

执行整个buffer

M-x eval-buffer 

替换选中的块

(delete-selection-mode t)

快速拼写SRC块


    #+BEGIN_SRC emacs-lisp

    #+END_SRC 

2. 优化emacs

显示括号

(add-hook 'emacs-lisp-mode-hook 'show-paren-mode)

高亮当前行

(global-hl-line-mode t)

3. 改进package 系统

设置源

(when (>= emacs-major-version 24) (require 'package) (package-initialize) (add-to-list 'package-archives '("gnu" . "http://elpa.emacs-china.org/gnu/") t) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t) )
(require 'cl)

;;add whatever packages you want here
(defvar sandwich/packages '( company monokai-theme hungry-delete ) "Default packages")

(defun sandwich/packages-installed-p () (loop for pkg in sandwich/packages when (not (package-installed-p pkg)) do (return nil) finally (return t)))

(unless (sandwich/packages-installed-p) (message "%s" "Refreshing package database...") (package-refresh-contents) (dolist (pkg sandwich/packages) (when (not (package-installed-p pkg)) (package-install pkg))))

设置主题

M-x load-theme
后输入monokai可加载主题

在init.el 加上以下命令可以默认加载主题

(load-theme 'monokai t)

安装hungry-delete

通过melpa.org中的搜索和source可以查看mode 的使用方法

(require 'hungry-delete)
(global-hungry-delete-mode)

package-list-packges

M-x package-list-packges

命令的作用和Option-Manage Emacs Packages的作用一样
i 安装
d 卸载
U 更新全部
x 执行
更新完可能要运行M-x package-autoremove 删除老的package

安装smartparens swiper counsel

参考安装hungry-delete

customize-group

M-x customize-group
输入company 即可定制company-mode 的配置

序号自动重排

1. install a theme (monokai)
2. install hungry delete mode
3. package-list-packages (add/delete/update packages)
4. install and configure smex and ivy mode
5. lalalal
5. use customize-group to customize the package settings
6. install and configure smartparens mode
7. Don't try to update the package daily, the updating process might failed.

光标在行尾按M + Enter 后自动变成

1. install a theme (monokai)
2. install hungry delete mode
3. package-list-packages (add/delete/update packages)
4. install and configure smex and ivy mode
5. lalalal
6. use customize-group to customize the package settings
7. install and configure smartparens mode
8. Don't try to update the package daily, the updating process might failed.
9. 

3. js 编程支持

安装js2-mode nodejs-repl exec-path-from-shell

需要配置exec-path-from-shell 让examcs 可以运行shell 中的程序

    (when (memq window-system '(mac ns)) (exec-path-from-shell-initialize))

M-x nodejs-repl 即可调动js 执行窗口
M-x nodejs-repl-send-buffer 可以将js 文件执行

4. 其它

find-function

M-x find-function

然后输入nodejs-repl 可以跳转到该函数

M-x find-variable 跳转到该值定义
M-x find-function-on-key 跳转到该快捷键定义

可以设置以下快捷键

(global-set-key (kbd "C-h C-f") 'find-function)
(global-set-key (kbd "C-h C-v") 'find-variable)
(global-set-key (kbd "C-h C-f") 'find-function-on-key)

info

M-x info 可以打开info

org-mode

C-c C-t 改变状态
C-c C-s 改变开始时间
C-c C-d 改变结束时间
注意如果init.el 里有以下配置,会影响agenda 的使用,需要删除

'(org-agenda-files nil)