基于VIM中switch / case语句中的范围的cindent缩进问题
发布时间:2020-12-15 22:32:25 所属栏目:安全 来源:网络整理
导读:我目前在VIM中的C缩进设置中设置了以下内容: set cinoptions=l1 这允许autoindent自动处理case语句的缩进,因此我自动获得以下类型的对齐: switch(intForSwitching) { case 1: { // Comment // More comments break; } case 2: { //Comment break; } defaul
我目前在VIM中的C缩进设置中设置了以下内容:
set cinoptions=l1 这允许autoindent自动处理case语句的缩进,因此我自动获得以下类型的对齐: switch(intForSwitching) { case 1: { // Comment // More comments break; } case 2: { //Comment break; } default: { break; } } 但是,这仅适用于每个案例(在语句之后)用大括号{}包装的情况.我只在case语句中使用大括号,如果我需要在这种情况下声明新的临时变量,因为它引入了一个新级别的块作用域.因此,下面的示例给出了我不想要的缩进,因为case语句与它执行的代码对齐,这使得将case语句与与它们相关联的代码块分开更加困难: // This is what I get switch(intForSwitching) { case 1: { // Comment // More comments break; } case 2: //Comment break; default: break; } // This is what I want switch(intForSwitching) { case 1: { // Comment // More comments break; } case 2: //Comment break; default: break; } 此外,ifdef语句不再起作用.以前,autoindent会将所有预处理程序指令对齐到第0列,即: char c; if (c) { #ifdef TESTING printf("%c",c); #endif } 现在,它将它与我不想要的代码对齐.即: char c; if (c) { #ifdef TESTING printf("%c",c); #endif } 当我使用大括号围绕个别情况时,有没有办法保留现有的对齐方式,并且对于不使用大括号的情况也有类似的对齐方式? 谢谢. 解决方法
最后,我改变了一些环境变量并修复了所有内容,尽管使用了相同的VIM二进制文件.
先前: DEV_PATH="/dev/bin:/dev/sbin:/dev/usr/bin:/dev/usr/sbin" MACPORTS_PATH="/opt/local/bin:/opt/local/sbin" SYSTEM_PATH="/bin:/sbin:/usr/bin:/usr/sbin" PATH="${SYSTEM_PATH}:${DEV_PATH}:${MACPORTS_PATH}" 现在: PATH="${MACPORTS_PATH}:${SYSTEM_PATH}:${DEV_PATH}" 从VIM发出ctags命令后我注意到了这一点,他们突然对我使用的命令行参数感到悲伤. 另一半是删除了一个脚本,用于查看我从?/ .vim / plugins中删除的QML语法,最终解决了我的问题. 在任何情况下,问题都已解决.干杯! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |