禁用按下 O 或 O 或 回车 后自动注释

问题

默认情况下在 nvim 中,如果你的光标所在行被注释,然后在普通模式按下 oO ,或在插入模式按下回车就会自动注释下一行。例如:

1
2
3
//Before     	o 	 //After
// A comment //A comment
//

解决

有时候这是相当讨厌的。为了禁止这种情况,可以使用以下的 viml 命令

1
2
" Viml
set formatoptions-=ro

或者 Lua 命令

1
vim.opt.formatoptions:remove("ro")

但是当我们在 init.lua 中写入以上代码,重新进入 nvim 时发现并不奏效,于是使用 autocmd,如下:

1
2
3
4
5
6
vim.api.nvim_create_autocmd(
{"FileType"},
{
command = "set formatoptions-=ro"
}
)

重新进入 nvim,发现代码生效,问题解决。

原因

以下是群里 Julie 大佬的解释:

因为vim的builtin filetype配置,是在vimrc/init.lua之后加载的,覆盖了你写在vimrc/init.lua中的formatoptions配置。

用autocmd FileType * set formatptions-=t 这样,就可以解决了。

执行 :verb set formatoptions 即可看到最后一次设置这个option的地方。

References

how-to-stop-vim-from-automatically-inserting-the-comment-leader-when-enter-is-pr


禁用按下 O 或 O 或 回车 后自动注释
https://xxiaoa.github.io/posts/4ac5e739/
Author
XXiaoA
Posted on
May 11, 2022
Licensed under