emacs复制粘贴和查找撤销
在emacs下复制粘贴是这样的。
1、在任一行中按下ctrl+space键,最底行会显示 Mark set 表示已经开始标记了。
2、移动鼠标或者选中文字然后,可以有两种方式:Alt+w (复制) 或者 Ctrl+w (剪切)。如果您选择复制,Emacs 会先回到标记的位置,让您查看选中的区域。
3、最后,移动到您想要这段文本结束的地方并按下 Ctrl+y。
但是,ctrl+space键和输入法会有冲突,我是这样解决的,我用ctrl+回车来解决
在~/.emacs文件中添加代码即可。
;; C-SPACE 被输入法占用,C-@ 又太难按,于是把 set mark 绑定到 C-return
(define-key global-map [C-return] 'set-mark-command)
要查找文本,移动到相应的缓冲区并按 Ctrl+s
要查找并替换,请按 Alt+%。Emacs 会询问查找哪个字符串,用什么来替换它,以及在每个匹配点要求确认替换。
按下 Ctrl+x u 将撤消上一步操作。想撤消多少步都可以。
退出 Emacs 的快捷键是 Ctrl+x Ctrl+c。如果您还未保存您的更改,Emacs 会询问您是否想要保存您的缓冲区。
查看目前的$HOME可在EMACS下c-x c-f,输入~表示到默认$HOME目录,即可看到.emacs文件
转自http://blog.chinaunix.net/uid-24948934-id-59824.html
更多细节:
http://blog.chinaunix.net/uid-9525959-id-2001558.html、
这里是对Emacs中的简易教程的翻译和总结。
Emacs简易教程阅读:
命令:
$emacs
进入之后,输入:
C-h t
这里,C-h表示按住[Ctrl]键的同时按h
#######
20090620
*退出:
输入“C-x C-c”
*撤销:
输入"C-x u"
或输入"C-_"
这里,"C-_"比较好输入一些(好像C--也行),但是有的键盘上面没有"_"就只能输入“C-x u”了,撤销动作能进行20次。
*向上翻页:
输入"M-v"
这里,右手的M好像不好使?
*向下翻页:
输入"C-v"
*刷新屏幕:
输入"C-l"
这里,l不是1,执行之后光标和相应文字都跑到屏幕中间。
*基本移动光标:
C-f 向前移动一个字符。
C-b 向后移动一个字符。
M-f 向前移动一个单词。
M-b 向后移动一个单词。
C-n 移动到下一行。
C-p 移动到上一行。
C-a 移动到行首。
C-e 移动到行尾。
M-a 向前移动到句子的开头,可能跨多行或一行都不到。
M-e 向后移动到句子的末尾,可能跨多行或一行都不到。
从以上几个命令可知,M是和语言相关的控制键,C之后基本单元有关。Emacs有个特点,就是你移动光标的时候,如果光标超出了屏幕范围(向上或者向下),则立刻将光标及附近文字居屏幕中央。
*重复一定次数的操作:
输入"C-u <数字> <你想要重复操作的命令或输入的字符>"
这里,
C-u <数字>是一个“前缀”,数字是要执行后面的命令的次数;例如"C-u 8 C-p"表示向前8行。
多数命令把这个“前缀”做为重复,但是有些特殊命令不是这样,以后会遇到的。
C-v和M-v加上这个数字表示的是把屏幕移动多少行而不是翻多少页。
*终止现在正在执行的命令:
输入"C-g"
*关掉其它窗口,只显示光标所在窗口:
输入"C-x 1"
在多窗口的时候,这样就会把所有窗口关掉,只显示一个窗口了。
*让光标所在行跑到屏幕顶部:
输入"C-u 0 C-l"
*查看C-f的文档解释:
输入"C-h k C-f"
这样,将新开一个窗口显示该命令(C-f)的解释,其它命令解释类似。
*基本删除操作:
<Delback> 删除光标前面的字符,不可再粘贴
M-<Delback> 除去光标前面的单词
C-d 删除光标后面的字符,
M-d 除去光标后面的单词
C-k 除去从光标位置到行尾的内容,可再粘贴
M-k 除去到当前句子的末尾
####阅读至386行
###########
20090621
*kill一个块的内容:
1)在块的一端输入"C-<SPC>"或"C-@".
这样将设定一个标记。
2)在块的另一端输入"C-w".
至此,这个块(在两端之间的部分)将被删除。
kill和delete的区别是,kill掉的部分可以被粘贴上去,类似剪切。
*kill当前行的光标和光标之后的部分:
输入“C-k”
这样,会删除相应包括光标所在内容,再按"C-k"删除换行符号。
*粘贴最近kill方式删除的文本:
输入"C-y"
*粘贴前几次某次kill删除的文本:
1)先输入"C-y"
这样会把最近的kill删除的文本粘贴回来。
2)多次输入"M-y"
这样,会不断用之前的kill删除的文本来替换当前刚刚粘贴上去的文本(循环的),这样一直进行下去,直到粘贴上之前某次删除的文本。
*打开一个文件yourfilename:
命令行下:$emacs yourfilename
或者emacs下输入:"C-x C-f <yourfilename>"
这样,如果文件名不存在则新建一个,第二个命令"C-x C-f"后有提示让你输入待打开的文件的路径,当前的文件没有保存也不会提示但是退出时候会提示你刚才载入新文件之前没有保存的文件是否保存,没新打开一个文件emacs会新建立一个buffer存放该文件。
*保存一个文件:
输入“C-x C-s”.
这样会保存文件,如果没有保存则提示。如果你没有保存文件,底部的提示行会用*表示未保存。
*查看emacs所有的buffer列表:
输入"C-x C-b"
这样,会显示一个buffer列表,每项显示打开的一个文件的名字。
*切换到相应buffer列表:
输入"C-x b <buffer列表名>"
这里,"C-x b"之后直接输入buffer列表名字,比"C-x C-f"的方式切换简单多了。
*保存buffer内容:
输入"C-x s"
这样,输入"C-x s"之后,会依次询问你那些被改变的没有保存的buffer文件是否保存,你只需要回答就行了。
##########阅读至650行
#######
*替换字符串:
1)输入"M-x "
这样,提示你输入替换命令,可以用<TAB>自动补全。
2)输入"repl s<TAB>"
这里就是利用<TAB>来自动补全命令的,如果不补全回车的话,命令唯一则也行。
3)输入“<Return>”
回车<Return>之后,提示要你输入要替换的字符。
4)输入"要替换的字符"
5)输入"<Return>"
回车<Return>之后,提示要你输入要替换成的字符。
6)输入"要替换成的字符"
7)输入"<Return>"
*自动保存功能:
emacs提供自动保存功能,例如当你修改“hello.c”文件的时候,它会生成一个“#hello.c#”文件(称做自动保存文件),并且周期的向这个文件写入最新数据,当你保存文件的时候,emacs才会删掉这个文件。当你机器挂掉的时候,你可以利用这个文件进行恢复。
*利用自动保存文件恢复文件:
假设文件hello.c的自动保存文件是#hello.c#恢复步骤如下:
1)输入"M-x"
这样,提示你输入恢复命令,可以用<TAB>自动补全。
2)输入"recover<TAB>"
这样会自动补全为recover-file
3)输入"<Return>"
4)输入"hello.c"
这里输入的就是要恢复的文件名,而不是#hello.c#
5)输入"yes"
这里根据提示输入"yes"表示确认恢复。
*转换主要显示模式:
假设转换为fundamental模式,步骤如下:
1)输入“M-x”
2)输入“fundamental<TAB>”
这里输入的是模式的名称,利用<TAB>自动补全。
3)输入“<Return>”
这样就把模式转换成为fundatmental模式了。emacs中有几种不同的主要模式,它们用来编辑的不同类型的文本,当前所处的主要模式的名称显示在底部的状态栏上面,不同的主要模式中的命令行为稍微不同。例如:text模式在M-f和M-b的时候,把顿号也视为单词的一部分,而fundatmental模式把顿号视为分隔符号等等,不过命令大体行为是一样的。
*查看你当前主要模式下的帮助文档:
输入"C-h m"
*打开关闭次要模式:
假设打开关闭的是Auto Fill mode,步骤如下:
1)输入"M-x"
2)输入"auto-fill-mode"
3)输入"<Return>"
回车之后,就会打开或者关闭auto-fill-mode模式(切换),这个模式在human-language text编辑中非常有用,该模式为on的时候,当一行单词数目过多的时候,它会在最后一个单词尾(注意就是必须要整个单词接空格的那种)自动插入换行而不是续行符号。
既然有主要模式,当然也有次要模式,次要模式并不能替代主要模式,它们只是一些类似“选项”的东西来稍微改变主模式的行为,能够独立于主模式或者其它次要模式来打开和关闭。
*改变一行的填充(不明白?):
假设改变为20,输入如下:
1)输入"C-u 2 0 C-x f"
2)输入"M-q"
这样设置后auto-fill-mode不管用了,想要重新re-fill,要在当前段内输入M-q。 会发现该段变成了每行20个字符。
##########阅读至850行
#######
*搜索:
假设搜索“cursor”,步骤如下:
1)输入 “C-s”
这时候,底部会出现一个提示,提示你输入要搜索的字符串
2)输入“<你要搜索的字符串>”
这时候,你会发现,随着你的输入,emacs会高亮相应的匹配并且光标向后跳到最近匹配,当你搜索的时候删除一个字符,emacs会跳到上次光标搜索的单词处(少一个字符的),当删成了空的时候,应该光标就跳回到最开始你搜索之前的位置了。
3)输入"C-s"
这样会把光标跳到下一个匹配的字符串。
4)输入"<Return>"
回车之后,会结束搜索(下次连续两个"C-s"会继续搜索上次的搜索字符串)。
注意,有的系统会把"C-s"解释为锁屏,而不等把命令传给emacs,这时你可以按C-q停止锁屏,然后查看文档的“Spontaneous Entry to Incremental Search”部分。
*反向搜索:
方法同“搜索”的方法,不过把"C-s"改成了"C-r"
*把当前光标及所在行设置为屏幕中第一行:
输入"C-u 0 C-l"
这里是小写L不是1。
*分割窗口:
输入“C-x 2”
这样会水平把当前窗口分割成为两个,可以两个窗口显示不同的文件。
*光标在当前窗口,给底部的窗口翻页:
输入“C-M-v”
或者输入“<Esc> C-v”
这里,emacs处于水平分割为两个窗口的状态,当前光标在上面的窗口中,然后这个命令会给下面的窗口翻页;如果光标在下面的窗口中会给上面的窗口翻页;注意如果你没有M控制键(就是Alt)那么你要实现这个功能就用第二个方法,先输入<Esc>再C-v。
*在分割的上下两个窗口间切换:
输入“C-x o”
这样,光标会在上下两个窗口之间切换。
*分割一个窗口载入另外一个文件:
输入“C-x 4 C-f <你的文件名>”
*当你处于recursive edit level的时候,你不能够利用C-g来取消命令了,那么你需要利用<Esc><Esc><Esc>(或者更多次)来取消,据说这个模式下会用方括号把模式括起来,例如用[(Fundamental..)]替代(Fundamental)但是实际上我看似乎不是这样啊?
##########阅读至995行
#######
*如何获得更多的帮助:
输入“C-h ?”
或输入“M-x help <Return>”
一般用第一个,如果第一个不好用,就用第二个,<Return>表示回车。
*查看某个命令按键或者命令次序简单的帮助:
假设查看C-p的信息:
输入:"C-h c C-p"
这里,会显示一条描述该命令(C-p)的简短信息。关键是先输入"C-h c",再输入命令。
*查看某个命令按键或者命令次序详细的帮助:
假设查看C-p的信息:
输入:"C-h k C-p"
这里会显示该命令(C-p)的详细信息。关键是输入“C-h k”,再输入命令。
##########阅读至1050行
#######
20090808
*查找一个函数的功能:
输入“C-h f”
然后输入一个特定的emacs函数。
*列出部分匹配:
输入"C-h a"
之后,输入一个词,会列出包含这个词的所有命令(meta键激起的)
*在线info手册:
输入"C-h i"
这样,会打开info如果查看emacs输入“m emacs”,如果不知道作甚么,那么输入'?'可以显示一些info基本的操作。
emacs复制粘贴和查找撤销的更多相关文章
- Emacs复制粘贴乱码问题以及修改当前文件编码
编码修改: 为了和Linux兼容,win环境下将emacs编码修改为utf-8,随意复制了其他关于emacs编码的配置,如下: (setq locale-coding-system 'utf-8) ( ...
- fabric.js 翻转,复制粘贴,隐藏, 删除,历史记录,撤销, 剪切, 图层,组合打散,锁定等功能
用vue写的 显示,隐藏 hide(){ this.canvas.getActiveObject().set('opacity', 0).setCoords(); this.canvas.reques ...
- Intellij idea 复制粘贴查找快捷键失效
遇到此问题,竟不能复制, 发现原因,是因为勾选了Vim模式, Tools,Vim Emulator,前面会有一个√,取消即可,如图: 我的是这个原因,复制粘贴快捷键失效,也有可能历史粘贴板的深度不够 ...
- vi的复制粘贴命令 -- (转)
vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握这三种模式十分重要: 1.命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[E ...
- Linux-vim编辑器 常用命令 复制粘贴
Linux-vim编辑器 一.vim三种工作模式 1.1.命令模式 在此模式下,可以使用上.下.左.右键或者 k.j.h.l 命令进行光标移动,还可以对文件内容进行复制.粘贴.替换.删除等操作. 1. ...
- Linux 下 Console / 控制台 复制粘贴快捷键
Linux下复制粘贴快捷键 1. 在终端下: 复制命令:Ctrl + Shift + C 组合键. 粘贴命令:Ctrl + Shift + V 组合键. 2. 在控制台下: 复制命令:Ctrl + ...
- vi--文本编辑常用快捷键之复制-粘贴-替换-删除
这几天刚开始接触vi编辑器,慢慢开始熟悉vi,但是还是感觉诸多不便,比如说复制粘贴删除操作不能用鼠标总是感觉不自在,而且我一般习惯用方向键移动光标,更增加了操作的复杂度,今天在网上搜索了一下,vim编 ...
- 三星手机 Samsung Galaxy S3 无法复制粘贴的不完美解决方法
问题简单描述 从上周开始我的Samsung Galaxy S3手机就无法实现复制粘贴功能了,每次复制时都提示复制到了剪贴板,但是粘贴时就会发现根本粘贴不了,无法打开剪贴板.真的是莫明其妙啊,我的手机没 ...
- Eclipse/MyEclipse中使用复制粘贴功能卡的解决办法
最近在MyEclipse中编辑代码时,使用快捷键进行复制粘贴,经常会导致编辑器短暂的停顿,光标不跟随,居然反应不过来,几近假死. 想来想去应该是编辑上的什么配置或者是IDE的什么功能导致,于是进入Pr ...
随机推荐
- Oracle 9i Unix Manager
在Unix上被迫终止ORACLE进程时,必须做以下事情: (1) 杀掉所有Oracle进程. ps -ef|grep $ORACLE_SID|grep -v grep|awk '{print $ ...
- linux alsa pcm(此pcm非硬件pcm接口)
转:https://blog.csdn.net/crycheng/article/details/7095899 CODEC :音频芯片的控制,比如静音.打开(关闭)ADC(DAC).设置ADC(DA ...
- Docker容器技术-基础命令
一.基础命令 1.运行一个镜像 [root@bogon ~]# docker run debian echo "Hello World" Unable to find image ...
- jsonp跨域总结
同源限制: 浏览器不允许一个域的脚本请求另一个域的文档,通俗来说,不允许访问不同协议.不同域名或不同端口的文档 跨域处理方法: 1.jsonp 前提: 浏览器虽然对ajax请求做出了限制,但scrip ...
- 一览Swift中的常用关键字
要学习Swift这门语言,就必须先了解Swift的关键字及对应的解释.这里就列一下在Swift中常用到的关键字. 关键字是类似于标识符的保留字符序列,除非用重音符号(`)将其括起来,否则不能用作标识符 ...
- kubernetes liveness readiness
Liveness Probe(存活探针):用于判断容器是否存货(running状态),如果LivenessProbe探测到容器不健康,则kubelet将杀掉该容器,并根据容器的重启策略做相应的处理.如 ...
- vs+mysql+ef配置方法
这次的项目用的是MySQL数据库,但是ADO.NET实体数据模型默认是不支持MySQL数据库的,本文档将介绍如何让VS ADO.NET实体数据模型支持MySQL. 一.安装插件 1.VS插件 mysq ...
- svn working copy locked的解决方法
在使用svn更新或提交代码时,会报"svn working copy XXX locked"的错误,利用svn客户端工具TortoiseSVN的cleanup也不能解决问题. 我们 ...
- 机器学习三剑客之Numpy
Numpy NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效 ...
- dom 兼容性问题 2 offset
offsetParent : 离当前节点最近的具有定位属性的祖先节点. 如果所有祖先节点都没有定位属性: 对于一个有定位属性的元素: ie6.7 : offsetParent 是 html 节 ...