大家好,欢迎来到IT知识分享网。
Emacs 中文学习手册-2
2009-03-24 12:33:00| 分类: 默认分类 | 标签: |字号大中小 订阅
目录 3.9 标记区块 3.10 区块的拷贝与移动 3.11 撤销操作(Undo!)与重做操作(redo) 3.12 查找操作 3.13 替换操作 3.14 目录编辑功能 Dired
3.9 标记区块 目录
Emacs中的区块是从标记处到光标位置的范围,设定标记的快捷键是:Ctrl-@ 或者Ctrl-SPC。 显然, 在有中文输入法的终端下,C-SPC是用来启动和隐藏输入法的,这是就只能用Ctrl-@了。所以设定区块的步骤就是: ① 设定区块的起始位置,也就是设定标记,通过Ctrl-SPC 或者Ctrl-@来完成; ② 设定区块的终止位置,也就是移动光标到区块的尾端。 需要注意的是,所标记的区块会包括标记所在的位置,而不包括光标(point)所在的位置。 可以看到,设定区块起始位置的操作的命令(set-mark-command),它关联了两个快捷键,之所以会关联 多个快捷键是考虑到可能不同的终端机的限制,有的终端机只能使用Ctrl-@这个快捷键,而有的终端机只能 使用Ctrl-SPC这个快捷键。而使用Emacs命令(command)永远可以达到目的。 在纯文本的终端上(text-only),只能显示出一个光标,可以通过Ctrl-x Ctrl-x这个快捷键将标记和 光标位置(point)做交换,从交换过程可以观察标记和光标的位置,Ctrl-x Ctrl-x所能做的事,只是交换标记与光标位置而已。 下面的指令是作用在区块上的: Ctrl-w (kill-region):剪切区块,区块内容被放入killl-ring变量中了; Ctrl-x r s(copy-to-register): Ctrl-x Ctrl-p(mark-page): Ctrl-x Ctrl-l(downcase-region): Ctrl-x Ctrl-u(upcase-region): Alt-x fill-region: Alt-x print-region:
v3.10 区块的拷贝与移动 目录
标记了区块后可以对区块的内容进行删除和拷贝的工作,操作的步骤如下: ① 用快捷键Ctrl-@ 来设定区块的起始位置; ② 移动光标到区块的终止位置; ③ 使用快捷键Ctrl-w来删除区块内容,并且把内容放入kill-ring 中,或者使用快捷键Alt-w来拷贝区 块的内容,也把内容放进kill-ring中, ④ 使用快捷键 Ctrl-y和Alt-y来把kill-ring中的内容取出来,放到需要的位置。 上面所讲的是把区块按行进行操作的,即从起始点按行走到终止点的内容。还可以以矩形方式对区块进行操作, 即按列的方式进行操作,也就是对从起始点所在的列到终止点所在的列的矩形进行操作, 矩形以标记位置和光标 位置为两个对角。我们只是以不同的方式对区块进行操作的,区块仍然按照上面的方法来标记。假设现在已经标 记了一个区块,操作的方法有如下几种: ① 以Ctrl-x r k 快捷键来删除长方形区块,被删除的内容被放入一个类似kill-ring的地方,以便拷贝; 但是这里只能保留最近的一次删除操作中被删除的内容,也就是说只能使用最新的被删除的内容; 将光标移植 需要粘贴内容的地方,按下Ctrl-x r y快捷键来粘贴内容; ② 以Ctrl-x r d来删除长方形区域的内容,这是彻底的删除,删除的内容不会存储在某一个地方,只能使 用Ctrl-x u快捷键来撤销操作才能恢复。 ③ 以Ctrl-x r o快捷键在设定好的长方形区块内插入空白,此时区块的内容会向右移动; ④ 以Alt-x clear-rectangle 命令来清除长方形的内容,长方形内容将被空白取代; ⑤ 键入 Alt-x string-rectangle RET 后,在minibuffer中输入字符串,这时候,在长方形区域的 每一行都会填入所输入的字符串,填入的宽度是字符串的宽度,高度是所选的矩形的高度。
3.11 撤销操作(Undo!)与重做操作(redo) 目录
撤销操作的快捷键是Ctrl-x u,undo的顺序是按照指令的顺序反过来的,最后使用的指令将最先被undo 。 需要注意的是,undo指令只能撤销那些改变了缓冲区内容的指令,而不能撤销移动光标的指令。而undo指令本 身就属于改变缓冲区内容的指令,所以可以撤销undo指令本身,即达到了redo。比如如下的例子: 指令1,指令2,指令3,undo1,undo2,undo3,指令4,undo4,undo5; 上面的指令序列中,undo1撤销指令3,undo2撤销指令2,undo3撤销指令1,而指令4打断了undo的指令序列, 所以,undo4就撤销指令4,undo5撤销undo3,这就使得指令1被redo了。也就是说,undo指令它依次撤销之前 的指令,但是会被新的指令打断,指令4可以是改变缓冲区内容的指令,也可以是不改变缓冲区内容的指令而只是 移动光标的指令,所以,为了方便,只要在undo指令序列中插入一个移动光标的指令,再次执行undo指令就可以 达到redo的效果。
3.12 查找操作 目录
Emacs中有增量搜索和非增量搜索之分,增量搜索就是每输入一个字母就展开新的搜索,相比而言,非增量 搜索则是在输入搜索字串之后按下回车键才展开搜索。 增量搜索的相关操作如下: Ctrl-s string 向后搜索,即搜索范围是光标之后直到缓冲区末尾的内容; Ctrl-r string 向前搜索,搜索范围光标到缓冲区开头的内容; 如果按下Ctrl-s 或者Ctrl-r之后,不输入搜索字串而是直接按下RET键,那么转换到非增量搜索模式。 Emacs搜索,对于搜索字串的大小写是有区分的。如果搜索的字串是小写字母开头的,那么将搜索将不区分 大小写,所以搜索到的字符串和要搜索的并不完全相同,例如,要搜索的是aBc,那么以下的字串将被搜索 到:abc,Abc,ABC,aBC,abc,aBC。如果搜索字串是大写字母开头,那么将搜索与所要搜索的字串完全匹配 的字符串,例如,要搜索的是Abc,那么只有字符串Abc被搜索到。 Emacs配置变量中的 case-fold-search变量是控制搜索的大小写敏感性的。这个变量默认值是 t,表 示在搜索字串为小写的时候忽略大小写(ignore case)。如果设置这个变量的值为nil,那么搜索将区分大小 写,即使搜索字串为小写字母开头也是如此。 在执行搜索的时候,如果所搜索的字串找不到,那么按下Ctrl-g组合键,将在minibuffer中只保留能搜 索到的字串前缀,如果没有能够搜索到的前缀,那么将回到输入搜索字串的状态,即minibuffer在等待用户 输入。如果能搜索到,那么按下Ctrl-g组合键就退出搜索状态。也就是说,在搜不到所要的字串的时候,得 按下两次Ctrl-g组合键才能够退出搜索状态。退出搜索状态之后,光标会回到搜索之前的位置。如果按下 RET键,也可以结束搜索,但是光标将会停留在第一个搜到的字串后面。 可以用Ctrl-s和Ctrl-r组合键在搜索到的结果之间来回走动。这时候,像是全局搜索,光标会在整个 缓冲区所能找到的字串中走动。 所要搜索的字串被放在一个叫做search-ring的变量中,可以用组合键Alt-p和Alt-n来在minibuffer中 使用其中的项。 也可以使用如下快捷键来方便输入搜索字串: Ctrl-y:将光标所在位置一直到行尾的内容拷贝到minibuffer中,作为搜索字串; Ctrl-w:只将光标所在位置之后的一个单词拷贝到minibuffer中,仍然是连续的汉字作为一个单词; Alt-y:将kill-ring中的最新的项的内容拷贝到minibuffer中,只能拷贝最新的项;
3.13 替换操作 目录
替换操作分为有条件的替换(即每一次替换操作都会提醒用户所要进行的替换),和无条件的替换(即一次 执行所有的替换,而不提醒用户)。操作的方法分别是: Alt-x replace-string oldstring RET newString:无条件的替换 Alt-x query-replace oldstirng RET newString: 有条件的替换 替换操作对大小写也是有区分的: 如果oldstring和newString 都为小写的,那么: ① 缓冲区中以小写字母开头的字串整个将变成小写的; ② 缓冲区中一大些字母开头的字串,除了首字母为大写外,其他字符都变成小写; ③ 缓冲区中的所有字母都大写的字串,就维持大写不变。 如果oldstring为小写,而newString部分为大写: ① 对于缓冲区中的字母全部为大写的字串,仍维持大写 ② 对于以大写字母开头的字串,首字母让然为大写,剩余字母将和newString保持一致 ② 对于小写字母开头的字串,将和newString保持一致 总结一下,在替换操作中,缓冲区中与需要被替换的字串的匹配原则和查找操作是一样的,替换的时候,以大 写字母开头的字串将部分保持自己的特性,全部大写的单词将仍然保持大写,而以小写字母开头的单词则必须 和newString保持一致。
3.14 目录编辑功能 Dired 目录
进入Dired模式的方法是:Alt-x dired 或者用组合键Ctrl-x d,此时minibuffer中会显示如下文字:Dired(directory): 在冒号之后显示的是当前的目录名,即用Alt-x pwd 指令看到的目录名,可以修改目录名为所要使用的目录, 按下RET键,系统会会在一个新的视窗中显示此目录下的所有文件。Dired所使用的这个缓冲区是只读的。 Dired模式中删除文档:Dired中最基本的指令就是将要删除的文件做上标记(flag)之后,再将做了 标记的文件删除。所要使用的命令如下: d: 将光标移至所要删除的文件所在的行,键入d,此行前方就会出现一个大写字母D,这就是删除的标记, 此时光标会移至下一行; u:若想放弃已设定好的标记,可以键入u,使屏幕上的D消失; x:键入指令d只是将要删除的文件做上标记,并未真正的执行删除操作,只有键入x才会将做上标记的文件删除。 使用命令的数值参数可以方便操作:M-3 d 等。 在Dired中同时将多个文件做标记: #:键入'#'会将所有自动存储的文件(auto-save file)做上删除的标记 ~:将所有备份(backup file)的文件做上删除标记, 在Dired中访问文件: f (dired-find-file):如果想要访问目前光标所在行的文档,只要在此行上键入f即可,此时,文件的内 容会显示在原先显示Dired缓冲区的视窗上。使用此方法访问文件就如同C-x C-f访问文件一样; o (dired-find-file-other-window):这个方法也是用来访问文件,但是与键入f的不同之处在于,所 访问的文件会出现在另一个视窗上,而光标也会移至所访问的视窗,显示Dired的缓冲区并未消失在屏幕上。 Ctrl-o (dired-display-file):与键入o功能大致相同,两者的不同之处在于,键入Ctrl-o后,所访 问的文件会出现在另一个视窗上,而光标不会移至所访问的视窗,依然留在显示Dired缓冲区的视窗上。 将Dired的文件做上标记,以下的指令以及前面的做标记的指令都可以使用数值参数,即在命令前先输入数字: v m (dired-mark):将光标目前所在的文件做上标记*,带数值参数的用法是:3 m,这样就对当前光标及 其以下的三个文件做上了*号标记; (dired-mark-executable files):对所有的可执行文件做上*标记; *@(dired-mark-symlinks):将所有符号链接做上*标记,如果给这个指令一个数值参数,那么会取消所有的符号链接的标记; */(dired-mark-directories):将所有的目录文件做上*号标记,带上数值参数,也会取消所有的标记; *c old new (dired-change-marks):将原本以old标记的记号换成以new标记的记号; 下面给出了Dired中的对目录进行操作的指令,他们都有如下的特点: ① 都可以带上数值参数,正数表示从当前行向下计数,负数参数表示从当前行向上计数; ② 如果不带数值参数,则指令的操作范围以做了标记的文件为主; ③ 如果不带数值参数,也不做标记,则指令只对当前行的文件操作; ④ 所有操作Dired缓冲区的指令都是大写字母; 指令如下: ① C new RET (dired-do-copy) :拷贝文件,如果有多个文件要拷贝,那么new表示所要拷贝到的目录名, 如果只有一个文件需要拷贝,那么可以利用参数new为文件重新命名; ② R new RET (dired-do-rename):这个指令有两个功能,更换文件名和移动文件,如果只有一个文件要操作, 那么new可以作为新的文件名也可作为要移动到的目录的名字,如果有多个文件要操作,那么new只能是要移动到的目录的名字; [以下的指令好像我都不会用,暂时也用不到] ③ H new RET (dired-do-hardlink): 在文件上做硬连接的标记; ④ S new RET (dired-do-symlink): 在文件上做符号连接的标记; ⑤ M midespec RET(dired-do-chmod):更改文件的模式; ⑥ G newgroup RET(dired-do-chgrp):更改所属组; ⑦ O newuser RET(dired-do-chown): 更改所属用户
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/151385.html