vim-映射用于编辑颜色方案和语法文件的键

vim-映射用于编辑颜色方案和语法文件的键,vim,syntax,file-type,color-scheme,Vim,Syntax,File Type,Color Scheme,我已将ev映射到打开.vimrc进行编辑,使用: nmap <Leader>ev :e $MYVIMRC<CR> nmap ev:e$MYVIMRC 我现在希望映射ec以编辑当前使用的colorscheme文件,并映射es以编辑当前的filetype语法文件。我不想硬编码路径(或部分路径),因为我将在环境之间移动。它将帮助我在编辑过程中快速调整颜色/语法 有什么帮助吗 Vim加载配色方案、插件等的路径由的“runtimepath”设置确定。globpath()函数可以

我已将
ev
映射到打开
.vimrc
进行编辑,使用:

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


有什么帮助吗

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

:echo get(split(globpath(&runtimepath, 'colors/' . g:colors_name . '.vim'), "\n"), 0, '')
对于文件类型插件也可以做类似的事情;当前文件位于
&filetype

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

:nnoremap ec:edit=get(拆分(globpath(&runtimepath,'colors/'.g:colors\u name.'.vim')、“\n”)、0、)

太棒了!现在我可以轻松地调整我的vim而不用担心。投票通过,并接受。谢谢
:nnoremap <Leader>ec :edit <C-R>=get(split(globpath(&runtimepath, 'colors/' . g:colors_name . '.vim'), "\n"), 0, '')<CR><CR>