我想用一个例子来证明我的问题。
假设我正在处理以下代码,#表示光标。
int main(int argc, char** argv)
{
char* str = #;
if (argc == 1) {
// this is folded
}
}
假设我要添加一个空字符串,即只有2个引号""
。当我输入第一个字符串时,字符串是未关闭的,vim认为字符串一直持续到EOF。这会打破沿路径的所有折叠。
int main(int argc, char** argv)
{
char* str = "#;
if (argc == 1) {
// this is now temporarily in string so the fold breaks
}
}
现在,当我输入另一个“一秒钟后,字符串现在关闭,但所有折叠到EOF的东西现在都已打开。
int main(int argc, char** argv)
{
char* str = ""#;
if (argc == 1) {
// this now open
}
}
如何防止这种情况发生?
我使用vim 7.4
并使用set foldmethod=syntax
作为我的折叠方法。