" Checks if there is a file open after Vim starts up,
" and if not, open the current working directory in Netrw.
augroup InitNetrw
autocmd!
autocmd VimEnter * if expand("%") == "" | edit . | endif
augroup END
local mygroup = vim.api.nvim_create_augroup("loading_netrwPlugin",
{clear = true})
vim.api.nvim_create_autocmd({"VimEnter"}, {
pattern = {"*"},
callback = function()
-- Getting the file name that you pass when you launch nvim,
local current_file = vim.fn.expand("%")
-- if we have already file_name, then, we edit it
if current_file ~= "" then
vim.cmd(":silent! edit " .. current_file)
else
-- We will check if the window (buffer) is the lazy nvim, as it conflict if the buffer (popup menu) is lazy
local lazy_popup_buf_exists = false
-- We will get list of all current opened buffers
local buf_list = vim.api.nvim_list_bufs()
for _, buf in ipairs(buf_list) do
-- We will obtain from the table only the filetype
local buf_ft = vim.api.nvim_buf_get_option(buf, 'filetype')
if buf_ft == "lazy" then
lazy_popup_buf_exists = true
end
end -- Check if vim-floaterm is loaded
local has_floaterm, _ = pcall(require, 'floaterm')
if not lazy_popup_buf_exists and not has_floaterm then
-- Then we can safely loading netrwPlugin at startup
vim.cmd(":silent! Explore")
end
end
end,
group = mygroup
})
3条答案
按热度按时间a8jjtwal1#
将以下内容添加到
.vimrc
(Vim的配置文件,位于您的主目录的根目录中)将使Vim在启动后自动加载Netrw。上述方法的一个问题是,当你使用Vim打开一个特定的文件时,Netrw也会加载。一个解决方案是使用以下修改,基于Netrw文档中建议的方法(
:help netrw-activate
)。以下页面提供了有关自动命令和
.vimrc
配置文件的更多详细信息。mbzjlibv2#
在你的vimrc中有以下代码块:
有点像@dannyadam建议的那样。但是打开netrw窗格作为右侧的侧栏。如果你想正确使用Lexplore而不使用bang(!)。
t5fffqht3#
Nvim支持netrwPlugin
最初的问题与
vim
有关,但我正在为同一请求搜索实现现代Nvim
API的相同问题。以下是我遵循的步骤
1.确保你已经加载了
netrwPlugin
(我认为一些包管理器默认情况下,在启动时删除这个插件)。在我的例子中,我使用了lazy-nvim
,我在配置中:disabled_plugins = {"gzip", "matchit", "matchparen", "netrwPlugin","tarPlugin","tohtml", "tutor", "zipPlugin"}
1.使用
nvim_create_autocmd
1.把它放到你的
init.lua
文件中。或者,简单地用途:
在Lazy PluginManger中使用netrwPluing
当我输入
nvim
时,它应该启动netrwPlugin
,如果我传递一个file_name,它应该自动打开文件名。我们必须添加更多的检查,因为即使加载了Lazy
弹出菜单,netrwPlugin
也会加载,这将产生冲突,我们可以防止这种情况,如下所示