LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: pluskid

加速你的Emacs!

[复制链接]
发表于 2006-5-11 23:51:25 | 显示全部楼层
Post by pluskid
还有一个问题,就是现在不能用 C-x b 切换到 *scratch* 了,我想可能是后台那个隐藏着的 emacs 占用着 *scratch* ,所以切换的时候它简单地切换到后台那个或者是不执行操作?也许需要在后台服务的时候用 --eval 打开一个不存在而且名称不会重复的 buffer 也许是个不错的做法。


I'm using the iswitchb-mode, which do buffer switching using partial string match (say, c-x b scra<enter> will switch to *scratch*) . I address the problem you mentioned by setting iswitchb-default-method.
.emacs snippet:
(iswitchb-mode 1)
(setq iswitchb-default-method 'maybe-frame)

This way, whenever I'm switching to a buffer visible in another frame, emacs will prompt whether to show the buffer in the current frame's window.

`c-h v' that variable for more options
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-12 00:02:12 | 显示全部楼层
Post by galilette
I'm using the iswitchb-mode, which do buffer switching using partial string match (say, c-x b scra<enter> will switch to *scratch*) . I address the problem you mentioned by setting iswitchb-default-method.
.emacs snippet:

This way, whenever I'm switching to a buffer visible in another frame, emacs will prompt whether to show the buffer in the current frame's window.

`c-h v' that variable for more options

哦,我是使用的 ido ,用着挺习惯的,也许 ido 也提供了类似的功能,看来要好好看看它的文档了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-12 00:19:20 | 显示全部楼层
Post by pluskid
哦,我是使用的 ido ,用着挺习惯的,也许 ido 也提供了类似的功能,看来要好好看看它的文档了。

呵呵!找到了,原来和iswitchb类似的:

  1. (setq ido-default-file-method 'maybe-frame)
  2. (setq ido-default-buffer-method 'maybe-frame)
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-5-12 04:12:11 | 显示全部楼层
这是我的删除整行,定义以后Ctrl-Del就删除当前行了。

(defun my-kill-line ()
  (interactive)
  (kill-line 0)
  (kill-line 1))
(global-set-key (kbd "<C-delete>") 'my-kill-line)

emacs强的是定制性,嫌麻烦可以自己定义快捷键。或者用菜单也挺方便的,我退出都是用菜单。

Post by LaoLang_cool
我是新手,能让我提几个问题和意见吗?谢谢
1.问个问题,emacs能像vim那样用dd整删一行吗?
2.输入emacs的命令比vi的麻烦一点。
3. 退出用C+x C+c也不太方便。
回复 支持 反对

使用道具 举报

发表于 2006-5-12 17:49:19 | 显示全部楼层
Post by pluskid
按照 emacs 的 --help 输出: equivalent to -q --no-site-file --no-splash ,应该就是说 -Q 是添加的一个快捷选项吧,如果你有 -q --no-site-file --no-splash 这几个选项的话,只是输入字母个数的问题而已。

你说配置了相应的服务是配置系统的服务还是Emacs的服务?我上面说的办法,普通的emacsclient 的办法应该是可以使用的,但是 multi-tty 的功能在 Windows 上面估计现在还是不可用的,作者说连编译都无法通过,我也没有尝试过。

gnuserv 是什么?嘿嘿,我以前听说过 gnuclient 之类的,不知道有没有相关的地方?

[color="Magenta"]
我是在这个网站上找到这个软件的,据说可以实现在与emacs server一样的功能。你先看看:
http://www.wyrdrune.com/index.html?gnuserv.html~main
而且我按照你给的提示做了,用

  1. M-x server-start
复制代码
启动后,给出的提示是:Spawing child process: invalid argument。无法启动server模式。
我用的是NTEMACS 21。3, 应该如何启动呀?
回复 支持 反对

使用道具 举报

发表于 2006-5-13 22:08:34 | 显示全部楼层
Post by pluskid
just type
C-x C-f
然后输入:
/sudo:root@localhost:
就可以以用sudo打开文件了。你可以进一步配置,比如,我的配置为:

  1. (add-to-list 'load-path "~/emacs/packages/tramp-2.1.5/lisp")
  2. (require 'tramp)
  3. (add-to-list 'tramp-default-method-alist
  4.              '("10.13.122.225" "" "ssh"))
  5. (add-to-list 'tramp-default-method-alist
  6.              '("kid" "" "sudo"))
  7. (add-to-list 'tramp-default-user-alist
  8.              '("" "10.13.122.225" "root"))
  9. (setq tramp-default-host "10.13.122.225")
复制代码

Emacs好像是自带了TRAMP的,但是我后来又下载了一个,不知道有没有区别的(确实是有区别的,下载的那个比自带的那个强大一点 :p)。比如我这样配置,我只需要输入:
/kid:
它就会自动用 sudo 连接到本地(我的hostname是kid)文件。我在 blog 里面有讲到 TRAMP 的还算实用和详细的介绍,你看看吧:
http://blog.donews.com/pluskid/archive/2006/05/06/858306.aspx


不知你用了ido吗?我在加载了ido后C-x C-f 就不能输入//了,提示:
Error in post-command-hook: (wrong-type-argument sequencep t)
这是怎么回事?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-14 00:10:56 | 显示全部楼层
Post by sssslang
不知你用了ido吗?我在加载了ido后C-x C-f 就不能输入//了,提示:
Error in post-command-hook: (wrong-type-argument sequencep t)
这是怎么回事?

为什么要输入 // 呢?难道是Windows下面?我在Linux下面好像没有用到那个。不过,你可以用 C-f 切换到普通的打开文件状态,就是不是 ido 的状态,你也可以用 C-e 切换到编辑状态,就是没有匹配。然后你可以用 C-j 来打开你输入的精确的内容,而不是用 ido 得到的最相近的匹配。
回复 支持 反对

使用道具 举报

发表于 2006-5-14 10:51:28 | 显示全部楼层
Post by pluskid
不过,你可以用 C-f 切换到普通的打开文件状态,就是不是 ido 的状态,


我要的就是这个;)
谢谢pluskid大哥了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-14 19:39:17 | 显示全部楼层
Post by mylynx
[color="Magenta"]
我是在这个网站上找到这个软件的,据说可以实现在与emacs server一样的功能。你先看看:
http://www.wyrdrune.com/index.html?gnuserv.html~main
而且我按照你给的提示做了,用

  1. M-x server-start
复制代码
启动后,给出的提示是:Spawing child process: invalid argument。无法启动server模式。
我用的是NTEMACS 21。3, 应该如何启动呀?

google了一下,好像没有看到什么,是不是 emacsclient 的那种形式使用了 UNIX socket 的东西,所以在Windows下面不能用,我看你给出的那个链接,里面讲的好像也是说把那个东西移植到NT上面的,我在想是不是在Win下面emacsclient不能用,所以才有了那个gnuserver的东西?我刚才看了一下我那儿的那个Windows下面的Emacs,好像里面连 emacsclient 这个程序都没有呢?
回复 支持 反对

使用道具 举报

发表于 2006-5-14 20:13:04 | 显示全部楼层
嗯 ,就和urxvt的c/s模式一样,通过unix domain socket通信,如果server崩溃了,所有client window也就终结了,这是一个不利之处。
回复 支持 反对

使用道具 举报

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

本版积分规则

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