如何从其他目录运行Vimscript(.vim)文件?

时间:2017-09-16 01:28:16

标签: vim

我创建了两个简短的.vim文件,可以在某些配置之间快速切换,并将它们放在~/.vim

如果我从~/.vim启动vim并执行:run write.vim:run code.vim,那么它们工作正常,但如果我从其他任何地方启动vim(例如~/)并尝试{ {1}}(来自:run .vim/write.vim)或~/(来自其他任何地方),它将无法运行。有什么想法吗?

为了完整起见,我已经放入.vim文件。

write.vim

:run ~/.vim/write.vim

code.vim

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

1 个答案:

答案 0 :(得分:4)

您应该阅读:runtime'runtimepath'文档 - > :h :runtime:h 'runtimepath'

然后,您会看到您确实想要在您的案例中执行:so ~/.vim/sub/path.vim:runtime sub/path.vim。另见:What's the difference between ':source file' and ':runtime file' in vim?

注意~/.vim/macros/最适合的方式 - 即使没有人再使用它。或者更好的是,您可以将定义放在函数中并在键绑定上触发它们

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>

您还可以检测到当前的&filetype is not related to a programming language,然后使用自动命令

  1. 在缓冲级别切换'colorcolumn''wrap''number'的配置(使用:setlocal - 您不希望使用:set你现在正好。)
  2. 如果需要,每次更改窗口时切换colorscheme的配置。但这种推进方式可能非常激进,需求转换可能更符合人体工程学。