网站建设模块有哪些,大连网站建设哪家专业,热门网络游戏,手机百度极速版app下载安装0 环境
Windows 11 22H2gVim82 (D:/ProgramFiles/Vim)Python311 (D:/ProgramFiles/Python311)Vundle v0.10.2
阅读本文前#xff0c;需要先了解前文#xff1a; 《[vim]Python 编写插件学习笔记1 - 开始》 《[vim]Python 编写插件学习笔记2 - 分离》
1 前提说明
由于本…0 环境
Windows 11 22H2gVim82 (D:/ProgramFiles/Vim)Python311 (D:/ProgramFiles/Python311)Vundle v0.10.2
阅读本文前需要先了解前文 《[vim]Python 编写插件学习笔记1 - 开始》 《[vim]Python 编写插件学习笔记2 - 分离》
1 前提说明
由于本人并未仔细学习 vimscript 相关内容只是凭自己的理解尝试写 vim 插件只是本着 “够用就就行” 的基本原则实现自己想要的功能。
所以多少会有不足的内容甚至更好的方案本文则不详述。
命令行参数只是想实现像平时使用 vim 命令一样正常使用自己的插件。
举例说明vim 的 make 命令
:make
:make clean这样使用确实很方便。
2 Python 实现
# -*- coding: utf-8 -*-
### test.pydef TestVim(type):print(TestVim: type)3 vimscript 实现 test.vimlet s:script_dir fnamemodify(resolve(expand(sfile, :p)), :h)function! TestVim(type) # 定义参数python3 EOF
# python part startimport sys
import vimscript_dir vim.eval(s:script_dir)
sys.path.insert(0, script_dir)from test import TestVim # 引用TestVim(vim.eval(a:type)) # 传入参数# python part end
EOFendfunction加载
:so %测试
:call TestVim(init)
TestVim: init
:call TestVim(build)
TestVim: build注意这样实现参数只能是字符串注意添加双引号。
4 配置
以上可以通过 call 命令来调用插件内的函数。但不能直接通过命令方式调用。
需要添加配置 test.vim脚本末尾接收 0 个或 1 个参数
command! -nargs? TestVim call TestVim(q-args)加载
:so %测试
:TestVim
TestVim:
:TestVim init
TestVim: init
:TestVim build
TestVim: build:TestVim init build
TestVim: init build # init build 被作为一个字符串5 命令行参数说明
5.1 -nargs
-nargs0 - 无参数默认-nargs1 - 仅 1 个参数-nargs* - 任意多个参数01 或多个使用空白符分隔-nargs? - 0 或1 个参数-nargs - 任意多个参数1 或多个但必须提供参数
5.2 q-args - “quoted args”
将命令行接收的参数使用双引号括起来视作一个单一字符串。之后再当其作一个合法值传给表达式使用。
如果没有传入参数 表示为一个空字符串。
5.3 f-args - “function args” 表示命令行传递参数给用户定义的函数。
传入的命令行参数会以空格和 Tab 进行分割再将各个参数使用引号括起来均视作字符串。
之后以引号括起来的被逗号分割的参数列表会替换 参数传入用户定义的函数。
如果命令行未传入参数 则被移除。
如果命令行需要输入空格符必须使用反斜杠符号 (\) 进行转义。
示例
command f-args ~
XX ab ab
XX a\b a\b
XX a\ b a b
XX a\ b a , b
XX a\\b a\b
XX a\\ b a\, b
XX a\\\b a\\b
XX a\\\ b a\ b
XX a\\\\b a\\b
XX a\\\\ b a\\, b6 参考
Writing Vim plugin in Python (candidtim.github.io)How to Write Vim Plugins with Python - DZoneLearn Vimscript the Hard Way (stevelosh.com)Vim script for Python Developers · GitHub