Emacs

Emacs è l'editor che fornisce il miglior support per Guile.

Installazione

Puoi installarlo nello stesso modo in cui hai installato Guile (qui sotto l'esempio con Guix) :

$ guix install emacs

Configurazione

Questo libro non ha lo scopo di insegnare come usare Emacs. Quindi ti propongo una configurazione pronta all'uso per rendere più piacevole la scrittura di programmi Guile con Emacs. Sentiti libero di prendere solo ciò che ti interessa!

Supporto visuale

Evidenziare la linea del cursore

;; paste this lines into your emacs config file
(global-hl-line-mode +1)

Disattivato

Without global-hl-line-mode

Attivato

With global-hl-line-mode

Evidenziare la coppia di delimitatori sotto il cursore

;; paste this lines into your emacs config file
(show-paren-mode 1)
(setq show-paren-delay 0)

Disattivato

Without show-paren-mode

Attivato

With show-paren-mode

Supporto Operativo

" rendere l'hacking di Scheme in Emacs (ancora più) divertente "

Se si potesse installare una sola estensione, sarebbe questa.

Installazione

$ guix install emacs-geiser emacs-geiser-guile

Attivazione

M-x run-guile

Utilizzo

Puoi fare riferimento a https://www.nongnu.org/geiser/Cheat-sheet.html#Cheat-sheet

Aggiungere l'auto completamento Geiser :

Installazione

$ guix install emacs-ac-geiser

Attivazione

;; paste this lines into your emacs config file
(ac-config-default)
(require 'ac-geiser)
(add-hook 'geiser-mode-hook 'ac-geiser-setup)
(add-hook 'geiser-repl-mode-hook 'ac-geiser-setup)
(eval-after-load "auto-complete"
  (add-to-list 'ac-modes' geiser-repl-mode))

Disattivato

Without ac-geiser

Attivato

With ac-geiser

Modificare il codice in base alla struttura dell'espressione S (S-expression)

Installazione

$ guix install emacs-paredit

Attivazione

;; paste this lines into your emacs config file
(require 'paredit)
(autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t)
(add-hook 'scheme-mode-hook #'enable-paredit-mode)

Utilizzo

Non potrei fare di meglio di questa guida scritta da Dan Midwood.

Supporto alla rifattorizzazione

Modificare più stringhe di caratteri simultaneamente

Installazione

$ guix install emacs-iedit

Attivazione

;; paste this lines into your emacs config file
(require 'iedit)

Utilizzo

C-; su una parola per modificare tutte le sue occorrenze. C-0 C-; su una parola per modificare tutte le sue occorrenze nella regione attiva.

Modificare contemporaneamente e nello stesso modo più punti del file.

Installazione

$ guix install emacs-multiple-cursors

Attivazione

;; paste this lines into your emacs config file
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)

Utilizzo

C-> Aggiungere un cursore alla riga successiva C-< Aggiungere un cursore alla riga precedente

Al termine della modifica, C-g.

Estrarre variabili e funzioni

Installazione

;; paste this lines into your emacs config file
(if (not (package-installed-p 'emr))
    (progn
      (package-refresh-contents)
      (package-install 'emr))))

Attivazione

;; paste this lines into your emacs config file
(require 'emr)
(autoload 'emr-show-refactor-menu "emr")
(define-key prog-mode-map (kbd "M-RET") 'emr-show-refactor-menu)
(eval-after-load "emr" '(emr-initialize))
(global-set-key (kbd "M-v") 'emr-scm-extract-variable)
(global-set-key (kbd "M-f") 'emr-scm-extract-function)

Utilizzo

M-v Estrarre un variabile M-f Estrarre una funzione