如何使用 vimscript 插件与 neovim 的 lua

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

我有一些配置使用 vim-script 的插件,如何配置使用 vim-script 和 lua for neovim 的插件。

例如 gruvbox 使用 vim-script 我在文档中查找 lua 配置,但我没有找到任何东西,我必须使用 vim-script 来配置它。

lua neovim
2个回答
2
投票

在 lua 中编写 nvim 内容时,Neovim 会自动将

vim
对象注入到您的代码中。 它允许在 lua 中获取和设置 vim、插件和变量相关选项。

gruvbox 主题需要在全局范围内设置变量。您可以使用

vim.g
字段访问全局范围。

比如设置

g:gruvbox_bold
为1,也就是lua中的
true
,需要写成

vim.g.gruvbox_bold = true

在您的

init.lua
文件中。

我建议你看看这篇文章。 https://www.notonlycode.org/neovim-lua-config/。 它很短,教授在 Neovim 中使用 lua 的基础知识。


0
投票

也许你想参考这个插件的配置(markdown-org:https://github.com/Kurama622/markdown-org);它是用 vimscript 编写的,支持 vimscript 和 Lua 进行配置。

  • vim 脚本
    let g:default_quick_keys = 0
    let g:org#style#border = 2
    let g:org#style#bordercolor = 'keyword'
    let g:org#style#color = 'Identifier'
    let g:language_path = {
                \ "python":"python",
                \ "python3":"python3",
                \ "go": "go",
                \ "c": "gcc",
                \ "cpp": "g++",
                \ "c++": "g++",
                \ "javascript": "node",
                \ }
    nnoremap <silent> <M-b> :call org#main#runCodeBlock()<CR>
    nnoremap <silent> <M-l> :call org#main#runLanguage()<CR>
  • lua
    {
      "Kurama622/markdown-org",
      ft = "markdown",
      config = function()
        return {
          default_quick_keys = 0,
          vim.api.nvim_set_var("org#style#border", 2),
          vim.api.nvim_set_var("org#style#bordercolor", "FloatBorder"),
          vim.api.nvim_set_var("org#style#color", "String"),
          language_path = {
            python = "python",
            python3 = "python3",
            go = "go",
            c = "gcc",
            cpp = "g++",
          },
        }
      end,
      keys = {
        { "<leader>mr", "<cmd>call org#main#runCodeBlock()<cr>" },
        { "<leader>ml", "<cmd>call org#main#runLanguage()<cr>" },
      },
    },
© www.soinside.com 2019 - 2024. All rights reserved.