我可以在 Vim 中禁用对下一行的注释延续吗?

我可以在 Vim 中禁用对下一行的注释延续吗?

在 Vim 中,如果我在代码文件中输入注释,然后按下Enter,它也会自动将换行符变为注释。

例如,在 Ruby 文件中:

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.

一般来说,这就是我想要的,但并非总是如此。我如何才能暂时关闭这种自动评论行为?

答案1

我想你正在寻找

:set formatoptions-=cro

:help fo-table

You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter  meaning when present in 'formatoptions'

t       Auto-wrap text using textwidth
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.
...

答案2

临时设置“粘贴”选项可能会满足您的要求,但它也会禁用许多其他 Vim 功能:

使用:set paste来打开它,:set nopaste使用 来关闭它。或者,您也可以使用:set paste!来切换它。

也可以看看:

:help 'paste'
:help 'pastetoggle'

(这些命令用单引号输入。)

答案3

另一种方法是ctrl-w按下 后直接按enter。这会在插入模式下删除前一个单词(例如#//)。事实上,ctrl-w在大多数应用程序中,这是一种非常通用的快捷方式。

答案4

永久禁用此行为,请autocmd FileType * set formatoptions-=cro在您的.vimrc/中添加init.vim

相关内容