Comparto mi archivo de configuración VIM entre varias computadoras. Sin embargo, quiero que algunas configuraciones sean específicas para ciertas computadoras.
Por ejemplo, los tamaños de fuente en la computadora portátil de alta resolución deben ser diferentes al escritorio de baja resolución. Y lo que es más importante, quiero que gVIM en Windows se comporte más windowsy y MacVim en OSX se comporte más maccy y gVIM en Linux se comporte como siempre. (Eso podría ser un sentimiento extraño, pero estoy muy acostumbrado a cambiar los modos mentales al cambiar de SO)
¿Hay alguna manera de hacer algunas configuraciones en la .vimrc
máquina o en el sistema operativo?
vim
operating-systems
vimrc
dependencies
bastibe
fuente
fuente
has('gui_running')
si necesita diferenciar entre el modo tty y el modo GUI.has('mac')
es cierto para todos los Mac o solo para Macs anteriores a OS-X. Ver:help feature-list
para la lista completa.has('unix')
. Mi error.has("mac")
. Supongo que usaron algún parche que realmente hace que la prueba de funciones funcione. Si confía en lahas("mac")
prueba, realice alguna prueba para asegurarse de que sea compatible con su vim.Para probar una máquina en particular, puede probar la salida del
hostname
comando. Por ejemplo,También puede probar el valor de las variables de entorno disponibles:
La
$DISPLAY
variable también puede ser útil.fuente
system('hostname')
fuemachine.mycompany.com\n
, así que tuve que cambiar el comando sustituto asubstitute(system('hostname'), '\.\_.*$', '', '')
.Tengo este fragmento en mi
vimrc
:Esto simplemente se ejecuta
source $HOME/.$HOSTNAME.vimrc
si existe. He usadohostname()
y concatenación, también podría usar el más concisoexpand('$HOME/.$HOSTNAME.vimrc')
si sabe que$HOSTNAME
siempre está configurado.fuente
La respuesta anterior sobre la detección del sistema operativo no detecta OS X en MacVim para mí (y tampoco lo hace el uso
has("macunix")
como sugiere la documentación).Esto es lo que uso para distinguir entre Windows y OS X:
Tenga en cuenta que
has("win32")
funcionó para mí, incluso en Vim de 64 bits en Windows de 64 bits.También puede usar pruebas similares
uname
dentro delif has("unix")
bloque para distinguir otros sabores de Unix. Simplemente ejecuteuname
ouname -a
desde la línea de comandos para ver lo que necesita comparars:uname with
. Vea también:h matchstr()
si necesita comparar solo una parte de la salida de uname.fuente
Con muchas máquinas, enumerar todos los nombres de host en
.vimrc
puede ser tedioso, podría ser más fácil distinguir entre diferentes sabores de Unix:fuente
Podrías poner las cosas específicas del sistema operativo en un .gvimrc personalizado para cada máquina, y usar un .vimrc común en todas ellas. Ambos archivos se leen cuando se inicia GVim, solo se lee .vimrc cuando se inicia el Vim no gui.
fuente
Con respecto a la separación entre Linux y Windows, simplemente puede establecer diferentes configuraciones
.vimrc
y_vimrc
, en consecuencia.fuente