如何执行lua脚本
:lua vim.print(package.loaded)
如何映射jk键
vim.keymap.set('i', 'jk', '<Esc>') vim.keymap.set('t', 'jk', [[<C-\><C-n>]])
上面中的参数t是什么意思,在什么场景中的使用
在 Vim 中,参数 t
代表 Terminal 模式(Terminal mode)。这是 Vim 的一种模式,用于与终端交互,通常用于在 Vim 中运行终端命令或操作。
如何进入Terminal 模式
终端分屏:当你在 Vim 中使用终端分屏时(例如使用 :terminal
命令),你会进入 Terminal 模式。在这个模式下,你可以直接与终端进行交互。
vim.keymap.set的其他使用
vim.keymap.set('n', 'x', function() print("real lua function") end) vim.keymap.set({'n', 'v'}, '<leader>x', vim.lsp.buf.references, { buffer = true }) vim.keymap.set('i', '<Tab>', function() return vim.fn.pumvisible() == 1 and "<C-n>" or "<Tab>" end, { expr = true }) vim.keymap.set('n', '[%%', '<Plug>(MatchitNormalMultiBackward)')
在nvim中,解释上面的几个函数
在 Neovim 中,你提供的代码使用了 vim.keymap.set
函数来设置不同模式下的快捷键。下面是对每个函数的解释:
1. 调用lua函数
vim.keymap.set('n', 'x', function() print("real lua function") end)
- 功能:当你在普通模式下按
x
时,会调用一个 Lua 函数,该函数会打印"real lua function"
到命令行。
2. 查找引用
vim.keymap.set({'n', 'v'}, '<leader>x', vim.lsp.buf.references, { buffer = true })
- 功能:当按下
<leader>x
时,会调用 LSP(语言服务器协议)功能以获取光标下符号的引用。<leader>
是一个用户自定义的前缀键,通常在 Vim 中可以通过设置mapleader
变量来定义。 - 参数:
{ buffer = true }
表示此映射只在当前缓冲区有效。 - 用途:方便开发时快速查找符号的引用。
3. 增强补全体验
vim.keymap.set('i', '<Tab>', function() return vim.fn.pumvisible() == 1 and "<C-n>" or "<Tab>" end, { expr = true })
- 模式:插入模式 (
i
) - 功能:当在插入模式下按
<Tab>
时,会检查补全菜单(popup menu)是否可见。如果可见,则按<C-n>
(向下选择下一个补全选项);如果不可见,则实际插入一个制表符 (<Tab>
)。 - 参数:
{ expr = true }
指示该映射是一个表达式映射,可以根据条件返回不同的值。 - 用途:增强补全体验,使得在补全可见时可以更方便地选择选项。
4. 调用插件功能
vim.keymap.set('n', '[%%', '<Plug>(MatchitNormalMultiBackward)')
- 模式:普通模式 (
n
) - 功能:当按下
[%%
时,会触发<Plug>(MatchitNormalMultiBackward)
,这是一个来自 Matchit 插件的命令,通常用于跳转到匹配的括号或标记的前一个位置。 - 用途:在编程时方便地在配对括号或相应标记之间快速跳转,提高代码导航效率。
如何调用Vim的全局变量和函数
也就是只要是vim点开头的都是nvim中的全局变量,函数和选项。
Neovim 的 Lua 脚本可以访问 Vim 的全局变量、函数和选项
-
vim.call()
和vim.fn
来调用 Vim 的函数。 -
vim.opt
来设置选项,也可以使用vim.opt_local
和vim.opt_global
来设置局部选项和全局选项。 -
vim.api
来调用 Neovim 的 API 函数。 -
vim.schedule
来调度函数的执行。 -
vim.str_utf_end
和vim.str_utf_start
来获取 UTF-8 字符串的字节索引。 -
vim.stricmp
来比较两个字符串的大小写。 -
vim.ui_attach
和vim.ui_detach
来附加和分离 UI 回调函数。 -
vim.ui_open
来打开一个 URL 或文件。 -
vim.ui_select
来显示一个选择列表。 -
vim.ui_input
来获取用户的输入。 -
vim.inspect
来获取一个对象的字符串表示。 -
vim.notify
来显示一个通知消息。 -
vim.on_key
来设置一个键盘事件处理函数。 -
vim.paste
来设置一个粘贴事件处理函数。 -
vim.print
来打印一个值。 -
vim.schedule_wrap
来包装一个函数,使其可以在 Neovim 的调度函数中执行。 -
vim.system
来执行一个系统命令。 -
vim.fs
来访问文件系统。 -
vim.fs.abspath
来获取一个路径的绝对路径。 -
vim.fs.basename
来获取一个路径的基名。 -
vim.fs.dirname
来获取一个路径的目录名。 -
vim.fs.find
来查找一个文件或目录。 -
vim.fs.joinpath
来连接两个路径。 -
vim.fs.normalize
来标准化一个路径。 -
vim.fs.parents
来获取一个路径的父目录。 -
vim.fs.root
来查找一个文件或目录的根目录。 -
vim.fs.rm
来删除一个文件或目录。 -
vim.glob
来使用 glob 模式。 -
vim.lpeg
来使用 LPeg 库。 -
vim.regex
来使用 Vim 的正则表达式。 -
vim.secure
来管理安全设置。 -
vim.version
来管理版本信息。 -
vim.iter
来使用迭代器。 -
vim.snippet
来使用代码片段。 -
vim.text
来使用文本处理函数。 -
vim.tohtml
来将文本转换为 HTML。 -
vim.validate
来验证函数参数。 -
vim.deep_equal
来深度比较两个值。 -
vim.deepcopy
来深度复制一个值。 -
vim.defaulttable
来创建一个默认表格。 -
vim.endswith
来测试一个字符串是否以另一个字符串结尾。 -
vim.gsplit
来分割一个字符串。 -
vim.is_callable
来测试一个值是否可调用。 -
vim.is_array
来测试一个值是否是一个数组。 -
vim.is_list
来测试一个值是否是一个列表。 -
vim.list_contains
来测试一个列表是否包含一个值。 -
vim.list_extend
来扩展一个列表。 -
vim.list_slice
来获取一个列表的切片。 -
vim.pesc
来转义一个模式字符串。 -
vim.ringbuf
来创建一个环形缓冲区。 -
vim.spairs
来遍历一个表格的键值对。 -
vim.split
来分割一个字符串。 -
vim.startswith
来测试一个字符串是否以另一个字符串开头。
简写
与 Neovim 的函数交互的 API。
vim.g
: 提供与 Neovim 的全局变量交互的 API。vim.b
: 提供与 Neovim 的缓冲区变量交互的 API。vim.w
: 提供与 Neovim 的窗口变量交互的 API。vim.t
: 提供与 Neovim 的标签页变量交互的 API。vim.v
: 提供与 Neovim 的 Vim 变量交互的 API。vim.o
: 提供与 Neovim 的选项交互的 API。vim.bo
: 提供与 Neovim 的缓冲区选项交互的 API。vim.wo
: 提供与 Neovim 的窗口选项交互的 API。vim.go
: 提供与 Neovim 的全局选项交互的 API。
如何加载lua插件和脚本
Lua 插件
Neovim 的 Lua 插件是使用 Lua 脚本语言编写的。这些插件可以用于实现各种功能,例如语法高亮、自动完成、代码格式化等。Neovim 的 Lua 插件可以通过以下方式加载:
require('plugin-name')
: 加载一个 Lua 插件。vim.api.nvim_command('source plugin-name.lua')
: 加载一个 Lua 插件。
Lua 脚本
Neovim 的 Lua 脚本是使用 Lua 脚本语言编写的。这些脚本可以用于实现各种功能,例如自定义命令、自动完成、代码格式化等。Neovim 的 Lua 脚本可以通过以下方式加载:
vim.api.nvim_command('source script-name.lua')
: 加载一个 Lua 脚本。vim.api.nvim_exec('lua << EOF script-content EOF', false)
: 执行一个 Lua 脚本。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
2024-01-09 hangfire使用
2023-01-09 note_2023年1月9日22点46分
2023-01-09 node nodejs 绿色版 添加环境变量 淘宝镜像源 全局安装文件夹 npm_global npm_cache