emacs en read-only
Le
nospam
Bonjour
est-ce qu'il est possible d'utiliser emacs pour consulter un document sans
le modifier. Je sais qu'il est possible d'utiliser la commande
"find-file-read-only" mais j'aimerais faire cela depuis le shell, avec un
truc du genre
emacs --read-only monfichier.txt
J'ai cherché dans le man d'emacs et j'ai rien trouvé. J'ai pensé aussi à
créer un fichiers d'initialisation readonly.el qui mettrait le premier
buffer d'emacs dans le mode désiré et qu'on pourrait appeller
emacs -l readonly.el monfichier.txt
ou
emacs -f find-file-read-only monfichier.txt
mais là aussi mes connaissances d'emacs sont trop limitées et je n'y suis
pas arrivé. Si vous avez des pistes, je suis intéressé.
d'avance merci de votre aide
--
new
est-ce qu'il est possible d'utiliser emacs pour consulter un document sans
le modifier. Je sais qu'il est possible d'utiliser la commande
"find-file-read-only" mais j'aimerais faire cela depuis le shell, avec un
truc du genre
emacs --read-only monfichier.txt
J'ai cherché dans le man d'emacs et j'ai rien trouvé. J'ai pensé aussi à
créer un fichiers d'initialisation readonly.el qui mettrait le premier
buffer d'emacs dans le mode désiré et qu'on pourrait appeller
emacs -l readonly.el monfichier.txt
ou
emacs -f find-file-read-only monfichier.txt
mais là aussi mes connaissances d'emacs sont trop limitées et je n'y suis
pas arrivé. Si vous avez des pistes, je suis intéressé.
d'avance merci de votre aide
--
new

Poser une question


Pas vu non plus d'option au niveau de la ligne de commande.
Sinon avec
emacs -eval '(find-file-read-only "le_chemin_vers_le_fichier")'
?
Je viens de tester avec linux, ça fonctionne. Par contre avec Windows je
n'y arrive pas, à cause de cette saleté de console qui ne gère pas les
quotes et les arguments que les shells unix. Avec zsh.exe à la place de
cmd.exe c'est ok.
--
Sébastien Kirche
Moi sous Windows c'est tellement merdique que je gruges en faisant un
truc du genre :
SET monfic="le nom de mon fichier"
EMACS -l "ouvreenlectureseule"
dans le shell script (.bat), et après tu te fais un fichier
ouvreenlectureseule.el que tu mets par exemple dans le répertoire
site-lisp et dans lequel il y a cette ligne
(find-file-read-only (getenv "monfic"))
Un peu lourd quand même :(
--
Sébastien Kirche
Bien sûr. Mais les guillemets simples '' veulent dire en bash « prends
la chaine entre les guillemets telle qu'elle ». Ce que tu veux, c'est
au final lancer quelque chose comme
emacs -eval "(find-file-read-only "toto.txt")"
Et Emacs va interpréter le bout de lisp
(find-file-read-only "toto.txt")
(les guillemets extérieurs sont interprétés par le shell, et les
doubles autour de « toto.txt » sont échappés pour qu'ils soient passés
à Emacs, et que ce soit une chaine de caractères emacs-lisp).
On devrait donc y arriver avec :
emacs -eval "(find-file-read-only "$1")"
(qui ne marchera pas si le fichier contient des « » ou des « " »
dans son nom)
Sinon, on peut aussi faire simplement :
emacs "$1" -eval '(toggle-read-only 1)'
--
Matthieu