Extraire le résultat d'une commande shell dans une variable d'un fichier .vimrc?


22

Dans mon fichier .vimrc, je voudrais stocker dans une variable le résultat d'une commande externe, dans mon cas:

$ echo $LANG

Pour que mon vimrcdossier ait:

let language = output(!echo $LANG)
if language == 'en'
   nnoremap <somekey> <ohanotherkey!>
end if

Jusqu'à présent, je n'ai pas trouvé comment le faire. J'ai trouvé qu'en mode commande, :read !echo $LANGinsérer dans mon fichier actuel le contenu que je recherche. Mais je ne sais pas comment l'écrire dans un fichier vimrc.

Réponses:


22

Vous pouvez le faire avec la systemfonction:

let language = system('echo $LANG')

Point bonus: si votre sortie est une liste, vous pouvez utiliser à la systemlistplace pour récupérer une liste. par exemple

let files = systemlist('ls')
" ['bin', 'dev', ... ]

réf: :h system


13

Si LANGest une variable d'environnement, vous pouvez simplement faire:

let language = $LANG

Ou, encore plus simple:

if $LANG == 'en'
…
endif

Cela ne répond pas exactement à ma question trop générale ... mais c'est encore mieux! Merci.
Feffe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.