Vimrc使用cmap内的变量
我正在写一段vimscript来管理会话。我想让用户配置他们希望会话保存在哪个目录中,即:Vimrc使用cmap内的变量,vim,Vim,我正在写一段vimscript来管理会话。我想让用户配置他们希望会话保存在哪个目录中,即: let g:sessions_dir = "~/.vim/sessions" 我有许多命令可以让用户创建和加载会话。但我还想提供一个cmap,让我们通过该目录中的会话查看用户选项卡 cmap GSo :wa<CR> :source ~/.vim/sessions cmap GSo:wa:source~/.vim/sessions 这是可行的,用户可以点击TAB键循环浏览会话文件。但是,我
let g:sessions_dir = "~/.vim/sessions"
我有许多命令可以让用户创建和加载会话。但我还想提供一个cmap
,让我们通过该目录中的会话查看用户选项卡
cmap GSo :wa<CR> :source ~/.vim/sessions
cmap GSo:wa:source~/.vim/sessions
这是可行的,用户可以点击TAB键循环浏览会话文件。但是,我想在cmap中使用
g:sessions\u dir
变量。您可以将cmap
放在执行中。比如说,
exe "cmap Gso :wa<CR> :so ".g:sessions_dir
exe“cmap Gso:wa:so”.g:sessions\u dir
您可以在此处使用=
:
cnoremap GSo :wa<CR> :source <C-r>=g:sessions_dir<CR>
cnoremap GSo:wa:source=g:sessions\u dir
(最后一个
用于=
,它不会启动命令)。另一个示例:
let g:work_dir='C:\...\' " define a new global variable work_dir
:cmap <F1> Explore <C-r>=g:work_dir<CR>
在命令行上键入WK_DIR
后,结果与上面相同
:cmap WK_DIR Explore <C-r>=g:work_dir<CR>