Emacs

Administrator
发布于 2023-12-29 / 28 阅读
1
0

Emacs

Emacs

GTD

ORG

1. 插入日期

	C-c !

< > 上下月切换

2. 插入代码

	C-c C-,
	选择 s 即可插入代码,并支持高亮
	
	#+begin_src sql
	select 1;
	#+end_src

3. 插入表格

普通表格
	C-c |
	输入:Column x Row
特殊表格
	C-c ~

4. 插入图片

	#+ATTR_ORG: :width 200
	#+ATTR_HTML: :width 50% :align center
	[[attachment:xxx.png]]

5. org-latex-preview

5.1 base
	\[
	(A^T)_{i,j} = A_{j,i}
	\]

	C-c C-x C-l

设置预览大小,在.emacs.d/init.el 中添加

	;; org latex size
	(require 'org)
	(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
5.2 实时 latex 预览

安装插件 org-fragtog

配置如下

	 (use-package org-fragtog
	   :after org
	   :hook
	   (org-mode . org-fragtog-mode))

6. 执行emacs-lisp

	1. 在emacs-lisp 末尾的括号C-x C-e
	(message '"hello")
	在最后执行 C-x C-e
	2. M-x eval-buffer 可以执行当前buffer内的elisp代码
	
	3. 选中一个 region 后,M-x eval-region 可以执行这个region内的代码
	4. M: 或者 M-x eval-expression 执行表达式

7. babel

在org中执行代码并输出结果

	#+begin_src bash
	df
	#+end_src
	
	#+RESULTS:
	| Filesystem     | 512-blocks |      Used | Available | Capacity |   iused |     ifree | %iused | Mounted                 | on                        |
	| /dev/disk1s5s1 |  976490576 |  19770280 | 148415960 |      12% |  393731 | 742079800 |     0% | /                       |                           |
	| devfs          |        668 |       668 |         0 |     100% |    1156 |         0 |   100% | /dev                    |                           |
	| /dev/disk1s2   |  976490576 |   3953632 | 148415960 |       3% |    3487 | 742079800 |     0% | /System/Volumes/Preboot |                           |
	| /dev/disk1s4   |  976490576 |   2097240 | 148415960 |       2% |       1 | 742079800 |     0% | /System/Volumes/VM      |                           |
	| /dev/disk1s6   |  976490576 |     54144 | 148415960 |       1% |      18 | 742079800 |     0% | /System/Volumes/Update  |                           |
	| /dev/disk1s1   |  976490576 | 799485600 | 148415960 |      85% | 4543224 | 742079800 |     1% | /System/Volumes/Data    |                           |
	| map            |  auto_home |         0 |         0 |        0 |    100% |         0 |      0 | -                       | /System/Volumes/Data/home |
	使用 C-c C-c y

一般的语言(C,C++,python等)spacemacs已经有ob-C.el (在插件org-plus-contrib中)

对于go或rust 安装插件 ob-go 和ob-rust

然后在.spacemacs中dotspacemacs/user-config () 下配置启动的语言

	(defun dotspacemacs/user-config ()
	  "Configuration function for user code.
	This function is called at the very end of Spacemacs initialization after
	layers configuration.
	This is the place where most of your configurations should be done. Unless it is
	explicitly specified that a variable should be set before a package is loaded,
	you should place your code here."
	 (with-eval-after-load 'org
	   (org-babel-do-load-languages
	    'org-babel-load-languages
	    '(
	      (rust . t)
	      (go . t)
	      (C . t)
	      )))

8. org 导出

8.1 基础

快捷键 SPC m e e

选择导出类型

8.2 导出中文

对于使用latex导出中文,可以在org 开头加上下面两句

	#+LATEX_HEADER: \usepackage{ctex}
	#+LATEX_COMPILER: xelatex
8.3 导出带bibliography的中文

  1. 安装 org-ref

  2. 配置org-latex-pdf-proocess

	(setq org-latex-pdf-process
    	'("latexmk -pdflatex='xelatex -interaction nonstopmode' -pdf -bibtex -f %f"))

  1. S S, 输入 org-ref-insert-cite-link,继续输入你的文献名搜索,然后Enter选择即可

  2. 对于同时引用多个文献,用分号(不是逗号)分隔

	#+LATEX_HEADER: \usepackage{ctex}
	#+LATEX_HEADER: \usepackage{url}
	#+LATEX_COMPILER: xelatex
	    cite:&linnainmaa1970representation;&werbos1974beyond;&fukushima1979neural;&parker1985learning;&lecun1985procedur
	
    bibliographystyle:unsrt
	bibliography:transformers.bib

S m e e l o 即可

9.插入连接

	C-c C-l

Spacemacs

1. 插件的安装与卸载

	M-x list-packages
	
	搜索你需要安装或者卸载的package
	i 安装
	d 卸载

	更好的的方式
	直接把包放到.spacemacs 的dotspacemacs-additional-packages中,重启后自动加载,上面的方式可能会被重启后删掉
	dotspacemacs-additional-packages '(realgud realgud-lldb realgud-jdb ob-rust ob-go)

2. 绑定键

	(global-set-key (kbd "<key>") '<function>)

	(global-set-key (kbd "C-s") 'helm-swoop)

3. 自动换行

	SPC t l

Emacs

1. emacs 打开文件乱码

如果org 文件中\000字节,emacs会以二进制的方式打开,导致看到的乱码,

解决方式 1

不对null-byte检测

	(setq inhibit-null-byte-detection t)

解决方式 2

找到null-byte,删除即可

	# 利用od找到 null-byte
	od -b Lisp.org | grep -w 000                                          
	0020300   141 142 143 000 141 142 143 012 012 351 246 226 345 205 210 346

解决方式 3

临时解决

	M-x revert-buffer-with-coding-system
	utf-8-unix

引用

org-mode,最好的文档编辑利器,没有之一

org-mode插入图片的方法


评论