2011-02-04 1 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; 
»}; 
} 

, 차이를 표시합니다.

코드를 투명하게보고 편집하여 Emacs에서 올바르게 보이고 저장되므로 Visual Studio 사용자에게 정상적으로 보입니다. 그래서

, 그것은, 그들이 표시하기로했다처럼 파일을 보여줍니다 아마도 어느 있도록 할 수 이맥스를 설정하는 방법 :

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

내가 탭을 사용하여 저장 이맥스 얘기하고 싶습니다 원래, 이상한 방법으로.

답변

-2

코드를 선택하고 M-x untabify을 사용하여 모든 탭을 공백으로 변환해야합니다. 그러면 모든 편집기에서 코드의 모양이 통일됩니다. 탭 폭 3 설정

+3

정말요? 그것은 탭을 없애고 Visual Studio 사람들은 화를 낼 것입니다. – Frank

+0

이것은 vs-spaces 전쟁과 관련된 이전 탭으로 이동합니다. 나는 추상적으로 여러분에게 동의하는 반면, 내가 일하는 곳에서는 "tabists"가 우세하고 그 철학은 우리의 코딩 표준에 쓰여 있습니다. –

4

우리를 제공합니다 있지만 정확한, 우리가 얻을 수있는 당신의 추정 형식에 가깝게

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)) 

희망 이맥스 위키에서 :

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

+0

감사! 그것은 그것과 거의 일치합니다. 특정 디렉토리에서만 파일에 대한 C++ 훅을 설정할 수 있는지 알고 있습니까? 왜냐하면 내가 이야기 한 파일에 대해서만이 설정을 원하지만 다른 디렉토리에있는 내 파일에는이 설정을 원하지 않기 때문입니다. – Frank

+0

예, 디렉토리 로컬 변수로 할 수 있습니다. http://www.emacswiki.org/emacs/DirectoryVariables 또는 http://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html을 참조하십시오. – phils

관련 문제