如果我选择一个区域的文本,有没有办法使用isearch(或其他一些搜索命令),这将允许我只在区域内搜索?我希望能够在宏里面使用这个技术。emacs新手问题 - 如何在一个区域内搜索
这可能很明显,但我做了一个快速搜索,找不到方法。
如果我选择一个区域的文本,有没有办法使用isearch(或其他一些搜索命令),这将允许我只在区域内搜索?我希望能够在宏里面使用这个技术。emacs新手问题 - 如何在一个区域内搜索
这可能很明显,但我做了一个快速搜索,找不到方法。
您可以使用命令的这个组合:
M-x narrow-to-region
C-s SOMETEXT
M-x widen
虽然,这是一种累赘,这里有一个新的命令自动完成以上为您服务。
(defun isearch-forward-region-cleanup()
"turn off variable, widen"
(if isearch-forward-region
(widen))
(setq isearch-forward-region nil))
(defvar isearch-forward-region nil
"variable used to indicate we're in region search")
(add-hook 'isearch-mode-end-hook 'isearch-forward-region-cleanup)
(defun isearch-forward-region (&optional regexp-p no-recursive-edit)
"Do an isearch-forward, but narrow to region first."
(interactive "P\np")
(narrow-to-region (point) (mark))
(goto-char (point-min))
(setq isearch-forward-region t)
(isearch-mode t (not (null regexp-p)) nil (not no-recursive-edit)))
现在只是做的Mx ISEARCH进区域RET SOMETEXT,或将其绑定到自己的喜好一样的键绑定:
(global-set-key (kbd "C-S-s") 'isearch-forward-region)
谢谢,特雷,这打开了一整套新的可能性;-) – Upgradingdave 2009-12-12 18:03:11
从来不知道狭窄并扩大。我多么爱你,emacs。 – mgalgs 2011-07-21 23:11:04
至于三分球杰克逊说,你可以使用narrow-to-region
和widen
。我会切入键盘快捷键。请注意,它们在默认情况下处于禁用状态,emacs将在第一次使用时交互式提示“禁用”它们。
C-x n n
C-s sometext
C-x n w
非常感谢,SO又来了。 – Upgradingdave 2009-12-12 18:04:25
我在我的.emacs中有一个(全局设置键“\ C-xn”'other-window)至少10年,不知道它影响了这些。谢谢。 – 2009-12-14 23:38:13
任何时候你问一个关于emacs的问题,准备回答“只用vi”。 ;-) – 2009-12-12 15:52:28
@dave 反之亦然 – vedang 2009-12-12 16:41:02
@Dave - Rodger那。我已经使用vi 5年了,并决定尝试emacs。我只用了一个星期,但我不得不说,我很喜欢它到目前为止... – Upgradingdave 2009-12-12 18:10:31