当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Emacs中的几个不太常见的设置汇集
帖子发表于 : 2008-06-19 1:45 

注册: 2007-10-22 2:21
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
我在这里说的"不常见", 是指的在google上不常见, 而不是我们不常用到的, 至少我认为挺有用的.
在这里总结一下, 分享给大家.

注:此帖是我总结的, 但里面的配置都是google出来的, 不是我发明的 :P


1. 有些人想在tty下启动emacs, 比如说我. 因为要是想连续写几个小时, 甚至十几个小时程序, tty下还是比较舒
服的(不闪的才是健康的嘛 :P), 但是配置文件中的有些配置, 比如xft字体什么的在tty下肯定是用不了, 会导致启
动emacs失败. 于是就有:
代码:
(if (not window-system) nil

;;gui下的专有配置, 比如xft字体, 启动最大化一类的配置写在这

)

这样, 一个配置文件就可以"两用"了.

2.在minibuffer上面那个横杠上显示时间, 相信很多人都用的是
代码:
(display-time-mode 1)                   ;;启用时间显示设置
(setq display-time-24hr-format t)       ;;时间使用24小时制
(setq display-time-day-and-date t)      ;;时间显示包括日期和具体时间
(setq display-time-use-mail-icon t)     ;;时间栏旁边启用邮件设置
(setq display-time-interval 10)         ;;时间的变化频率

结果显示是"6 月 19", 和后面的混在一起, 很不好看.
于是可以在上面的配置后面跟上两句:
代码:
(setq display-time-format " %Y-%m-%d %A %H:%M ") ;;设定日期时间的格式
(display-time) ;;这句可能用不着

这样就好看多了.

3.在emacs里man. emacs里的man被称作woman(WithOut man, 搞笑的创意), 配置如下:
代码:
(global-set-key [(f1)] (lambda()        ;;设定F1为woman快捷键
                 (interactive)
                 (let ((woman-topic-at-point t))
                 (woman))))
(setq woman-use-own-frame nil)          ;; WoMan不打开新的 frame, 你可能会想要这个配置


4.在emacs里查词典, 这个有点麻烦.
----a.安装sdcv. 不知道是什么的就google一下, 比我讲的要清楚.
代码:
sudo apt-get install sdcv

----b.去http://stardict.sourceforge.net/Dictionaries.php下载你想要的词典, 那一页
也有词典的安装方法.
----c.去http://code.google.com/p/sdcv-mode/下载sdcv-mode.el, 放在你的插件库里.
----d.在你的emacs配置文件里加上:
代码:
(require 'sdcv-mode)
(global-set-key (kbd "C-c d") 'sdcv-search)

----e.在你的emacs里看到一个英文词不爽, 就Ctrl+c d.

5.在emacs里面聊MSN, Gtalk(很遗憾, 不支持QQ). 这个我只能提示一下, 用bitlbee, 然后配合erc, 详细的我
也没有弄明白, 非常抱歉.

6.在写程序的时候, 也许会打开两个 main.c, 有时候你会搞糊涂哪个是哪个. 假如标题栏上有文件的路径多好,于
是:
代码:
;;;Emacs title bar to reflect file name
(defun frame-title-string ()
   "Return the file name of current buffer, using ~ if under home directory"
   (let
      ((fname (or
                 (buffer-file-name (current-buffer))
                 (buffer-name))))
      ;;let body
      (when (string-match (getenv "HOME") fname)
        (setq fname (replace-match "~" t t fname))        )
      fname))
;;; Title = 'system-name File: foo.bar'
(setq frame-title-format '("" system-name "  File: "(:eval (frame-title-string))))


好了, 就这些了, 希望我上边的这些配置中有你想要的.

同时我也想在这求助一下, 是关于cc-mode里编程风格的设置问题, 我比较喜欢FreeBSD内核的编程风格, 它其中有
一条规定是, 假如一句话(通常是if/while 和 有很长参数列表的函数)很长, 那么二级缩进1/2个tab. 如下:
代码:
if (sysctlbyname("kern.init_shutdown_timeout", &shutdowntimeout, &len,
    NULL, 0) == -1 || shutdowntimeout < 2)


代码:
emergency("fatal signal: %s",
    (unsigned)sig < NSIG ? sys_siglist[sig] : "unknown signal");

不知道配置文件怎么写才能实现. 有谁知道请跟帖告诉我, 同时也分享给大家. 如果同时也能给我发封邮件直接告诉
我, 我将感激不尽, 因为我不是经常泡论坛. fengzi.gg {at} google.com

7. 谢谢8楼得回帖, 上面这个问题已经解决, C语言的BSD内核风格缩进的配置如下:
代码:
;;--------------------CC-mode配置  http://cc-mode.sourceforge.net/
;; http://docs.freebsd.org/cgi/getmsg.cgi?fetch=26277+0+archive/2001/freebsd-standards/20011230.freebsd-standards
(require 'cc-mode)
(defun my-c-mode-hook ()
  "happy hacking."
  (interactive)
  (c-set-style "bsd")
  (setq tab-width 8    ;; TAB键的宽度设置为8
   c-basic-offset 8   
   indent-tabs-mode t  ;; 使用TAB缩进
   c-tab-always-indent nil) ;;也使用TAB的原有功能
  (setq c-cleanup-list (append c-cleanup-list (list 'brace-else-brace)))
  (c-set-offset 'arglist-close 0)
  (c-set-offset 'arglist-cont-nonempty 4)
  (c-set-offset 'inline-open 0)
  (c-set-offset 'case-label 0)
  (c-set-offset 'statement-cont 4)
  (c-toggle-auto-state -1) ;;不用自动换行/1表示自动换行
  (c-toggle-hungry-state)  ;; 此模式下,当按Backspace时会删除最多的空格
  (define-key c-mode-map [return] 'newline-and-indent) ;; 将回车代替C-j的功能,换行的同时对齐
  (define-key c-mode-map "\C-ce" 'c-comment-edit) ;;写注释
)

(add-hook 'c-mode-hook 'my-c-mode-hook)



6月23日更新第6项

10月27日更新第7项C语言代码风格


最后由 fengzishaoye 编辑于 2008-10-27 23:29,总共编辑了 2 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-06-20 9:41 

注册: 2007-02-26 2:29
帖子: 322
地址: 广东
送出感谢: 0 次
接收感谢: 0 次
学习了,赶快试用一下,非常感谢分享!
想问一下,(setq display-time-use-mail-icon t) ;;时间栏旁边启用邮件设置
是什么意思呢,出现一个 0.* 和一个信封?


最后由 cvgmt 编辑于 2008-06-20 10:11,总共编辑了 1 次

页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-06-20 9:52 
头像

注册: 2008-04-17 17:53
帖子: 689
地址: 江苏.无锡
送出感谢: 0 次
接收感谢: 1
飘过,不用emacs。。。。。。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-06-20 10:58 

注册: 2007-10-22 2:21
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
cvgmt 写道:
学习了,赶快试用一下,非常感谢分享!
想问一下,(setq display-time-use-mail-icon t) ;;时间栏旁边启用邮件设置
是什么意思呢,出现一个 0.* 和一个信封?


关于display-time-use-mail-icon:
The word `Mail' appears after the load level if there is mail for
you that you have not read yet. On a graphical display you can use an
icon instead of `Mail' by customizing `display-time-use-mail-icon';
this may save some space on the mode line.
就是说, 假如有未读邮件的话用一个信封图标显示出来.

关于0.*:
L.LL is the average number of running processes in the whole
system recently.
系统平均的进程数.

出自 http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Optional%20Mode%20Line


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-06-20 18:46 

注册: 2007-02-26 2:29
帖子: 322
地址: 广东
送出感谢: 0 次
接收感谢: 0 次
不过还有一些不明白,如果有一个信封,那么如何读该邮件呢?虽然用 emacs 有一年了,但主要拿来编辑 .tex 和 .asy 和 .mp 文件,不太懂这些配置,谢谢指教。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-06-20 19:46 

注册: 2007-10-22 2:21
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
cvgmt 写道:
不过还有一些不明白,如果有一个信封,那么如何读该邮件呢?虽然用 emacs 有一年了,但主要拿来编辑 .tex 和 .asy 和 .mp 文件,不太懂这些配置,谢谢指教。


指教就算了, 我也是初学者啊 :P

按理说(我也不是很肯定), 你配置了收发邮件的插件, 比如gnus或者mew, 然后收到了邮件, 才会有这个标志.
所以看一下你的配置文件里的配置, 确定是用了gnus还是mew, 还是别的什么? 然后再查相关的操作方法.


页首
 用户资料  
 
7 楼 
 文章标题 : Re: Emacs中的几个不太常见的设置汇集
帖子发表于 : 2008-10-22 10:38 

注册: 2008-04-02 11:39
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
对我这种初学者很有用,找到了很多以前不知道的设置。
在这谢楼主了。 :em05


页首
 用户资料  
 
8 楼 
 文章标题 : Re: Emacs中的几个不太常见的设置汇集
帖子发表于 : 2008-10-22 11:19 

注册: 2007-01-27 14:11
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
最后那个 C 模式的问题你可以看一下 c-offsets-alist。这个可以解决你的问题。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译