タブごとに2つのスペースをインデントするようにSublime Textを強制するにはどうすればよいですか?


504

Rubyファイルを使用する場合、Sublime Text 2がタブごとに常に2つのスペースをインデントするように強制する方法はありますか?

インデントはview -> indentationメニューオプションで設定できることは知っていますが、固定されません。新しいファイルを開いてタブを押すたびに、4つのスペースに戻ります。


Sublimeはデフォルトで少し異なります。複数のスペースを含むファイルを保存する可能性がありますが、エディタはインデントと識別した場合、両方のスペースを自動的に削除します。
ライム、

回答:


899

すべてのファイルに適用する場合は、に進みますPreferences -> Settings - Default/User。ただし、以下のいくつかのコメントが示すように、構文固有の設定により、選択した言語のみに制限される場合があります。

この構成をRubyファイルに制限するには、まずエディターでRubyファイルを開き、次にに移動しPreferences -> Settings - Syntax Specificます。これにより、次の名前の設定ウィンドウが開きますRuby.sublime-settings

これらの設定を保存します。

{
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  "detect_indentation": false
}

そのタイプのファイルを開き、設定に戻ってその構文の正しい設定ファイルを開くことにより、他の構文タイプについても繰り返します。

コメントのリクエストごとに「detect_indentation」行を含めるように編集しました。以前はデフォルト/ユーザーを使用してタブサイズを設定しており、タブの検出は必要ありませんでしたが、それがグローバル構成によるものか、タブ付きのファイルをめったに開かなかったためかはわかりません。

場合によっては再起動する必要はありませんが、再起動する必要はありません。


11
ビルド2181から。設定->設定-デフォルト/ユーザーから設定を構成できます。それが意図されたアプローチであるので、それをユーザー設定に置くのが最善です。
ケビンジャルバート、2012

20
@KevinJalbert(およびDGM)実際、彼はそれを構文固有の設定に入れる必要があるため、Rubyファイルにのみ影響します。
Paul Hoffer

6
値がtrueであり「true」ではないことに注意してください。
earthmeLon 2013年

1
Sublime Textの独自のWebサイトドキュメントでは、設定キーでアンダースコアの代わりにキャメルケースを使用することを誤って提案しているため、これは特に便利です... (sublimetext.com/docs/indentation
エリック・ゴールドバーグ

@EricGoldbergは-私はあなたがそのドキュメントページになったかどうかはわかりませんが、あなたはに行けばsublimetext.com >サポート、およびドキュメントの下で、崇高なテキスト2のリンクをクリックして、あなたがに持って来られsublimetext.com/docs/2 -そこから、インデントに関するドキュメントを見つけることができ、設定キーはアンダースコアを正しく使用します:sublimetext.com/docs/2/indentation.html
jbyrd

166

選択したタブ設定を強制して、ファイルですでに起こっている可能性のあることを無視したい場合detect_indentationは、構成に含める必要があります(グローバルにするかファイルタイプごとにするかによって、ユーザー設定または構文固有の設定)。

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}

先端をありがとう!detect_indentationオフにしないと、非常に奇妙な動作が発生していました(インデントが誤って検出され、設定で指定したインデントの代わりに使用されていました)。
JacobEvelyn 2014

デフォルトの設定でこれを行うと、うまくいきました。設定が既に存在するかどうか確認してください。追加して後でtrueとして宣言した場合、trueに設定されたままになります。
デビッド

3
デフォルト設定の変更は、Sublime Textの更新などによって上書きされることに注意してください。ユーザー設定の変更は上書きされません。
James Chevalier

6
ありがとうございました!!"detect_indentation":falseある重要な他の設定は無視され、他の。最終的に!
zzzeek 2014

それは良い点ですが、例は不適切にインデントされています;-)
snow6oy

88

Sublime Text 2の下部バーのテキストリンク(右側)にデフォルトで「Tab Size 4」と表示されているテキストリンクを使用してこれを行うこともできます。これをクリックすると、ウィンドウにタブサイズを1スペースから設定するオプションが表示されます最大8つのスペースまで、タブをスペースに、スペースをタブに変換するオプションが含まれます。

このように見えます:

Sublime Text 2のタブオプション


3
すばらしいヒントですが、それが厄介な設定になるかどうか知っていますか?たとえば、一番上のメニューバーからインデントを変更すると、現在開いているファイルにのみ適用され、他のファイルには適用されません。これは私の元の問題でした。
モハマド2013年

5
これは機能しません。これは良いヒントですが、固定的ではありません。ファイルを閉じて再度開く(または別のファイルを開く)と、インデントが4つのスペースに戻ります。
モハマド2014

1
ええ、それは粘着性ではなく、ファイルごとです。タブ/スペースのデフォルト設定をセットアップするには、Sublime Textの設定に移動する必要があります。
Taskism 2014年

これでSublime Text 3の私の問題が解決しました。ありがとうございます。
エイドリアン

29

EditorConfigを提案できますか?ファイルを自動ロードして適用する拡張機能があり.editorconfigます。次に、プロジェクトのルートに作成します。

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

このように、プロジェクトまたは言語ごとに異なるスタイルを使用する場合、設定はプロジェクト固有およびファイル固有になります。


これが私の.editorconfigものです。

# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

2
これをグローバルな変化にしたくなかったのです。したがって、これが機能した唯一のソリューションでした。私はEditorConfigを調査しましたが、それをサポートするIDEには非常によく見えます。
Neil Monroe

1
たまたま、プロジェクトに.editorconfigが含まれていて、それを知らないほどでした。(angular-cliが生成)
uglycoyote 2017年

9

私は愚かなインデントパッケージを使用します。

Install Package -> Stupid Indent

Preferences-> Package Settings-> Stupid Indent->Setting-Users

Ruby一部の)設定をコピーします。

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}


驚くばかり。
どうも

警告。愚かなインデントのデフォルト設定とカスタム設定は、Sublime TextEditorConfig設定を強制的に上書きします。ありがとう。
СашаЧерных

1

detect_indentation行の追加を含む、以前の回答に従いましたが、私のタブはまだ5つのスペースでした。それPreferences -> Settings -> More -> Syntax Specific -> Userから、ルビファイルから選択することRuby on Rails.sublime-settingsは私のためではなく、私のために開かれていることに気づきましたRuby.sublime-settings

Ruby on Rails.sublime-settingsファイルの名前をに変更しましたRuby.sublime-settings。ついに2スペースのタブが機能しました!私は先に進んで、Ruby on Rails.sublime-settings念のために同じ設定も入れました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.