我正在尝试弄清楚 Geany 中为 C 文件定义注释块样式的位置。
我的意思是,当我选择一段文本并按下 ctrl-e 时,该文本块中的每一行都会在缩进级别前面添加一个//~
问题出在多余的空格上。我在空白行上看到了//~
,但是我在保存文件时也启用了修剪尾随空格,因此我得到了以下序列。
void aprinter(uint8_t * buf) {
uint16_t length = sizeof(*buf) / sizeof(buf[0]);
printf("len: %d;\n", length);
uint16_t i;
for (i = 0; i < length; i++) {
printf("buf[%d]: 0x%02x;\n", i, buf[i]);
}
}
我想注释掉这个函数的核心,所以我选择它并按下 ctrl-e
void aprinter(uint8_t * buf) {
//~ uint16_t length = sizeof(*buf) / sizeof(buf[0]);
//~
//~ printf("len: %d;\n", length);
//~
//~ uint16_t i;
//~ for (i = 0; i < length; i++) {
//~ printf("buf[%d]: 0x%02x;\n", i, buf[i]);
//~ }
}
我保存了此状态下的代码,稍后再回来取消注释这些行,再次按 ctrl-e 会出现此情况
void aprinter(uint8_t * buf) {
uint16_t length = sizeof(*buf) / sizeof(buf[0]);
//~ //~
printf("len: %d;\n", length);
//~ //~
uint16_t i;
for (i = 0; i < length; i++) {
printf("buf[%d]: 0x%02x;\n", i, buf[i]);
}
}
我真的很想让 Geany 使用与 eclipse (prepend //
) 相同的语法,因为我在两者之间来回切换,并且无法取消注释由另一个创建的块。
我很乐意删除尾随空格,以摆脱这些虚假的//~ //~
线条。
geany 代码块注释的另一个丑陋特点是,如果您在一个较大的块内有一块注释代码,而您现在正在注释掉它,它将取消注释该内部块。
我搜索了配置文件路径(/usr/share/geany 和 ~/.config/geany),但没有找到//~
编辑:
经过所有这些搜索,我偶然发现了“评论切换标记”选项
Edit -> Preferences -> Editor -> Features
我仍然对将注释添加到行首而不是缩进级别的方法感兴趣。
答案1
我正在尝试弄清楚 Geany 中为 C 文件定义注释块样式的位置。
所有颜色定义和其他文件类型特定设置都存储在文件类型定义文件中。这些设置包括语法高亮的颜色、注释字符或字分隔符等常规设置以及编译器和链接器设置。
...
Comment_single
用于注释代码的字符或字符串。如果您只想使用多行注释,请不要设置此项,而是设置 comment_open 和 comment_close。
单行注释优先于多行注释用于注释一行,例如使用注释/取消注释行命令。
例子:
comment_single=//
评论打开
用于注释代码的字符或字符串。您还需要设置 comment_close 才能真正使用多行注释。如果您想使用单行注释,最好设置 comment_single。
多行注释优先于单行注释用于注释一个块,例如模板注释。
例子:
comment_open=/*
评论关闭
如果使用多行注释,这是关闭注释的字符或字符串。
例子:
comment_close=*/
comment_use_indent
如果注释字符或字符串应从行的第 0 列开始,则将其设置为 false。如果设置为 true,则使用行的任意缩进。
注意:注释缩进
comment_use_indent=true
如果某一行被注释掉(例如使用 Ctrl-D),则会生成以下内容:
#command_example();
comment_use_indent=false
如果某一行被注释掉(例如使用 Ctrl-D),则会生成以下内容:
# command_example();
注意:此设置仅适用于单行注释(如“//”、“#”或“;”)。
例子:
comment_use_indent=true
来源文件类型定义文件
我仍然对将注释添加到行首而不是缩进级别的方法感兴趣。
使用comment_use_indent=false