代码之家  ›  专栏  ›  技术社区  ›  user51

'g'neovim lsp配置init文件附近应为'='

  •  0
  • user51  · 技术社区  · 2 年前

    我正在尝试使用lua-config设置neovim配置。

    我想使用 vim-terminator 以运行当前文件。

    我在这个分支中的配置文件 repo

    我添加了下面的vim终止器插件配置。

    let g:terminator_runfile_map = {
                \ "javascript": "node",
                \ "python": "python -u",
                \ "c": "gcc $dir$fileName -o $dir$fileNameWithoutExt && $dir$fileNameWithoutExt",
                \ "fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
                \ }
    

    我得到以下错误-

      Error detected while processing /home/rajkumar/.config/nvim/init.lua:
      E5113: Error while calling lua chunk: vim/_init_packages.lua:0: /home/rajkumar/.config/nvim/lua/v
      im-terminator/init.lua:1: '=' expected near 'g'
      stack traceback:
              [C]: in function 'error'
              vim/_init_packages.lua: in function <vim/_init_packages.lua:0>
              [C]: in function 'require'
      "." is a directory
      Press ENTER or type command to continue
    

    enter image description here

    我是lua的新手。不确定如何修复此错误。 知道我的配置中缺少什么吗。

    0 回复  |  直到 2 年前
        1
  •  2
  •   Piglet    2 年前
    let g:terminator_runfile_map = {
                \ "javascript": "node",
                \ "python": "python -u",
                \ "c": "gcc $dir$fileName -o $dir$fileNameWithoutExt && $dir$fileNameWithoutExt",
                \ "fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
                \ }
    

    不是有效的Lua代码。 let g:terminator_runfile_map = ... 是Vim脚本。

    如果您需要这个文件,它将作为Lua代码执行,因此Lua会首先抱怨缺少 = 之间 let g 因为单独的标识符不是有效的Lua表达式。

    您混淆了两种脚本语言。

    vim.g.terminator_runfile_map = {
      javascript = "node",
      python = "python -u",
      c = "c": "gcc $dir$fileName -o $dir$fileNameWithoutExt && $dir$fileNameWithoutExt",
      fortran = "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
     }
    

    将是Lua的等价物。不过,我不知道这在nvim上下文中是否有意义。