当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何配置emacs中 C编程风格
帖子发表于 : 2007-09-06 21:51 

注册: 2007-08-31 21:19
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
我编写程序的习惯是这样的:


代码:
int foo(int arg1)
{
    int i;
    int n=5;

    for(i=0; i<n; i++)
    {
        printf("%d", i);
    }
   
    return 0
}


也就是 缩进4个空格,大括号的列相同。我应该怎么设置emacs 23?


最后由 tp_linkcoco 编辑于 2007-09-07 14:59,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-09-07 3:35 
头像

注册: 2007-05-10 19:42
帖子: 255
地址: 南京, Deutschland, Karlsruhe
送出感谢: 0 次
接收感谢: 0 次
这个你要去修改cc-mode了


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-09-07 6:30 

注册: 2006-10-06 21:10
帖子: 57
送出感谢: 0 次
接收感谢: 0 次
查看 c-mode的帮助。
如果要永久的改变缩进的话,在.emacs中:
(setq c-basic-offset 4)

还可以用 C-c . (c-set-style)改变当前buffer 的风格。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-09-07 14:49 

注册: 2007-08-31 21:19
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
非常感谢两位。

(setq c-basic-offset 4) 改变缩进成功了。

但是 怎么修改cc-mode,使得我的大括号处于同一列呢?

我的cc-mode是5.31.3; 里面有多个文件,我应该在哪个文件中进行修改,cc-align.el?
如何修改?里面的代码我看得不太明白.


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-09-07 15:05 

注册: 2007-08-31 21:19
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
来人帮我阿


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-09-07 15:27 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
自定义风格就行了,这类问题,自带的文档上讲得很清楚,先看自带的文档,实在搞不定再发问,这样也有利于系统地掌握这个工具。

代码:
(defconst please-read-document-c-style
 '("gnu" (c-basic-offset . 4)
    ))
(c-add-style "readdocument" please-read-document-c-style)
(c-set-style "readdocument")


如果不喜欢gnu的代码风格,请换成其它的built-in style。
善意提醒,看看文档吧,既然已经开始用emacs了,可不要有畏难情绪哟,加油。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-09-07 15:56 

注册: 2007-08-31 21:19
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
zhangsong023 写道:
自定义风格就行了,这类问题,自带的文档上讲得很清楚,先看自带的文档,实在搞不定再发问,这样也有利于系统地掌握这个工具。

代码:
(defconst please-read-document-c-style
 '("gnu" (c-basic-offset . 4)
    ))
(c-add-style "readdocument" please-read-document-c-style)
(c-set-style "readdocument")


如果不喜欢gnu的代码风格,请换成其它的built-in style。
善意提醒,看看文档吧,既然已经开始用emacs了,可不要有畏难情绪哟,加油。


好吧,那我再摸索摸索,不过真的有点困难阿:P。


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-09-07 18:09 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
我已经给你答案了啊,使用那一小段代码就可以达到你要的效果了。
忘说了,把gnu换成ellemtel。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-09-12 10:54 

注册: 2007-07-26 15:07
帖子: 256
送出感谢: 0 次
接收感谢: 0 次
;;========================================
;;C/C++语法设置
;;========================================
;;CC-mode配置参见:http://cc-mode.sourceforge.net/
(require 'cc-mode)
(c-set-offset 'inline-open 0)
(c-set-offset 'friend '-)
(c-set-offset 'substatement-open 0)

(defun my-c-mode-common-hook()
(setq tab-width 4 indent-tabs-mode nil)
;;在输入“;” ”{” “}”等字符时,自动开始新的一行并缩进,可以用C-c C-a开关
(c-toggle-auto-hungry-state 1)
;;按键定义
(define-key c-mode-base-map [(control \`)] 'hs-toggle-hiding)
(define-key c-mode-base-map [(return)] 'newline-and-indent)
(define-key c-mode-base-map [(f7)] 'compile)
(define-key c-mode-base-map [(f8)] 'ff-get-other-file)
(define-key c-mode-base-map [(meta \`)] 'c-indent-command)
;; (define-key c-mode-base-map [(tab)] 'hippie-expand)
(define-key c-mode-base-map [(tab)] 'my-indent-or-complete)
(define-key c-mode-base-map [(meta ?/)] 'semantic-ia-complete-symbol-menu)
;;预处理设置
(setq c-macro-shrink-window-flag t)
(setq c-macro-preprocessor "cpp")
(setq c-macro-cppflags " ")
(setq c-macro-prompt-flag t)
(setq hs-minor-mode t)
(setq abbrev-mode t)
(setq tab-width 4 indent-tabs-mode nil)
(setq default-fill-column 80)
)

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

(defun my-c++-mode-hook()
;(setq tab-width 4 indent-tabs-mode nil)
(c-set-style "stroustrup")
(add-to-list 'c-cleanup-list 'defun-close-semi)
;; (add-to-list 'c-cleanup-list 'scope-operator)
;; (define-key c++-mode-map [f3] 'replace-regexp)
)

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


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-09-12 17:22 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
楼上的配置并不怎么涉及自定义编程风格的问题,你用了built-in style, built-in style会覆盖你的Tab宽度等设置,不过你运气比较好的话,有可能刚好你自定义的东东和你用的built-in style一致。

要想自定义风格,请使用c-add-style函数。


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-01-03 20:22 

注册: 2005-09-09 11:32
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
(setq c-basic-offset 4)
试了半天,原来就是少了这个


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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