从 init.lua 或 vimrc 调用插件函数

问题描述 投票:0回答:1

我安装了drawit插件。

为了将其与我需要的字符一起使用,我必须在启动插件后调用一个函数。

:DIstart
:call SetDrawIt('|','-','+','\','/','+','*')

我需要从 init.lua 或 .vimrc (或任何我认为不可能的东西)调用第二个函数,以便能够使用具有良好字符的插件。

vim plugins neovim
1个回答
0
投票

这两行是 Ex 命令,

vimrc
中的每一行都应该是 Ex 命令,因此,从理论上讲,您只需将这两行放入您的
vimrc
中即可。

但是您的

vimrc
是在之前任何插件获取的,因此此时没有
:DIstart
命令或
SetDrawIt()
函数,您将得到的只是错误。

现在,该插件被设计为通过

:DIstart
Ex 命令或
\di
映射“按需”启动。因为它的映射会覆盖许多标准命令,所以在 Vim 启动期间启动它并没有真正的意义 除非 你只使用 Vim 来绘制 ASCII 图表。此外,那个东西是一个非常古老且特殊的插件,不遵循既定的做法,这使得设置比应有的更加困难。

通常,它应该让您通过全局变量定义您的选择,例如:

let g:drawit_symbols = ['|','-','+','\','/','+','*']

或类似的东西,但它使用一个函数来代替,如果我正确地读取这个文件,则

SetDrawIt()
函数是在自动加载脚本中定义的,但不是作为正确的自动加载函数:

fun! SetDrawIt(...

而不是:

fun! DrawIt#SetDrawIt(...

这意味着在调用此脚本中正确的自动加载函数之前,它不应该在全局范围内可用,这是非常糟糕的设计。

如果您放弃了(而且您应该)在启动时激活插件的想法,那么以下代码片段应该允许您按

<key>
来激活它并一次性设置它:

" in ~/.vimrc
function! StartDrawIt()
    DIstart
    call SetDrawIt('|','-','+','\','/','+','*')
endfunction
nnoremap <key> <Cmd>call StartDrawIt()<CR>

如果您真的想在启动时激活它,那么将这两行添加到

after/plugin/DrawIt.vim
应该可以:

DIstart
call SetDrawIt('|','-','+','\','/','+','*')

也许这个插件适合绘制 ASCII 图表,但它似乎根本不是一个很好的公民。

© www.soinside.com 2019 - 2024. All rights reserved.