Bagaimana cara memaksa Sublime Text ke indent dua spasi per tab?

504

Apakah ada cara untuk memaksa Sublime Text 2 untuk selalu membuat dua spasi per tab saat bekerja dengan file Ruby?

Saya tahu bahwa lekukan dapat diatur di bawah view -> indentationopsi menu, tetapi tidak menempel. Setiap kali saya membuka file baru dan tekan tab, itu kembali ke empat spasi.

Muhammad
sumber
Luhur sedikit berbeda / aneh secara default. Meskipun mungkin menyimpan file dengan beberapa spasi, editor itu sendiri menghapus kedua spasi jika mengidentifikasi sebagai lekukan.
Lime

Jawaban:

899

Jika Anda menginginkannya untuk semua file, buka Preferences -> Settings - Default/User. Tetapi seperti yang ditunjukkan beberapa komentar di bawah, pengaturan Khusus Sintaks dapat membatasi hanya untuk bahasa yang Anda pilih.

Untuk membatasi konfigurasi ini ke file Ruby, pertama buka file Ruby di editor, dan kemudian pergi ke Preferences -> Settings - Syntax Specific. Ini akan membuka jendela pengaturan bernamaRuby.sublime-settings

Simpan pengaturan ini:

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

Ulangi untuk semua jenis sintaksis lainnya dengan membuka file jenis itu dan kembali ke preferensi untuk membuka file preferensi yang benar untuk sintaksis itu.

Saya telah mengedit ini untuk memasukkan baris "detect_indentation" per permintaan dalam komentar; Saya sebelumnya menggunakan Default / Pengguna untuk mengatur ukuran tab saya, dan belum membutuhkan deteksi tab, tetapi apakah itu karena konfigurasi global atau karena fakta bahwa saya jarang membuka file dengan tab, saya tidak tahu.

Restart seharusnya tidak perlu, meskipun dalam beberapa kasus bisa.

DGM
sumber
11
Dari build 2181. Anda dapat mengonfigurasi pengaturan dari Preferensi -> Pengaturan - Default / Pengguna. Terbaik untuk meletakkannya di pengaturan Pengguna karena itulah pendekatan yang dimaksud.
Kevin Jalbert
20
@KevinJalbert (dan DGM) Sebenarnya dia harus meletakkan itu di pengaturan khusus sintaks, jadi itu hanya mempengaruhi file Ruby.
Paul Hoffer
6
Perhatikan nilainya benar dan tidak "benar".
earthmeLon
1
Ini sangat berguna karena dokumentasi situs web Sublime Text sendiri secara tidak benar menyarankan penggunaan camelCase alih-alih menggarisbawahi dalam tombol pengaturan ... masih. ( sublimetext.com/docs/indentation )
Eric Goldberg
@EricGoldberg - Saya tidak yakin bagaimana Anda sampai di halaman dokumentasi itu, tetapi jika Anda pergi ke sublimetext.com > Dukungan, dan di bawah Dokumentasi, klik tautan Sublime Text 2, Anda akan dibawa ke sublimetext.com/docs/2 - dari sana, Anda dapat menemukan dokumen pada indentasi, dan tombol pengaturan dengan benar menggunakan garis bawah: sublimetext.com/docs/2/indentation.html
jbyrd
166

Jika Anda ingin memaksakan pengaturan tab yang Anda pilih, mengabaikan apa yang kemungkinan telah terjadi dalam file, maka Anda harus memasukkan detect_indentationdalam konfigurasi Anda (pengaturan Pengguna Anda atau pengaturan Khusus Sintaks Anda, tergantung pada apakah Anda menginginkannya global atau per-filetype):

{
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "detect_indentation": false
}
James Chevalier
sumber
Terima kasih atas tipnya! Tanpa detect_indentationmematikan saya mendapatkan perilaku yang sangat aneh (itu mendeteksi lekukan salah dan menggunakannya bukan apa yang saya tentukan dalam pengaturan saya).
JacobEvelyn
Melakukan ini dalam pengaturan default berfungsi untuk saya. Pastikan Anda melihat untuk melihat apakah pengaturan sudah ada. Jika Anda menambahkannya dan dinyatakan nanti sebagai benar, itu akan tetap disetel sebagai benar.
David
3
Ketahuilah bahwa perubahan pada Pengaturan Default akan ditimpa oleh pembaruan Teks Sublim, dll. Perubahan pada Pengaturan Pengguna tidak akan ditimpa.
James Chevalier
6
TERIMA KASIH!! "detect_indentation":falseSangat penting jika pengaturan lainnya diabaikan. akhirnya!
zzzeek
Ini adalah poin yang bagus tetapi teladan Anda tidak diindentasi dengan benar ;-)
snow6oy
88

Anda juga dapat melakukan ini dengan tautan teks di bilah bawah Sublime Text 2 (Di sisi kanan) yang bertuliskan "Tab Size 4" secara default, klik itu dan sebuah jendela muncul dengan opsi untuk mengatur ukuran tab dari 1 spasi semua jalan hingga 8 spasi dan termasuk opsi untuk mengkonversi tab ke spasi dan spasi ke tab.

Terlihat seperti ini:

Opsi Tab dalam Teks Luhur 2

Taskism
sumber
3
Tip yang bagus, tetapi apakah Anda tahu itu menjadi pengaturan yang lengket? Misalnya, mengubah lekukan dari menubar atas hanya berlaku untuk file terbuka saat ini, dan bukan yang lain, yang merupakan masalah awal saya.
Mohamad
5
Ini tidak bekerja . Ini tip yang bagus, tetapi tidak lengket: menutup dan membuka kembali file (atau membuka file lain) mengembalikan lekukan ke empat spasi.
Mohamad
1
Ya, ini tidak lengket, ini per file. Anda harus masuk ke pengaturan Sublime Text untuk mengatur pengaturan default Anda untuk tab / spasi.
Tugasisme
Ini menyelesaikan masalah saya di Sublime Text 3. Terima kasih!
Adrian
29

Bisakah saya menyarankan EditorConfig ? Ada ekstensi untuk memuat otomatis dan menerapkan .editorconfigfile. Maka cukup buat satu di root proyek Anda.

.editorconfig

[*.rb]
indent_style = tab
indent_size = 2

Dengan cara ini, pengaturan Anda adalah spesifik proyek dan khusus file jika Anda menggunakan gaya yang berbeda untuk setiap proyek atau bahasa.


Di sini saya .editorconfigterlihat seperti apa.

# 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
Nate
sumber
2
Saya tidak ingin menjadikan ini perubahan global. Jadi ini adalah satu-satunya solusi yang berhasil. Saya melakukan riset pada EditorConfig dan itu terlihat sangat bagus untuk IDE yang mendukungnya.
Neil Monroe
1
Kebetulan saya sudah memiliki .editorconfig di proyek saya dan bahkan tidak mengetahuinya. (angular-cli menghasilkan satu)
uglycoyote
9

Saya menggunakan paket Indent Bodoh .

Install Package -> Stupid Indent

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

Salin pengaturan ( Rubysebagian) ke.

{
    "configuration":
    [
        {
            "patterns": ["*.rb"],
            "tab_size": 2,
            "translate_tabs_to_spaces": true
        }
    ]
}
Rahn
sumber
ya ini yang saya butuhkan: D
Dragutescu Alexandru
Luar biasa. Terima kasih banyak :)
krithikaGopalakrisnan
PERINGATAN . Default Indent dan pengaturan kustom yang bodoh memaksa menimpa teks Sublime dan pengaturan EditorConfig . Terima kasih.
Саша Черных
1

Saya mengikuti jawaban sebelumnya, termasuk menambahkan garis detect_indentation, dan tab saya masih lima spasi. Kemudian saya menyadari bahwa memilih Preferences -> Settings -> More -> Syntax Specific -> Userdari file ruby ​​terbuka Ruby on Rails.sublime-settingsuntuk saya, bukan Ruby.sublime-settings.

Saya mengganti nama Ruby on Rails.sublime-settingsfile saya menjadi Ruby.sublime-settings. Akhirnya, tab dua ruang berhasil! Saya pergi ke depan dan meletakkan pengaturan yang sama Ruby on Rails.sublime-settingsjuga, hanya untuk memastikan.

Tim Koelkebeck
sumber