首页 > IDE, 初级 > Emacs才是世界上最强大的IDE - 用Emaci阅读文件

Emacs才是世界上最强大的IDE - 用Emaci阅读文件

2010年4月12日 ahei 发表评论 阅读评论

相信有很多人平时要阅读大量文件, 而且阅读文件比编辑文件的时间要多的多, 在Emacs里编辑文件的时候, 阅读文件很不方便, 只能用C-v M-v上下滚屏. Emacs下有个view-mode专门是为阅读文件而准备的, 在view-mode里, u向上滚半屏, d向下滚半屏, SPC向下滚一屏, 阅读文件方便多了, 但是还不够, 为什么? 因为经常在阅读文件的时候, 你看到什么不对的地方需要修改, 而在view-mode下, 文件是只读的, 而且有时候, 你在编辑文件的时候, 也需要阅读文件, 那么这两种情况下, 你都要不停的切换view-mode, 非常的不方便, 而且在view-mode里面上下左右移动还得用C-n, C-p, C-f, C-b, 也是非常的不方便, 还有前进一个单词M-f, 后退一个单词M-b, 操作起来都还是很麻烦.

大家都知道vi, 它的快捷键是出名的短, 在vi的命令模式, 上下左右以字符前进是hjkl, 是vi最著名的地方了, 非常方便, 还有它的以单词前进和后退的快捷键w, b, e, 还有好多类似移动光标的命令, 都非常的方便. Emacs下有好多模拟vi的插件, vi-mode就是一个, 它是Emacs内置的, 它模拟了好多vi的特性, 简单的光标移动命令更是当然支持了. 用它来阅读文件的话, 也是不错的, 但是还是有两方面缺点, 一是在vi-mode下好多下, 好多Emacs本身的快捷键就用不了, 比如C-a, C-y等, 二是vi本身固有的缺点(个人观点), 那就是虽然那些快捷键比较短, 但是基本上要在命令模式下运行, 想想, 当你在编辑文件的时候, 想要上下左右移动光标, 然后继续编辑, 再来个上下半屏移动光标, 再来个编辑, 然后再搜索某个单词, 再来个编辑, 就得不停的在编辑模式和命令模式来回切换, 个人觉得非常的不方便, 所以用vi-mode来阅读文件也不是最理想的选择.

鉴于以上理由, 个人自己写了个minor mode, 结合Emacs的优点和部分vi的优点, 所以它的名字Emaci就是由EMACs和vI组成, Emacs占了四个字符, vi却只占了1个字符, 因为Emaci偏向于Emacs的功能更多.

安装好Emaci(只要(require ‘emaci))后, M-x emaci-mode (我把它绑定到了M-s上, 非常方便)进入emaci-mode. 由于大部分情况下打开一个文件浏览的情况比较多, 所以我写了一个函数emaci-exist-file, 这个函数的作用就是判断当前文件是否存在, 存在的话就自动打开emaci-mode, 我把这个函数加到了find-file-hook里面, 这样当你打开一个文件的时候就自动进入了emaci-mode, 打开新文件则不会进入emaci-mode.

进入emaci-mode后, 和vi类似, hjkl上下左右以字符单位移动光标, f, b前进和后退一个单词, I回到行首并且退出emaci-mode, A回到行尾并且退出emaci-mode. 和view-mode类似, u向上滚半屏, SPC向下滚半屏, w向上滚一屏, d向下滚一屏, <和>回到buffer头和buffer尾, 这个也和view-mode一样. g也是回到buffer头, J和K则是向下和向上移动7行, B执行eval-buffer, 1最大化当前window, 2把当前buffer垂直分成两半,3把当前buffer水平非常两半,q退出emaci-mode. 我的配置里,当安装了highlight-symbol后,n向前搜索当前光标处的下一个单词,p则向后搜索,非常方便。这样配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(defun highlight-symbol-settings-for-emaci ()
  "`highlight-symbol' settings for `emaci'."
  (eval-when-compile (require 'cl))
 
;;;###autoload
  (defun emaci-n ()
    "Command bind to key n."
    (interactive)
    (if (edebug-active)
        (edebug-next-mode)
      (if (equal major-mode 'gud-mode)
          (call-interactively 'gud-next)
            (call-interactively 'highlight-symbol-next))))
 
  (define-key-list
    emaci-mode-map
    `(("p" highlight-symbol-prev))))
 
(eval-after-load "emaci"
  `(highlight-symbol-settings-for-emaci))

与vi和view-mode相比最大的差异的地方也是我觉得最方便的地方, 是在emaci-mode下也可以进行一些编辑工作, 比如你在浏览某个文件的时候, 发现某一行不需要, 直接用C-k删除即可, 然后再用C-y复制一下刚才拷贝的东西, 当然同样, 可以删除一个区域, 一个单词, 一个字符, 删除字符还可以用vi中的x命令. 这些编辑操作都不需要你退出emaci-mode, 编辑完之后, 用C-x C-s保存即可. 只有当你需要敲一堆文字的时候, 因为可能会涉及到jkhl等快捷键, 这时候才需要用q退出emaci-mode. 这时候你就想了, 那是不是每次编辑之前还要看一下当前是否开了emaci-mode, 那岂不是非常麻烦? 不用担心, 开启了emaci-mode后, mode-line上会显示一个非常显眼的”Emaci”样, 我特地用白底红字标示出来, 就像这样:

Emaci的mode-line标记


当然,这个颜色你也可以控制的,该颜色是由颜色变量emaci-mode-line-face来控制的。
而且, 我一般把M-s绑定到了emaci-mode-on, M-S绑定到emaci-mode-off上面, 这样, 你想编辑的时候按下M-S, 浏览的时候按下M-s, 即使不用看那个白底红字的”Emaci”字样, 也不会出错的. 这点view-mode就不行, 它和其他的minor mode一样, 都是默认的颜色, 我一般开启了好多minor mode, 这样, 你想编辑的时候, 还得盯着mode-line看半天当前是否打开了view-mode.

emaci还对常用的一些mode, 比如view-mode(所以你如果不喜欢在emaci-mode里面能修改文件, 只想只读的阅读文件的话, 可以考虑view-mode, 它的配置文件在这里), Man-mode, apropos, diff-mode, help-mode等定制了通用的hjkl等方便的快捷键, 这些是通过emaci-brief-key-defs变量来控制的, 这个变量是一个list, list的每一个元素是由两个元素构成的list, 第一个元素是快捷键, 快捷键的写法和kbd宏的参数一样, 第二个参数是该快捷键对应的命令, 这个变量默认值如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(defcustom emaci-brief-key-defs
  `(("h" backward-char)
    ("l" forward-char)
    ("j" next-line)
    ("k" previous-line)
    ("J" roll-down)
    ("K" roll-up)
    ("b" backward-word)
    ("w" am-forward-word-or-to-word)
    ("o" other-window)
    ("G" end-of-buffer)
    ("a" move-beginning-of-line)
    ("e" move-end-of-line))
  "Key pairs used bind in modes `emaci-maps-to-bind-brief-keys'.
 
Each element of this variable is two-elements list, and first
element is key like argument of `kbd', and second element is command."
  :type 'list
  :group 'emaci)

而待绑定这些快捷键的keymap是由变量emaci-maps-to-bind-brief-keys控制的, 其默认值如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(defcustom emaci-maps-to-bind-brief-keys
  `(view-mode-map
    Man-mode-map
    apropos-mode-map
    completion-list-mode-map
    log-view-mode-map
    compilation-mode-map
    diff-mode-map
    help-mode-map
    ,(if (>= emacs-major-version 21) 'grep-mode-map)
    color-theme-mode-map)
  "List used for `emaci-bind-modes-keys'.
 
Element of this list either a list whose first element is load file,
and second element is map, or a string which means load file, or a map."
  :group 'emaci)

此变量是一个keymap的list, list中的元素是keymap或者是nil。
如果你修改了以上两个变量后, 执行一下M-x emaci-bind-brief-keys使你的修改生效.

Emaci的配置文件在这里,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
;; -*- Emacs-Lisp -*-
 
;; Time-stamp: <2010-04-19 10:15:52 Monday by ahei>
 
(require 'util)
(require 'emaci)
 
(apply-define-key
 global-map
 `(("M-s" emaci-mode-on)
   ("M-S" emaci-mode-off)))
 
(defun emaci-settings ()
  "settings for `emaci'."
  (eal-define-keys
   'emaci-mode-map
   `(("/" describe-symbol-at-point)
     ("'" switch-to-other-buffer)
     ("L" count-brf-lines)
     ("t" sb-toggle-keep-buffer)
     ("." find-symbol-at-point)
     ("," find-symbol-go-back)
     ("]" goto-paren)))
 
  (setq emaci-brief-key-defs
        (append emaci-brief-key-defs
                `(("]" goto-paren))))
  (emaci-bind-brief-keys)
 
  ;;;###autoload
  (defun switch-major-mode-with-emaci ()
    "Run `switch-major-mode' with `emaci-mode'."
    (interactive)
    (let ((emaci emaci-mode))
      (call-interactively 'switch-major-mode)
      (emaci-mode (if emaci 1 -1))))
 
  (eal-define-keys-commonly
   global-map
   `(("C-x q" switch-major-mode-with-emaci))))
 
(eval-after-load "emaci"
  `(emaci-settings))
 
(provide 'emaci-settings)

听完我的介绍, 怎么样, 是不是你也一直期待这样的功能呢, 那赶快试试吧. 这里下载Emaci, Emaci还依赖ahei-misc, eval-after-load两个包,读者均可在DEA里面下载。

分享家:Addthis中国
GD Star Rating
loading...
Emacs才是世界上最强大的IDE - 用Emaci阅读文件, 9.5 out of 10 based on 13 ratings 标签:ahei, autoload, ede, emaci, Emacs, emacser, emacser.com, eval-after-load, face, gud, highlight, highlight-symbol, IDE, keymap, mode-line, screenshot, theme, 光标, 插件, 配色, 颜色

相关日志

分类: IDE, 初级
  1. 2010年4月12日01:30 | #1

    开始看到 emaci 还以为是打错了。。。

    [回复]

    ahei 回复:

    @wd, 哈哈,不好意思,名字取的不太好。

    [回复]

  2. Meteor Liu
    2010年4月12日02:21 | #2

    太赞了,还没试光看看介绍就觉得这个mode很好。
    也许你可以考虑把它单独提出来发布,要依赖另外两外el用起来就不够方便了。

    [回复]

    ahei 回复:

    @Meteor Liu, 呵呵,谢谢,有人喜欢就太好了。不依赖就要添加eval-after-load包里面的函数了,而且这个包我已经发布过了,还写了文章介绍的,只有一个ahei-misc的包没发布过,由于里面有一些公共的东西,只能单独做成一个包了。

    [回复]

  3. mikeyao
    2010年4月12日13:35 | #3

    为什么不用viper-mode或还有个模拟vim的,我觉得更好用vimpluse,http://www.emacswiki.org/emacs/vimpulse.el

    [回复]

    ahei 回复:

    理由如文中所说:

    但是还是有两方面缺点, 一是在vi-mode下好多下, 好多Emacs本身的快捷键就用不了, 比如C-a, C-y等, 二是vi本身固有的缺点(个人观点), 那就是虽然那些快捷键比较短, 但是基本上要在命令模式下运行, 想想, 当你在编辑文件的时候, 想要上下左右移动光标, 然后继续编辑, 再来个上下半屏移动光标, 再来个编辑, 然后再搜索某个单词, 再来个编辑, 就得不停的在编辑模式和命令模式来回切换, 个人觉得非常的不方便, 所以用vi-mode来阅读文件也不是最理想的选择.

    [回复]

  4. abai
    2010年4月13日01:50 | #4

    居然说vi在编辑模式和命令模式下切换慢。。。如果你有一定的vi经验,就不会这么说了。一巴掌拍到Esc就切换到命令模式,有那么多键(a,i,s,o,O,…)切换到编辑模式。我觉得这是vi最方便快捷的地方。

    [回复]

    ahei 回复:

    @abai, 如果我没有看错的话,文中并没有说切换慢,我的意思是不停的来回切换麻烦。加了Emaci后,想切换时就切换,不切换时就用Emacs内置的光标移动快捷键,而且文中已表明是个人观点。还有,我觉得vi有经验的人切换到命令模式的时候应该用C-c,而不是去按那个远在天边的”ESC”,C-c绝大部分情况下能代替ESC,当然我的vi经验不多,也许只有小部分情况下能代替ESC。

    [回复]

  5. SamPeng
    2010年4月15日14:11 | #5

    Hi.博主。
    有个简单的功能想请教一下。。我以前是用vim的。有一个小脚本我特别喜欢。
    在任意的位置输入分号(;)
    就在末尾输入分号并且换行(newline-and-indent);
    能help我一下吗?
    鄙人才用emacs不久。。您的文章太有帮助了

    [回复]

    ahei 回复:

    为什么要在末尾输入分号然后换行呢? 分号是Elisp中的注释符号, 你是不是要在Elisp中使用这个功能? 是的话, 输入分号后, 应该要输入注释啊, Emacs中按M-;后, 会在合适的位置加上分号,然后你就可以输入注释了

    [回复]

    SamPeng 回复:

    @ahei,
    ahel.
    阿。。原来还有M-;键。。谢谢。。。emacs强大阿。。
    另外顺便问一下。。有没有有注释的插件呢?恩。。vim也有个小功能我经常用。因为我是写php的。
    经常要给方法写注释。。现有的C-c C-c不是很好用。。
    能在方法顶部添加一个注释块,并自动识别这个方法的各个参数类型。

    [回复]

    ahei 回复:

    @SamPeng, 是类似doxygen似的注释吗?doxygen在Emacs下的插件是doxymacs.

    [回复]

    SamPeng 回复:

    @ahei,
    对头。。大牛还真快。。这么快就回复了。
    刚找到了。。但很悲剧的是今天sf服务器升级。。明天再装了。
    不能老向您请教。。请问lisp从哪入手比较好呢?偶尔会希望自己实现一下lisp。方便嘛。
    我看了您写的auto-complate和ys的那篇文章。。。个人觉得。。如果大牛有空就写个auto-complate的完整教程吧。
    收益不浅。。需要这方面的资料。。但是E文不是很过关。只能算勉强看得懂

    [回复]

    SamPeng 回复:

    @SamPeng,
    是我没看到。。原来有了。谢谢您。

    [回复]

    ahei 回复:

    @SamPeng, 呵呵, 原来你没看见.

    [回复]

    ahei 回复:

    @SamPeng, 你可以直接去我的DEA里面下载doxymacs, 我DEA里面的doxymacs是最新的release, 作者已经很久没有更新了. lisp的学习的话看: 致Emacs初学者
    auto complete就是一个简单的Elisp包, 没啥可写的啊, 你还要auto complete什么方面的配置啊

    [回复]

    SamPeng 回复:

    @ahei,
    阿。。我刚在学习c的过程中发现。。原来M-;是注释当行。
    并不是这样的。实际上经常在写一行语句的时候发现前面逻辑不对,就会跳回去修。然后就
    不想再跳到尾巴上加个;
    尤其是写if之类的循环以及一些带括号的。。。。少按一个组合键阿。
    vim上就是一个;号就直接在末尾加了;号。。还行倒不要。。只是希望在本行末尾加一个;号
    auto-complete。。。我怎么都没配起来。。后来想想算了。。我习惯没有自动提示的了。
    只要提示本页面内的字符就行了。。。太多的自动提示影响思维的顺畅。。我要的是编辑器,而
    不是自动敲代码的程序。哈哈。

    [回复]

    ahei 回复:

    @SamPeng, M-; (M-x comment-dwim) 就是跳到行尾, 自动添上注释符号的. 对了, vim默认的就是按;就直接在末尾加注释吗?我这边试了怎么不行啊

    [回复]

    SamPeng 回复:

    @ahei,
    额。。不是默认的。是写的一个小脚本。。。我就是因为我的配置文件被我误删了
    才开始弄emacs的。
    不要添加注释符号。。而是加一个;。。虽然按着C-e。。是可以的。。但多按
    一个组合键。不舒服。

    [回复]

    ahei 回复:

    @SamPeng, …不知道你为啥会有这个需求呢?你是编写什么文件呢?普通的文本文件?Elisp文件?不过我还是帮你实现了你的需求:
    (defun semicolon ()
    (interactive)
    (call-interactively ‘move-end-of-line)
    (insert “;”))

    [回复]

    SamPeng 回复:

    @ahei,
    太感谢了。。。谢谢谢谢。因为。。是一种编码习惯而已。。之所以喜欢emacs。vim
    就是这个原因。。可以根据自己的需求来设置编码习惯。

    最后一个问题。。cedet也好。。其他的代码分析程序也好。。哪个方法是调出当前
    页面的函数列表呢?IDE用习惯了。。ecb倒是可以。。但太庞然大物了

    ahei 回复:

    speedbar可以, 不过我觉得semantic-complete-jump-local更好用

    SamPeng 回复:

    @ahei,
    阿阿。。刚试了一下。
    你给我的函数在Elsp文件内可以用。。但在c-mode不起作用。。我是这样定义的。
    (defun semicolon ()
    (interactive)
    (make-local-variable ‘move-end-of-line)
    (insert “;”))
    (global-set-key “;” ’semicolon)

    ahei 回复:

    c-mode的”;”的定义是c-electric-semi&comma, 所以你要这样: (define-key c-mode-map (kbd “;”) ’semicolon)

    fangzhzh 回复:

    @SamPeng, 最后一个问题。。cedet也好。。其他的代码分析程序也好。。哪个方法是调出当前
    页面的函数列表呢?IDE用习惯了。。ecb倒是可以。。但太庞然大物了.

    cedet中的eassist-list-methods,很好用,

    [回复]

    ahei 回复:

    @fangzhzh, 哈,cedet比ECB大多了

    [回复]

  6. 2010年4月16日08:09 | #6

    我下载了emaci.el, ahei-misc.el,eval-after-load三个包,报错缺少util,又在dea下载到util.el,报错
    semantic-symref-results-mode-map变量不存在(我安装了cedet),注释之,通过。
    正在使用,thank u。

    [回复]

    fangzhzh 回复:

    @fangzhzh, 我讨厌现在分给我的这个头像,怎么是个流泪的样子,我想是sampeng那个坏笑的头像。

    [回复]

    ahei 回复:

    @fangzhzh, 。。。这个我也不知道怎么改,貌似改不了

    [回复]

    ahei 回复:

    @fangzhzh, 不需要util包的阿,你emacs -q启动,然后依次加载ahei-misc, eval-after-load, emaci, 保证没问题的,我已试过。另外你的cedet是1.0pre6以上版本吗?如果是的话,应该不会报那个错误阿。你仔细查一下。你是不是使用了我的其他的包?这三个包中都没有使用到semantic-symref-results-mode-map,你下载一下我的DEA里面最新的文件。

    [回复]

    fangzhzh 回复:

    @ahei, 我还用了emaci-setting.el这个包

    [回复]

    ahei 回复:

    @fangzhzh, 那就对了,不过emaci-settings主要是一些我个人的设置,你可能用不到,可以照那个设置你弄一份自己的。但是还是不会报那个semantic的错误阿。

    [回复]

    fangzhzh 回复:

    @ahei, 那就不知道为什么了,可能那个cedet的功能我没有开启吧。
    挺好用的

    感觉emacs效率越来越高了

    [回复]

    ahei 回复:

    @fangzhzh, 呵呵,好用就好。不需要开启cedet的。

    [回复]

  7. wolfhuang
    2010年4月19日14:50 | #7

    呵呵,我今天下载了你的dea包(svn checkout),立即体验了下,感觉非常不错,很棒,非常感谢!不过还是遇到了解个问题,如下:
    1、 我在打开emacs(V23.1.1)时注意到*Mesage*中有好几个warning和error,主要是msf-abbrev.el中的问题,*message*内容我发到你邮箱(gmail)里了。
    2、我在打开文件阅读代码(C)时,使用hjkl移动point时,buffer中的内容会跳动,并且往上或往下的移动buffer(卷屏的效果+屏幕闪跳),例如原来point在buffer中间,这时我用k移动到buffer的上面某行,然后静止不进行任何操作,过3s左右,该buffer会被向下移动若干行,有时移动的少有时移动的多。使用hkl 也会出现类似的问题。
    上述现象并不是没次都有,但属于经常
    3、我使用q退出emacsi模式后,使用C-n 或C-p也会有跟2同样的问题。

    2和3的问题使得我在阅读文件时感到很困扰,在我自己的配置的.emacs中没有出现过,希望 ahei或其他大牛能提供一些帮助解决这个问题,谢谢先!

    [回复]

    wolfhuang 回复:

    @wolfhuang, 还有个问题:
    在切换buffer时会闪烁好几下才恢复正常。不知道是什么原因。不过这个好像我之前就有,不过现在更明显了。

    [回复]

    ahei 回复:

    @wolfhuang, 这个是pulse的闪烁吧,你看下用pulse实现Emacs的淡入淡出效果

    [回复]

    ahei 回复:

    @wolfhuang, 谢谢使用DEA
    1. 那些warning是msf的, 不用管的. error是mode-line-settings里面
    2. 那个是开启了highlight-tail-mode的原因, 它和cedet在一起就冲突, 还不知道具体原因, 关掉highlight-tail-mode就没问题了

    [回复]

    wolfhuang 回复:

    @ahei, 谢谢你的帮助,我看一下pulse的实现,看看能不能改一改,如果有消息我就在后面跟了,可能有人有跟我一样的烦恼。
    哈哈,你回复真快,还是个夜猫子。

    [回复]

    ahei 回复:

    @wolfhuang, 你如果不喜欢pulse的闪烁,把它关掉不就可以了吗?你改下pulse-settings就可以了。

    [回复]

    wolfhuang 回复:

    @ahei, 我刚才试了一下,emacs22 不会有23版本的那中闪烁(每行在跳动那种感觉,看着不舒服),我觉得这种跳动不是pulse的闪烁
    只能等我回家后在23版本上关掉pulse再看看了。

    [回复]

    ahei 回复:

    @wolfhuang, 关键你那个闪烁是什么闪烁?是pulse的那个闪烁吗?pulse的视频在这里

    [回复]

    wolfhuang 回复:

    @ahei, 哦,不是pulse的闪烁,是我表达的不好。
    我说的那个闪烁说闪屏(没行文本都在抖动)可能更合适,就是切换buffer没有其他操作,切换到另一个buffer后的bufeer就会看到buffer中的每行在上下跳动的感觉。。不知道我这样描述是否能让你了解到我看到效果,如果还没有表达清楚,我晚上回去录制个视频传给你看一下。PS:还没录制过不知道今晚能不能录制出来。

    [回复]

    ahei 回复:

    @wolfhuang, 这个是不是就是highlight-tail-mode和cedet冲突的后果?你关了highlight-tail-mode没?

    [回复]

    wolfhuang 回复:

    @ahei, 我觉得这个不是highlight-tail-mode和cedet冲突的后果,因为在22版本不会有这种闪屏,cedet和highlight-tail-mode都启用了。公司用的是22版本,家里的是23版本,所以只能回去把highlight-tail-mode关了再试了。
    你23版本且换buffer时有没有感觉没有22那么平滑了?

    [回复]

    ahei 回复:

    @wolfhuang, 那我就不清楚了,我的22和23切换buffer没有啥差别。你可以用二分调试法调试一下。

    [回复]

    wolfhuang 回复:

    @ahei, 我知道为什么会出现这个问题了。当point在一个宏上,该宏定义占据不只一行时,会出现我说的那种现象,
    因为point在该宏上时会在minibuffer中显示这个宏定义,这时minibuffer会长高,这导致了buffer的高度也要发生变化,这也许就是引起跳屏的原因了。但我还没找到是是哪个包实现这个功能的。

    ahei 回复:

    那个是semantic-idle-summary-mode的效果,你把它关掉试试

    wolfhuang 回复:

    @ahei, 哈哈,你是对的,我错了。我折腾了一晚上,正如你说的是highlight-tail-mode的问题,它引起了buffer跳动的,并不是semantic-idle-summary-mode引起的问题。
    屏幕在切换或跳到其他行时的闪屏还没有折腾出来是谁引起的问题,我把这些配置全注释了就不会了。明天继续儿分调试。
    谢谢!

    wolfhuang 回复:

    @ahei, 为什么时间显示不对,难道你不再北京时间里? :?: :?:

    [回复]

    ahei 回复:

    @wolfhuang, 在北京,我也不知道时间为啥不对。服务器是在美国。

    [回复]

  8. wolfhuang
    2010年4月20日15:18 | #8

    还有个问题,wcy-desktop-settings和maxframe-setting有冲突,frmae在emacs启动时不能最大化,如果把wcy-desktop-settings注释掉就能启动时最大话了,但是这样就没有了desktop了,我试图把maxframe-setting 在desktop后设置,也还是不能启动最大话。不知道是否有解决办法?

    [回复]

    ahei 回复:

    @wolfhuang, 这个bug我改好了,你更新一下wcy-desktop-settings.el

    [回复]

    wolfhuang 回复:

    @ahei, 我在你的svn上看到的是wcy-desktop.el,
    我使用 update脚本更新代码时并没有显式更新了wcy-desktop.el,我就自己从你google svn上下载了这个包替换,但还是启动时不能最大化emacs。请问我还需要什么设置吗?

    [回复]

    ahei 回复:

    @wolfhuang, 不好意思,忘记同步了,现在好了,是更新wcy-desktop-settings.el

    [回复]

    wolfhuang 回复:

    @ahei, 哈哈,你回复好快阿,我刚已经找到这个包了自己下载了,试了下,已经没问题了。
    请问有没有更新说明或者已知bug说明等东东?
    谢谢!

    [回复]

    ahei 回复:

    @wolfhuang, 他原始的包是有个小bug的,我改了下,然后又引起了一个小bug,现在又改好了,所以你要下载我的wcy-desktop-settings.el

    [回复]

  9. wolfhuang
    2010年4月20日15:31 | #9

    @wolfhuang
    不过使用desktop-settings也不错,我试了下也没觉得比有多慢,呵呵反正现在启动时已经很满了,也不在乎再慢一点了。而且这个desktop会自动打开上次的buffer,我到觉得这样更方便了(也许就是慢在打开buffer这里了)

    [回复]

    ahei 回复:

    @wolfhuang, 呵呵,我一般都打开上百个buffer的,你试试有多慢。wcy-desktop还是快非常多的,主要是它只记住打开的文件,其他的啥都不记住,desktop记住的东西太多了。我现在的DEA启动速度比以前快多了,一个就是加了eval-after-load,另外一个就是用了wcy-desktop

    [回复]

    woshiemacsxinshou 回复:

    @ahei,

    要让wcy-desktop 记住打开文件然后还记住光标的位置,如何设置呢?

    很喜欢记住光标这个功能。

    谢谢呀,新手

    [回复]

    ahei 回复:

    ;; 可以保存你上次光标所在的位置
    (require ’saveplace)
    (setq-default save-place t)

    [回复]

  10. wolfhuang
    2010年4月21日01:10 | #10

    @wolfhuang
    哦,好,谢谢!

    [回复]

评论分页
1 2 3 41107
  1. 2010年4月26日07:29 | #1
  2. 2010年5月12日09:42 | #2
  3. 2014年7月11日04:38 | #3
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: