[问题]求教emacs session desktop的使用

Vim、Emacs配置和使用
回复
updavy
帖子: 8
注册时间: 2007-10-29 13:34

[问题]求教emacs session desktop的使用

#1

帖子 updavy » 2008-05-29 16:57

emacs 版本23.0.60.2

下载session放到了load-path中
.emacs中配置如下

(load "desktop")
(desktop-load-default)
(desktop-read)

(require 'session)
(add-hook 'after-init-hook 'session-initialize)

(require 'ido)
(ido-mode t)

1.每次退出之前必须运行 M-x desktop-save 要不然不能保存emacs打开的buffer

2.C-x C-c退出时提示:

Selected encoding utf-8-unix disagrees with cyrillic-iso-8bit-unix specified by file contents. Really save (else edit coding cookies and try again)? (y or n) [19 times]
选择y 退出了,选择n出现下面提示
Could not write session file. Exit anyway? (y or n)
这时候选y的话 原本存在的~/.session 就不见了

请教:
!.session的这个问题是不是影响desktop不能保存的原因?
2.经常碰到selected disagree问题(一般是从别处拷来粘贴到buffer里保存时出现)
怎么解决?
pro21ms4
帖子: 12
注册时间: 2006-10-29 23:28

我的也有这个问题

#2

帖子 pro21ms4 » 2008-06-11 9:10

gd88121
帖子: 109
注册时间: 2007-11-28 2:19

#3

帖子 gd88121 » 2008-06-11 18:33

我的session没有安装的,下了代码包发现里面有个session.el,就直接在.emacs里加上了调用路径。
(load-file "路径/session.el")
(require 'session)
(add-hook 'after-init-hook 'session-initialize)
我目前的理解,session就在菜单栏的file里多了个
open...recently changed

open...recently visited
还不知道还有别的更深入的功能不。
貌似我都没怎么用过这个功能,菜单栏我是不显示的。
对于kill ring,我用了browse-kill-ring.el。
对于打开最近访问的文件,我用了wcy-recentf.el(来自http://ann77.stu.cdut.edu.cn/EmacsOpenRecentFile.html)

反正打开常访问的文档有很多方式。

对于desktop功能,我用的emacs23.0.6带了的
(load "desktop")
(desktop-load-default)
;;(desktop-read)
(global-set-key (kbd "s-w") 'desktop-save)
(global-set-key (kbd "s-q") 'desktop-change-dir)

desktop-read 我注释掉了,不需要一开始就打开。
把windows键+w 绑定到 desktop-save
把windows键+q 绑定到 desktop-chang-dir

一般来说,做一些比较大的工作时候,才用到这个功能,(对于单个的文件用bookmark就挺好。)
比如,org mode,或者编写tex文档,可能需要同时打开很多buffer。
这些文件大部分在一个目录下面。
我把我的org的几个文件,全部打开,
然后 s-w,把desktop保存到org文件所在的目录下,
这样就不会搞混。
我的tex可能保存在项目所在的tex目录下,
保存的时候,会在你选择的地方,生成一个.emacs.desktop文件。
下次打开emacs的时候,可能我并不需要马上查看或编辑org,或者并不马上继续我的项目。
当我想要访问的时候,s-q,在辅助输入区输入所在的目录
那么,就自动调用了这个目录下的 .emacs.desktop 文件。
然后保存的buffer就打开了。

如果你的buffer打开的文件很散,分布在很多的目录下,
其实可以在~/里专门建个目录,里面再建点目录,每个目录下面保存你一个.emacs.desktop
目录名字就按工作的名称命名,下次找起来也方便。
不过我试了一下,desktop-chang-dir 的时候,比较方便,反正初始路径在~/,
但是 desktop-save 的时候,到专门保存desktop的地方就比较麻烦,

也试了设置 desktop 的默认路径,但是没有成功,
就只能切换到*scratch*再保存,
不知道谁有办法没?
这是我现在的设置:
(setq desktop-save-directory "/home/***/.emacs-deskop/")
(setq desktop-change-dir "/home/***/.emacs-deskop/")


但是,如果用desktop打开了一串buffer,
这个时候想打开别的desktop保存的buffer,
当前这个系列的buffer就没了。
目前还不知道这个问题怎么解决。(好像无解?)
pro21ms4
帖子: 12
注册时间: 2006-10-29 23:28

#4

帖子 pro21ms4 » 2008-06-11 20:17

我的刚装上了 session.el 2.2a 好像没这个问题了,你试试.
updavy
帖子: 8
注册时间: 2007-10-29 13:34

Re:

#5

帖子 updavy » 2009-02-08 20:49

pro21ms4 写了:我的刚装上了 session.el 2.2a 好像没这个问题了,你试试.
我用的session.el 也是2.2a

coding system disagree 问题后来不知不觉中消失了
我估计原因应该是我将~/.session删除了几次吧..


目前仍没有解决是那个desktop的提示
.emacs中这样配置desktop
代码:
(require 'desktop)
(desktop-save-mode)
(desktop-read)
就是明明第一次打开emacs
它愣是要提是desktop file 被 某个pid 为多少多少的进程占用了 是否load
而这个pid就是刚刚开启的emacs的pid
真奇怪阿..
updavy
帖子: 8
注册时间: 2007-10-29 13:34

Re:

#6

帖子 updavy » 2009-02-08 21:11

gd88121 写了: 对于desktop功能,我用的emacs23.0.6带了的
(load "desktop")
(desktop-load-default)
;;(desktop-read)
(global-set-key (kbd "s-w") 'desktop-save)
(global-set-key (kbd "s-q") 'desktop-change-dir)

desktop-read 我注释掉了,不需要一开始就打开。
把windows键+w 绑定到 desktop-save
把windows键+q 绑定到 desktop-chang-dir

一般来说,做一些比较大的工作时候,才用到这个功能,(对于单个的文件用bookmark就挺好。)
比如,org mode,或者编写tex文档,可能需要同时打开很多buffer。
这些文件大部分在一个目录下面。
我把我的org的几个文件,全部打开,
然后 s-w,把desktop保存到org文件所在的目录下,
这样就不会搞混。
我的tex可能保存在项目所在的tex目录下,
保存的时候,会在你选择的地方,生成一个.emacs.desktop文件。
下次打开emacs的时候,可能我并不需要马上查看或编辑org,或者并不马上继续我的项目。
当我想要访问的时候,s-q,在辅助输入区输入所在的目录
那么,就自动调用了这个目录下的 .emacs.desktop 文件。
然后保存的buffer就打开了。

如果你的buffer打开的文件很散,分布在很多的目录下,
其实可以在~/里专门建个目录,里面再建点目录,每个目录下面保存你一个.emacs.desktop
目录名字就按工作的名称命名,下次找起来也方便。
不过我试了一下,desktop-chang-dir 的时候,比较方便,反正初始路径在~/,
但是 desktop-save 的时候,到专门保存desktop的地方就比较麻烦,

也试了设置 desktop 的默认路径,但是没有成功,
就只能切换到*scratch*再保存,
不知道谁有办法没?
这是我现在的设置:
(setq desktop-save-directory "/home/***/.emacs-deskop/")
(setq desktop-change-dir "/home/***/.emacs-deskop/")


但是,如果用desktop打开了一串buffer,
这个时候想打开别的desktop保存的buffer,
当前这个系列的buffer就没了。
目前还不知道这个问题怎么解决。(好像无解?)
您这个用法不错
desktop的默认路径问题解决了么?
回复