Jawaban:
Nah, untuk indent dengan tab, Anda akan ingin memastikan bahwa indent-tabs-mode
adalah t
(yang merupakan nilai default). Tetapi untuk mendapatkan hanya tab, Anda harus menyesuaikan mode yang melakukan lekukan sedemikian rupa sehingga setiap baris diindentasi oleh beberapa dari Anda tab-width
(default 8). Misalnya, dalam mode C, Anda dapat mencoba pengaturan c-basic-offset
ke 8.
Atau, Anda bisa mengurangi nilai Anda tab-width
menjadi lebih kecil, sehingga Emacs tidak perlu menggunakan spasi untuk mencapai setiap tingkat indentasi. Tetapi jika Anda melakukannya, semua orang yang harus mengerjakan kode Anda (dan menggunakan penghentian tab 8 karakter standar) akan merasa terganggu.
Saya mendorong Anda untuk mempertimbangkan kembali. Secara pribadi, saya menemukan bekerja pada kode menjorok dengan tab menjadi menjengkelkan, terutama jika mereka tampaknya tidak 8 tab ruang. (Yang terburuk adalah kode di mana beberapa baris menggunakan spasi, beberapa baris menggunakan tab, dan jelas bukan 8 tab spasi.) Apakah kita semua mendukung dan adil (setq indent-tabs-mode nil)
.
Emacs hadir dengan beberapa gaya standar untuk indentasi C, atau Anda dapat menulis sendiri jika tidak ada yang sesuai dengan kebutuhan Anda. Di antara gaya standar , tampaknya Anda sedang mencari linux
(gaya yang digunakan dalam sumber kernel Linux), yang memiliki lekukan 8 kolom dan menggunakan karakter tab dengan lebar 8.
Anda dapat menjadikan pengaturan ini gaya default untuk C dengan meletakkannya di .emacs
:
(setq c-default-style "linux")
(defun my-c-mode-hook ()
(setq indent-tabs-mode t)
(setq tab-width 8))
(add-hook 'c-mode-hook 'my-c-mode-hook)
Pastikan Anda tidak menggunakan pengaturan ini saat berkolaborasi dengan orang lain dengan preferensi yang berbeda. Secara khusus, menggunakan tab akan membuat Anda menjadi musuh. Jika file tertentu disimpan dalam gaya tertentu, Anda dapat menggunakan variabel file untuk memastikan bahwa semua orang yang mengedit file di Emacs menggunakan pengaturan yang sama:
/*
* Local Variables:
* c-file-style: "linux"
* indent-tabs-mode: t
* tab-width: 8
* End:
*/
Jika Anda memiliki keseluruhan proyek dengan file C dengan indentasi yang sama, gunakan variabel direktori daripada mencemari setiap file. Buat file yang disebut .dir-locals.el
dengan konten seperti berikut:
((c-mode . ((c-file-style . "linux")
(indent-tabs-mode . t)
(tab-width . 8))))
Tab mengganggu saya, tetapi saya harus mencari cara untuk membuat emacs hanya menggunakan tab untuk membuat indentasi sehingga saya bisa mengerjakan kode orang lain. Inilah yang bekerja untuk saya:
(defun tmp/change-indent ()
(interactive)
(setq indent-tabs-mode t)
(setq tab-width 2))
Saya perhatikan bahwa sebelum mengacaukan apa pun, ketika saya menekan tombol tab, itu otomatis menjorok dengan 2 kolom. Mengatur "lebar-tab" agar sesuai dengan 2 kolom offset yang diizinkan emacs untuk menggunakan tab saat melakukan format otomatis. Saya bekerja dalam mode nxml, tapi saya pikir ini harus bekerja untuk mode apa pun.