emacs的自动对齐

Vim、Emacs配置和使用
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

emacs的自动对齐

#1

帖子 laoli_no1 » 2009-06-04 11:59

在编写C的时候,我设置emacs的对齐格式为K&R,缩进4,用tab对齐。所保存的文件用emacs打开没有问题,对齐得很好,可是如果用其他的编辑器打开就发现没有缩进,比如vim和gedit,这是什么问题?
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#2

帖子 laoli_no1 » 2009-06-05 12:16

本来觉得emacs的自动排版挺方便的,可是这样一来用别的编辑器看起来就很难受了,应该怎么解决这个问题啊
forcotton
帖子: 57
注册时间: 2006-10-06 21:10

Re: emacs的自动对齐

#3

帖子 forcotton » 2009-06-05 13:03

可能是tab的问题?用C-x h M-x untabify一下再存盘看看。
古墓熊影
帖子: 50
注册时间: 2008-11-01 18:08

Re: emacs的自动对齐

#4

帖子 古墓熊影 » 2009-06-05 15:56

除了格式化缩进外,可以格式化空格之类的吗?
比如说

代码: 全选

printf("%d%d%d\n",a,b,c);
变成

代码: 全选

printf("%d%d%d\n", a, b, c);
在每个逗号之后增加空格?
或者是

代码: 全选

a=2;
变成

代码: 全选

a = 2;
在=之间插入空格?
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#5

帖子 laoli_no1 » 2009-06-05 16:20

好像就是这个问题。能不能把自动排版直接设置成这种格式啊?
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#6

帖子 laoli_no1 » 2009-06-05 16:22

4楼的,我没有看明白的意思 :em06 :em06
你是说能不能做到这种效果,还是问我是不是这个现象?
古墓熊影
帖子: 50
注册时间: 2008-11-01 18:08

Re: emacs的自动对齐

#7

帖子 古墓熊影 » 2009-06-05 18:42

我是问能不能做到这种效果。
谢谢。
:em06
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#8

帖子 laoli_no1 » 2009-06-06 10:05

这个我也不知道

你知道怎么把tab干掉么
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#9

帖子 laoli_no1 » 2009-06-06 20:49

对emacs以及 lisp不懂,能有人告诉我么
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#10

帖子 laoli_no1 » 2009-06-07 22:07

因为是一个团队写程序,如果我的格式处理不好,很影响合作的效率,请懂的告诉我一下,多谢了
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#11

帖子 laoli_no1 » 2009-06-11 9:07

呃,没有办法设定在按tab自动对齐的时候就自动的取消tab空格么?
kamasamikon
帖子: 57
注册时间: 2009-01-05 11:42

Re: emacs的自动对齐

#12

帖子 kamasamikon » 2009-06-11 11:19

用 indent 格一下吧
laoli_no1
帖子: 154
注册时间: 2008-10-28 17:17

Re: emacs的自动对齐

#13

帖子 laoli_no1 » 2009-06-11 11:54

楼上的,M-X indent么?
不能设置直接用tab的么
anewbie
帖子: 159
注册时间: 2009-02-24 19:39

Re: emacs的自动对齐

#14

帖子 anewbie » 2009-06-11 21:00

laoli_no1 写了: 不能设置直接用tab的么

代码: 全选

(setq-default indent-tabs-mode nil)
(setq default-tab-width 4)
(setq tab-stop-list ())
(loop for x downfrom 40 to 1 do
      (setq tab-stop-list (cons (* x 4) tab-stop-list)))
第二行中的 4 表示缩进 4 个空格,改成你喜欢的。
上次由 anewbie 在 2009-06-11 21:05,总共编辑 1 次。
anewbie
帖子: 159
注册时间: 2009-02-24 19:39

Re: emacs的自动对齐

#15

帖子 anewbie » 2009-06-11 21:04

对了,解释一下最后一条语句,它指的是你用 M-i 缩进时光标停留的位置,那个 4 改成和第二行中一致就成。
还有 loop 是common lisp 的写法,别忘了 (require 'cl)
回复