web-dev-qa-db-ja.com

Sublime Textでスペースのインデントを修正/変換するにはどうすればいいですか?

例:2つのスペースインデントを持つドキュメントがあり、それに4つのスペースインデントを付けたい場合、Sublime Textエディタを使用して自動的に変換するにはどうすればよいですか。

221
Magne

これがSublime Text 2または3の文書内のインデントスペースを変換するためのきちんとしたトリックです。

TL; DR:

2スペースから4スペースに変換する:

タブ幅が2に設定されていることを確認します。2スペースのインデントをタブに変換し、タブ幅4に切り替えてから、インデントをスペースに戻します

詳細な説明:

に行きなさい:

View -> Indentation

読みます:

  • Indent using spaces [x]
  • Tab width: 2

選択してください:

  • Convert Indentation to Tabs

次に選択します。

  • Tab width: 4
  • Convert Indentation to Spaces

完了しました。

509
Magne

私の正気は、ユーザー設定を次のように定義したほうが良いことが実際にわかりました。

"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false

detect_indentation: false設定は、View -> Indentation設定とは対照的に、Sublimeにすべてのファイルでこれらの設定を遵守させるので、特に重要です。

気になる人は、Sublime -> Preferences -> Key Binding - Userに次のコードを貼り付けて、自動的にコードのインデントを変更するキーボードショートカット(YMMV)を定義することもできます。

[
  { "keys": ["ctrl+i"], "command": "reindent" }
]

そして空白を視覚化する:

"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],
73
Brian Gerstle

私の考えでは、Magneよりも簡単な解決策を見つけました。

Macの場合:

"cmd+f" => "  "(two spaces) => "alt+enter" => "arrow right" => "  "(two more spaces) => set tab width to 4(this can be done before or after.

Windowsや他のプラットフォームでは、あなたのfindcmd+fホットキーが何であれ、alt+enterselect allを変更してください。

注:コード内に複数のスペースがある場合、この方法は「エラー」を起こしやすいです。したがって、Magneの方法よりも安全性は低くなりますが、(少なくとも私にとっては)高速です。

9
Automatico

2 - > 4スペースを変換するときに多くの提案がうまくいきますが。 4 - > 2を変換するとき、私はいくつかの問題に出くわしました。

これが私が使ってしまったものです:

Sublime Text 3/Packages/User/to-2.sublime-macro

[
  { "args": null, "command": "select_all" },
  { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
  { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
  { "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
  { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]
7
Kyle Finley

検索と置換の方が早い場合は、次のような正規表現の置換を使用できます。

検索(regex):(^|\G) {2}"{2}"<space>{2}の代わりに2つのスペースを書くことができます。わかりやすくするためにここで使用しています。)

4つのスペース、または\tのような任意のものに置き換えます。

5
Qtax

私はそれのためのプラグインを書きました。あなたはそれを見つけることができます ここ またはパッケージ管理で "ReIndent"を探してください。それはほとんどKyle Finleyが書いたのと同じことをしますが、2と4の間で変換するための近道とその逆で便利な方法で。

5
kamilkp

あなたはあなたのカスタムキーバインディングにこのコードを追加しなければなりません:

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }

ctrl + F12キーを押すと、ファイルのタブサイズが4になります。別のタブサイズが必要な場合は、 "値"の番号を変更するだけです。 Teフォーマットは単純なjsonです。

2
patricia bezek

私がした最も簡単なことは、

インデントをタブに変更

そしてそれは私の問題を解決しました。

同じことができます、

スペースへ

あなたの必要性によってと同様に。

同じのスナップショットを述べた。

enter image description here

0
Indrajeet Gour

最近私は同様の問題に直面しました。私は崇高なエディタを使用していました。コードの問題ではなくエディタの問題です。

環境設定の以下の変更は私のために働きました。

Sublime Textメニュー - > Preferences - > Settings:Syntax-Specific

{
    "tab_size": 4,
    "translate_tabs_to_spaces": true
}
0
Ajay