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é.
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
Sébastien Kirche
Le 30 juin 2008 à 12:17, nospam s'est exprimé ainsi :
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é.
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
Le 30 juin 2008 à 12:17, nospam s'est exprimé ainsi :
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é.
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.
Le 30 juin 2008 à 12:17, nospam s'est exprimé ainsi :
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é.
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
Vincent Belaïche
Sébastien Kirche a écrit :
Le 30 juin 2008 à 12:17, nospam s'est exprimé ainsi :
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é.
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.
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"))
Sébastien Kirche a écrit :
Le 30 juin 2008 à 12:17, nospam s'est exprimé ainsi :
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é.
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.
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
Le 30 juin 2008 à 12:17, nospam s'est exprimé ainsi :
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é.
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.
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"))
Sébastien Kirche
Le 30 juin 2008 à 22:29, Vincent Belaïche a dit :
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
Le 30 juin 2008 à 22:29, Vincent Belaïche a dit :
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
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
mais bien entendu, il semble que emacs ne connaisse pas le fichier $1.. Est-ce qu'on peut passer un argument d'un script shell à une commande emacs ?
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)
mais bien entendu, il semble que emacs ne connaisse pas le fichier $1..
Est-ce qu'on peut passer un argument d'un script shell à une commande
emacs ?
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)
mais bien entendu, il semble que emacs ne connaisse pas le fichier $1.. Est-ce qu'on peut passer un argument d'un script shell à une commande emacs ?
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)