2016-02-03 2 views
0

Я использую плагин VIM под названием Goyo (для записи файлов разметки). Он похож на режим отвлечения в SublimeText. Я хочу создать режим записи в моем .vimrc, который я могу переключить. Этот переключатель будет устанавливать различные параметры в режиме записи, например set spell, set wrap и т. Д.Как вызвать плагин из моего .vimrc-файла?

У меня есть все, что работает здесь, за исключением вызова функции Goyo. Как я могу выполнить плагин Goyo из моей функции ToggleWrite()?

Вот мой код:

" 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() 
+0

просто 'Goyo 60x100%' или 'Goyo'? – Kent

+0

Это дало мне много ошибок, когда я попробовал это. Возможно, это сработало (так называется Goyo), но сломало что-то еще в этом процессе. – f1lt3r

+0

Не могли бы вы вывести ошибку, пожалуйста? – yolenoyer

ответ

1

Я положил мой комментарий в ответ:

Ваше отображение использует <expr>, который не является правильным в вашем случае. Вы должны попробовать это отображение вместо:

nmap ,w :call ToggleWrite()<cr> 

или

nmap <silent> ,w :call ToggleWrite()<cr> 

<expr> позволяет создавать «пользовательские» отображения, в зависимости от возвращения функции. Он редко используется в обычных случаях.

Смежные вопросы