Встановіть відступ для функції скрипта оболонки


11

Я намагаюся встановити кількість пробілів на відступ для запуску нової функції в sh-mode(bash sub-mode). Я спробував налаштувати:

'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)

(Як показано custom-set-variablesв .emacs) і деякі інші , а також, але жоден з них не мали ніякого ефекту!


Спосіб встановлення змінних не є через custom-set-variables(що використовується внутрішнім способом Налаштувати, але не призначений для використання вручну). Краще використовувати такі речі (setq sh-basic-offset 2).
Стефан

Відповіді:


7

Налаштування sh-basic-offsetнеобхідного відступу - це те, що потрібно - але те, що я не усвідомлював, це також потрібно закрити та знову відкрити всі файли скриптів оболонки до того, як налаштування набуде чинності. Я не можу пригадати, щоб коли-небудь робити це раніше в emacs.


1
Після зміни .emacsпотрібно або залишити emacs, і перезапустити його, або використовувати M-x load-fileдля перезавантаження вашого .emacsфайлу. Якщо ви хочете перезавантажити файл, який ви відкрили у своєму редакторі, ви можете сказати, що C-x C-v RETURNвін "перегляне" його.
Алекс Л

Файл завантаження @AlexL не працює в цьому конкретному випадку. Як я вже казав, це дуже незвично. Зазвичай достатньо просто налаштувати змінну.
Робін Грін

Хм ... ти знаєш, чому це було б @ robin-green? Мені цікаво.
Alex L

Ви також можете використовувати, M-x set-variableякщо ви хочете просто змінити це для буфера, в якому ви працюєте.
kotakotakota

1

Я встановив-basic-offset на 2, але це, здається, не спрацювало, я повернувся натиснутою C-h v sh-<TAB>і зрозумів, що sh-indentationя встановив цю змінну на 2 і, здається, все працює як шарм.


Поясніть, що ви маєте на увазі під "set-basic-offset", а також уточнити, як саме ви "встановили цю змінну на 2".
Стефан

На форумі пропущено вкладку, оскільки я розміщую між символами, що перевищують більше та менше. Ch v sh- "натиснути вкладку" автозаповнення покаже вам список змінних.
Альбаро Перейра

Я виправив вашу розмітку, але ваш коментар все ще не пояснює, що ви мали на увазі під набором "set-basic-offset", ні як ви "встановили цю змінну на 2".
Стефан

Ця змінна застаріла з 26.1, використовуйте sh-basic-offsetзамість цього.
goetzc

0

У мене був такий самий досвід, як і в Альбаро: встановлення sh-basic-offset не має ефекту, але встановлення sh-відступу працює так, як очікувалося.

У моєму випадку я оцінив (setq sh-basic-offset 2)з допомогою emacs, наприклад. через Mx eval-вираження. Я бігаю GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian. Мій головний режим - сценарій Shell.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.