Làm cách nào để buộc Sublime Text thụt hai khoảng trắng trên mỗi tab?


504

Có cách nào để buộc Sublime Text 2 luôn thụt hai khoảng trống trên mỗi tab khi làm việc với các tệp Ruby không?

Tôi biết rằng thụt lề có thể được đặt trong view -> indentationtùy chọn menu, nhưng nó không dính. Mỗi lần tôi mở một tệp mới và nhấn tab, nó sẽ quay trở lại bốn khoảng trắng.


Sublime hơi khác / lạ theo mặc định. Mặc dù nó có thể lưu tệp với nhiều khoảng trắng, nhưng trình soạn thảo sẽ tự xóa cả hai khoảng trắng nếu nó xác định nó là thụt lề.
Vôi

Câu trả lời:


899

Nếu bạn muốn nó cho tất cả các tập tin, đi đến Preferences -> Settings - Default/User. Nhưng như một số ý kiến ​​dưới đây chỉ ra, cài đặt Cú pháp cụ thể có thể giới hạn chỉ các ngôn ngữ bạn chọn.

Để giới hạn cấu hình này cho các tệp Ruby, trước tiên hãy mở tệp Ruby trong trình chỉnh sửa, sau đó đi đến Preferences -> Settings - Syntax Specific. Điều này sẽ mở một cửa sổ cài đặt có tênRuby.sublime-settings

Lưu các cài đặt này:

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

Lặp lại cho bất kỳ loại cú pháp nào khác bằng cách mở một tệp thuộc loại đó và quay lại các tùy chọn để mở tệp tùy chọn chính xác cho cú pháp đó.

Tôi đã chỉnh sửa phần này để bao gồm dòng "Det_indentation" cho mỗi yêu cầu trong các bình luận; Trước đây tôi đã sử dụng Mặc định / Người dùng để đặt kích thước tab của mình và không cần phát hiện tab, nhưng liệu đó có phải là do cấu hình chung hay do tôi hiếm khi mở tệp bằng tab, tôi không biết.

Khởi động lại không cần thiết, mặc dù trong một số trường hợp có thể.


11
Từ bản dựng 2181. Bạn có thể định cấu hình cài đặt từ Tùy chọn -> Cài đặt - Mặc định / Người dùng. Tốt nhất để đặt nó trong cài đặt Người dùng vì đó là cách tiếp cận dự định.
Kevin Jalbert

20
@KevinJalbert (và DGM) Trên thực tế, anh ta nên đặt nó trong cài đặt cụ thể theo cú pháp, vì vậy nó chỉ ảnh hưởng đến các tệp Ruby.
Paul Hoffer

6
Lưu ý giá trị là đúngkhông "đúng".
earthmeLon

1
Điều này đặc biệt hữu ích vì tài liệu trang web riêng của Sublime Text gợi ý không chính xác khi sử dụng camelCase thay vì dấu gạch dưới trong các phím cài đặt ... vẫn còn. ( sublimetext.com/docs/indentation )
Eric Goldberg

@EricGoldberg - Tôi không chắc bạn đã truy cập trang tài liệu đó như thế nào, nhưng nếu bạn truy cập sublimetext.com > Hỗ trợ và trong Tài liệu, hãy nhấp vào liên kết Sublime Text 2, bạn được đưa đến sublimetext.com/docs/2 - từ đó, bạn có thể tìm thấy các tài liệu về thụt lề và các phím cài đặt sử dụng chính xác dấu gạch dưới: sublimetext.com/docs/2/indentation.html
jbyrd 9/215

166

Nếu bạn muốn buộc cài đặt tab đã chọn, bỏ qua những gì có thể xảy ra trong tệp, thì bạn nên đưa detect_indentationvào cấu hình của mình (cài đặt Người dùng hoặc cài đặt Cú pháp cụ thể của bạn, tùy thuộc vào việc bạn muốn nó toàn cầu hay theo từng kiểu tệp):

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

Cảm ơn vì tiền hỗ trợ! Không detect_indentationtắt tôi đang có hành vi rất lạ (nó đã phát hiện ra vết lõm không chính xác và sử dụng nó thay vì những gì tôi đã chỉ định trong cài đặt của mình).
JacobEvelyn

Làm điều này trong cài đặt mặc định làm việc cho tôi. Hãy chắc chắn rằng bạn nhìn để xem nếu cài đặt đã tồn tại. Nếu bạn thêm nó và nó được khai báo sau là đúng, nó sẽ vẫn được đặt là đúng.
David

3
Xin lưu ý rằng các thay đổi đối với Cài đặt mặc định sẽ được ghi đè bằng các cập nhật Văn bản tuyệt vời, v.v. Thay đổi đối với Cài đặt người dùng sẽ không bị ghi đè.
James Chevalier

6
CẢM ƠN BẠN!! "detect_indentation":falsequan trọng khác các cài đặt khác được bỏ qua. cuối cùng
zzzeek

Đó là một điểm tốt nhưng ví dụ của bạn bị thụt lề không thích hợp ;-)
snow6oy

88

Bạn cũng có thể làm điều này với liên kết văn bản ở thanh dưới cùng của Sublime Text 2 (Ở bên phải) có nội dung "Kích thước tab 4" theo mặc định, nhấp vào đó và một cửa sổ xuất hiện các tùy chọn để đặt kích thước tab từ 1 khoảng trắng tất cả các cách lên tới 8 khoảng trắng và bao gồm các tùy chọn để chuyển đổi các tab thành khoảng trắng và khoảng trắng thành các tab.

Trông như thế này:

Tùy chọn tab trong văn bản tuyệt vời 2


3
Mẹo hay, nhưng bạn có biết nếu điều đó trở thành một thiết lập dính? Ví dụ, thay đổi thụt lề từ thanh thực đơn hàng đầu chỉ áp dụng cho tệp đang mở hiện tại, chứ không phải các tệp khác, đó là vấn đề ban đầu của tôi.
Mohamad

5
Điều này không hoạt động . Đó là một mẹo hay, nhưng nó không dính: đóng và mở lại tệp (hoặc mở tệp khác) hoàn nguyên thụt vào bốn khoảng trắng.
Mohamad

1
Vâng, nó không dính, nó là mỗi tập tin. Bạn phải đi vào cài đặt của Sublime Text để thiết lập cài đặt mặc định cho các tab / dấu cách.
Chủ nghĩa đặc nhiệm

Điều này đã giải quyết vấn đề của tôi trong Văn bản cao siêu 3. Cảm ơn bạn!
Adrian

29

Tôi có thể đề xuất EditorConfig không? Có một phần mở rộng để tự động tải và áp dụng các .editorconfigtập tin. Sau đó, chỉ cần tạo một trong thư mục gốc của dự án của bạn.

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

Bằng cách này, cài đặt của bạn là dành riêng cho dự án và tệp cụ thể nếu bạn sử dụng các kiểu khác nhau cho từng dự án hoặc ngôn ngữ.


Đây là những gì của riêng tôi .editorconfigtrông như thế nào.

# 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
Tôi không muốn biến điều này thành một sự thay đổi toàn cầu. Vì vậy, đây là giải pháp duy nhất có hiệu quả. Tôi đã thực hiện một số nghiên cứu về EditorConfig và có vẻ rất tốt cho các IDE hỗ trợ nó.
Neil Monroe

1
Nó đã xảy ra đến mức tôi đã có một .editorconfig trong dự án của mình và thậm chí không biết điều đó. (angular-cli tạo ra một)
uglycoyote

9

Tôi sử dụng gói Stent Indent .

Install Package -> Stupid Indent

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

Sao chép cài đặt ( Rubymột phần) vào.

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

yup đây là những gì tôi cần: D
Dragutescu Alexandru

Tuyệt vời. Cảm ơn rất nhiều :)
krithikaGopalakrisnan

CẢNH BÁO . Cài đặt mặc định và tùy chỉnh thụt lề ngu ngốc buộc ghi đè cài đặt Sublime TextEditorConfig . Cảm ơn.
Саша Черных

1

Tôi đã làm theo các câu trả lời trước đó, bao gồm thêm dòng Det_indentation và các tab của tôi vẫn còn năm chỗ. Sau đó, tôi nhận ra rằng việc chọn Preferences -> Settings -> More -> Syntax Specific -> Usertừ một tập tin ruby ​​đang mở ra Ruby on Rails.sublime-settingscho tôi, không phải Ruby.sublime-settings.

Tôi đổi tên Ruby on Rails.sublime-settingstập tin của tôi thành Ruby.sublime-settings. Cuối cùng, hai tab không gian làm việc! Tôi đã đi trước và đặt các cài đặt tương tự Ruby on Rails.sublime-settingslà tốt, chỉ để chắc chắn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.