1
不想再说废话了,既然你会阅读这篇文档,说明你多少对Emacs有些兴趣,或者已 经非常熟悉Emacs的基础操作了,并且希望有所提高。因此我不需要再把"编辑器 之神,还是神的编辑器"之类的恶俗话语放出来,来吸引你的好奇心。下面的内容, 从最基础的快捷键操作开始,一直到让你生活在Emacs中。这中间没有跳跃,你只 需要跟着我做,就可以了。
注意该文档就是用Org生成的,我会把.org源码和html文档一块打包。关于 什么是Org,怎么生成,且看后面的讲解
2
2.1
下面这些主要涉及了文件的基本操作,包括打开,新建,保存,另存为以及退出等比较常用的命令。
2.2
这里边最方便的就是句首句尾和行首行尾,因为我的是笔记本键盘,上下左右主 要是用方向键,如果要是标准键盘的话,最好常用绑定键。
2.3
这里面包括了复制粘贴剪切删除等常用的操作命令。注意,在这里,移除包括了 剪切和删除两个概念,要区分清楚。
2.4
2.5
2.6
窗口命令比较常用,尤其是编辑多个文件的时候,你可以打开多个窗口,可以提 高编辑效率。
2.7
3
每一次emacs启动的时候,它将加载一个名为~/.emacs的Lisp代码文件,对该文件 进行编辑是一种常用的定制emacs的方式。
下面是一个典型的Lisp语句:
(setq column-number-mode t)
(setqline-number-mode t)
它的意思是在minibuffer上栏显示行列号。其中,括号表示这是一个lisp函数调 用,圆括号内第一个符号setq为emacs配置文件中常用的的函数,它为某个全局变 量赋值。该函数第一个参数为要设置的变量名,第二个数则是该变量的值。
下面讲到的每一行代码,你都可以直接拿到~/.emacs中使用。当你想要了解某一 行代码的作用时,可以把它复制粘贴到~/.emacs中,保存然后重启emacs就可以看 到效果了。
小技巧 当你编辑~/.emacs配置文件的时候,每一次要看到效果都必须重新 启动emacs,非常麻烦。你可以用emacs打开.emacs文件并加入你想 要的lisp代码后,使用C-x C-s保存,接着在minibuffer输入:M-x eval-buffer,它会立即生效。你可以试验一下,非常方便和简单。
3.1
每一条上面都有注释,我就不多说了。
;; 设置标题栏,我的设置为Welcome to Emacs world!
(setq frame-title-format "Welcome to Emacs world! ")
;; 禁用菜单栏,F10 开启关闭菜单
(menu-bar-mode nil)
;; 取消工具栏
(tool-bar-mode nil)
;; 取消滚动栏
(set-scroll-bar-mode nil)
;; 显示行列号,它显示在minibuffer上面那个杠上
(setq column-number-mode t)
(setq line-number-mode t)
;;关闭emacs启动时的画面
(setq inhibit-startup-message t)
;;关闭gnus启动时的画面
(setq gnus-inhibit-startup-message t)
;; 设置启动时窗口的长宽,下面为80*40
(setq initial-frame-alist '((width . 80) (height . 40)))
;;关闭出错时的提示声
(setq visible-bell t)
3.2
;;设置打开文件的缺省路径,这里为桌面,默认的路径为“~/”
(setq default-directory "~/桌面")
;;让 Emacs 可以直接打开和显示图片。
(setq auto-image-file-mode t)
;;防止页面滚动时跳动,
;;scroll-margin 3 可以在靠近屏幕边沿3行时就开始滚动
;;scroll-step 1 设置为每次翻滚一行,可以使页面更连续
(setq scroll-step 1 scroll-margin 3 scroll-conservatively 10000)
;; 当光标在行尾上下移动的时候,始终保持在行尾。
(setq track-eol t)
3.3
;; 启用时间显示设置,在minibuffer上面的那个杠上
(display-time-mode t)
;; 使用24小时制
(se tq display-time-24hr-format t)
3.4
;; 把C-j绑定到到达指定行上
(global-set-key (kbd "C-j") 'goto-line)
;; 设置C->键作为窗口之间的切换,默认的是C-x-o,比较麻烦
(global-set-key (kbd "C->") 'other-window)
;; 改变Emacs要你回答yes的行为,按y或空格键表示yes,n表示no。
(fset 'yes-or-no-p 'y-or-n-p)
;;设置C-/为undo,M-/为set-mark
(global-set-key (kbd "C-/") 'undo)
;;设置M-/作为标志位,默认C-@来setmark,C-@不太好用
;;M-/本来对应zap-to-char,这里占用了 (global-set-key (kbd "M-/") 'set-mark-command)
;; 扩大或者缩小窗口(上下),Ctrl+{}
(global-set-key (kbd "C-}") 'enlarge-window)
(global-set-key (kbd "C-{") 'shrink-window)
3.5
3.5.1
(global-set-key [f11] 'my-fullscreen)
(defun my-fullscreen ()
(interactive)
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_FULLSCREEN" 0))
)
3.5.2
(global-set-key [f12] 'my-maximized)
(defun my-maximized ()
(interactive)
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)) (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
)
4
这里所说的高级定制,基本上都属于比较重要的日常应用,比如说主题,w3m浏览 器,Irc,日程管理Org,版本控制Git,代码浏览Cscope。而像那些查看pdf,听 音乐以及煮咖啡的玩意,基本上是华而不实的东西,你要有兴趣,完全可以自己 去做,记住,Emacs提供无限可能。
4.1
Emacs的插件一般都是一个以el为后缀名的文件, 把这个文件下载下来后放到一个 目录, 比如~/.emacs.d/, 然后执行下面这两条语句:
(add-to-list 'load-path "~/.emacs.d/")
(require 'pluginname)
这样该插件就安装好了。
4.2
其实主题非常重要,因为字体的颜色,背景光标等等都是你天天必须面对的,设 定一个合适的主题,就像一个舒服的狗窝,让你不愿意离开。
下面是我的Emacs主题截图:
4.2.1
4.2.2
4.2.3
cp -r themes color-theme.el ~/.emacs.d/
4.2.4
;;将~/.emacs.d/添加到加载路径
(add-to-list 'load-path "~/.emacs.d/")
(require 'color-theme)
(color-theme-initialize)
;; 这个是你选择的主题,后面的calm forest就是它的名字,注意使用小写。
(color-theme-calm-forest)
技巧
打开Emacs后可以 M+X color-theme-select 选择你喜欢的主题,然后 将相应的名称写入.emacs中。