Nvim :help
頁面,由 產生,來源為 原始碼,使用 tree-sitter-vimdoc 解析器。
import pynvim
@pynvim.plugin
class Limit(object):
def __init__(self, vim):
self.vim = vim
self.calls = 0
@pynvim.command('Cmd', range='', nargs='*', sync=True)
def command_handler(self, args, range):
self._increment_calls()
self.vim.current.line = (
'Command: Called %d times, args: %s, range: %s' % (self.calls,
args,
range))
@pynvim.autocmd('BufEnter', pattern='*.py', eval='expand("<afile>")',
sync=True)
def autocmd_handler(self, filename):
self._increment_calls()
self.vim.current.line = (
'Autocmd: Called %s times, file: %s' % (self.calls, filename))
@pynvim.function('Func')
def function_handler(self, args):
self._increment_calls()
self.vim.current.line = (
'Function: Called %d times, args: %s' % (self.calls, args))
def _increment_calls(self):
if self.calls == 5:
raise Exception('Too many calls!')
self.calls += 1
remote#host#RegisterPlugin
函數的調用,該函數負責在第一次使用宣告的命令、自動命令或函數時啟動主機。BufEnter *.java
,那麼只有當 Nvim 加載與 "*.java" 相符的緩衝區時,才會產生 Java 主機。