1

我已经映射<Leader>ev到打开.vimrc编辑使用:

nmap <Leader>ev :e $MYVIMRC<CR>

我现在希望映射<Leader>ec到编辑当前使用的colorscheme文件,也映射<Leader>es到编辑当前的filetype语法文件。我不想硬编码路径(或部分路径),因为我将在环境之间移动。它将帮助我在编辑过程中快速调整颜色/语法。

有什么帮助吗?

4

1 回答 1

2

Vim 加载配色方案、插件等的路径由'runtimepath'设置确定。该globpath()函数可以从中执行查找。通过第一个匹配,我们将获得当前颜色方案的路径:

:echo get(split(globpath(&runtimepath, 'colors/' . g:colors_name . '.vim'), "\n"), 0, '')

可以对文件类型插件做类似的事情;当前一个在&filetype.

要将路径插入到映射中,可以使用<C-R>=(插入寄存器内容,与表达式寄存器一起使用):

:nnoremap <Leader>ec :edit <C-R>=get(split(globpath(&runtimepath, 'colors/' . g:colors_name . '.vim'), "\n"), 0, '')<CR><CR>
于 2012-10-23T11:56:37.633 回答