Imposta il rientro per la funzione di script di shell


11

Sto cercando di impostare il numero di spazi per trattino per l'avvio di una nuova funzione in sh-mode(modalità secondaria bash). Ho provato a impostare:

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

(come mostrato in custom-set-variablesin .emacs) e alcuni altri pure, ma nessuno di loro ha avuto alcun effetto!


Il modo di impostare le variabili non è via custom-set-variables(che è la cosa usata internamente da Personalizza ma non è pensata per essere usata a mano). Meglio usare cose come (setq sh-basic-offset 2).
Stefan,

Risposte:


7

L'impostazione sh-basic-offsetdel rientro richiesto è ciò che è necessario, ma ciò che non ho realizzato è, è anche necessario chiudere e riaprire tutti i file di script della shell prima che la personalizzazione abbia effetto. Non ricordo di aver mai dovuto farlo prima in Emacs.


1
Dopo la modifica .emacs, devi uscire da emacs e riavviarlo, oppure utilizzare M-x load-fileper ricaricare il tuo .emacsSe vuoi ricaricare un file che hai aperto nel tuo editor, puoi dire C-x C-v RETURNdi "rivisitarlo".
Alex L

Il file di caricamento @AlexL non funziona in questo caso particolare. Come ho detto, questo è molto insolito. Di solito è sufficiente semplicemente personalizzare una variabile.
Robin Green,

Hmm ... sai perché questo sarebbe @ robin-green? Sono curioso.
Alex L

Puoi anche usarlo M-x set-variablese vuoi semplicemente cambiarlo per il buffer in cui stai lavorando.
kotakotakota

1

Ho impostato-basic-offset su 2 ma non sembrava funzionare, sono tornato indietro C-h v sh-<TAB>e mi sono reso conto che c'era un sh-indentationho impostato quella variabile su 2 e tutto sembra funzionare come un fascino ora.


Si prega di chiarire cosa si intende per "set-basic-offset" e chiarire anche esattamente come "impostare quella variabile su 2".
Stefan,

Il forum ha omesso la scheda perché ho inserito un carattere tra maggiore e minore di. Ch v sh- "completamento automatico" ti mostrerà un elenco di variabili.
Albaro Pereyra,

Ho corretto il markup, ma il tuo commento non spiega ancora cosa intendevi per "set-basic-offset" né come "hai impostato quella variabile su 2".
Stefan,

Questa variabile è obsoleta dal 26.1, utilizzare sh-basic-offsetinvece.
goetzc,

0

Ho avuto la stessa esperienza di Albaro: impostare sh-basic-offset senza alcun effetto, ma impostare sh-indentation funziona come previsto.

Nel mio caso, ho valutato (setq sh-basic-offset 2)con emacs, ad es. tramite Mx eval-expression. Sto correndo GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian. La mia modalità principale è Shell-script.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.