如何从我的 .vimrc 文件调用插件?
How to call a plugin from my .vimrc file?
我正在使用一个名为 Goyo 的 VIM 插件(用于编写降价文件)。它类似于 SublimeText 中的 Distraction Free 模式。我想在我的 .vimrc
中创建一个可以切换的写入模式。此切换将在写入模式下设置各种选项,例如 set spell
、set wrap
等
除了调用 Goyo
函数外,我这里的所有东西都可以正常工作。如何从我的 ToggleWrite() 函数中执行 Goyo 插件?
这是我的代码:
" Write toggle switch
let b:write = "no"
function! ToggleWrite()
if exists("b:write") && b:write == "yes"
let b:write = "no"
set nowrap
set nolinebreak
set textwidth=100
set wrapmargin=0
set nospell
" ↓↓↓ I want to call this ↓↓↓
":Goyo
else
let b:write = "yes"
set wrap
set linebreak
set textwidth=100
set wrapmargin=0
set spell
" ↓↓↓ I want to call this ↓↓↓
":Goyo 60x100%
endif
endfunction
" Set up the toggle sequence
nmap <expr> ,w ToggleWrite()
我把我的评论作为答案:
您的映射使用 <expr>
,这在您的情况下是不正确的。您应该改为尝试此映射:
nmap ,w :call ToggleWrite()<cr>
或
nmap <silent> ,w :call ToggleWrite()<cr>
<expr>
允许您根据函数的 return 进行 "custom" 映射。一般情况下很少使用。
我正在使用一个名为 Goyo 的 VIM 插件(用于编写降价文件)。它类似于 SublimeText 中的 Distraction Free 模式。我想在我的 .vimrc
中创建一个可以切换的写入模式。此切换将在写入模式下设置各种选项,例如 set spell
、set wrap
等
除了调用 Goyo
函数外,我这里的所有东西都可以正常工作。如何从我的 ToggleWrite() 函数中执行 Goyo 插件?
这是我的代码:
" Write toggle switch
let b:write = "no"
function! ToggleWrite()
if exists("b:write") && b:write == "yes"
let b:write = "no"
set nowrap
set nolinebreak
set textwidth=100
set wrapmargin=0
set nospell
" ↓↓↓ I want to call this ↓↓↓
":Goyo
else
let b:write = "yes"
set wrap
set linebreak
set textwidth=100
set wrapmargin=0
set spell
" ↓↓↓ I want to call this ↓↓↓
":Goyo 60x100%
endif
endfunction
" Set up the toggle sequence
nmap <expr> ,w ToggleWrite()
我把我的评论作为答案:
您的映射使用 <expr>
,这在您的情况下是不正确的。您应该改为尝试此映射:
nmap ,w :call ToggleWrite()<cr>
或
nmap <silent> ,w :call ToggleWrite()<cr>
<expr>
允许您根据函数的 return 进行 "custom" 映射。一般情况下很少使用。