如何从我的 .vimrc 文件调用插件?

How to call a plugin from my .vimrc file?

我正在使用一个名为 Goyo 的 VIM 插件(用于编写降价文件)。它类似于 SublimeText 中的 Distraction Free 模式。我想在我的 .vimrc 中创建一个可以切换的写入模式。此切换将在写入模式下设置各种选项,例如 set spellset 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" 映射。一般情况下很少使用。