Je voudrais modifier mon .vimrc
pour lire la valeur d'une variable d'un fichier externe. Comment puis-je faire ceci?
Plus précisément, un ami et moi partageons un dépôt git avec nos .vim
fichiers, mais il y a quelques petites différences dans ce que nous voulons dans nos configurations. Donc, la plupart du fichier est commun, mais nous utilisons des instructions if pour déterminer s'il faut charger des sections spécifiques à l'utilisateur, comme ceci:
let whoami = "user2"
if whoami == "user1"
...
Après avoir vérifié notre contrôle .vimrc
hors source commun , nous devons chacun changer l' let whoami
affectation afin que notre propre section soit chargée. Au lieu de cela, j'aimerais garder un fichier séparé, qui peut être différent pour chacun de nous, et à partir duquel vim chargera cette valeur de variable.
Peut-être qu'un autre angle à ce sujet est le suivant: Vim lira-t-il automatiquement tous les fichiers de mon .vim
répertoire? Si c'est le cas, nous pourrions chacun y placer un lien symbolique appelé username.vim, et le lier à un fichier externe qui serait différent pour chacun de nous.
let whoami = ""
juste avant lasource
ligne, de sorte que si elle ne parvient pas à charger le fichier externe, la variable existe et j'obtiens le message d'erreur que nous avions configuré précédemment pour la variable non définie.silent! source
partieUtiliser un try / catch
Depuis que j'ai posé cette question, j'ai trouvé un autre cas d'utilisation pour charger un fichier externe: des ajustements spécifiques à la machine.
Étant donné que je peux ou non avoir besoin de faire des ajustements sur une machine donnée, j'utilise a
try/catch
pour charger le fichier externe; s'il n'y a pas un tel fichier, je le laisse échouer en silence.la source
Pour répondre à la dernière question, les fichiers dans
~/.vim
ne sont pas chargés automatiquement, mais tous les fichiers dans le~/.vim/plugin
sont.la source
after
,autoload
)Vous pouvez demander à votre ~ / .vimrc de charger un autre fichier à l'aide de la
:source
commande. Par exemple, vous pouvez placer chacune vos commandes uniques dans ~ / .myvimrc et charger ces commandes avecOu, comme vous le pensiez, vous pouvez chacun mettre votre nom dans ce fichier comme ceci:
puis mettez ceci dans votre ~ / .vimrc:
Plutôt que de mettre vos noms dans des fichiers, vous pouvez utiliser $ USER comme l'a suggéré Akira, ou définir en
user
utilisantwhoami
, comme ceci:La fonction substitute () est nécessaire car la sortie de system () a généralement un '\ n' cloué à la fin.
la source
whoami
ne fonctionne pas sur les fenêtreswhoami
engendre un nouveau processus, lorsque vous ouvrez votre éditeur, il devrait être rapide et ne pas (inutile) recommencer plusieurs fois.le nom de l'utilisateur connecté est disponible dans la variable d'environnement $ USER. vous pouvez accéder facilement à cette variable:
alors, utilisez simplement
dans votre vimrc et mettez vos paramètres spécifiques à l'utilisateur dans
ou quel que soit votre nom de connexion
la source
Je ne sais pas à quoi ressemble votre vimrc, donc cela peut ne pas être possible, mais s'il y a de grandes parties que vous et votre ami partagez, vous voudrez peut-être les diviser en plugins séparés. Vous pouvez ajouter des fichiers au
~/.vim/plugin
répertoire pour les charger au démarrage. (Ils sont chargés par ordre alphabétique - utilisez:scriptnames
pour vérifier.)De cette façon, vous pouvez chacun avoir un vimrc qui est complètement unique, mais toutes vos configurations courantes sont dans des plugins. Si vous les décomposez logiquement, cela facilite également le partage avec les autres.
la source