有没有办法在不使用 vim 命令行时隐藏它(最好是自动隐藏)?在小屏幕上,它会占用一行宝贵的文字。我认为它会“正常”隐藏,并在输入 、 等:
时显示。/
答案1
set cmdheight=0
从现在起,Neovim 中将实现此功能,这要归功于开发者 Shougo Matsu 和 Neovim 维护者的努力!
答案2
不,这是不可能的。命令行始终存在,如果不更改 vim 的源代码,就无法隐藏它。它不仅在您输入:
或时使用/
,还用于状态消息(ctrl-g
例如,尝试 )。
答案3
在 Vim 中补丁 9.0.0114,set cmdheight=0
隐藏命令行。此功能已在9.0.0340。
如果你确实需要这个功能,你可以使用 Neovim 0.8。
答案4
如前所述,您可以set cmdheight=0
在 neovim 中执行此操作(vim.opt.cmdheight=1
如果您使用 lua)。输入“:”时,您仍然可以与 cmd 输入进行交互。
问题是某些消息可能仍被隐藏,例如录制宏时的情况。对于此类事件,您需要添加自己的回调。这是我cmdheight
在录制宏时用来更改的回调:
vim.api.nvim_create_autocmd({ "RecordingEnter" }, {
callback = function()
vim.opt.cmdheight = 1
end,
})
vim.api.nvim_create_autocmd({ "RecordingLeave" }, {
callback = function()
vim.opt.cmdheight = 0
end,
})
或者你可以简单地设置一个映射来切换它
vim.keymap.set("n", "<leader>sc",
function()
vim.opt.cmdheight = 1 - vim.opt.cmdheight._value
end,
{ desc = "Toggle cmdheight" }
)