Jawaban:
Berikut ini adalah trik yang rapi dalam Sublime Text 2 atau 3 untuk mengubah spasi indentasi Anda dalam dokumen.
TL; DR:
Mengubah dari 2 spasi menjadi 4 spasi:
Pastikan lebar tab diatur ke 2. Konversi lekukan 2-ruang Anda menjadi tab, alihkan ke lebar tab 4, lalu konversikan lekukan kembali ke spasi.
Penjelasan rinci:
Pergi ke:
View -> Indentation
Itu harus membaca:
Indent using spaces [x]
Tab width: 2
Pilih:
Convert Indentation to Tabs
Kemudian Pilih:
Tab width: 4
Convert Indentation to Spaces
Selesai
Saya sebenarnya menemukan bahwa kewarasan saya lebih baik untuk menentukan preferensi pengguna seperti:
"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false
Ini detect_indentation: false
sangat penting, karena memaksa Sublime untuk menghormati pengaturan ini di setiap file, yang bertentangan dengan View -> Indentation
pengaturan.
Jika Anda ingin menjadi mewah, Anda juga dapat menentukan pintasan keyboard untuk secara otomatis mengindentasi ulang kode Anda (YMMV) dengan menempelkan yang berikut di Sublime -> Preferences -> Key Binding - User
:
[
{ "keys": ["ctrl+i"], "command": "reindent" }
]
dan untuk memvisualisasikan spasi putih:
"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],
Dalam benak saya, saya menemukan solusi yang lebih sederhana daripada Magne:
Di mac:
"cmd+f" => " "(two spaces) => "alt+enter" => "arrow right" => " "(two more spaces) => set tab width to 4(this can be done before or after.
Pada windows atau platform lain berubah cmd+f
dan alt+enter
dengan apa pun hotkey find
dan Anda select all
.
Catatan: metode ini rentan terhadap "kesalahan" jika Anda memiliki lebih dari satu ruang dalam kode Anda. Dengan demikian kurang aman daripada metode Magne, tetapi lebih cepat (setidaknya bagi saya).
RubyFormat
maka Anda dapat dengan mudah mengatur ukuran tab yang diinginkan dan kemudian melakukan memformat ulang kode. Dalam hal RubyFormat
itu akan terjadi cmd+shift+R
.
Sementara banyak saran berfungsi saat mengonversi 2 -> 4 ruang. Saya mengalami beberapa masalah saat mengonversi 4 -> 2.
Inilah yang akhirnya saya gunakan:
Sublime Text 3/Packages/User/to-2.sublime-macro
[
{ "args": null, "command": "select_all" },
{ "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
{ "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
{ "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
{ "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]
Jika Anda menemukan pencarian dan penggantian yang lebih cepat untuk digunakan, Anda dapat menggunakan penggantian regex seperti ini:
Temukan (regex): (^|\G) {2}
(Alih-alih "{2}" <space>{2}
Anda bisa menulis dua spasi. Gunakan di sini untuk kejelasan.)
Ganti dengan 4 spasi, atau apa pun yang Anda inginkan \t
.
Anda harus menambahkan kode ini ke binding kunci khusus Anda:
{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }
dengan menekan ctrl + f12, file itu akan di-reindent ke ukuran tab 4. jika Anda menginginkan ukuran tab yang berbeda, Anda cukup mengubah angka "value". Formatnya adalah json sederhana.
{ "keys": ["ctrl+f10"], "command": "set_setting", "args": {"setting": "translate_tabs_to_spaces", "value": 2} }, { "keys": ["ctrl+f11"], "command": "set_setting", "args": {"setting": "tab_size", "value": 2} }, { "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} },
Hal termudah yang saya lakukan adalah,
mengubah Indentasi saya ke Tab
dan itu menyelesaikan masalah saya.
Anda dapat melakukan hal yang sama,
ke Spaces
serta sesuai kebutuhan Anda.
Menyebutkan snapshot yang sama.
Baru-baru ini saya menghadapi masalah yang sama. Saya menggunakan editor luhur. ini bukan masalah dengan kode tetapi dengan editor.
Di bawah ini perubahan dalam pengaturan preferensi bekerja untuk saya.
Menu Teks Sublim -> Preferensi -> Pengaturan: Khusus Sintaksis :
{
"tab_size": 4,
"translate_tabs_to_spaces": true
}