LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 979|回复: 8

问几个关于emacs的问题

[复制链接]
发表于 2005-12-20 16:13:02 | 显示全部楼层 |阅读模式
1. 有什么命令可以跳到指定的行呀?
2. 有什么命令可以一下子选定当前的行呢?
3. search-delete-char 到底是什么?我在一本书上看到把C-h绑定到向前删除一个字符的命令:
(define-key global-map "\C-h" 'backward-delete-char)
但是当我用I-Search的时候,按C-h它删除的是原来的文本,而不是Mini-buf里面的文本,我看那个设置里面还有一句就是:
(setq search-delete-char (string-to-char "\C-h"))
可是加上去之后好像没有什么用处。

谢谢了!
发表于 2005-12-20 18:11:04 | 显示全部楼层
Post by pluskid
1. 有什么命令可以跳到指定的行呀?
2. 有什么命令可以一下子选定当前的行呢?
3. search-delete-char 到底是什么?我在一本书上看到把C-h绑定到向前删除一个字符的命令:
(define-key global-map "\C-h" 'backward-delete-char)
但是当我用I-Search的时候,按C-h它删除的是原来的文本,而不是Mini-buf里面的文本,我看那个设置里面还有一句就是:
(setq search-delete-char (string-to-char "\C-h"))
可是加上去之后好像没有什么用处。

谢谢了!

[color="Magenta"]
1. M-x goto-line
2. C-SPACE M-e选定一行
3. google一下吧
回复 支持 反对

使用道具 举报

发表于 2005-12-20 19:14:23 | 显示全部楼层
Post by pluskid

3. search-delete-char 到底是什么?我在一本书上看到把C-h绑定到向前删除一个字符的命令:
(define-key global-map "\C-h" 'backward-delete-char)
但是当我用I-Search的时候,按C-h它删除的是原来的文本,而不是Mini-buf里面的文本,我看那个设置里面还有一句就是:
(setq search-delete-char (string-to-char "\C-h"))
可是加上去之后好像没有什么用处。

最好把完整的设置贴出来。
  1. (setq search-delete-char (string-to-char "\C-h"))
复制代码

的意思是将 C-h 的值赋给变量 search-delete-char。C-h 就是退格,也可以这样写:
  1. (setq search-delete-char ?\b)
  2. (setq search-delete-char ?\^h)
复制代码

在 ASCII 里,它的数值是 8。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-20 19:22:14 | 显示全部楼层
原文是这样:
;; 使Ctrl-h删除前面的字符
(define-key global-map "\C-h" 'backward-delete-char)
;; 确认Ctrl-h也在搜索中
(setq search-delete-char (string-to-char "\C-h"))
因为是翻译的书,那儿翻译的注释好像也不懂是什么意思。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-20 19:25:34 | 显示全部楼层
Post by mylynx
[color="Magenta"]
1. M-x goto-line
2. C-SPACE M-e选定一行
3. google一下吧

谢谢了!
不过,你的方法好像不能很好的选定一行,我也知道
C-a C-SPACE C-e
可以选定一行,但是好像有点麻烦。
回复 支持 反对

使用道具 举报

发表于 2005-12-20 19:38:09 | 显示全部楼层
它指的可能是 isearch-delete-char。执行 C-h f isearch-forward RET 就可以看到这样的内容:
  1. Type DEL to cancel last input item from end of search string.
复制代码
这是在 isearch.el 中定义的:
  1. (define-key map "\177" 'isearch-delete-char)
复制代码

具体内容,可以查看 isearch-forward 的源代码。
回复 支持 反对

使用道具 举报

发表于 2005-12-20 19:59:08 | 显示全部楼层
Post by pluskid
谢谢了!
不过,你的方法好像不能很好的选定一行,我也知道
C-a C-SPACE C-e
可以选定一行,但是好像有点麻烦。
这个怎么样?
  1. (defun mark-line ()
  2.   (interactive)
  3.   (beginning-of-line)
  4.   (push-mark)
  5.   (end-of-line))
  6. (global-set-key (kbd "<f7>") 'mark-line)
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-11 23:44:22 | 显示全部楼层
Post by herberteuler
这个怎么样?
  1. (defun mark-line ()
  2.   (interactive)
  3.   (beginning-of-line)
  4.   (push-mark)
  5.   (end-of-line))
  6. (global-set-key (kbd "<f7>") 'mark-line)
复制代码

呵呵!现在我能看懂这些代码了! 学习 Emacs 的历程是漫长而快乐的,活到老,学到老……
回复 支持 反对

使用道具 举报

发表于 2006-5-12 04:20:12 | 显示全部楼层
在.emacs里面加一行
(pc-selection-mode)
就可以按住Shift然后用方向键选择了,这样选一行只要Shift-Down就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表