当不使用时隐藏 vim 命令行?

当不使用时隐藏 vim 命令行?

有没有办法在不使用 vim 命令行时隐藏它(最好是自动隐藏)?在小屏幕上,它会占用一行宝贵的文字。我认为它会“正常”隐藏,并在输入 、 等:时显示。/

答案1

set cmdheight=0从现在起,Neovim 中将实现此功能,这要归功于开发者 Shougo Matsu 和 Neovim 维护者的努力

答案2

不,这是不可能的。命令行始终存在,如果不更改 vim 的源代码,就无法隐藏它。它不仅在您输入:或时使用/,还用于状态消息(ctrl-g例如,尝试 )。

答案3

在 Vim 中补丁 9.0.0114set 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" }
)


相关内容