在这种情况下如何正确使用vim变量?

问题描述 投票:0回答:1

vimrc:

"set a variable
let g:location_pprefix='~/AppData/local'

"case1
if empty(glob(location_prefix.'/nvim/autoload/plug.vim'))
  silent !curl -fLo location_prefix/nvim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall --sync | source location_prefix/nvim/init.vim
endif

"case2
map ooo ilocation_prefix

"case3
set backupdir=location_pprefix/nvim/tmp/backup,.

"case4
noremap <silent> <LEADER>rc :e location_pprefix/nvim/init.vim<CR>

‍ ‌ ‌‍ ‌ ‌ ‌ ‌ ‌ ‌ ‌

vim neovim
1个回答
0
投票

在所有这些情况下,您都可以使用:execute将变量连接到命令中。

exe "silent !curl -fLo ".g:location_prefix."/nvim/autoload/plug.vim..."
autocmd VimEnter * PlugInstall --sync | exe "source ".g:location_prefix."/nvim/init.vim"

:map示例可以更简单地使用<expr>完成(请参阅:help :map-expression)。

map <expr> ooo "i".g:location_prefix
noremap <expr> <silent> <LEADER>rc ":e ".g:location_prefix."/nvim/init.vim<CR>"

关于:set示例,您可以改为使用:let(可以将选项作为&前缀的变量来访问):

let &backupdir = location_prefix."/nvim/tmp/backup,."
© www.soinside.com 2019 - 2024. All rights reserved.