Saya mencoba mengatur jumlah spasi per indent untuk memulai fungsi baru di sh-mode
(sub-mode bash). Saya telah mencoba pengaturan:
'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)
(seperti yang ditunjukkan di custom-set-variables
dalam .emacs
) dan beberapa yang lain juga, tetapi tidak satupun dari mereka yang memiliki efek!
indentation
shell-mode
bash
Robin Green
sumber
sumber
custom-set-variables
(yang merupakan hal yang digunakan secara internal oleh Customize tetapi tidak dimaksudkan untuk digunakan dengan tangan). Lebih baik gunakan hal-hal seperti(setq sh-basic-offset 2)
.Jawaban:
Pengaturan
sh-basic-offset
ke lekukan yang diperlukan adalah apa yang diperlukan - tetapi apa yang saya tidak sadari adalah, itu juga perlu untuk menutup dan membuka kembali semua file skrip shell sebelum penyesuaian diterapkan. Saya tidak ingat pernah melakukan ini sebelumnya di emacs.sumber
.emacs
, Anda harus keluar dari emacs dan memulai kembali, atau gunakanM-x load-file
untuk memuat ulang Anda..emacs
Jika Anda ingin memuat ulang file yang telah Anda buka di editor Anda, Anda dapat mengatakanC-x C-v RETURN
untuk "mengunjungi kembali".M-x set-variable
jika Anda ingin mengubahnya untuk buffer yang sedang Anda kerjakan.Saya menetapkan-dasar-mengimbangi ke 2 tetapi tampaknya tidak berhasil, saya kembali ditekan
C-h v sh-<TAB>
dan menyadari bahwa adash-indentation
saya mengatur variabel ke 2 dan semuanya tampaknya berfungsi seperti pesona sekarang.sumber
sh-basic-offset
sebagai gantinya.Saya memiliki pengalaman yang sama dengan Albaro: pengaturan sh-basic-offset tidak memiliki efek, tetapi pengaturan indentasi sh berfungsi seperti yang diharapkan.
Dalam kasus saya, saya mengevaluasi
(setq sh-basic-offset 2)
dari dengan emacs, mis. melalui Mx eval-expression. Saya sedang berlariGNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian
. Mode utama saya adalah Shell-script.sumber