2011-02-04 5 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ユーザーには普通のように保存されます。だから、

、それは、それらが示されることになっていたようファイルを示しおそらくであるようにすることができます私は、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設定

+3

本当に?それはタブを取り除き、Visual Studioの人々は怒ってしまいます。 – Frank

+0

これは古いタブ、つまりvs-spaces戦争になります。抽象的に私があなたの意見に同意する一方で、私が働いているところでは "タブリスト"が浮かび上がっており、その哲学は私たちのコーディング基準に書かれています。 –

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の表示内容と一致するかどうかは分かりますか?

あなたはおそらく次のよう勧めします:

良いスタートになりますが、物事をどうするかの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)) 

うまくいけば、 Emacs Wikiで:

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

関連する問題