- 浏览: 567180 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
原文地址:http://emacser.com/ann77/Emacs/EmacsSearch.html
最基本的东西
C-s 开始正向查找
C-r 开始方向查找
这两个命令进入了查找模式,在 Emacs 中的术语叫做 Incremental Search , 也就是在你输入要 查找的字符的时候,同时高亮显示找到的部分。
在查找模式下的一些操作
下面的操作都是先按 C-s 或者 C-r 后, 进入 Incremental Search Mode 之后的操作。
C-r , C-s , 分别是向前查找和向后查找当前输入的内容。
如果当前内容是空的,也就是说你连续两次输入 C-s ,那么就是 “查找下一个 (Find next)”的 操作。第一次是C-s 把你带入了 Incremental Search Mode , 第二次的 C-s 表示查找上一次查 过的东西。 C-r 类似,只不过方向相反。
C-w 查找光标除所在的单词
例如, 你可以输入 C-r 然后马上输入 C-w , 光标所在位置的单词就自动变成了要查找的内容。
多次输入 C-w 后面的单词就会一个一个 的变成了查找内容一部分。
C-w 还可以和上面介绍的 C-s C-r 配合使用。C-s 进入 Incremental Search Mode. 然后输入 void f 然后光标会停留在一个 void f 的单词上,也许是 void far ,然后用 C-s 或者 C-r 找 到某个 void f 的地方,然后 C-w 就可以把 f 后面的单词补全了。
C-y 把光标所在位置到行尾的部分作为查找内容
和 C-w 类似,只不过输入的不是一个单词, 而是整整一行。
M-y 把 kill ring 中的东西输入为当前要查找的内容
M-c 切换大小写敏感。
M-r 切换是普通查找还是正则表达式查找。
M-e 编辑要查找的内容
Incremental Search 会随着用户的输入不断的改变光标的位置,有的时候很讨厌,那么就可以 M-e 编辑要查找的内容,然后按 Enter 回到 Incremetal Search 。
M-n M-p 浏览查找历史纪录
可以查找以前 查找过的内容。
C-q C-j 查找多行文字。
如果你要的查找的内容是多行文字,也就是说,查找内容中含有换行字符 C-j 但是, Enter 键又 作为结束查找的操作,一按 Enter 就退出了查找模式了。那么 C-q C-j 可以解决这个问题。 可 以查看 如何输入特殊的控制字符 。
用 Nonincremental Search 查找
如果不习惯 Incremetal Search 的方式,那么可以 C-s <RET> ,也就是按了 C-s 之后,马上按 一个回车,就用 Nonincremental Search 的方式查找,这种查找方式和普通的编辑器几乎一样。
使用 moccur 在所有打开的文件内查找
本来 M-x occur 可以在一个 buffer 的查找某一个正则表达式。 moccur 提供更加强大 的功能。安装了 moccur 之后 ,如果进入 incremetal 查找功能,除了上面介绍的一些 功能,有多了两个新的功能。下面的操作都是先按 C-s 或者 C-r 后 进入 Incremental Search Mode 之后的操作。
M-o, 小写的 o , 列出来当前 buffer 内的所有查找内容
M-O, 大写的 O , 列出来所有打开的 buffer 中出现的查找内容。
安装 moccur 的方法。下载 color-moccur.el, 然后按照文件头的提示或者参考 Emacs 安装一个扩展包的方法
在多个文件中查找
find-dired
运行外部命令 find , 产生文件列表,然后进入 dired 模式。
find-grep-dired
运行外部命令 find,用 grep 过滤文件, ls 产生目录列表,然后进入 dired 模式,这样 列出所有包含某些字符的文件列表。可以使用 dired-do-query-replace-regexp 在文件列 表中查找并替换。可以递归所有子目录。可以用各种条件过滤文件,详细可以查看 find 命 令的帮助。
grep
在当前目录中查找指定的 regexp 。
grep-find
运行 find , grep ,然后产生类似于 compile 的结果,可以查看哪些文件在什么地方包含 了匹配了指定的 regexp 。用 C-x ` 浏览结果。可以递归所有子目录。,详细可以查看 find 命令的帮助。
dired-do-query-replace-regexp
在任何 dired 模式下,对于所有带有标记的文件进行查找替换。
替换
在 transient mode 下,如果 region 是激活状态下,那么就调用 query-replace-selection , 这个函数和 query-replace 几乎完全一样,不同的是, query-replace-selection 用当前选择的 region 作为被替换的部分,而不是等用户输入。
(defun query-replace-selection (to-string &optional delimited start end)
"query reqlace the current selection in transient mark mode."
(interactive (list
(read-from-minibuffer (format "Query replace %s with: "
(buffer-substring (point) (mark)))
nil nil nil
query-replace-to-history-variable
(buffer-substring (point) (mark))
t)
nil nil nil
))
(perform-replace (buffer-substring (point) (mark)) to-string t nil delimited nil nil start end))
(wcy-define-2bind-transient-mode
wcy-query-replace-or-query-replace-selection
'query-replace-selection
'query-replace)
(global-set-key (kbd "M-%") 'wcy-query-replace-or-query-replace-selection)
wcy-define-2bind-transient-mode 的定义参见 其他编辑技巧 中的 C-w 部分。
;; 在 C-s 进入 incremental search 的时候, 按 M-i , 替换当前查找内容
(define-key isearch-mode-map (kbd "M-i") 'isearch-query-replace-current)
(defun isearch-query-replace-current ()
"replace current searching string."
(interactive)
(let ((case-fold-search isearch-case-fold-search)
(from-string isearch-string))
(if (not isearch-success)
(message "search string not found")
(progn
(isearch-exit)
(goto-char (min (point) isearch-other-end)))
;;(isearch-abort)
(perform-replace
from-string
(read-from-minibuffer (format "Query replace %s with: "
from-string)
from-string nil nil
query-replace-to-history-variable
from-string
t)
t ; query flag
isearch-regexp
nil))))
;; 进入 incremental search mode 之后,有些命令可以根据光标所在位置补全要查找内容,
;; 例如 C-w 可以补全一个词。但是如果按多了 C-w 就不能回退了,而且不能精确定位,
;; 下面的键绑定重新定义了一些常用的光标移动命令,根据光标移动,自动补齐查找内容,
;; 例如 C-f 自动补齐光标处的一个字符。
(define-key isearch-mode-map (kbd "C-e") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-a") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-e") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-a") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-e") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-a") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-f") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-b") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-f") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-b") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-f") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-b") 'isearch-move-point)
(defun isearch-move-point ()
(interactive)
(when isearch-success
(save-excursion
(let ((overriding-terminal-local-map nil)
(old-point (or isearch-other-end (point))))
(call-interactively (key-binding (this-command-keys)))
(setq isearch-string (buffer-substring-no-properties old-point
(point))
isearch-message
(mapconcat 'isearch-text-char-description
isearch-string "")
;; Don't move cursor in reverse search.
isearch-forward (cond
((< old-point (point)) t)
((> old-point (point)) nil)
((= old-point (point)) isearch-forward))
)))
(isearch-search-and-update)))
最基本的东西
C-s 开始正向查找
C-r 开始方向查找
这两个命令进入了查找模式,在 Emacs 中的术语叫做 Incremental Search , 也就是在你输入要 查找的字符的时候,同时高亮显示找到的部分。
在查找模式下的一些操作
下面的操作都是先按 C-s 或者 C-r 后, 进入 Incremental Search Mode 之后的操作。
C-r , C-s , 分别是向前查找和向后查找当前输入的内容。
如果当前内容是空的,也就是说你连续两次输入 C-s ,那么就是 “查找下一个 (Find next)”的 操作。第一次是C-s 把你带入了 Incremental Search Mode , 第二次的 C-s 表示查找上一次查 过的东西。 C-r 类似,只不过方向相反。
C-w 查找光标除所在的单词
例如, 你可以输入 C-r 然后马上输入 C-w , 光标所在位置的单词就自动变成了要查找的内容。
多次输入 C-w 后面的单词就会一个一个 的变成了查找内容一部分。
C-w 还可以和上面介绍的 C-s C-r 配合使用。C-s 进入 Incremental Search Mode. 然后输入 void f 然后光标会停留在一个 void f 的单词上,也许是 void far ,然后用 C-s 或者 C-r 找 到某个 void f 的地方,然后 C-w 就可以把 f 后面的单词补全了。
C-y 把光标所在位置到行尾的部分作为查找内容
和 C-w 类似,只不过输入的不是一个单词, 而是整整一行。
M-y 把 kill ring 中的东西输入为当前要查找的内容
M-c 切换大小写敏感。
M-r 切换是普通查找还是正则表达式查找。
M-e 编辑要查找的内容
Incremental Search 会随着用户的输入不断的改变光标的位置,有的时候很讨厌,那么就可以 M-e 编辑要查找的内容,然后按 Enter 回到 Incremetal Search 。
M-n M-p 浏览查找历史纪录
可以查找以前 查找过的内容。
C-q C-j 查找多行文字。
如果你要的查找的内容是多行文字,也就是说,查找内容中含有换行字符 C-j 但是, Enter 键又 作为结束查找的操作,一按 Enter 就退出了查找模式了。那么 C-q C-j 可以解决这个问题。 可 以查看 如何输入特殊的控制字符 。
用 Nonincremental Search 查找
如果不习惯 Incremetal Search 的方式,那么可以 C-s <RET> ,也就是按了 C-s 之后,马上按 一个回车,就用 Nonincremental Search 的方式查找,这种查找方式和普通的编辑器几乎一样。
使用 moccur 在所有打开的文件内查找
本来 M-x occur 可以在一个 buffer 的查找某一个正则表达式。 moccur 提供更加强大 的功能。安装了 moccur 之后 ,如果进入 incremetal 查找功能,除了上面介绍的一些 功能,有多了两个新的功能。下面的操作都是先按 C-s 或者 C-r 后 进入 Incremental Search Mode 之后的操作。
M-o, 小写的 o , 列出来当前 buffer 内的所有查找内容
M-O, 大写的 O , 列出来所有打开的 buffer 中出现的查找内容。
安装 moccur 的方法。下载 color-moccur.el, 然后按照文件头的提示或者参考 Emacs 安装一个扩展包的方法
在多个文件中查找
find-dired
运行外部命令 find , 产生文件列表,然后进入 dired 模式。
find-grep-dired
运行外部命令 find,用 grep 过滤文件, ls 产生目录列表,然后进入 dired 模式,这样 列出所有包含某些字符的文件列表。可以使用 dired-do-query-replace-regexp 在文件列 表中查找并替换。可以递归所有子目录。可以用各种条件过滤文件,详细可以查看 find 命 令的帮助。
grep
在当前目录中查找指定的 regexp 。
grep-find
运行 find , grep ,然后产生类似于 compile 的结果,可以查看哪些文件在什么地方包含 了匹配了指定的 regexp 。用 C-x ` 浏览结果。可以递归所有子目录。,详细可以查看 find 命令的帮助。
dired-do-query-replace-regexp
在任何 dired 模式下,对于所有带有标记的文件进行查找替换。
替换
在 transient mode 下,如果 region 是激活状态下,那么就调用 query-replace-selection , 这个函数和 query-replace 几乎完全一样,不同的是, query-replace-selection 用当前选择的 region 作为被替换的部分,而不是等用户输入。
(defun query-replace-selection (to-string &optional delimited start end)
"query reqlace the current selection in transient mark mode."
(interactive (list
(read-from-minibuffer (format "Query replace %s with: "
(buffer-substring (point) (mark)))
nil nil nil
query-replace-to-history-variable
(buffer-substring (point) (mark))
t)
nil nil nil
))
(perform-replace (buffer-substring (point) (mark)) to-string t nil delimited nil nil start end))
(wcy-define-2bind-transient-mode
wcy-query-replace-or-query-replace-selection
'query-replace-selection
'query-replace)
(global-set-key (kbd "M-%") 'wcy-query-replace-or-query-replace-selection)
wcy-define-2bind-transient-mode 的定义参见 其他编辑技巧 中的 C-w 部分。
;; 在 C-s 进入 incremental search 的时候, 按 M-i , 替换当前查找内容
(define-key isearch-mode-map (kbd "M-i") 'isearch-query-replace-current)
(defun isearch-query-replace-current ()
"replace current searching string."
(interactive)
(let ((case-fold-search isearch-case-fold-search)
(from-string isearch-string))
(if (not isearch-success)
(message "search string not found")
(progn
(isearch-exit)
(goto-char (min (point) isearch-other-end)))
;;(isearch-abort)
(perform-replace
from-string
(read-from-minibuffer (format "Query replace %s with: "
from-string)
from-string nil nil
query-replace-to-history-variable
from-string
t)
t ; query flag
isearch-regexp
nil))))
;; 进入 incremental search mode 之后,有些命令可以根据光标所在位置补全要查找内容,
;; 例如 C-w 可以补全一个词。但是如果按多了 C-w 就不能回退了,而且不能精确定位,
;; 下面的键绑定重新定义了一些常用的光标移动命令,根据光标移动,自动补齐查找内容,
;; 例如 C-f 自动补齐光标处的一个字符。
(define-key isearch-mode-map (kbd "C-e") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-a") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-e") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-a") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-e") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-a") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-f") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-b") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-f") 'isearch-move-point)
(define-key isearch-mode-map (kbd "M-b") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-f") 'isearch-move-point)
(define-key isearch-mode-map (kbd "C-M-b") 'isearch-move-point)
(defun isearch-move-point ()
(interactive)
(when isearch-success
(save-excursion
(let ((overriding-terminal-local-map nil)
(old-point (or isearch-other-end (point))))
(call-interactively (key-binding (this-command-keys)))
(setq isearch-string (buffer-substring-no-properties old-point
(point))
isearch-message
(mapconcat 'isearch-text-char-description
isearch-string "")
;; Don't move cursor in reverse search.
isearch-forward (cond
((< old-point (point)) t)
((> old-point (point)) nil)
((= old-point (point)) isearch-forward))
)))
(isearch-search-and-update)))
发表评论
-
使用emacs时候,去掉ubuntu的alt键默认功能
2014-12-11 10:35 601原文地址:http://askubuntu.com/quest ... -
学习Emacs系列教程(十):多窗口
2014-12-09 10:07 468原文地址:http://www.cnblogs.com/rob ... -
Emacs 配置文件,包括自动提示,yasnippet和PHP-mod和cscope等
2014-12-04 12:03 1189原文地址:http://outofmemory.cn/code ... -
emacs ide配置
2014-12-04 12:00 513原文地址:http://www.boyunjian.com/d ... -
emacs 常用命令与配置
2014-12-04 11:46 630原文地址:http://www.cnblogs.com/UnG ... -
一起学用Emacs(一):Emacs基本命令
2014-10-24 13:40 615原文地址:http://linux.chinaunix.net ... -
Emacs常用命令速查
2014-10-22 10:26 461原文地址:http://www.chinaunix.net/o ... -
在emacs下配置php-mode实现库函数自动补全
2014-10-22 09:56 1478原文地址:http://blog.sina.com.cn/s/ ... -
emacs 中使用etags
2014-10-21 17:28 1069原文地址:http://blog.csdn ... -
慢慢将emacs 配置成极其强大的web IDE开发环境
2014-10-20 13:59 651原文地址:http://www.douban.com/grou ... -
【转载】在emacs下配置php-mode实现库函数自动补全
2014-10-20 10:17 621原文地址:http://blog.sina.com.cn/s/ ... -
Emacs中打造强大的Python IDE
2014-10-20 10:07 845原文地址:http://www.cnblogs.com/cod ... -
emacs插件以及配置 转
2014-10-11 09:55 1414原文地址:http://blog.csdn.net/liang ... -
在 emacs 中使用 bing translate api 实现高效翻译
2014-10-10 11:06 958原文地址:http://emacser.c ... -
使用.emacs.d目录管理Emacs配置文件
2014-10-09 17:39 1582原文地址:http://blog.csdn.net/aka_x ... -
emacs 生存指南
2014-10-09 17:30 615原文地址:http://blog.csdn.net/aka_x ... -
Emacs as a Python IDE
2014-10-09 14:36 525原文地址:http://cnlox.is-programmer ... -
Emacs下配置Java开发环境
2014-10-09 14:35 654原文地址:http://longgue.iteye.com/b ...
相关推荐
Emacs的窗口操作包括删除所有其它窗口、上下分割当前窗口、左右分割当前窗口、删除当前窗口、向下滚动其它窗口、向上滚动其它窗口、切换光标到另一个窗口、选择另一个窗口中的缓冲、显示另一个窗口中的缓冲、在另一...
这部分内容介绍了如何在 Emacs 中查找和使用帮助资源。 #### 知识点七:标记与区域操作 - **标记**:设置一个位置作为后续操作的参考点。 - **区域**:指定一段文本作为操作对象,如复制、移动或删除等。 #### ...
在Emacs中,批量查找和替换主要通过Dired模式(Directory Editor)和`query-replace-regexp`命令实现。Dired模式允许用户在一个目录视图中对文件进行各种操作,如编辑、删除、重命名等。`query-replace-regexp`则是...
《GNU Emacs Pocket Reference》则是一本实用的手册,提供快速参考信息,帮助用户查找常用命令和功能。这本书通常以紧凑的形式列出Emacs的关键操作,包括文本操作、搜索和替换、缓冲区和窗口管理,以及各种模式的...
快速搭建的主要思想是采用执行注册表脚本 设定 emacs 查找配置文件的路径为 c: emacs home emacs 同时又在此文件中定位到我们现在刚下载的路径 及更改 home 目录的方式 包含最基本的配置 颜色 字体等 脚本以及常用的...
Emacs_Cscope是一款集成在GNU Emacs编辑器中的Cscope工具,它使得开发者可以在Emacs环境中高效地使用Cscope功能。Cscope是一款强大的源代码浏览工具,尤其适合于C/C++等编程语言,它能帮助程序员查找、修改和理解大...
- Ctrl-h是Emacs中的快捷键,用于访问帮助系统,例如查找命令的解释和示例。 - **Emacs的info使用说明** - Info是Emacs内置的帮助系统,提供了详细的文档和教程。 #### 3. Emacs的整合环境 - **如何在Emacs中执行...
Emacs是一种功能极其强大的文本编辑器,在Unix和类Unix系统(如Linux)中广泛使用。对于熟悉它的用户来说,Emacs不仅是一个简单的文本编辑器,更是一个完整的开发环境。由于许多Linux系统的配置任务涉及到编辑配置...
7. **导航和搜索**:学会使用M-/, C-s和C-r进行正向和反向查找,以及使用M-n和M-p在搜索历史中导航。 8. **版本控制集成**:Emacs内置了对Git和其他版本控制系统的支持,方便你在编辑器内进行版本控制操作。 9. **...
Cscope是一款源码浏览工具,它允许程序员快速查找和理解大型项目中的代码结构。在Emacs中集成Cscope,可以实现如下功能: 1. 查找函数定义:输入函数名即可快速跳转到其定义位置。 2. 查找调用某函数的地方:找到...
标题中的“rfc文档插件 for emacs”指的是在Emacs编辑器中用于阅读和操作RFC(Request for Comments)文档的扩展工具。RFC是互联网工程任务组(IETF)和其他标准组织发布的技术规范和协议草案,对于理解网络协议和...
Emacs是一款强大的文本编辑器,深受程序员和高级用户喜爱,尤其在开源社区中有着极高的声誉。这款编辑器不仅功能全面,而且具有高度可扩展性,允许用户通过编写自己的Lisp代码来定制编辑环境。本中文用户手册旨在...
Projectile是一款专为Emacs设计的插件,旨在优化开发者在多项目环境中的工作流程,提升开发效率。通过集成Projectile,用户可以快速、便捷地在Emacs中导航和操作项目文件,无需离开编辑器。 Projectile的主要功能...
标题中的"linux-一个emacs插件用于从当前目录向上查找最近的Makefile并执行make命令"揭示了这个插件的主要功能:它能够在当前工作目录及其上层目录中搜索最近的Makefile文件,并自动执行`make`命令。这大大提高了...
在Emacs中,配置主要通过`.emacs`或`.emacs.d`目录下的文件进行。`.emacs`文件是一个Lisp脚本,用于定义Emacs的行为和设置。在初次使用Emacs时,这个文件可能是空的,但随着你对Emacs的了解加深,你会逐渐添加各种...
2. `AUCTeX`: 这是Emacs中用于LaTeX写作的强大工具,它提供了自动完成、错误检查、预览等功能,极大地简化了LaTeX文档的编写过程。 3. `CEDET`: 这是一套集成开发工具,包括源码分析、自动完成、重构等功能。其中,...
首先,让我们探讨一下Emacs中的Python开发环境。Emacs有一个内置的Python模式(python-mode),它为Python编程提供了一些基本的支持,如语法高亮、自动缩进、括号匹配等。然而,为了获得更全面的开发体验,许多...
总的来说,emacs-powerthesaurus是Emacs用户提升写作体验的重要工具,它结合了Powerthesaurus的强大词汇库和Emacs的高效工作流程,使得在Emacs中查找和替换同义词变得轻而易举。无论你是编程人员还是作家,只要你...