nvim:使用 lua 根据键盘映射函数中的文件类型编译/运行代码

问题描述 投票:0回答:1
我正在尝试使用 term 命令映射我的 F12 键以在 neovim 中编译和运行代码。我已经能够让它适用于 java 文件,但前提是我从与正在运行的文件相同的位置打开 nvim。否则我会收到这样的错误:

Error: could not find or load main class CSC-101.Proj.4.Hangman Caused by: Java.lang.NoClassDefFoundError: Hangman (wrong name: CSC-101/Proj/4/Hangman) [process exited 1]
当我尝试使用 python 时,即使我从同一工作目录运行它,我也什么也得不到:

[process exited 0]'
我不明白,因为当我在 nvim 中输入“:term python3 %”时,它工作得很好。
这是我正在使用的功能:

funcs.run_code = function() local filename = vim.fn.expand("%") local basename = vim.fn.expand("%:r") local filetype = vim.bo.filetype local cmd = nil if filetype == "python" then cmd = "term: python3 "..filename elseif filetype == "java" then cmd = "term: javac "..filename.." && java "..basename end if cmd then vim.cmd("w") vim.cmd(cmd) else print("No interpreter or compiler defined for filetype: '"..filetype.."'") end end
谢谢!

python java lua neovim
1个回答
0
投票
vim.cmd 几乎执行参数,就像您在命令栏中键入它一样(带有隐式的前置冒号)。看来您正在执行“:term: python3”而不是“:term python3”。终端正在尝试执行“:python3”,但显然失败了。去掉结肠,你应该就好了。

https://neovim.io/doc/user/lua.html#vim.cmd()

© www.soinside.com 2019 - 2024. All rights reserved.