在这些情况下如何正确使用 vim 变量?
How to use vim variables the right way in these case?
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>
在所有这些情况下,您可以使用 :execute
将变量连接到命令中。
exe "silent !curl -fLo ".g:location_prefix."/nvim/autoload/plug.vim..."
autocmd VimEnter * PlugInstall --sync | exe "source ".g:location_prefix."/nvim/init.vim"
使用 <expr>
可以更简单地完成 :map
示例(参见 :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,."
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>
在所有这些情况下,您可以使用 :execute
将变量连接到命令中。
exe "silent !curl -fLo ".g:location_prefix."/nvim/autoload/plug.vim..."
autocmd VimEnter * PlugInstall --sync | exe "source ".g:location_prefix."/nvim/init.vim"
使用 <expr>
可以更简单地完成 :map
示例(参见 :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,."