【问题标题】:How to map a shell command in the lua nvim config?如何在 lua nvim 配置中映射 shell 命令?
【发布时间】:2022-08-04 07:56:03
【问题描述】:

如何在 lua nvim 配置中映射 shell 命令?

maps.n[\"<F4>\"] = { function() io.popen(\"python3 \" + vim.fn.expand(\"%\")) end, desc = \"Run current Python file\"}

错误:

E5108: Error executing lua: /home/kobe/.config/nvim/lua/core/mappings.lua:19: attempt to perform arithmetic on a string value                                                                               
stack traceback:
        /home/kobe/.config/nvim/lua/core/mappings.lua:19: in function </home/kobe/.config/nvim/lua/core/mappings.lua:19>
  • 当它说“请不要对字符串进行算术运算”时,也许你可以猜到在 Lua 中没有使用“str1 + str2”?毕竟,Lua 是一种不同的语言,它没有义务像那些“pythonistas”那样做所有事情。想先阅读lua.org/manual/5.1/manual.html#2.5 吗?
  • 这看起来不像您在 lua 中映射键的方式。你在使用插件吗?可能是which-key.nvim

标签: lua neovim


【解决方案1】:

也许这不是您想要的,但我为此使用了 toggleterm 之类的插件。您可以设置键盘映射以运行您想要的任何 shell 命令或程序,也可以让它显示在浮动或非浮动窗口中。

至于只是在没有任何插件的情况下映射它并执行命令,我并不完全确定。

【讨论】:

    【解决方案2】:

    在 Lua 中,连接 2 个字符串的操作数是 .. 而不是 + 在 Python 中。

    使用您的代码:function() io.popen("python3 " .. vim.fn.expand("%")) end

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-26
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 2013-07-23
      相关资源
      最近更新 更多