簡體   English   中英

如何在Sublime Text 2中為我的Gemfile啟用語法高亮顯示?

[英]How do I enable syntax highlighting for my Gemfile in Sublime Text 2?

我最近開始使用Sublime Text 2.這是一個很棒的編輯器。 它在突出顯示Ruby代碼方面做得很好,但它沒有突出顯示我的Gemfile。

有沒有辦法讓它做到這一點?

我找到了這個要點,但沒有關於如何使用它的說明。

至少有三種選擇:

  1. 手動切換語法(不是首選,但很簡單;無需說明)
  2. "Gemfile"添加到Ruby語法文件列表中
  3. 使用您鏈接的插件並為其創建一個包

1.沒有解釋,但是方便

您可以綁定擊鍵來設置語法而無需移動到鼠標。

我將語法更改為Ctrl-Opt-Space,方法是將以下內容添加到我的用戶鍵綁定中:

[
  { "keys": ["ctrl+alt+space"], 
    "command": "show_overlay", 
    "args": { "overlay": "command_palette", "text": "Set Syntax: " } }
]

2.將"Gemfile"添加到Ruby語法文件列表中

  • Linux: ~/.config/sublime-text-2/Packages/Ruby/Ruby.tmLanguage
  • OS X: ~/Library/Application Support/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage
  • Windows: %APPDATA%/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage

您也可以使用菜單選項Preferences -> Browse Packages並進入Ruby包。 一旦你進入文件就很明顯了:它是具有Ruby外觀文件名的<array>元素。 添加<string>Gemfile</string>就可以了。

升級可能會覆蓋設置; 我不確定ST2是如何工作的 - 通過代碼片段可以更清晰地完成它。

3.使用您鏈接的代碼段

更多工作(以及一個語法錯誤的更正)。 您可以手動執行,通過在Packages創建目錄(請參閱上面的位置)或創建實際包並允許ST2安裝它。

我創建了一個名為"Syntax"的測試包,並將片段復制到其中,重新啟動ST2,打開Gemfile按預期工作。 修正需要額外的冒號( 新要點 ),簡言之:

elif name[-3] == "erb": # Needed a semi-colon here.
  set_sintax(view, "HTML (Rails)", "Rails")

如果您在這里但使用Sublime Text 3,您可能無法在包中找到“Ruby語法文件列表”。

在線發現的大多數其他解決方案讓我感到困惑。

當你在Sublime Text 3中打開文件時,我通過在右下角文件擴展菜單項中手動將Gemfile更改為Ruby來解決這個問題(這是我每次打開文件時一直在做的事情)。

選擇ruby后,轉到Preferences - > Settings-More - > Syntax Specific-User

{
  "extensions":
  [
    "Gemfile",
    "Gemfile.lock"
  ]
}

當您導航到特定於語法的用戶時,它會打開一個特定於該文件具有語法突出顯示的語言的文件。 您可能需要將文件更改回任何默認值(我的是'Rd(R文檔).sublime-settings')並從該語法突出顯示文件中刪除Gemfile。

在Ubuntu中,這些文件存儲在

~/.config/sublime-text-3/Packages/User

ST2的DetectSyntax插件為突出顯示文件提供了更全面的解決方案 - 它允許基於規則的文件突出顯示。 它足夠聰明,可以理解Rails文件,使用.rb作為擴展名的其他文件和標准ruby文件之間的區別。

標准規則包括GemfileRakefileGuardfile以及與Ruby進行語法格式匹配的其他規則。

請參閱GitHub上的DetectSyntax

您可以通過復制用戶/文件夾中的HTML.tmLanguage文件來實現此目的,這樣它就不會被更新覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM