Notepad++ 在输入初始子字符串(或前缀)后会自动补全各种文本,这样可以省去打长词的麻烦(也可能避免打错字)。例如,如果你用 JavaScript 编写代码并输入 syn,Notepad++可以作为提示显示同步 (JavaScript 关键词)。你通过输入完成键(见下文“ 自动完成 ”)接受建议,单词会在缓冲区内完成,就像你已经全部打出来一样。如果建议词不是你想要的,请继续输入。
如果候选词列表中有多个词与你输入的匹配,Notepad++ 会显示包含这些词的列表;列表中高亮的单词是完成键中将被选中的单词,但你可以使用 Down-arrow & & PageUp ,来在列表中移动;或者,输入 Esc 以驳回该列表。
Notepad++ 使用三组候选词来创建建议;这些称为“字”、“函数”和“系统路径”。
函数完备
“函数”预先定义并加载,连同对应文件计算机语言的词汇表。(词汇器定义语法着色;自动补全文件指定函数名称。)通常这些函数词包括语言关键词(技术上不是函数),如 C 语言中的 switch 及类似语言,或 Python 中的 lambda,以及一套标准库函数名称,如 C 语言中的 assert 或 fdopen。
这些函数列表存储在自动补全定义文件中,每个文件根据其语言命名。(这些文件中的词语不一定包含词汇定义中列出的所有关键词。)这些文件可以指定哪些词是关键词,哪些是函数;函数支持额外的补全功能“参数提示”。本文件中的函数和关键词在整个文档中都被视为“函数补全”。
参数提示
自动补全定义文件可以指定关键词是否为函数。当输入函数名称并加上用于包裹函数参数的开头括号时,Notepad++ 会自动或手动显示提示(也称为“调用提示”):一个小巧的工具提示式框打开,内含函数描述的文本。虽然实际显示的文本由定义文件的作者决定,但通常至少会显示函数调用中每个参数的一个关键词。这可能帮你省去查找函数文档去记住这些参数的麻烦。
如果当前函数有多个提示定义,工具提示框中会出现上下箭头(▲ ▼)。你可以点击这些箭头,或者使用 Alt+UpArrow 快捷 Alt+DownArrow 键来循环查看参数提示。(这些快捷键未被显示在快捷键映射工具中,也未受其影响。键盘快捷键是 v8.4.5 新增的。)
如果在自动补全设置中选择了开括号选项,Notepad++ 会自动显示提示。用户也可以在菜单中选择“函数参数提示”,或者当插入号位于函数调用的开头和闭合括号之间时,通过按键(默认: Ctrl+Shift+Space )选择。同样,提示可以用 Esc 忽略。
单词补全
“单词”取自当前文件——文件中无处不在、注释和代码中。任何两个字符或以上的单词都会被添加到列表中。这包括数字,但带有小数点的数字被分为两个不同的“单词”。
路径完成
与功能和字补全不同,后者可以在按 1 次(或 X 次)键后自动触发,路径补全需要手动触发,通过快捷方式(默认: Ctrl+Alt+Space )或通过菜单命令“ 编辑 > 自动补全 > 路径补全 ”在输入驱动器后触发(例如“C:”)。如果插入点左侧的字符串不属于系统路径,路径列表就不会出现。
自动完成
补全键
手动补全
自动插入
光标位于空的圆括号、方括号或大括号之间
光标前后均为空白字符(空格、制表符、行首或行尾)
光标前为空白,后为右括号、右方括号或右大括号
/ 结尾,则不会补全闭合标签。显示补全列表
自动补全设置
创建自动补全定义文件
autoCompletion 子文件夹中。<KeyWord> 标签,仅包含 name 属性。如需让关键字显示函数提示,需添加 func="yes" 属性,此时 <KeyWord> 为非自闭合标签,内部包含重载与参数定义。<Overload> 节点,一个函数至少需要一个重载才能显示提示。retVal 属性为必填项,用于声明返回值类型;descr 为可选属性,用于填写函数说明,可使用换行符分隔内容。每个参数使用 <Param> 标签表示,name 属性必填,用于填写参数类型或名称。<AutoComplete> 标签可添加 language 属性,仅用于标识,程序本身不会使用该值。自动补全文件格式
autoCompletion 文件夹中,不支持放在用户配置目录。文件为可选,需要为哪种语言启用补全就创建对应文件,用户自定义语言同样支持,文件命名格式为 <语言名称>.xml。normal.xml。<NotepadPlus>,内部包含一个 <AutoComplete> 节点,其下为自闭合的 <Environment> 标签,可用属性如下:ignoreCase:是否忽略大小写,区分大小写填no,默认yesstartFunc:参数列表起始字符,默认为(stopFunc:参数列表结束字符,默认为)paramSeparator:参数分隔符,默认为,terminal:函数原型结束符,支持 C 风格独立声明时默认为;,不支持则留空或使用非法字符additionalWordChar:额外允许的单词字符,顺序不限,不可使用空格
<Environment> 标签本身也可省略,但不推荐这样做。<KeyWord> 标签,必须按名称升序排序。排序规则由 ignoreCase 决定:忽略大小写则按大写字母排序,区分大小写则按字符字节值排序。func="yes",内部包含至少一个 <Overload>,每个重载可带返回值、说明和多个 <Param> 参数。所有文本内容受内部缓冲区限制,总长度不可超出限制。名称与特殊字符
&#xhhhh;,十进制实体格式不支持。排序
<KeyWord> 必须严格按名称升序排列,否则可能导致补全失效且无提示。区分大小写排序可使用编辑菜单中的行操作 > 字典序升序排序。不区分大小写排序需手动将小写视为大写处理,下划线应排在所有字母之后,内置排序功能不适用此场景。