说说每个人使用emacs的境界?Emacs基本的按键与命令
本文目录
说说每个人使用emacs的境界
刚开始接触emacs的时候,知道怎么退出emacs就已经很厉害了
这个时候开始去寻觅各种配置(尤其emacs21的年代,连找个中文字体都千辛万苦,不过好多的操作也是在这个过程中学会的)
然后开始自己去自定义乱七八糟的按键
配置飞快的达到成千行,好多不知道是啥意思……原来自定义的按键一段时间后自己都忘记了
删除掉抄来的自己都不懂的配置文件,自己写适合自己的配置,.emacs迅速降低到数百行——开始理解工具的作用不要花哨,而且应该是让工具产生生产力,帮助自己完成那些无意义的重复劳动
从这时候开始,会经常的去阅读elisp manual,读simple.el,subr.el之类的el,成为emacswiki和水木emacs的常客,开始认识一些emacs高手
.emacs又开始分割成多个,只是这次知道每行代码的含义了,加入的代码都是为了辅助自己平时的工作和方便使用
开始自己去写一些el,把各种工具整合到一起,编码、调试、代码管理、文档、GTD等等,都可以做到行云流水了
开始接触到functional programm
ing,slime定居到了emacs里,发觉原来在c/c++之外还有广阔天地,愈发觉得自己以前荒废时光,要学习的东西原来还有那么多
Emacs基本的按键与命令
C- :表示键盘上的 Ctrl 键
M- :表示键盘上的 Alt 键
S- :表示键盘上的 Shift 键
DEL :表示键盘上的 Backspace 键,注意,不是 Delete 键
RET :表示键盘上的 Enter 键
SPC :表示键盘上的 Space 键
ESC :表示键盘上的 Esc 键
TAB :表示键盘上的 Tab 键
C-x C-f :打开一个文件,或者创建一个不存在的文件
M-x find-file :作用同上
C-x k :关闭一个 buffer ,作用等于关闭已经打开的文件
C-x C-s :保存文件内容,即将修改的文件内容写入磁盘
M-x save-buffer :作用同上
C-x C-w :将当前文档保存为另一个文件,即另存为
M-x write-file :作用同上
C-x b :切换文件,即切换缓冲区 buffer
说明:实际上在 Emacs 中,文件与 buffer 是不同的实体,文件一般指的是磁盘上的数据体,而 buffer 是 Emacs 中作为文件修改临时缓存的缓冲区,注意区别。
Emacs具有一个被称为 ido 的模式,全称为 interactively do things ,在 ido 模式下,可以更加方便地选择列表元素,相比使用Tab进行自动补全更加便利。
M-x ido-mode :使能或者禁止 ido 模式
可以在 Emacs 的启动配置中添加以下语句,以默认打开 ido 模式:
(setq ido-enable-flex-matching t) (setq ido-everywhere t) (ido-mode 1)
C-x C-b :列出buffer列表
M-x list-buffers :作用同上
在 Emacs 中,还存在功能更灵活的 buffer 管理模式,被称为 ibuffer 。可以通过以下命令进入 ibuffer :
M-x ibuffer :进入 ibuffer 管理模式
一般我们可以在Emacs的配置文件中进行ibuffer的命令键绑定:
(global-set-key (kbd "C-x C-b") ’ibuffer)
ibuffer 的过滤命令包括:
/m :以 major mode 方式添加过滤
/n :以 buffer 名称的方式添加过滤
/c :以 buffer 内容的方式添加过滤
/f :以文件名称的方式添加过滤
/》 :以 buffer 大小的方式添加过滤
/《 :以 buffer 大小的方式添加过滤
// :删除当前所有有效的过滤
ibuffer 的过滤组的命令包括:
/g :创建一个过滤组
TAB :移动到下一个过滤组
M-p :移动到上一个过滤组
/\ :删除当前所有的过滤组
/S :将当前过滤组保存为一个名称
/R :恢复之前保存的过滤组
/X :删除之前保存的过滤组
ibuffer的排序命令包括:
s a :以字母顺序排序
s f :以文件名称顺序排序
s v :以上次访问时间排序
s s :以 buffer 大小排序
s m :以 major mode 排序
s i :反序当前的 buffer 顺序
可以在文件的任何地方设置书签,后续可快速跳转到书签处,书签相关的命令为:
C-x r m :在当前光标处设置书签,需输入书签名称
M-x bookmark-set :作用同上
C-x r b :跳转到某个书签处
M-x bookmark-jump :作用同上
C-x r l :列出当前所有的书签列表
M-x bookmark-bmenu-list :作用同上
在书签列表状态下,可以使用以下的命令:
RET :打开书签标识的区域
s :将当前书签列表保存至文件中
r :修改光标所在的书签的名称
d :将书签打上删除标识
x :删除已打标识的书签
u :取消已经打标识的书签
主要的光标移动操作命令包括:
C-f :向前移动一个字符, f 表示为 forward
C-b :向后移动一个字符, b 表示 backward
C-p :向上移动一行, p 表示 previous
C-n :向下移动一行, n 表示 next
C-a :移动至行首
C-e :移动至行尾
M-f :向前移动一个单词
M-b :向后移动一个单词
C-v :向前滚动一个屏幕的内容
M-v :向后滚动一个屏幕的内容
M-a :移动至句首
M-e :移动至句尾
C-l :将光标重定位至屏幕中间一行,光标所在内容位置不变
M-r :将光标重定位至屏幕的顶部,中部,底部,光标所在内容位置不变
M-《 :移动至 buffer 的开头处,注意,按键 《 可能需要 Shift 键
M-》 :移动至 buffer 的结尾处,注意,按键 》 可能需要 Shift 键
M-g c n :移动至第 n 个字符
M-g g n :移动至第 n 行(高于23.2版本的 Emacs 有效)
C-M-f :向前移动一个整的表达式,比如,光标可从函数开头的左 { 处移动到函数结尾的 } 处,按键绑定的命令是 forward-sexp
C-M-b :向后移动一个整的表达式,比如,光标可从函数结尾的右 } 处移动到函数开头的 { 处,按键绑定的命令是 backward-sexp
C-M-k :剪切一个整的表达式,按键绑定的命令是 kill-sexp
C-M-@ :选择一个整的表达式,按键绑定的命令是 mark-sexp
在 Emacs 中, kill 的意思就是 cut ,即剪切,剪切操作的命令包括:
C-d :剪切当前光标所在的字符
C-S-DEL :剪切整个行, DEL 就是键盘上的 Backspace 键
M-d :剪切光标当前位置至词结尾的内容
M-DEL :剪切光标当前位置至词开头的内容
M-\ :剪切光标所在的所有空白符
M-SPC :剪切光标所在的所有空白符,除了光标所在的位置
C-k :剪切光标当前位置至行尾
M-k :剪切当前的整个句
C-y :粘贴操作
一般在 Emacs 中,默认的选择操作,需要使用 C-SPC 按键,但是通常在 Win 中,此按键与系统默认的切换输入法的按键冲突,如果无法修改系统的按键,则可以修改 C-SPC 按键,在 Emacs 的启动脚本中添加以下的语句:
(global-unset-key (kbd "C-SPC")) (global-set-key (kbd "M-SPC") ’set-mark-command)
以下以 M-SPC 作为默认的选择命令:
M-SPC :以光标所在位置为起点,移动光标,所选区域被高亮选中
C-w :剪切高亮选中的区域
M-w :复制高亮选中的区域
C-y :粘贴高亮选中的区域
C-/ :撤销操作
C-x u :作用同上
Emacs 具有多种查找方式。
增量查找 :通过按键 C-s 来执行增量查找,反复执行 C-s ,可逐个定位各个匹配点。
C-s :执行增量查找,输入查找字符后,重复执行 C-s 可逐个定位匹配点,按键绑定的命令是 isearch-forward
C-r :执行增量查找,是从文档的后端往前查找,重复执行 C-r 可逐个定位匹配点,按键绑定的命令是 isearch-backward
C-u C-s :按照正则表达式执行增量查找
Occur查找 :使用增量查找,若匹配点比较多,只能通过反复执行按键,逐个越过各个匹配点,才能定位到我们需要的匹配点,为了解决这个问题, Emacs 提供了 Occur 查找,执行后,可在 Occur 缓冲区列出一个匹配点的列表,可更加直观地查看所有的匹配点。
M-s o :执行Occur查找
M-g n :定位到下一个匹配点
M-g p :定位到上一个匹配点
在 Occur 缓存区,可以执行的命令主要包括:
C-n :移动至下一行
C-p :移动至上一行
o :跳转至匹配点,光标也移动至匹配点
C-o :跳转至匹配点,但是光标还停留在 Occur 缓冲区
e :当前的 Occur 缓冲区
C-c C-c :退出 Occur 缓冲区
M-% :执行查找替换,该命令需要两个输入,即需要被替换的字符串,与替换后的字符串。输入字符串后执行 RET , Emacs 会询问是否确定执行替换操作,若输入 ! ,则执行所有匹配点的替换,若输入 yes ,则只执行当前光标所在的匹配点的替换。注意,输入 % 可能需要执行 Shift 键
C-x 2 :将当前窗口切为上下两个窗口,该按键绑定了命令 split-window-below
C-x 3 :将当前窗口切为左右两个窗口,该按键绑定了命令 split-window-right
C-x o :在多个窗口之间切换,注意,按键中的是小写字母 o ,该按键绑定了命令 other-window
C-x 1 :关闭其他的窗口,只保留当前光标所在的窗口
Emacs 具有一个内置的 Dired 模块,是 Directory Editor 的简称,顾名思义,该模块是对目录进行管理的模块。
Dired 模块的主要命令包括:
C-x d :选择一个目录,并在那个目录上启动 Dired
C-x C-f :选择当前目录下的某个目录,并在那个目录上启动 Dired
在 Dired 目录下可以执行:
n :向下移动一个
p :向上移动一个
C-s :使用增量查找,查询 Dired 入口
C-x C-f :创建一个新的文件
f :打开光标所在的文件
e :作用同上
RET :作用同上
o :在另一个窗口上打开光标所在的文件
C-o :在另一个窗口上打开光标所在的文件,但是光标不会移动到新的窗口
v :以只读的方式打开文件
^ :在新的Dired Buffer中打开父目录
m :标识文件或者目录入口
%m :标识那些名称匹配正则表达式的文件
%g :标识那些内容匹配正则表达式的文件
C :拷贝文件(或者是 S-c ),拷贝的是当前光标所在的文件,或者已经标识的文件
R :移动文件(或者是 S-r ),移动的是当前光标所在的文件,或者已经标识的文件
H :创建一个硬链接(或者是 S-h )
S :创建一个符号链接(或者是 S-s )
M :改变文件的权限位(或者是 S-m ),改变的文件是当前光标所在的文件,或者已经标识的文件
d :将文件打上删除的标识
u :删除文件已经打上的标识
x :确认并执行删除已经打上删除标识的文件
~ :给所有的 backup 文件打上标识
= :比较文件
为什么选择Emacs
简单的说,因为不能用hidemaru(秀丸)。
是不是应该先介绍一下秀丸?日文环境以外的场合好像很少见到它被人提起,日文界面的缘故吧,其实也有英文版的。秀丸是一款由日本人开发的Text Editor,功能丰富,Tab栏、自定义语法配色、Tag jump等常见功能就不提了,支持多种文件编码以及自动匹配,匹配优先度也可以调整。(有这个功能的器不多,当然需要这个功能的用户也不多…)最大的亮点是支持预编译指令的解析,即可以对#if…#endif、#ifdef…#endif之间的代码高亮显示,如下图,无效代码都变成了绿色(为了容易看清嵌套关系,缩进了一下)
而且对于#else分歧条件的判断也没问题,支持多层嵌套,(曾试过几百层的嵌套,我好无聊~)。#if后面的条件,哪些表达式是真,哪些是假,需要用户自定义。(目前好像只有Source Insight有自动解析#define定义并高亮预编译的功能吧。SI解析出来的结果,有时会很糟,另外SI显示中文日文效果也很差,已经放弃了)
似乎有点跑题,但是实际上,让我决定学习Emacs的,正是因为这个预编译解析功能。由于现所在公司管理比较规范,盗版软件全部禁止使用,不得不告别秀丸,(秀丸器售价是4千日元,人民币300元左右吧,不注册也可以用的,只是启动时会跳出提示框,网上有两个破解方法,步骤非常简单且流传很久),所以就各处找免费软件,目前在公司里用的是Sakura Editor,一个仅支持日文编码的开源文本器,比秀丸稍弱一些,基本还能用着。在我学会Emacs之前,先过渡一下。
刚开始用Sakura的时候,打算自己给它添加预编译解析的功能的,曾下载Sakura的源码,尝试了一阵子,挺麻烦的,在中文windows下不能编译SJIS编码的代码,还得搞个虚拟机,装一个日文版XP,在虚拟机里编译调试,各种不方便。最关键的情况是,途中硬盘分区表被搞坏了,虚拟机数据文件恢复不了,这tm太悲剧了,不过幸好后来放弃了,没再搞Sakura,这才有了发现Emacs的机会。
当然了,预编译解析也不是那么重要,并非没有它就不能干活了,或者前面的话应该换作:让我发现Emacs的,是因为Emacs能够实现预编译解析功能,而且还免费。先看一下Emacs的预编译解析吧,判断条件也是可以自定义的。定义的方法在这里介绍了Emacs+hideif.el 隐藏预编译代码
至于Emacs的其他功能,太多了不知道该说哪个,常见器有的它都有,常见器没有的它也有。一个特别吸引我的是,Emacs可以为不同文字(比如英文/中文)设置不同的字体,还可以为不同部分文字(比如代码部分/注释部分)设置不同字体,有这功能的器还真不多。最重要是可自由定制,这点太重要了,有自由定制的特性,使它生出了无数的功能,上面提到的预编译解析、字体设置什么的,正是因为可以自由定制才得以诞生的。
这里有个展示Emacs魅力的视频集,值得一看:Emacs Power_ Can your editor do THIS
Emacs被每个用户定制后,由众多用户开发出来的各种新功能多到无数,所谓要学Emacs就是说要学这些扩展出来的功能,还要从中选择适合自己的,有时候发现bug需要自己解决,这又要学elisp语言,总之是,很折腾。
选择Emacs,大概就是因为功能丰富,可定制,写新功能或调查bug不用像Sakura那样要看全部的源码,在Emacs这只要关注几十行几百行,而且其所用的elisp函数型编程语言不需编译,调试方便。
emacs 如何配置启动最大化
emacs-23.exe解压该文件,解压后进入相应的文件夹,文件夹下包含以下子文件夹:bin、data、etc、info、leim、lisp、lock、site-lisp、var.bin文件夹中是一些可执行程序,info文件夹中是帮助信息,site-lisp文件夹中是一些扩展的包(Emacs的插件一般都是一个以el为后缀名的文件)。 在bin文件夹中,运行addpm.exe,注册系统变量ComSpec,在电脑图标上点击右键,选择“属性”,然后选择“高级”选项卡,在“高级”选项卡下面选择“环境变量”,在“系统变量”栏中可以看到有一个变量叫做“ComSpec”,它的值为C:\WINDOWS\system32\cmd.exe(和%SystemRoot%\system32\cmd.exe一样)。 该变量的作用是指示emacs调用系统的shell,在windows下一般用的都是cmd,当然也可以使用cgywin等其它的shell,使用cgywin等作为emacs默认的shell时可能会需要一些其它的设置,这些可以参考emacs的在线帮助。 运行addpm.exe后,会给emacs添加开始菜单。 运行runemacs.exe可以启动emacs。 emacs安装好了以后应该对它进行配置,只有经过一些必要的配置,它才配得上“能煮咖啡”这个称号。 首先在“环境变量”中添加“HOME”变量,例如值为“E:\erlang”(erlang工程); 接着在“HOME”变量的路径下的目录建立一个文件名为“。emacs”的文件(如果不设置HOME变量,可以在根目录C:\目录下建立这个“。emacs”文件),如果直接在windows下建立一个“。emacs”文件,windows会提示请输入文件名,建立不成功,最好直接就用emacs来建立这个文件,在emacs下通过菜单File-》VisitNewFile…来建立一个文件,文件名就是“。emacs”。“。emacs”文件是emacs的配置文件,emacs在启动的时候会从“。emacs”文件中读取配置信息,来打开或者关闭各种功能,初始化扩展包或者配置界面上的一些显示(去掉菜单栏,工具栏,改变背景颜色等)。
emacs是什么
Emacs是一种强大的文本器。高手可以实现全键盘操作文本。有些文本器如记事本,在用其或写文章、代码时如果要修改,此时要用鼠标。这对于全键盘狂人来说非常影响效率。
emacs 乃文本器也,同类的有vim等。Emacs功能强大,快捷键多,有许多可以使用的插件,习惯之后编写代码等效率非常高。 但上手比较困难,适合编程多者使用。如果平时编程不是很多的话,可以考虑使用eclipse等ide
emacs 怎么读
Emacs(发音为E-maks,有时也被拼写为emacs或EMACS)是一种流行的文本器,主要应用在基于Unix的系统上,其使用者多是程序员、科学工作者、工程师、学生和系统管理员。 如同其它的Unix文本器一样,Emacs提供了输入命令和特殊的组合键,它能够让你添加、删除、插入及处理语句、字母、段落及文本中的其它部分。 Emacs(源自Editing MACRoS)是由麻省理工学院的Richard Stallman创建的。
更多文章:
诺基亚老年机怎么存号码(诺基亚老款手机怎么把通讯录转到SIM卡上)
2024年4月16日 13:50
魅蓝note2充电呼吸灯闪(魅族魅蓝note2呼吸灯设置在哪)
2023年5月5日 04:45
老款ipad怎么升级到10以上(老款ipad怎么升级到10以上)
2024年7月23日 12:35
摩托罗拉a2000手机(我的手机天星A2000的触摸屏坏了,要换的话容易吗,多少钱)
2024年7月10日 00:40
三星蓝牙耳机app下载(三星note4连接三星蓝牙耳机要下载什么软件吗)
2024年10月15日 21:40
note2什么意思(note2双卡是什么意思,是不是一张电话卡,一张上网卡)
2023年8月25日 16:50
安卓应用下载软件哪个好(安卓APP下载量排行榜哪些比较靠谱)
2024年4月20日 04:00
酷派手机usb调试在哪里打开(酷派大神f2怎么打开usb调试)
2023年12月3日 10:55
华为开发者联盟官网登录(华为畅享7plus怎么升级鸿蒙系统)
2024年6月10日 03:28