我开始的项目是每个人都使用Microsoft 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;
»};
}
我在这里将标签显示为»
,将空格显示为“。”,以显示差异。
我想透明地查看和编辑代码,以便它在我的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使用标签以原始的,奇怪的方式保存它。
答案 0 :(得分: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))
希望这是一个良好的开端,但是必须有其他设置来匹配Visual Studio的工作方式,所以我建议你开始阅读Emacs Wiki:
答案 1 :(得分:-3)
您应该将所有标签转换为选择代码并使用M-x untabify
的空格。这将几乎统一每个编辑器中代码的外观。