2017-09-16 3 views
0

J'ai créé deux courts fichiers .vim de basculer rapidement entre certaines configurations et les a placés dans ~/.vimComment faire pour exécuter un fichier Vimscript (.vim) à partir d'un répertoire différent?

Si je commence à vim de ~/.vim et faire :run write.vim ou :run code.vim, ils fonctionnent très bien, mais si je commence à vim de nulle part ailleurs (par exemple ~/) et essayez :run .vim/write.vim (à partir de ~/) ou :run ~/.vim/write.vim (de n'importe où ailleurs), il ne fonctionnera pas. Des idées pourquoi? Par souci d'exhaustivité, j'ai mis dans les deux fichiers .vim.

write.vim

colorscheme pencil 
set background=light 
set colorcolumn=0 
set wrap 
set nonumber 

code.vim

colorscheme tomorrow-night-eighties 
set background=dark 
set colorcolumn=100 
highlight ColorColumn ctermbg=darkgrey 
set nowrap 
set number 

Répondre

4

Vous devriez lire :runtime et 'runtimepath' documentation ->:h :runtime, :h 'runtimepath'. Vous verrez alors que vous voulez exécuter :so ~/.vim/sub/path.vim ou :runtime sub/path.vim dans votre cas. Voir aussi: What's the difference between ':source file' and ':runtime file' in vim?

Notez par ailleurs que ~/.vim/macros/ est le mieux adapté pour cela - même si personne ne l'utilise plus. Ou mieux encore, vous pouvez mettre vos définitions en fonction et les déclencher sur une liaison clé

function! s:toggle_settings() abort 
    let s:writing = 1 - get(s:, 'writing', 0) 
    if s:writing 
    colorscheme pencil 
    set background=light 
    set colorcolumn=0 
    set wrap 
    set nonumber 
    else 
    ... 
    endif 
endfunction 

nnoremap µ :call s:toggle_settings()<cr> 

Vous pouvez également détecter que le &filetype is not related to a programming language actuel, puis utilisez autocommandes

  1. pour changer la configuration de Au niveau du tampon (avec :setlocal - vous ne voulez pas utiliser :set comme vous êtes en ce moment).
  2. pour basculer la configuration de votre colorscheme chaque fois que vous changez de fenêtre, si besoin est. Mais cette façon de procéder peut être assez agressive, l'activation de la demande est probablement plus ergonomique.
+0

Merci pour l'info. Je n'ai pas réalisé comment ': runtime' fonctionnait réellement. Je vais certainement garder cette marque car si je veux la changer plus tard, mais ': runtime write.vim' ne fonctionne que de n'importe où. –