Discussion:
[vim] test -r
(trop ancien pour répondre)
Manuel Pégourié-Gonnard
2009-07-23 16:05:03 UTC
Permalink
Bonjour,

Est-il possible en vimscript de tester si un fichier existe et est
lisible (comme le test -r du shell) ? Je n'arrive pas à trouver dans
l'aide, je n'utilise peut-être pas les bons mots-clé.

Ou peut-être qu'il faut tourner le problème dans l'autre sens, et se
demander comment récupérer le code de sortie d'une commande externe
(comme 'test', justement) depuis vim ? Là non plus je ne trouve pas.

Merci d'avance !
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Stephane CHAZELAS
2009-07-23 19:05:52 UTC
Permalink
2009-07-23, 18:05(+02), Manuel Pégourié-Gonnard:
[...]
Post by Manuel Pégourié-Gonnard
Est-il possible en vimscript de tester si un fichier existe et est
lisible (comme le test -r du shell) ? Je n'arrive pas à trouver dans
l'aide, je n'utilise peut-être pas les bons mots-clé.
Ou peut-être qu'il faut tourner le problème dans l'autre sens, et se
demander comment récupérer le code de sortie d'une commande externe
(comme 'test', justement) depuis vim ? Là non plus je ne trouve pas.
[...]

:help shell_error

Mais peut-etre, dependant de ce que tu veux faire, qu'il y a un
autre moyen de s'y prendre. Le probleme avec ce genre de test
est que ca introduit des race conditions. Peut-etre que tu peux
juste essayer de lire le fichier et prendre une action si ca
echoue...
--
Stéphane
Manuel Pégourié-Gonnard
2009-07-24 13:30:37 UTC
Permalink
Post by Stephane CHAZELAS
[...]
Post by Manuel Pégourié-Gonnard
Est-il possible en vimscript de tester si un fichier existe et est
lisible (comme le test -r du shell) ? Je n'arrive pas à trouver dans
l'aide, je n'utilise peut-être pas les bons mots-clé.
Ou peut-être qu'il faut tourner le problème dans l'autre sens, et se
demander comment récupérer le code de sortie d'une commande externe
(comme 'test', justement) depuis vim ? Là non plus je ne trouve pas.
[...]
:help shell_error
Merci.
Post by Stephane CHAZELAS
Mais peut-etre, dependant de ce que tu veux faire, qu'il y a un
autre moyen de s'y prendre. Le probleme avec ce genre de test
est que ca introduit des race conditions. Peut-etre que tu peux
juste essayer de lire le fichier et prendre une action si ca
echoue...
En fait, c'est pour un raccourci de compilation : j'aimerais tester
l'existence d'un makefile, et lancer make s'il y en a un, ou bien une
commande de compilation par défaut s'il n'y en a pas. Je ne crois aps
que le code de retour de make permette distinguer une absence de
Makefile d'une absence de règle appropriée. Or dans le premier cas, ça
vaut généralement dire que je peux compiler avec une règle par défaut le
projet en cours, alors que dans le second, ça veut souvent dire que je
me suis viandé en écrivant le Makefile...
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Luc Hermitte
2009-07-24 08:59:45 UTC
Permalink
Bonjour,
Post by Manuel Pégourié-Gonnard
Est-il possible en vimscript de tester si un fichier existe et est
lisible (comme le test -r du shell) ? Je n'arrive pas à trouver dans
l'aide, je n'utilise peut-être pas les bons mots-clé.
Oui, avec
:h functions
/file.*(
Ou mieux:
:h file*(<c-d>
-> filewritable(), filereadeable()
Post by Manuel Pégourié-Gonnard
Ou peut-être qu'il faut tourner le problème dans l'autre sens, et se
demander comment récupérer le code de sortie d'une commande externe
(comme 'test', justement) depuis vim ? Là non plus je ne trouve pas.
:h system()

Mais ...retiens le :h functions (au pluriel) si tu te mets au viml.

--
Luc Hermitte
Manuel Pégourié-Gonnard
2009-07-24 13:21:06 UTC
Permalink
Post by Luc Hermitte
Post by Manuel Pégourié-Gonnard
Est-il possible en vimscript de tester si un fichier existe et est
lisible (comme le test -r du shell) ? Je n'arrive pas à trouver dans
l'aide, je n'utilise peut-être pas les bons mots-clé.
Oui, avec
:h functions
/file.*(
:h file*(<c-d>
-> filewritable(), filereadeable()
Merci : j'ai à la fois le nom des fonctions que je cherchais, et la
manière de les trouver, c'est super.
Post by Luc Hermitte
Post by Manuel Pégourié-Gonnard
Ou peut-être qu'il faut tourner le problème dans l'autre sens, et se
demander comment récupérer le code de sortie d'une commande externe
(comme 'test', justement) depuis vim ? Là non plus je ne trouve pas.
:h system()
Mais ...retiens le :h functions (au pluriel) si tu te mets au viml.
Ok, merci beaucoup pour ce bon conseil.
--
Manuel Pégourié-Gonnard Institut de mathématiques de Jussieu
http://weblog.elzevir.fr/ http://people.math.jussieu.fr/~mpg/
Loading...