web-dev-qa-db-ja.com

Sublime Text 3、スペースをタブに変換

私はこれについての投稿がたくさんあることを知っていますが、私はそれをうまく動かすことができませんでした。
コーディングにはタブを使います。常にスペースをタブに変換する方法はありますか?すなわちファイルを開くときと保存するとき誰かアイデアがありますか?

//編集:
私の願いは、これを自動的に行うことです。 - >開く、保存する、またはその場で
誰もがやり方を知っていますか?


this :を試してみました

import sublime, sublime_plugin, os

class ExpandTabsOnSave(sublime_plugin.EventListener):
  # Run ST's 'expand_tabs' command when saving a file
  def on_pre_save(self, view):
    if view.settings().get('expand_tabs_on_save') == 1:
      view.window().run_command('expand_tabs')

そして、これが私のユーザー設定です。

{
    "auto_complete_selector": "source - comment, meta.tag - punctuation.definition.tag.begin",
    "auto_indent": true,
    "detect_indentation": true,
    "draw_white_space": "all",
    "ensure_newline_at_eof_on_save": true,
    "expand_tabs_on_save": true,
    "font_face": "SourceCodePro-Regular",
    "font_size": 10,
    "format_on_save": true,
    "ignored_packages":
    [
        "Vintage"
    ],
    "indent_to_bracket": true,
    "open_files_in_new_window": false,
    "smart_indent": true,
    "tab_size": 4,
    "translate_tabs_to_spaces": false,
    "trim_automatic_white_space": true,
    "trim_trailing_white_space_on_save": true,
    "use_tab_stops": false,
    "Word_wrap": false
}
154
chris

Sublime Textウィンドウの右下に、次のようなインデントインジケータが表示されます。

Indentation options menu

それをクリックすると、あなたのインデント設定を調整するためのオプション、そしてもっと重要なことに、スペースをタブに、そしてその逆に変換するためのオプションを含むメニューが開きます。

同じメニューがView -> Indentationの下にリストされています。

308
angerson

Sublimeウィンドウの下部に、タブ/スペース設定を表す何かが表示されます。

その後、たくさんのオプションを含むドロップダウンが表示されます。気になるオプションは次のとおりです。

  • インデントをスペースに変換
  • インデントをタブに変換

文書全体に希望の設定を適用します。

お役に立てれば。

121
erier

すでにご存知かもしれませんが、Preferences.sublime-settingsでインデント設定をカスタマイズできます。例えば、

"detect_indentation": true,
"tab_size": 4,
"translate_tabs_to_spaces": false

これにより、エディタは4スペース幅のタブを使用するように設定され、Sublimeは編集中のファイルのインデントと一致するようになります。これらの設定では、ファイルを再度インデントすると、スペースがタブに置き換えられます。

ファイルを開くときに自動的にインデントし直すことに関しては、それほど簡単ではありません(しかし、空白の変更がファイルの差分に大混乱をもたらすので、おそらくあまり良い考えではありません)。何がより良い行動の方針かもしれません:あなたは 再インデントのためのショートカットをマップする そしてあなたが修正を必要とする新しいファイルを開くときにちょうどそれを引き起こすことができます。

71
justin

私の場合、この行は私の問題を解決しました:

"translate_tabs_to_spaces": false
3
vljs

この問題を解決するには、コマンドパレットを使用できます。

ステップ1:Ctrl + Shift + P(コマンドパレットをアクティブにするため)

ステップ2:「インデント」と入力し、"Indentation: Convert to Tabs"を選択します

2
Jojoleo

これは、ファイルを開くたびに自動的にタブに変換される解決策です。

このファイルを作成します:.../Packages/User/on_file_load.py

import sublime
import sublime_plugin

class OnFileLoadEventListener(sublime_plugin.EventListener):

    def on_load_async(self, view):
        view.run_command("unexpand_tabs")

注意。実際のスペースからタブへの変換が行われていなくても、ファイルを開いた後でファイルが保存されていない状態になることがあります。

2
TheStoryCoder

スペースを自動的にタブに変換するには保存時、 "$ SUBLIME_HOME $\Packages \"内の "UnexpandTabsOnSave"という新しく作成されたサブフォルダに次のPythonスクリプトを追加します。

import sublime, sublime_plugin, os

class ConvertSpacesToTabsOnSave( sublime_plugin.EventListener ):
  # Run Sublime's 'unexpand_tabs' command when saving any file
  def on_pre_save( self, view ):
    view.window().run_command( 'unexpand_tabs' )

初期のリソースありがとうございます。

0
sean2078