Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/02/2008, à 04:07

slapierre

emacs::comment exécuter un "tempo"?

Jusqu'à  maintenant j'utilisais Kate pour développer, mais comme pour le travail je devrai éventuellement porter du code sur des vieux systèmes sans interface graphique j'ai décidé d'apprendre Emacs. Je suis en train de me farcir les divers documents recommandés tout en tentant d'être productif au boulot.

J'ai trouvé des exemples qui montrent comment créer des templates (bouts de code en LISP qu'on ajoute dans .emacs) mais je ne sais pas comment les appeler (exécuter?)

Par exemple, comment appeler le tempo suivant?

;;; C-Mode Templates

(tempo-define-template "c-if"
		       '(> "if (" (p "if-clause: " clause) ")" n>
                           "{" > n>
                           > r n
                           "}" > n>
                           )
		       "if"
		       "Insert a C if statement"
		       'c-tempo-tags)

Voici le lien o๠j'ai trouvé le code (bas de la page) : http://infolab.stanford.edu/~manku/dotemacs.html

Aussi, si vous savez comment faire pour ajouter le numéro de ligne dans le fichier (à  la F11 dans Kate) ce serait génial...

Simon


"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton

Hors ligne

#2 Le 15/02/2008, à 10:26

Astier

Re : emacs::comment exécuter un "tempo"?

En gros la configuration de Emacs se fait dans le fichier ~/.emacs qui est lu lors de l'ouverture d'Emacs.

Voici une partie de mon .emacs dans lequel tu trouveras l'affichage des lignes et colonnes :

;; Taille et position par defaut de la fenetre
(if window-system
(setq initial-frame-alist '((top . 00)(left . 00)(width . 120)(height . 38))))

;;################################################################################
;;                               REDEFINITION  CLAVIER
;;################################################################################

;;--------------------------------------------------------------------------------
;;                                       raccourcis clavier
;;--------------------------------------------------------------------------------

;(global-set-key [f2] 'save-buffer)
;(global-set-key [f3] 'find-file)
;(global-set-key [f4] 'kill-this-buffer)
;(global-set-key [f9] 'compile)
;(global-set-key [(control z)] 'undo)
;(global-set-key [(meta g)] 'goto-line)

;;--------------------------------------------------------------------------------
;;                                       sélection avec SHIFT
;;--------------------------------------------------------------------------------

(custom-set-variables '(pc-selection-mode t nil (pc-select)))

;;################################################################################
;;                                   Dà‰SACTIVE LES DIFFà‰RENTES BARRES
;;################################################################################

;;--------------------------------------------------------------------------------
;;                                           barre de menu
;;--------------------------------------------------------------------------------
(menu-bar-mode 1)

;;--------------------------------------------------------------------------------
;;                                           barre d'icones
;;--------------------------------------------------------------------------------
(tool-bar-mode -1)

;;--------------------------------------------------------------------------------
;;                                        la barre de défilement
;;--------------------------------------------------------------------------------
(scroll-bar-mode 1)

;;################################################################################
;;                                          THàˆME - AFFICHAGE
;;################################################################################
(require 'color-theme)
(color-theme-calm-forest)

;;################################################################################
;;                                  ACTIVER LA COLORATION SYNTAXIQUE
;;################################################################################
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
(setq font-lock-maximum-size nil)

;;################################################################################
;;                              SURLIGNAGE D'UNE Rà‰GION Sà‰LECTIONNà‰E
;;################################################################################
(transient-mark-mode t)


;;################################################################################
;;                   POUR NE PAS AVOIR à€ TAPER EN ENTIER LA Rà‰PONSE YES/NO
;;################################################################################

(fset 'yes-or-no-p 'y-or-n-p)

;;################################################################################
;;                  NUMà‰ROTATION DES LIGNES EST DES COLONNES
;;################################################################################
;; Show line-number in the mode line
(line-number-mode 1)

;; Show column-number in the mode line
(column-number-mode 1)

;;################################################################################
;;                        POUR AVOIR L'HEURE DANS LA BARRE D'ETAT
;;################################################################################
(display-time)

(setq display-time-24hr-format t)  ;; Format 24 heures


;;################################################################################
;;                             SUPPORT DE LA SOURIS
;;################################################################################


(mouse-wheel-mode t)



;;################################################################################
;;              AUTO FILL MODE(retour a la ligne automatiquement)
;;################################################################################


(setq auto-fill-mode 1)

(add-to-list 'auto-mode-alist (cons "\\.php$" 'php-mode))

(defun toggle-setnu-mode ()
      (interactive)
      (if setnu-mode
        (setnu-mode -1)
        (setnu-mode 1)))



;;################################################################################
    ; METTRE TOUS LES FICHIERS DE SAUVEGARDE DANS UN SEUL Rà‰PERTOIRE
;;################################################################################




(setq backup-directory-alist
    '(("." . "~/.emacs-backup-files/")))




;;################################################################################
;                          TEXT AND AUTO FILL MODE
;;################################################################################


(setq default-major-mode 'text-mode)
(add-hook 'text-mode-hook 'text-mode-hook-identify)
(add-hook 'text-mode-hook 'turn-on-auto-fill)



;;################################################################################
;;                     CHEMIN COMPLET DANS LA BARRE DE TITRE ?
;;################################################################################

(setq frame-title-format "%S: %f")



;;################################################################################
 ;; POUR ENREGISTRER AUTOMATIQUEMENT LA POSITION DU CURSEUR QUAND ON QUITTE UN
;; FICHIER, ET Y RETOURNER AUTOMATIQUEMENT à€ LA Rà‰OUVERTURE
;;################################################################################

(require 'saveplace)
(setq-default save-place t)


;;################################################################################
;; PARENTHESE MATCHING, PERMET DE VERIFIER AU FUR ET à€ MESURE DE LA FRAPPE QUE
;; L'ON FERME BIEN CE QUE L'ON OUVRE, AUSSI BIEN POUR LES PARENTHàˆSES QUE LES
;; CROCHETS OU LES ACCOLADES.
;;################################################################################


(require 'paren)
(show-paren-mode 1)
(setq-default hilight-paren-expression t)


;;################################################################################
;; FERME AUTOMATIQUEMENT PARENTHàˆSES, CROCHETS, GUILLEMETS
;; AU COURS DE LA FRAPPE
;;################################################################################


(defun insert-parentheses () "insert parentheses and go between them"
  (interactive)
(insert "()")
(backward-char 1))
(defun insert-brackets () "insert brackets and go between them" (interactive)
(insert "[]")
(backward-char 1))
(defun insert-braces () "insert curly braces and go between them" (interactive)
(insert "{}")
(backward-char 1))
(defun insert-quotes () "insert quotes and go between them" (interactive)
(insert "\"\"")
(backward-char 1))
(global-set-key "(" 'insert-parentheses) ;;inserts "()"
(global-set-key "[" 'insert-brackets)
(global-set-key "{" 'insert-braces)
(global-set-key "\"" 'insert-quotes)

;;################################################################################
;;                  SUPPRIME TOUS LES ESPACES EN FIN DE LIGNE
;;################################################################################

(autoload 'nuke-trailing-whitespace "whitespace" nil t)



;;################################################################################
;;                      POUR QUE LA COULEUR MARCHE EN MODE SHELL.
;;################################################################################

(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
(defun to-bottom () (interactive) "Recenter screen so that current
line is on the bottom of the screen"
  (recenter -1)
  )
(defun set-key-to-bottom () (interactive)
  (local-set-key "\C-l" 'to-bottom)
  )
(add-hook 'shell-mode-hook 'set-key-to-bottom)


;;################################################################################
;; SUPPRIMER LES FICHIERS DE SAUVEGARDE EN QUITTANT.
;; (VOUS SAVEZ, CES FAMEUX FICHIERS DONT LE NOM SE TERMINE PAR « ~ »)
;;################################################################################

(setq make-backup-files nil)

A+

Hors ligne

#3 Le 16/02/2008, à 10:17

Aurel34

Re : emacs::comment exécuter un "tempo"?

slapierre a écrit :

Je suis en train de me farcir les divers documents recommandés tout en tentant d'être productif au boulot.

bon courage, la doc est à  mon avis le gros point faible de cet outil (par ailleurs excellent) smile

J'ai trouvé des exemples qui montrent comment créer des templates (bouts de code en LISP qu'on ajoute dans .emacs) mais je ne sais pas comment les appeler (exécuter?)...

le package tempo, que tu sembles privilégier définit des fonctions lisp, et en particulier "tempo-complete-tag". Donc il suffit d'aller dans ton .emacs pour associer une touche à  cet,te fonction, par exemple:

(global-sek-key [f1] 'tempo-complete-tag)

au passage n'oublie pas le quote (le ' ), en lisp ça permet de passer des symboles sans les évaluer (comme un pointeur en gros).

Aussi, si vous savez comment faire pour ajouter le numéro de ligne dans le fichier (à  la F11 dans Kate) ce serait génial...

pour les lignes, ce n'est pas une fonctionnalité de "base" d'emacs, mais tu as deux solution:
- soit tu regardes dans la modbar et tu as l'info (sous la forme L112), c'est le line-number_mode, actif par défaut)
- soit tu utilises le setnu-mode (le nom vient de vim), qui est dans le paquet "emacs-goodies-el". Pour l'appeler tu peux assigner une touche ou l'appeler directement (M-x setnu-mode).

#4 Le 16/02/2008, à 23:07

slapierre

Re : emacs::comment exécuter un "tempo"?

Merci, je vais regarder ça!

Simon


"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton

Hors ligne

#5 Le 18/02/2008, à 13:36

Aurel34

Re : emacs::comment exécuter un "tempo"?

tiens je viens aussi de voir ça: http://www.emacswiki.org/cgi-bin/wiki/TempoSnippets
je ne sais pas si ça t'intéresse, c'est une petite extension pour tempo qui a l'air sympa smile

Hors ligne