在vim中多行插入文本,不适用于std::



我在vim中练习在多行中插入文本,如本教程和本SO答案所示。

但是,如果要插入的文本是类似于"std::"甚至"std:"的内容,那么这种技术似乎就不起作用了。

对于这样的代码

cout << "Hello World" << endl;
cout << "Yo Yo!" << endl;

我将光标移到第一行,在"c"处,按"Ctrl+V"进入视觉块模式。然后我按"j"选择下一行。然后我按"I"进入特殊插入模式,然后输入要插入的文本。然后我按"Esc"

对于任何简单的文本,如"try_"、

它提供

try_cout << "Hello World" << endl;
try_cout << "Yo Yo!" << endl;

但如果我的文本类似于"std::"

它只是提供

std::cout << "Hello World" << endl;
cout << "Yo Yo!" << endl;

它只会在第一行插入文本,而其他行则保持原样

请引导。

这是由vim的煤渣设置引起的。当您键入std:时,vim假设您正在创建一个名为"std"的标签,并将其缩进减少到0。出于某种原因,这会干扰视觉块插入。输入:set nocindent以暂时获得您想要的行为。我不确定是否可以以更永久的方式解决这个问题,但你可能不经常这样做。

最新更新