temas colores color activar vim color-scheme

colores - temas vim



En mi.vimrc, ¿cómo puedo verificar la existencia de un esquema de color? (6)

En un .vimrc , ¿es posible cargar una combinación de colores solo si existe?


Este es el wat que tengo en mi archivo .vimrc .

if filereadable( expand("$HOME/.vim/colors/sublimemonokai.vim") ) colorscheme sublimemonokai "https://github.com/ErichDonGubler/vim-sublime-monokai " vim-sublime-monokai only support 256 colours in terminal. If you are using a terminal which support truecolor like iterm2, enable the GUI color set termguicolors " Otherwise, use below setting to activate the 256 color in terminal set t_Co=256 else echom "The sublimemonokai.vim were not found to be used as colorscheme. elflord will be set for the timebeing..." colorscheme elflord endif

Básicamente comprueba si el esquema de color que me gusta existe en la máquina o no. Si lo hace, lo seleccionará y aplicará todos los ajustes necesarios para ello. De lo contrario, elija un esquema de color adecuado que se envíe con vim.

Al buscar otras respuestas, mi respuesta comparte parte de bit con @ user427390 answer y tiene otra condición adicional.

El siguiente enlace me ha ayudado mucho en la creación de scripts de mis propios archivos relacionados con .vimrc y vim: http://learnvimscriptthehardway.stevelosh.com/


Mi metodo es similar

if filereadable( expand("$HOME/.vim/colors/railscast.vim") ) colorscheme railscast endif

Esto es un poco más robusto que codificar todo el camino.


Normalmente uso un colorscheme favorito con un colorscheme si mi favorito no está disponible. Un try anidado hará que esto funcione:

try colorscheme solarized catch try colorscheme peachpuff catch endtry endtry

Si ninguno de los dos colorscheme está disponible, se carga el predeterminado (lo que sea que esté en su sistema). No se muestran errores si uno o ambos de los esquemas de colores no están disponibles. Pon tu colorscheme preferido primero.

Además, la catch sin argumentos atrapa cualquier error. Esto es útil si está tratando con diferentes configuraciones regionales que dan diferentes mensajes de error.


Puede usar la función de filereadable para verificar si existe una combinación de colores (por ejemplo, schemename ): marque una vez en ~/vimfiles/colors (Win32, para Unix use ~/.vim/colors/ ) y una vez en $VIMRUNTIME/colors/ :

if filereadable("/path/to/schemename.vim") colo schemename endif


Una alternativa a la respuesta de @eckes sería intentar cargar el esquema de colores y lidiar con el error si no existe:

try colorscheme mayormaynotexist catch /^Vim/%((/a/+)/)/=:E185/ " deal with it endtry


Usar :colorscheme en un try-catch como Randy lo ha hecho puede ser suficiente si solo quieres cargarlo si existe y hacer otra cosa en caso contrario. Si no estás interesado en la otra parte, un simple :silent! colorscheme :silent! colorscheme es suficiente.

De lo contrario, globpath() es el camino a seguir. Puede, tehn, comprobar cada ruta devuelta con filereadable() si realmente lo desea.

" {rtp}/autoload/has.vim function! has#colorscheme(name) pat = ''colors/''.a:name.''.vim'' return !empty(globpath(&rtp, pat)) endfunction " .vimrc if has#colorscheme(''desert'') ...