10

几个月以来,我一直在使用 SublimeText 和 ruby​​,但我遇到了评论自动缩进的问题。缩进使用注释的缩进,并使用此缩进缩进以下所有代码。我希望自动缩进忽略(至少)或设置先前代码的缩进(充其量),但根本不接受评论的缩进:

我所有使用这个编辑器的同事都有同样的问题这是一个由 SublimeText 重新缩进的示例代码

class Test
  def method1
  end

    #Bad indentation
    def method2
      somecode
    end

    def method3
      somecode
    end

  end

想要:

class Test
  def method1
  end

  #Bad indentation
  def method2
    somecode
  end

  def method3
    somecode
  end

end

我对 ~/.config/sublime-text-2/Packages/Default/Indentation Rules - Comments.tmPreferences 做了一个快速修复

更换

<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
    <key>preserveIndent</key>
    <true/>
</dict>

<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
    <key>preserveIndent</key>
    <false/>
</dict>

但它会影响默认行为,我更喜欢只影响 Ruby 的行为。有没有人有更好的解决方案?

4

4 回答 4

1

我建议你使用BeautifyRuby ST2 包。您还需要安装htmlbeautifiergem。不仅您的评论,而且您的代码都会很好地缩进。

如果您使用 rvm,您可能需要更改 BeautifyRuby.sublime-settings为使用 rvm 安装的 ruby​​,而不是系统安装的 ruby​​。要找出您正在使用的 ruby​​ 的路径,请which ruby在 shell 提示符下键入。将此路径粘贴为名为的键的值,"ruby"例如:

"ruby": "/home/thetuxracer/.rvm/rubies/ruby-2.0.0-p247/bin/ruby"

并且 beautifyruby 可以用于:edit->beautify ruby

或者您可以更改它的键绑定:

    { 
  "keys": ["alt+tab"],
  "command": "beautify_ruby", 
  "context": { "key": "selector",
    "operator": "equal", 
    "operand": "source.rb, source.ruby" }

  },
{
  "keys": ["alt+tab"],
  "command": "reindent", 
  "args": {
    "single_line": false
    },
  "context": { "key": "selector",
    "operator": "not_equal", 
    "operand": "source.rb, source.ruby" }
  },
于 2013-08-21T03:52:07.047 回答
0

我把它放在我的用户设置文件中:

首选项 -> 设置 - 用户:

{
"color_scheme": "Packages/Theme - Refined/Color Schemes/Danro.tmTheme",
"ensure_newline_at_eof_on_save": true,
"font_size": 18.0,
"hot_exit": false,
"ignored_packages":
[
    "Vintage"
],
"remember_open_files": false,
"save_on_focus_lost": true,
"tab_size": 2,
"translate_tabs_to_spaces": true

}

我试图重现您的问题,但无法强制执行这些设置。

于 2013-04-26T16:27:39.320 回答
0

对于缩进,以下是关键设置

"tab_size": 2,
"translate_tabs_to_spaces": true 

这对我有用

{
"caret_style": "solid",
"color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
"enable_tab_scrolling": false,
"folder_exclude_patterns":
[
    ".git",
    ".hg",
    ".sass-cache",
    "log",
    "tmp",
    "script",
    "vendor",

],
"font_size": 10,
"highlight_line": true,
"highlight_modified_tabs": true,
"ignored_packages":
[
    "Vintage"
],
"rulers":
[
    100
],
"scroll_past_end": false,
"tab_size": 2,
"translate_tabs_to_spaces": true
}
于 2015-04-23T11:13:59.593 回答
-1

对于 ST3,首选项 -> 设置 - 用户

添加以下代码:{“tab_size”:2}

默认情况下,SublimeText 使用 4 个字符长的硬制表符。

于 2015-01-15T06:40:55.603 回答