[vim] test -r

La question :

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/

Poser votre question sur le forum Logiciels

Les 4 réponses :

2009-07-23, 18:05(+02), 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

Bonjour,

On 23 juil, 18:05, Manuel Pégourié-Gonnard <mpg+n...@elzevir.fr>
a écrit :


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()


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

Luc Hermitte scripsit:


On 23 juil, 18:05, Manuel Pégourié-Gonnard <mpg+n...@elzevir.fr>
a écrit :


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()


Merci : j'ai à la fois le nom des fonctions que je cherchais, et la
manière de les trouver, c'est super.


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/

Stephane CHAZELAS scripsit:


2009-07-23, 18:05(+02), 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.


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/

Poser votre question sur le forum Logiciels

Questions similaires :