Win7下Emacs使用笔记一.docx
- 文档编号:9305954
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:17
- 大小:246.79KB
Win7下Emacs使用笔记一.docx
《Win7下Emacs使用笔记一.docx》由会员分享,可在线阅读,更多相关《Win7下Emacs使用笔记一.docx(17页珍藏版)》请在冰豆网上搜索。
Win7下Emacs使用笔记一
Win7下Emacs使用笔记一
1.为了用得顺手,需要把CapsLock键设为Ctrl。
CapsLock功能则设到右手的ContextMenu键上或Win键上。
可使用KeyTweak工具来帮助改键,不嫌麻烦的话也可直接改注册表。
2.M-x按得不顺手(位置太近反而不好按),可以用ESC-X来代替,或者在.emacs中加入以下代码,把它设到C-XC-M与C-CC-M上,同时把C-X与C-C都设了可以防止不小心按错。
Lisp代码
1;;更顺手的M-x(可以用C-xC-m或C-cC-m来触发)
2(global-set-key"\C-x\C-m"'execute-extended-command)
3(global-set-key"\C-c\C-m"'execute-extended-command)
3.实际使用中经常需要使用系统剪贴板(与其他编辑器或浏览器互相复制粘贴),CUA模式对按键习惯影响太大,不想用。
用鼠标中键可以粘贴,但太麻烦。
可以在.emacs中加入以下代码,把C-cC-c设为复制到系统剪贴板,C-cC-v设为从系统剪贴板粘贴。
Lisp代码
4;;系统剪贴板快捷键(C-cC-c复制,C-cC-v粘贴)
5(global-set-key"\C-c\C-c"'clipboard-kill-ring-save)
6(global-set-key"\C-c\C-v"'clipboard-yank)
4.C-z默认是挂起emacs,跳回到shell中,这对文本型的shell很有用。
但在windows中,事实上变成了毫无实际意义的窗口最小化,浪费了C-z这么顺手的键。
可以用以下代码把C-z改为一个类似C-x的组合起始键。
Lisp代码
7;;允许使用C-z作为命令前缀
8(define-prefix-command'ctl-z-map)
9(global-set-key(kbd"C-z")'ctl-z-map)
5.初用emacs时,配置方案还不稳定,经常需要打开~/.emacs来编辑,可以设定用C-zi快速打开~/.emacs文件。
(需要上面第4点支持)
Lisp代码
10;;用C-zi快速打开~/.emacs文件。
11(defunopen-init-file()
12(interactive)
13(find-file"~/.emacs"))
14
15(global-set-key"\C-zi"'open-init-file)
6.标记文本区域起始位置的按键命令是C-Space,在中文系统下被输入切换热键冲掉了。
默认的候补方案是M-@,其实就是Alt-Shift-2,非常难按。
我把它改为了C-cm。
Lisp代码
16;;C-Space被输入法占用,改用C-cm来标记文本块
17(global-set-key"\C-cm"'set-mark-command)
7.大而无当的工具栏可以关掉,提供更大的编辑空间。
Lisp代码
18;;关闭toolbar
19(tool-bar-mode)
8.使用emacs时经常需要管理多个buffer,C-xC-b的默认界面太过简陋。
emacs事实上已经提供了更好的buffer管理界面ibuffer,在配置文件中选用即可。
Lisp代码
20;;启用ibuffer支持,增强*buffer*
21(require'ibuffer)
22(global-set-key(kbd"C-xC-b")'ibuffer)
9.如果想临时开一个缓冲区来输入或暂存一些文本,只要按C-xb,然后胡乱输入一个名称(例如asdf)即可。
但默认会使用没有什么功能的Fundamental-mode,可以将默认模式改为Text-mode,并自动打开Fill-mode。
Lisp代码
23;;默认进入text-mode,而不是没有什么功能的fundamental-mode
24(setqdefault-major-mode'text-mode)
25(add-hook'text-mode-hook'turn-on-auto-fill)
10.用以下配置开启显示行号
Lisp代码
26;;显示行号
27(global-linum-mode1)
11.用C-xC-f打开文件时默认路径是~,可以用以下配置来更改。
Lisp代码
28;;设置初始目录为rails项目目录
29(setqdefault-directory"d:
\\rails")
12.编程时,一般采用utf-8编码,用以下代码配置。
Lisp代码
30;;设定语言环境为utf-8
31(setqcurrent-language-environment"UTF-8")
32(setqdefault-input-method"chinese-py")
33(setqlocale-coding-system'utf-8)
34(set-terminal-coding-system'utf-8)
35(set-keyboard-coding-system'utf-8)
36(set-selection-coding-system'utf-8)
37(prefer-coding-system'utf-8)
13.用shell命令来进入shellmode,默认只能开启一个shell。
事实上只要把shell所在的buffer改名(用rename-buffer或rename-uniquely命令)即可。
还嫌麻烦的话,可以在配置文件中定义一个新的newshell命令,在开启shell时询问buffer名称。
Lisp代码
38;;打开一个新的shell
39(defunnewshell(name)
40(interactive"sBuffername:
")
41(shellname)
42)
14.刚上手时常用的按键命令记不住,可以自己写一个按键帮助文件(例如~/emacskeys.txt),用C-zk自动在一个新buffer中打开。
(需要以上第4点支持)
Lisp代码
43;;用C-zk快速打开自定义的按键说明文件
44(defunopen-key-info-file()
45(interactive)
46(split-window-horizontally)
47(find-file-other-window"~/emacskeys.txt")
48(outline-mode)
49(hide-body))
50
51(global-set-key"\C-zk"'open-key-info-file)
帮助文字自动进入OutlineMode,可以用C-cC-a命令来展开所有分类,用C-cC-t命令来收起所有分类(只显示标题),光标在某一个分类上时,可以用C-cC-e命令来查看本分类内容。
详细命令可参考后面附文中的OutlineMode部分。
(~/emacskeys.txt文件内容附在本文最后)
15.在windows下,可以让emacs启动后自动最大化。
可在配置文件的最后加入:
Lisp代码
52;;启动0.5秒后自动最大化(windows下)
53(run-with-idle-timer0.5nil'w32-send-sys-command61488)
为了避免其他第三方模块初始化时把窗口复原,这里设置了启动后延时0.5秒再最大化。
16.在emacs中,如果同时打开了两个buffer,可以用C-M-v按键来让另一个窗口的内容向下翻页,而不改变光标的位置。
在阅读文档时非常方便。
17.最常用的移动光标方式,不是上下左右,而是C-s和C-r(增量查找)。
附常用按键命令列表(~/emacskeys.txt)
引用
*移动快捷键
C-b:
左移一个字符
C-f:
右移一个字符
C-n:
下移一行
C-p:
上移一行
M-b:
左移一个单词
M-f:
右移一个单词
C-v:
下移一屏幕
M-v:
上移一屏幕
C-l:
刷新屏幕并将光标所在行移到屏幕中央
C-u0C-l:
刷新屏幕并将光标所在行移动到屏幕上端
C-a:
移动到本行开始位置
C-e:
移动到本行结束位置
M-a:
移动到本句开始位置
M-e:
移动到本句结束位置
M-{:
移动到前一自然段
M-}:
移动到后一自然段
M-<:
移动到文章开头
M->:
移动到文章结尾
M-xgoto-line:
移动到某一行
*其他编辑
M-t:
单词后移
C-t:
字符后移
C-xC-t:
行下移
C-xC-u:
区域转大写
C-xC-l:
区域转小写
M-u:
光标至单词结尾转大写
M-l:
光标至单词结尾转小写
M-c:
首字大写
*其他基本键
C-j:
带缩进回车
M-x:
执行函数
C-u:
指定函数参数
C-g:
中断命令
C-xu:
undo
C-/:
undo
C-_:
undo
C-xC-0:
字体复原
C-xC--:
字体缩小
C-xC-=:
字体增大
C-xC-z:
暂停emacs应用
C-xC-c:
关闭emacs应用
*插入删除
删除光标左边字符
C-d:
删除光标右边字符
M-z:
删除到指定字符
M-
删除光标左边单词
M-d:
删除光标右边单词
c-k:
从光标处删除至行尾
M-k:
从光标处删除至句尾
C-S-
删除本行
*区域操作
M-@:
标记区域起点
M-h:
标记一自然段
C-w:
删除区域
M-y:
将上一次yank所插入的内容改为yank缓冲区中更早的记录内容
C-xC-x:
将当前光标与标记位置交换
M-w:
缓存区域(以便后续yank)
C-xh:
全选当前buffer
*查找与替换
C-s:
正向增量查找
C-r:
反向增量查找
M-%:
替换(带询问)
C-M-sEnter:
正向正则表达式搜索
C-M-rEnter:
反向正则表达式搜索
C-M-箭头:
继续正则表达式搜索
C-M-s:
正向正则增量搜索
C-M-r:
反向正则增量搜索
C-M-%:
正则表达式替换(带询问)
M-shl:
高亮显示匹配指定正则表达式的行
M-shr:
高亮显示匹配指定正则表达式的文本
M-shu:
取消指定正则表达式的高亮
*Buffer操作
C-x1:
当前buffer最大化,关闭其他窗口
C-xC-b:
列出所有缓冲区
C-xb:
打开指定缓冲区
C-xs:
保存所有缓冲区
C-xC-
前一缓冲区
C-xC-
下一缓冲区
M-xrevert-buffer:
恢复当前缓冲区内容(放弃上一次保存之后的修改)
C-xk:
删除指定缓冲区
*文件操作
C-xC-f:
查找并打开文件
C-xC-s:
保存文件
*窗口操作
C-x2:
横向分割当前窗口
C-x3:
纵向分割当前窗口
C-xo:
移动到另一个窗口
C-x0:
关闭当前窗口
C-x+:
平均窗口大小
C-M-v:
另一窗口下卷一屏幕
C-x4f:
在另一窗口查找并打开文件
C-x4b:
在另一窗口中打开一个buffer
退出窗口(当Frame中窗口大于一个时)
*FillMode
C-xf:
设置每行字符数
M-q:
对本自然段重新排版
M-oM-s:
本行居中
M-oM-S:
自然段居中
*帮助
C-hm:
当前majormode的说明
C-hb:
键盘命令绑定列表
C-hk:
键盘命令帮助
C-hc:
键盘命令简明帮助
C-hf:
函数帮助
C-ha:
函数查找
C-hi:
阅读手册
*OutlineMode
C-cC-b:
前一同级章节
C-cC-f:
后一同级章节
C-cC-p:
前一章节
C-cC-n:
后一章节
C-cC-u:
上一级章节
C-cC-t:
令所有除标题外的文字不可见
C-cC-a:
显示所有文字
C-cC-q:
令前N级的文字可见
C-cC-d:
隐藏当前章节的文字和子章节
C-cC-s:
显示当前章节的文字和子章节
C-cTAB:
显示当前章节的直接子章节标题
C-cC-c:
隐藏当前章节的文本
C-cC-e:
显示光标所在位置内容
C-cC-l:
隐藏光标所在章节的文本和子章节的文本
C-cC-k:
显示所有子章节的标题
*AbbrevMode
C-xal:
将当前光标之前的单词添加为当前Mode的Abbrev
C-xae:
展开Abbrev
C-x':
展开Abbrev
M-':
标记Abbrev前缀
C-xag:
将当前光标之前的单词添加为全局的Abbrev
C-xan:
跳到Abbrev的下一个slot
C-xap:
跳到Abbrev的上一个slot
*ShellMode
M-p:
向前滚动历史输入记录
M-n:
向后滚动历史输入记录
C-cC-p:
光标移动到上一次输入位置
C-cC-n:
光标移动到下一次输入位置
C-cC-o:
清除上一次执行的输出
C-cC-r:
光标移动到上一次执行的输出开始位置
C-cC-u:
清空本次输入
C-cC-s:
保存上一次执行的输出结果
C-c空格:
换行但不执行(一次性执行多个命令)
C-c.:
将历史输入作为参数插入到当前位置
M-r:
增量搜索历史输入记录
C-cM-r:
根据当前输入内容在历史输入中反向搜索
C-cM-s:
根据当前输入内容在历史输入中正向搜索
C-cC-c:
中断任务(相当于shell中的Ctrl-C)
C-cC-d:
发送eof字符
1.利用Server模式快速启动emacs
Emacs启动比较慢,使用Server模式可以解决这个问题。
启动一个Emacs实例后,可以用M-xserver-start命令进入Server模式,然后保留此实例不关闭。
此后,可以用“emacesclientw<文件名>”启动emacs,则这次编辑的内容事实上是由server模式的emacs实例打开,速度很快。
但在Win7下启动server-mode(用M-xserver-start)命令时,会报某个目录“isanunsafedirectory”的错误,无法进入server模式。
这时只需要在Windows的资源管理器中找到该目录(如果没有则自己创建),在该目录上按右键,选属性。
“安全”-》“高级”-》“所有者”-》“编辑”,将所有者设为当前用户(原来的所有者可能是SYSTEM),即可顺利进入server模式。
如果打开emacsclientw时并没有启动一个server模式的emacs,会报错失败。
可以选用EmacsW32(http:
//ourcomments.org/Emacs/EmacsW32.html)的patched版,它所提供的emacsclientw在找不到server的时候会自动打开一个emacs实例并进入server模式。
2.快速启动非定制的emacs
使用emacs的-Q参数即可,这时不载入任何定制包与~/.emacs文件,启动速度也很快。
3.把emacs加入右键菜单
执行regedit打开注册表编辑器,在【HEY-CLASSES-ROOT/*/shell】下添加一项【Editwithemacs】,数据为“Emacs编辑”,在其下再添加一项【command】,数据为“
4.整合w3m支持
1.安装cygwin(
2.建议选用EmacsW32的patched版(http:
//ourcomments.org/Emacs/EmacsW32.html)。
(gnuemacs23.x版在w3m中无法打开图片)
3.cmd打开命令行窗口,进入emacs安装目录的site-lisp子目录,执行“cvs-d:
pserver:
anonymous@cvs.namazu.org:
/storage/cvsrootcoemacs-w3m”命令获取emacs-w3m插件的最新源码。
(网站上的打包下载据说不支持emacs23.x版)
4.进入emacs-w3m目录,执行“emacs-batch-q-no-site-file-lw3mhack.elNONE-fw3mhack-nonunix-install”(参考http:
//emacs-w3m.namazu.org/index-en.html#installation)。
将在上层目录(site-lisp\)中创建一个w3m目录。
5.在~/.emacs目录中刚加入:
Lisp代码
1(require'w3m-load)
2(setqw3m-use-faviconnil)
3(setqw3m-command-arguments'("-cookie""-F"))
4(setqw3m-use-cookiest);打开cookie支持
5(setqw3m-home-page"");设置主页
6(setqw3m-default-display-inline-imaget);显示图片
7(setqw3m-default-toggle-inline-imagest)
6.打开emacs,即可用M-xw3m命令进入w3m模式。
tips1:
用U(大写)来指定访问的URL
tips2:
用M-xw3m-link-numbering-mode命令进入link-numbering-mode,之后按f键即可在页面超链接和表单控件处看到序号,输入序号即可快速跳至该元素
tips3:
用左右方括号键可以让光标在表单控件中跳动
tips4:
要在表单控件中输入时先按回车
tips5:
按s键可以打开历史记录
tips6:
如果图片显示不出来,可以输入T来触发图片显示
tips7:
更多命令可用C-hm查看
5.整合evernote(在线笔记)支持
(主要参考了
1.如果没有,安装一个svn客户端(例如
2.如果没有,安装ruby运行环境。
(www.ruby-lang.org)
3.如果没有,安装cygwin。
()
4.如果没有,安装emacs的w3m支持。
(不装也可以,不过就不支持对xhtml格式进行预览)
5.在命令行窗口执行“svncheckouthttp:
//emacs-evernote-emacs-evernote-mode”
6.进入emacs-evernote-mode/ruby目录,执行“rubysetup.rb”。
执行过程需要cygwin支持。
7.将emacs-evernote-mode目录下的evernote-mode.el复制到~/.emacs.d/目录中
8.在~/.emacs文件中加入:
Lisp代码
8;;允许用C-ce作为命令前缀
9(define-prefix-command'ctl-ce-map)
10(global-set-key(kbd"C-ce")'ctl-ce-map)
11
12;;支持使用w3m对xhtml进行预览。
如果未安装w3m支持,注释此行
13(setqevernote-enml-formatter-command'("w3m""-dump""-I""UTF8""-O""UTF8"));option
14
15;;载入evernote模式
16(require'evernote-mode)
17;;常用快捷键设置
18(global-set-key"\C-cec"'evernote-create-note)
19(global-set-key"\C-ceo"'evernote-open-note)
20(global-set-key"\C-ces"'evernote-search-notes)
21(global-set-key"\C-ceS"'evernote-do-saved-search)
22(global-set-key"\C-cew"'evernote-write-note)
23(global-set-key"\C-cep"'evernote-post-region)
24(global-set-key"\C-ceb"'evernote-browser)
9.下载http:
//www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el至~/.emacs.d/目录中,在~/.emacs文件中加入:
Lisp代码
25(require'cygwin-mount)
26(cygwin-mount-activate)
10.打开emacs,即可用以下命令获取与编辑evernote上的笔记(先到
*C-cec:
创建一个笔记
*C-ceo:
打开一个已存在的笔记
*C-ces:
搜索笔记
*C-ceS:
使用已保存的搜索条件进行笔记搜索
*C-cew:
将当前buffer保存为新笔记
*C-cep:
将当前选择区域保存为新笔记
*C-ceb:
启动evernotebrowser
*C-xC-q:
切换笔记的只读属性(安装了w3m的话,在只读模式下对xhtml格式的笔记进行预览)
*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Win7 Emacs 使用 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)