我在这里按照本教程来设置 NeoVim:
https://www.youtube.com/watch?v=J9yqSdvAKXY
但是,它不起作用并抛出一个奇怪的错误,我不明白并且在谷歌上找不到任何内容。
我知道本教程适用于 Linux,但我遵循了另一个适用于 Windows 的教程,得到了相同的结果。
重新启动/安装 Neovim 并不能解决问题。
我正在使用 NeoVim 0.9.2 在 Windows 11 (22H2) 上工作。
NeoVim 确实启动了(Packer 安装了插件),但 lua 脚本中出现错误。
我的 nvim 文件夹内的结构是这样的:
(为什么图标不起作用是另一个问题......)
我收到的错误是:
E5113: Error while calling lua chunk: vim/_init_packages.lua:21: ...r1\AppData\Local\nvim/lua/core/plugin_config/gruvbox.lua:1: '=' expected
stack traceback:
[C]: in function 'error'
vim/_init_packages.lua:21: in function <vim/_init_packages.lua:15>
[C]: in function 'require'
...user1\AppData\Local\nvim/lua/core/plugin_config/init.lua:2: in main chunk
[C]: in function 'require'
C:\Users\user1\AppData\Local\nvim\init.lua:6: in main chunk
如果向下滚动到
lua/core/plugin_config/init.lua
,您会发现 require
部分会抛出此错误,但是如果我将配置脚本 (lua/core/plugin_config/*.lua
) 的内容粘贴到 lua/core/plugin_config/init.lua
中,它运行时不会出现错误。
此外,当我将
gruvbox.lua
、lualine.lua
或 nvim-tree.lua
文件留空时,会发生几乎相同的错误:
E5113: Error while calling lua chunk: vim/_init_packages.lua:21: ...r1\AppData\Local\nvim/lua/core/plugin_config/gruvbox.lua:1: '=' expected near '<eof>'
stack traceback:
[C]: in function 'error'
vim/_init_packages.lua:21: in function <vim/_init_packages.lua:15>
[C]: in function 'require'
...user1\AppData\Local\nvim/lua/core/plugin_config/init.lua:2: in main chunk
[C]: in function 'require'
C:\Users\user1\AppData\Local\nvim\init.lua:6: in main chunk
https://drive.google.com/file/d/188hEJQOvcrS7G3zwBgOxKq91adIEpQli/view?usp=sharing
init.lua
require("core.keymaps")
require("core.plugins")
require("core.plugin_config")
lua/core/keymaps.lua
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
vim.opt.backspace = '2'
vim.opt.showcmd = true
vim.opt.laststatus = 2
vim.opt.autowrite = true
vim.opt.cursorline = true
vim.opt.autoread = true
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.shiftround = true
vim.opt.expandtab = true
vim.keymap.set('n', '<leader>h', ':nohlsearch<CR>')
lua/core/plugins.lua
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
vim.cmd [[packadd packer.nvim]]
return true
end
return false
end
local packer_bootstrap = ensure_packer()
return require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
use 'ellisonleao/gruvbox.nvim'
use 'nvim-tree/nvim-tree.lua'
use 'nvim-tree/nvim-web-devicons'
use 'nvim-lualine/lualine.nvim'
if packer_bootstrap then
require('packer').sync()
end
end)
lua/core/plugin_config/init.lua
-- Requiring the configs in files does not work
require("core.plugin_config.gruvbox")
require("core.plugin_config.lualine")
require("core.plugin_config.nvim-tree")
-- Pasting the config code here works
vim.o.termguicolors = true
vim.cmd [[ colorscheme gruvbox ]]
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'gruvbox',
},
sections = {
lualine_a = {
{
'filename',
path = 1,
}
}
}
}
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
require("nvim-tree").setup()
lua/core/plugin_config/gruvbox.lua
vim.o.termguicolors = true
vim.cmd [[ colorscheme gruvbox ]]
lua/core/plugin_config/lualine.lua
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'gruvbox',
},
sections = {
lualine_a = {
{
'filename',
path = 1,
}
}
}
}
lua/core/plugin_config/nvim-tree.lua
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
require("nvim-tree").setup()
“我知道本教程适用于 Linux,但我遵循了另一个适用于 Windows 的教程,得到了相同的结果。”
我很确定您的 require 错误取决于斜杠和反斜杠的错误使用......
...r1\AppData\Local\nvim/lua/core/plugin_config/gruvbox.lua:1: '=' expected
不带文件名的Windows路径结束:
...r1\AppData\Local\
"nvim/lua/core/plugin_config/gruvbox.lua"
\\
(转义反斜杠)