如何在不打开VIM折叠的情况下添加新行

时间:2014-08-25 02:41:42

标签: vim

我折叠了一个函数A.然后我想在函数A的底部添加一个新函数,我知道我可以按za来切换函数A的折叠,并添加一个新行。 问题是我不想打开折叠,只需添加一条新线。我可以这样做吗?

2 个答案:

答案 0 :(得分:0)

据我了解您的描述,您想在折叠块的第一行下方添加一个空白行而不打开该块。这可以使用以下命令完成:

:call append('.', '')('。'表示当前行)。

您可以为此创建常规模式映射:

nnoremap <leader>o :call append('.', '')<cr>

或者,如果您想要添加的不仅仅是空行:

nnoremap <leader>o :call append('.', input('Input line: '))<cr>

请注意,如果您在关闭时处于折叠范围内,则该线将添加到您所在的线下方。

答案 1 :(得分:0)

现在我找到了问题。也许文件内容比我的文字清晰。

vim:fdm=marker:fmr=}}},{{{:fdl=0

# part 1
==Header1}}}1==
    * 123456
    * 123456
    * 123456

# part 2
==Header2}}}1==
    * 123456
    * 123456
    * 123456
{{{

首先,我输入zM来折叠所有内容。当我将光标定位在Header1时,键入o,Header1折叠打开。当我将光标定位在Header2时,键入o,Header2折叠未打开。所以我认为 我想念折叠结束标志{{{导致了我的问题。