Emacs快捷键和设置基础知识

转载 2016年08月28日 15:56:33

转载自http://blog.chinaunix.net/uid-26185912-id-3334793.html


1 前言

 不想再说废话了,既然你会阅读这篇文档,说明你多少对Emacs有些兴趣,或者已 经非常熟悉Emacs的基础操作了,并且希望有所提高。因此我不需要再把"编辑器 之神,还是神的编辑器"之类的恶俗话语放出来,来吸引你的好奇心。下面的内容, 从最基础的快捷键操作开始,一直到让你生活在Emacs中。这中间没有跳跃,你只 需要跟着我做,就可以了。

 注意 该文档就是用Org生成的,我会把.org源码和html文档一块打包。关于 什么是Org,怎么生成,且看后面的讲解

    
2 Emacs 基础操作

2.1 基本文件操作

下面这些主要涉及了文件的基本操作,包括打开,新建,保存,另存为以及退出等比较常用的命令。

C-x C-f 打开/新建一个文件
C-x C-s 保存文件
C-x C-w 另存为文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
C-x C-c 关闭emacs
 
 
2.2 光标移动

这里边最方便的就是句首句尾和行首行尾,因为我的是笔记本键盘,上下左右主 要是用方向键,如果要是标准键盘的话,最好常用绑定键。

 

C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾
 
 
2.3 文本编辑

这里面包括了复制粘贴剪切删除等常用的操作命令。注意,在这里,移除包括了 剪切和删除两个概念,要区分清楚。

 

M-n/C-u n 重复执行后一个命令n次
C-d 删除后一个字符
M-d 删除后一个单词
Del 删除前一个字符
M-Del 删除前一个单词
C-k 移除一行
C-@ 设定标志位(主要是为了粘贴剪切以及删除使用)
C-w 移除标记区域的内容(剪切)
M-w 复制标记区域的内容(复制)
C-y 召回(yank)复制/移除的区域/行(粘贴)
M-y 召回更早的内容 (在kill缓冲区内循环)
C-t 交换两个字符的位置
M-t 交换两个单词的位置
C-x C-t 交换两行的位置
M-u 使从光标位置到单词结尾处的字母变成大写
M-l 与M-u相反
M-c 使从光标位置开始的单词的首字母变为大写
 
 
2.4 一些重要的命令
 
C-g 停止当前运行/输入的命令
C-x u/C-_ 撤销前一个命令(undo)
 
 
2.5 搜索
  
C-s 向后搜索
C-r 向前搜索
 
  
2.6 窗口命令

窗口命令比较常用,尤其是编辑多个文件的时候,你可以打开多个窗口,可以提 高编辑效率。

 

C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x o 切换至其他窗格
C-x 0 关闭窗格
C-x 1 关闭除了光标所在窗格外所有窗格
 
 
2.7 帮助
 
C-h m 查看当前模式
C-h c 显示快捷键绑定的命令
C-h k 显示快捷键绑定的命令和它的作用
C-h f 显示函数的功能
C-h b 显示当前缓冲区所有可用的快捷键
C-h t 打开emacs教程
 
 
3 Emacs 基础定制

 

每一次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小时制 
(setq 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 Emacs 高级定制

 这里所说的高级定制,基本上都属于比较重要的日常应用,比如说主题,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 Theme

 

其实主题非常重要,因为字体的颜色,背景光标等等都是你天天必须面对的,设 定一个合适的主题,就像一个舒服的狗窝,让你不愿意离开。

下面是我的Emacs主题截图:

 

 
4.2.1 下载emacs theme压缩包
 
4.2.2 解压
 
4.2.3 复制相应文件到.emacs.d/下
 
cp -r themes color-theme.el ~/.emacs.d/ 
 
4.2.4 在~/.emacs加上如下代码
 
;;将~/.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中。


相关文章推荐

Emacs笔记——操作篇(不断更新中)

常用命令                         C-v 向上翻页                         C-p 向上一行    C-b 向左一个字符                ...

NotePad++学习总结

Notepad++ Notepad++是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。 Notepad++功能...

emacs配置文件的基础知识

转载[http://blog.csdn.net/schumyxp/archive/2008/04/10/2278268.aspx]macs的配置文件,叫作.emacs,是个隐藏文件,存在于当前用户的根...

Cadence基础知识2(环境搭建、原理图库制作、原理图绘制、快捷键)

需求说明:Candence基本知识 内容       :环境搭建、原理图库制作、原理图绘制、快捷键 来自       :时间的诗 1 初始化环境 a 打开OrCAD Capture C...

Emacs 编辑环境,第1部分:学习Emacs的基础知识

1、开始之前 了解本教程中包含的内容以及如何最好地利用本教程。 关于本系列 Emacs 编辑环境深受 UNIX® 开发人员的喜爱。它是世界公认的编辑器之王,但许多用户发现它学起来需要一定...
  • ruglcc
  • ruglcc
  • 2012年08月02日 11:10
  • 25917

linux 网络设置基础知识整理复习(一)碰到的各种问题

遇到的问题: ping 不通 scp怎么无法操作 ssh登录各种莫名奇妙的错误 你能ssh我,我不能ssh你 普通用户可以,root用户不可以 curl wget 怎么访问不了 … linux一切皆...

Theano2.1.7-基础知识之设置的配置和编译模式

来自:http://deeplearning.net/software/theano/tutorial/modes.html Configuration Settings and Compiling...

嵌入式Linux基础知识5(ubuntu16”命令行模式和图形界面切换“ “开机自动进入命令行模式设置”)

需求说明:IPC项目需要Linux系统,知识储备 第一部分:ubuntu 命令行模式和图形界面切换 第二部分:ubuntu开机直接进入命令行模式 第一部分:ubuntu 命令行模式和图形界...

android studio基础知识2 -- 设置代理,轻松下载sdk

1.打开android sdk manager后,点击preferences 2.配置代理服务器mirrors.neusoft.edu.cn 3.点击reload重新加载 4....

android学习中关于Textview,Button,EditText,连接的设置,Intent,Activity不同状态等的一系列基础知识点

通过这两天的学习,总结出了一些琐碎的小知识,但却是不可或缺的,贴出来以便以后用到,希望也会给那些个初学者带来便易的理解。琐碎的知识点以后还会出现,希望自己能在这种积累中,在android软件的开发这条...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Emacs快捷键和设置基础知识
举报原因:
原因补充:

(最多只允许输入30个字)