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).

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")
(setq js2-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

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)

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