logo.png

VI
EMACS

CVS

GIT

ACL

MAKEFILE
AUTOTOOLS

KCOV

LATEX

ICALENDAR

ROBOTS

CORBA

QEMU

GNUPLOT

SCREEN

GRUB

OAI-PMH

SWISH-E

MAO

VHS

ISO

Home Up


Contents



1 Installation

Privilégier le paquet EMACS-SNOPSHOT-GTK disponible dans le pool testing.


2 Edition avec un mode prédéfinit

Dans le fichier à éditer, insérer ce texte en commentaire :

  • fichier LATEX
    %%% Local Variables: 
    %%% mode: latex
    %%% TeX-master: t
    %%% mode: font-lock
    %%% End:
    
  • fichier C
    /* Local Variables:  */
    /* mode: c */
    /* mode: font-lock */
    /* mode: auto-fill */
    /* End: */
    


3 Editer via SSH

Requière le paquet TRAMP, installé par défaut par Emacs.

C-x f /ssh:root@ctprd32:/etc/apache/httpd.conf


4 Racourcis clavier


4.1 Recherche

C-s recherche avant
C-s recherche arrière
M-% recherche et remplace
M-C-s recherche avec regex
M-C-% \(toto\|tata\) ... \1 blabla


4.2 Astuces en vrac

C-h m aide sur le mode courant
C-h w donne la combinaison de touche d'une commande
C-x h selectionne tout
M-x gdb débugeur
M-x compile exécute une commande shell ex: env
M-x cvs-examine lance le mode cvs
M-x setenv positionne une variable d'environement pour la session
M-x [un]coment-region commenter les lignezs selectionnées
C- pointer le début d'une séléction
M-x eval-region equivaut à la commande source sous bash
C-x <enter> f changer l'encodage
C-q C-M génère le caractère retour chariot propre à WINDOWS.
C-x rk découpe un rectangle dans le texte selectionné
C-x ry insère le rectange précédemment découpé
C-x rt insère une chaine à chaque ligne du rectangle selectionné
C-x ( entrer une macro
C-x ) enregistrer la macro
C-x e executer la macro
C-u n + C-x e éxecuter n fois la macro
C-c @ C-o outline-minor-mode: hide-other
C-c @ C-s outline-minor-mode: show-subtree
M-x untabify indenter avec des espaces
M-x tabify indenter avec des tabulations


4.3 Correcteur Othographique

# apt-get install ifrench-gut

M-x ispell-change-directory pur choisir la langue
M-x ispell-(buffer|region) lancer le correcteur othographique
M-x $ pour corriger un seul mot
M-x flyspell-mode correcteur interactif
M-x flyspell-buffer pour charger le correcteur


4.4 Mode DIRED

m pour marquer récursivement les répertoires
! pour exécuter une commande sur le fichier où les entrées marquées
M-! exécuter une commande SHELL
y info sur le fichier
O chown


5  /.emacs

Attention au caractères UTF-8 : ê Les instructions ci-dessous ressemble à celle des consoles :

export LANG=fr_FR.UTF-8
export LC_CTYPE=fr_FR.UTF-8

;; ;;; XEmacs backwards compatibility file
;; (setq user-init-file
;;       (expand-file-name "init.el"
;; 			(expand-file-name ".xemacs" "~")))
;; (setq custom-file
;;       (expand-file-name "custom.el"
;; 			(expand-file-name ".xemacs" "~")))

;; (load-file user-init-file)
;; (load-file custom-file)

;;
;; utf-8
;;
(setq locale-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)


6  /.emacs.el

Le fichier  /.emacs.el remplace le fichier  /.emacs. Les modifications via 'customize' + 'save options' y sont ajoutées.

exmple: fichier  /.emacs.el + meta-x eval-buffer.

;;--------------------------------------------------------------------
;; Virer la barre d'outils en dessous des menus
;(menu-bar-mode -1)
(if (>= emacs-major-version 21)
    (progn
      (tool-bar-mode -1)
      (scroll-bar-mode -1)
      (setq-default cursor-in-non-selected-windows nil)
      ))


7 svn

$ cd .emacs.d
$ wget http://www.xsteve.at/prg/emacs/psvn.el

Fichier  /.emacs :

...
(add-to-list 'load-path "~/.emacs.d")  ; Add this directory to Emacs' load path
(require 'psvn)                        ; Load psvn


8 flex-mode

http://www.emacswiki.org/emacs/FlexMode

$ wget http://ftp.sunet.se/pub/gnu/emacs-lisp/incoming/flex-mode.el

$ emacs flex-mode.el
M-x eval-buffer


9 bison-mode

$ wget http://svn.r-project.org/ESS/trunk/lisp/make-regexp.el
$ wget http://ftp.sunet.se/pub/gnu/emacs-lisp/incoming/bison-mode.el
$ mv make-regexp.el ~/.emacs.d/

à ajouter à make-regexp.el:

(provide 'make-regexp)

à ajouter à bison-mode.el

(add-to-list 'load-path "/home/nroche/.emacs.d/")
(defvar c-font-lock-keywords ())

$ emacs bison-mode.el
M-x eval-buffer


10 org-mode

Recharger les fichiers INFO (afin d'éviter de fermer et ré-ouvrir emacs) :

  • Dans un buffer vide, doner les chemin des fichiers à charger,
    info:/home/nroche/cvs/mediatex/doc/mediatex.info
    info:/usr/share/info/mediatex.info
    
  • Changer le mode : M-x org-mode
  • Placer le curseur sur la ligne à charger puis faire C-c C-o


11 Indenter avec des tabulations

Afin de faciliter la gestion concurrente du code, on souhaite parfois indenter les fichiers avec des tabulations plutôt que des espaces.

fichier  /.emacs

(setq-default c-basic-offset 4
              tab-width 4
              indent-tabs-mode t)

Rq: Il semble parfois nécessaire de basculer/rebasculer entre le mode C et C++ pour que se soit effecctif.


12 Python

Quelques outils :

  • # apt-get install flake8
    $ flake8 prog.py
    
    via emacs: M-X flycheck-mode

  • pylint
    ;; Vérifications en cours de frappe
    (when (functionp 'global-flycheck-mode)
      (global-flycheck-mode 1)
      (push 'python-pylint flycheck-checkers)
      )
    

On se connecte au MELPA :

.emacs ou sionon .emacs.d/init.el (mais pas les deux)

...
(prefer-coding-system 'utf-8)

;; INSTALL PACKAGES
;; --------------------------------------

(require 'package)

(add-to-list 'package-archives
       '("melpa" . "http://melpa.org/packages/") t)

(package-initialize)
(when (not package-archive-contents)
  (package-refresh-contents))

(defvar myPackages
  '(better-defaults
    ein
    elpy
    flycheck
    material-theme
    py-autopep8))

(mapc #'(lambda (package)
    (unless (package-installed-p package)
      (package-install package)))
      myPackages)

;; BASIC CUSTOMIZATION
;; --------------------------------------

(setq inhibit-startup-message t) ;; hide the startup message
(load-theme 'material t) ;; load material theme
(global-linum-mode t) ;; enable line numbers globally

;; PYTHON CONFIGURATION
;; --------------------------------------

(elpy-enable)
(elpy-use-ipython)

;; use flycheck not flymake with elpy
(when (require 'flycheck nil t)
  (setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
  (add-hook 'elpy-mode-hook 'flycheck-mode))

;; enable autopep8 formatting on save
(require 'py-autopep8)
(add-hook 'elpy-mode-hook 'py-autopep8-enable-on-save)

Si ça ne passe pas, executer les commandes à la main via M-X.

Home Up

This document is also available in PDF and PostScript format.



2018-12-06