Pour mes "débuts" dans la programmation emacs-lisp, je voulais faire une
fonction qui me semblait simple mais qui ne l'est peut-être pas autant que
je le pensais. Le pseudo-code de cette fonction pourrait être
(defun inserer-header()
sauver la position actuelle du buffer
va au début du buffer (ligne 1, colonne 1)
switch (extension du fichier dans le buffer courant)
case "tex" : insérer "/path/to/file/monheader.tex"
case "java" : insérer "/path/to/file/monheader.java"
case "asy" : insérer "/path/to/file/monheader.asy"
default : "afficher une erreur dans le minibuffer"
end switch
restaurer la position du buffer
)
(global-set-key "\C-ch" 'inserer-header')
J'ai bien entendu essayé le module "autoinsert.el", mais il ne fait pas ce
que je veux (ou plutôt je ne suis pas arrivé à le faire fonctionner comme
je voulais.
Si vous pouviez me donner un petit coup de main pour réaliser cette
fonction, ce serait sympa...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
pjb
"" writes:
Bonjour
Pour mes "débuts" dans la programmation emacs-lisp, je voulais faire une fonction qui me semblait simple mais qui ne l'est peut-être pas autant que je le pensais. Le pseudo-code de cette fonction pourrait être
(defun inserer-header() sauver la position actuelle du buffer va au début du buffer (ligne 1, colonne 1) switch (extension du fichier dans le buffer courant) case "tex" : insérer "/path/to/file/monheader.tex" case "java" : insérer "/path/to/file/monheader.java" case "asy" : insérer "/path/to/file/monheader.asy" default : "afficher une erreur dans le minibuffer" end switch restaurer la position du buffer )
Pour mes "débuts" dans la programmation emacs-lisp, je voulais faire une
fonction qui me semblait simple mais qui ne l'est peut-être pas autant que
je le pensais. Le pseudo-code de cette fonction pourrait être
(defun inserer-header()
sauver la position actuelle du buffer
va au début du buffer (ligne 1, colonne 1)
switch (extension du fichier dans le buffer courant)
case "tex" : insérer "/path/to/file/monheader.tex"
case "java" : insérer "/path/to/file/monheader.java"
case "asy" : insérer "/path/to/file/monheader.asy"
default : "afficher une erreur dans le minibuffer"
end switch
restaurer la position du buffer
)
Pour mes "débuts" dans la programmation emacs-lisp, je voulais faire une fonction qui me semblait simple mais qui ne l'est peut-être pas autant que je le pensais. Le pseudo-code de cette fonction pourrait être
(defun inserer-header() sauver la position actuelle du buffer va au début du buffer (ligne 1, colonne 1) switch (extension du fichier dans le buffer courant) case "tex" : insérer "/path/to/file/monheader.tex" case "java" : insérer "/path/to/file/monheader.java" case "asy" : insérer "/path/to/file/monheader.asy" default : "afficher une erreur dans le minibuffer" end switch restaurer la position du buffer )
(defun insert-header () (interactive) ; pour pouvoir taper M-x insert-header RET (save-excursion (goto-char (point-min)) (let ((extension (file-name-extension (buffer-file-name (current-buffer)))) (header-file (concat *header-file-directory* "/header." extension))) (when (file-exists-p header-file) (insert-file-content header-file)))))
(global-set-key (kbd "C-c h") 'inserer-header)
Le principal, c'est de ne pas mélanger le français et l'anglais dans les noms des symboles, c'est HORRIBLE!
Merci pour ton aide. Après un effort soutenu j'étais parvenu à une solution un peu différente de la tienne (plus proche de mon pseudo-code). Je trouve l'idée de la concaténation de chemin, nom et extension assez séduisante.
(defun insert-header ()
(interactive) ; pour pouvoir taper M-x insert-header RET
(save-excursion
(goto-char (point-min))
(let ((extension (file-name-extension (buffer-file-name
(current-buffer))))
(header-file (concat *header-file-directory* "/header."
extension)))
(when (file-exists-p header-file)
(insert-file-content header-file)))))
(global-set-key (kbd "C-c h") 'inserer-header)
Le principal, c'est de ne pas mélanger le français et l'anglais dans
les noms des symboles, c'est HORRIBLE!
Merci pour ton aide. Après un effort soutenu j'étais parvenu à une solution
un peu différente de la tienne (plus proche de mon pseudo-code). Je trouve
l'idée de la concaténation de chemin, nom et extension assez séduisante.
(defun insert-header () (interactive) ; pour pouvoir taper M-x insert-header RET (save-excursion (goto-char (point-min)) (let ((extension (file-name-extension (buffer-file-name (current-buffer)))) (header-file (concat *header-file-directory* "/header." extension))) (when (file-exists-p header-file) (insert-file-content header-file)))))
(global-set-key (kbd "C-c h") 'inserer-header)
Le principal, c'est de ne pas mélanger le français et l'anglais dans les noms des symboles, c'est HORRIBLE!
Merci pour ton aide. Après un effort soutenu j'étais parvenu à une solution un peu différente de la tienne (plus proche de mon pseudo-code). Je trouve l'idée de la concaténation de chemin, nom et extension assez séduisante.
Suite à un autre post (sur template), je réagis un peu tard. Pour la gestion des en-têtes (suivant le type de fichier), regarde template.el (http://emacs-template.sourceforge.net/) C'est super simple à configurer et tu devrais trouver ton bonheur.
BlueDian
Bonjour,
Suite à un autre post (sur template), je réagis un peu tard.
Pour la gestion des en-têtes (suivant le type de fichier), regarde
template.el (http://emacs-template.sourceforge.net/)
C'est super simple à configurer et tu devrais trouver ton bonheur.
Suite à un autre post (sur template), je réagis un peu tard. Pour la gestion des en-têtes (suivant le type de fichier), regarde template.el (http://emacs-template.sourceforge.net/) C'est super simple à configurer et tu devrais trouver ton bonheur.