Categories
IDE types

IDE Emacs 2

In questo articolo si continua a parlare dell’IDE Emacs (>=27) e si installeranno i minor e major mode utili per programmare in JavaScript.

Sulle pagine di Emacs, per evidenziare la sintassi JavaScript, si suggerisce di usare questo mode: js2-mode . Per installare questo mode si possono scrivere i comandi direttamente dentro la finestra di Emacs:

(json-mode ha causato un warning: conflitto con js2-mode)

M-x package-install RET js2-mode RET
M-x package-install RET json-mode RET
M-x p-inst RET comint-mime RET

Questi comandi scaricano gli script da un repository GNU ELPA (se necessario altri script sono disponibili in MELPA, un altro repository).

Appena eseguiti questi comandi, aprendo il file ~/.emacs si potrà osservare:

(custom-set-variables
'(package-selected-packages '(comint-mime json-mode js2-mode)))
bug risolto 2023

2023) Un bug di Emacs 27 porta la CPU al 100%, ma si risolve con questo codice nel file di inizializzazione: ~/.emacs

(setq history-length 100)
(put 'minibuffer-history 'history-length 50)
(put 'evil-ex-history 'history-length 50)
(put 'kill-ring 'history-length 25)
(savehist-mode -1)
Passaggi superflui 2023

Se necessario, si può configurare in due modi nel file di inizializzazione: ~/.emacs:

  • (passo non necessario) come major mode si aggiunge nel file di inizializzazione con questa funzione:
  (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
  • (passo non necessario) oppure, chi ha bisogno di usarlo come minor mode
  (add-hook 'js-mode-hook 'js2-minor-mode)
  • (passo non necessario) Si può configurare ulteriormente usando questo comando nella finestra Emacs
M-x customize-group RET js2-mode RET
emacs con finestra di personalizzazione di un mode
screenshot di Emacs
  • (passo non necessario) Se vuoi usare anche il linguaggio JSX allora puoi installare come minor mode: js2-minor-mode
  • Se vuoi usare la libreria Flow come minor mode1 puoi scaricare e installare il file flow-minor-mode.el nella cartella ~/.emacs.d/site-lisp ed attivarlo con questa riga nel file di inizializzazione ~/.emacs :
(add-to-list 'load-path "~/.emacs.d/")
(load "flow-minor-mode.el")
;; non funziona (setq js2-indent-level 2) 
(setq js-indent-level 2) 
;; imposta due spazi per indentazione automatica

Per elencare i mode attualmente attivi, il comando è:

M-x describe-mode

Da provare:

M-x display-line-numbers-mode

La numerazione delle righe si può attivare per sempre aggiungendo in ~/.emacs

(global-line-numbers-mode)

Come già detto, su MELPA sono disponibili altri minor mode (file.el):

  • flycheck (non testato, può richiedere node.js)
  • add-node-modules-path (non testato)

Sempre nello stesso file, se stai usando una macchina virtuale, o un emulatore del terminale, o se i tasti funzione non sono disponibili, si possono spostare (in inglese: key binding) su altre combinazioni di tasti, ad esempio, per spostare F10:

(global-set-key (kbd "C-x C-x") 'menu-bar-open)
Si può aprire un menù su Emacs anche usando il terminale dei caratteri
Screenshot di Emacs con menù aperto

Questa configurazione evita di mescolare tab e spazi (solo spazi)

(setq-default indent-tabs-mode nil)
;; default: imposta una variabile globalmente

Nei file esistenti si possono rimuovere velocemente tab, selezionando tutto il testo del buffer, con la combinazione C-x h e poi eseguendo il comando M-x untabify.

Si allega un esempio di configurazione (il nome del file deve iniziale con il punto)

  1. https://github.com/an-sh/flow-minor-mode []

Leave a Reply