2011-02-04 55 views
5

我开始在那里每个人都在使用Microsoft Visual Studio编辑代码的项目。但我是Emacs用户。像Visual Studio确实如何编辑在Emacs处理标签码和空白?

当我打开我的Emacs的C++文件,它们看起来怪异。例如:“”

namespace·ns·{ 
»class·Foo·{ 
»»virtual·function_name(·some_type::const_iterator·start 
»»»»»»»»····,·some_type::const_iterator·end 
»»»»»»»»»,·boost::shared_ptr<some_type>·varname·)·=·0; 
»}; 
} 

其中I在这里显示一个选项卡,»,并作为一个空间,以示区别。

我想查看和编辑代码透明的,所以它看起来就在我的Emacs和保存,以便它看起来正常到Visual Studio用户。

所以,我怎么可以设置Emacs的,以便它显示像他们应该要显示的文件,这大概是:

namespace ns { 
    class Foo { 
    virtual function_name(some_type::const_iterator start 
         , some_type::const_iterator end 
         , boost::shared_ptr<some_type> varname) = 0; 
    }; 
} 

而且我想告诉Emacs的使用标签来保存它在原来,怪异的方式。

回答

-2

您应该所有选项卡转换为空格选择的代码,并使用M-x untabify。这将在每个编辑器中统一代码的外观。

+3

真的吗?它将摆脱标签,并且Visual Studio人员将会发疯。 – Frank 2011-02-05 08:08:15

+0

这涉及到旧标签与空间的战争。虽然我在摘要中同意你的观点,但在我工作的地方,“小组成员”是上升的,并且哲学被写入我们的编码标准。 – 2013-02-14 20:53:05

4

设置标签宽度3给我们:

namespace ns { 
    class Foo { 
    virtual function_name(some_type::const_iterator start 
          , some_type::const_iterator end 
          , boost::shared_ptr<some_type> varname) = 0; 
    }; 
} 

这是接近你的推测格式,我们可以得到,但并不确切。你知道这是否符合Visual Studio显示的内容吗?

你大概需要以下几点:

(add-hook 'c++-mode-hook 'my-c++-mode-hook) 
(defun my-c++-mode-hook() 
    (setq tab-width 3 
     indent-tabs-mode t 
     c-basic-offset 3)) 

希望,使一个良好的开端,但一定会配合Studio如何可视做的事情需要其他设置,所以我建议你开始阅读在Emacs维基上:

http://www.emacswiki.org/emacs/IndentingC

相关问题