我常用的emacs命令以及按键

使用emacs写了将近一年半的代码,总结下自己经常使用的emacs指令,对于打算使用的新手,也许有所帮助,其实你在实际工作的过程中,并不需要了解太多的emacs命令

我把配置文件都放在https://github.com/longxj/emacs_conf上,需要的可以自行下载,安装步骤在readme.txt中。目前里面的配置支持emacs24.3


选中一个word: M+@

删除一行:C+k

format格式:M+|

列前面插入字符:C+x r t

删除选中列 C+x r d

(这2个命令选中列是第一行光标所在的列,显示的是一大块,有点坑)

设置一个标记 C+@

拷贝M+w putty里的emacs不能粘帖了,ALT W (M - w) 死活不行,后来才知道跟QQ的快捷键冲突了,设置一下就可以了

剪切C+w

粘帖C+y

调整光标所在行在屏幕的位置 C+l

显示行号M+x linum

新增加一个窗口 C+x 2

关闭一个窗口 C+x 0

全屏当前窗口 C+x 1

查找 C+s 往下查找 这个除了用于查找外,最大的用处就是用来快速定位光标

往上查找 C+r

光标移动 C+ f(->) b(<-) n(next line) p(previous line)

移动到最后 M+>

移动到最前 M+<

移动到行前 C+a

移动到行的最后 C+e

将当前word大写 M+u

撤销上次操作 C+x u

将当前word小写 M+l

从一个窗口跳到另外一个窗口 C+x o

重新载入最新的当前文件数据 M+x revert-buffer   (revert-buffer-with-coding-system可以指定编码格式)

设置默认的文件解码格式 M+x prefer-coding-system 

跳转到某行 M+x goto-line

f1 激活ecb

f4 关闭ecb

f3 跳转到某行

f2 头文件和cpp文件之间跳转

f5 gdb

f7 compile

执行一个简单的命令 M+! 如果要将命令结果插入当前位置命令为:C+u M+!

产生一个shell窗口 M+x shell:在这个shell里面M+p是显示上一个执行命令, M+n是下一个命令

M+x compile: 编译,输出编译结果,可以跳转,很方便

M+x gdb: 调试,可以定位源代码,非常方便

M-x delete-trailing-whitespace 删除行末的空白

C+c C+c 注释区域

M+x uncomment-region 反注释区域

打开~/.emacs的时候执行命令M-x eval-buffer可以重新加载配置

M+x list-colors-display 可以显示emacs可以使用的颜色种类,跟term有关

如果显示为什么都没有,说明要么是term没有颜色(使用xterm就好),没有就是编译的时候没有安装ncurses_dev库,一般在/usr下面有libtermcap.so以及termcap.h(奇怪的是没有这2个,编译也没有报错,可能有warning


M+q 正则表达式替换


窗口跳转:

需要安装,就一个window-numbering.el文件,目前还没有放到github,下面的配置也未加入.emacs =有空todo

;; window-numbering
(require 'window-numbering)
(window-numbering-mode 1)
然后就可以通过 M-1,2,3进行跳转,数字见窗口左下角


;; winner-mode
(winner-mode 1)
(global-set-key (kbd "C-x 4 u") 'winner-undo)
(global-set-key (kbd "C-x 4 r") 'winner-redo)
winner-mode从version20开始emacs就自带,只需要开启就好

启用了,可以undo/redo之前的窗口操作,很实用,因为一般会最大化一个窗口进行编辑,完了后又需要回到多窗口的状态


cscope:

C+c u 上一个光标点

C+c f 查找文件

C+c g 正则表达式查找

C+c d 查找函数定义

C+c r 查找所有函数引用的地方


ecb:

C+c m 进入函数窗口

C+c e 进入代码窗口


emacs查看二进制文件

M+x hexl-mode


批量打开文件(这个需要dired-x.el的支持,23版本自带有,不过需要自己加载)

首先进入文件管理器M-x dired

标记需要打开的文件,可以参见这个博客http://lifegoo.pluskid.org/wiki/EmacsAsFileManger.html

dired 最方便的一点就是可以对许多文件进行标记,并进行批量操作。标记的方 法有很多,最普通的标记就是 d 为当前文件贴上删除标签,之后可以使用 x 来 真正删除所有贴上删除标签的文件。

dired 还提供了许多预定义的方便的标记操作(当使用 C-u 传递一个前缀参数 时,他们执行相反操作,即去掉标记),例如:

# 为所有自动保存的文件(通常是文件名开始和结尾都是 # 的文件)贴上删除 标签。
~ 为所有备份文件(即文件名以 ~ 结尾的文件,Emacs 和 vi 等编辑器默认 情况下都会产生这样的文件)贴上删除标签。
& 为“垃圾文件”(看 dired-garbage-files-regexp 的值可以知道 dired 把 哪些文件当作了垃圾文件)贴上删除标签。
通常这些命令可以方便地帮你清理垃圾,如果还不满意,可以使用 % d REGEXP <RET> 来输入自己的正则表达式,匹配到的文件会被贴上删除标签。

当然,能用的标签并不止是 D (即删除标签),几乎任何一个字符都可以使用,不 过最常用的还是 * , m 命令即是以 * 标记当前文件。同样,dired 提供了很多 方便的标记操作(这些命令在传递一个前缀参数的时候都会执行相反的操作,例如 C-u * * 会去掉所有可执行文件的标记):

* * 标记所有可执行文件。
* @ 标记所有符号链接。
* / 标记所有目录(不包括 . 和 .. )。
* s 标记所有文件(不高考 . 和 .. )。
* . 标记具有给定扩展名的文件。
% m REGEXP <RET> 或 * % REGEXP <RET> 标记所有匹配到给定的正则表达式 的文件。
% g REGEXP <RET> 标记所有文件 内容 匹配到给定的正则表达式的文件。
另外,还有一些相关的命令:

u 去除当前行的标记。
<DEL> 上移一行并去除该行的标记。
U 去除所有标记。
* ? MARKCHAR 或 M-<DEL> 去除所有以 MARKCHAR 标记的文件的标记,如果 传递一个前缀参数,则会对每一个文件要求你确认是否去除标记。
t 交换标记,即所有原来标记为 * 的文件被置于未标记状态,原来未标记的 文件被标记为 * ,原来有其他标记的文件不受影响。
然后输入F(大写的f)就可以打开所有标记的文件了

helm

C-c h / 在目录中找出所有含有pattern的文件


python 调试

M+x pdb

然后输入

python -i -m pdb test.py

后续命令跟gdb一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值