Je partage mon fichier de configuration VIM entre plusieurs ordinateurs. Cependant, je souhaite que certains paramètres soient spécifiques à certains ordinateurs.
Par exemple, la taille des polices d'un ordinateur portable haute résolution doit être différente de celle d'un ordinateur basse résolution. Et plus important encore, je veux que gVIM sous Windows se comporte plus souvent et que MacVim sous OSX se comporte davantage et que gVIM sous Linux se comporte comme il le fait toujours. (Cela pourrait être un sentiment étrange, mais je suis très habitué à changer de mode mental lorsque je change de système d'exploitation)
Existe-t-il un moyen de définir quelques paramètres dans la .vimrc
machine ou le système d'exploitation?
la source
has('gui_running')
si vous devez faire la différence entre le mode tty et le mode interface graphique.has('mac')
est vrai pour tous les Mac ou uniquement pour les Mac antérieurs à OS-X. Voir:help feature-list
pour la liste complète.has('unix')
. Mon erreur.has("mac")
. À mon avis, ils ont utilisé un correctif qui fait en sorte que le test de fonctionnalité fonctionne. Si vous comptez surhas("mac")
test, faites des tests pour vous assurer qu'il est pris en charge sur votre vim.Pour tester une machine particulière, vous pouvez tester la sortie de la
hostname
commande. Par exemple,Vous pouvez également tester la valeur des variables d’environnement disponibles:
La
$DISPLAY
variable peut aussi être utile.la source
system('hostname')
étaitmachine.mycompany.com\n
, je devais donc changer la commande de substitution ensubstitute(system('hostname'), '\.\_.*$', '', '')
.J'ai cet extrait dans mon
vimrc
:Ceci s’exécute simplement
source $HOME/.$HOSTNAME.vimrc
s’il existe. J'ai utiliséhostname()
et concaténation, vous pouvez également utiliser le plus succinctexpand('$HOME/.$HOSTNAME.vimrc')
si vous savez qu'il$HOSTNAME
est toujours défini.la source
La réponse précédente à propos de la détection de système d'exploitation ne détecte pas OS X sous MacVim pour moi (et l'utilisation ne correspond pas non plus
has("macunix")
comme le suggère la documentation).Voici ce que j'utilise pour distinguer Windows et OS X:
Notez que cela a
has("win32")
fonctionné pour moi, même dans Vim 64 bits sur Windows 64 bits.Vous pouvez également utiliser des tests similaires
uname
dans leif has("unix")
bloc pour distinguer d'autres versions d'Unix. Il suffit de lanceruname
ouuname -a
de la ligne de commande pour voir ce que vous devez comparers:uname with
. Voir aussi:h matchstr()
si vous avez besoin de comparer seulement une partie de la sortie de uname.la source
Avec beaucoup de machines, lister tous les noms d’hôtes
.vimrc
peut devenir fastidieux, il pourrait être plus facile de faire la distinction entre différentes saveurs Unix:la source
Vous pouvez simplement placer les éléments spécifiques au système d'exploitation dans un fichier .gvimrc personnalisé pour chaque ordinateur et utiliser un fichier .vimrc commun sur chacun d'eux. Les deux fichiers sont lus au démarrage de GVim, seul le fichier .vimrc est lu au démarrage de Vim non-gui.
la source
En ce qui concerne la séparation entre Linux et Windows - vous pouvez simplement mettre différents paramètres dans
.vimrc
et_vimrc
, en conséquence.la source