有没有办法让 Notepad++ 在 {TAB} 而不是 {ENTER} 上自动完成单词?

有没有办法让 Notepad++ 在 {TAB} 而不是 {ENTER} 上自动完成单词?

有没有办法让 Notepad++ 自动完成单词Tab而不是Enter

目前,如果要输入,比如说,frame然后Enter开始新行,则会Enter选择第一个自动完成建议,例如frameElement

    在此处输入图片描述

想要自动完成功能,但我更希望有一个像Tab进行实际选择的键,因为Enter它通常用于开始新行,而Tab它很少用于缩进一个单词(因为缩进通常在开始行数),因此也许最好将其重新用于自动完成。

答案1

这种不良行为被硬编码到闪烁,Notepad++ 的基础文本编辑组件。可以通过从中删除以下三行来修复此问题src/ScintillaBase.cxx

        case SCI_NEWLINE:
            AutoCompleteCompleted(0, SC_AC_NEWLINE);
            return 0;

经过此更改,Enter 键不再具有自动完成功能。Tab 键已经这样做了,正如用户 2427906 所指出的。

应该可以下载Notepad++ 的源代码(包括 Scintilla),进行上述更改scintilla\src\ScintillaBase.cxx(Notepad++ 6.9 中的代码略有不同,但这应该不是问题),然后构建 Notepad++来自修改后的源代码。

我没有尝试过这个,因为我既不使用 Notepad++,也不使用 Windows,但我也做了同样的事情吉尼— 另一个基于 Scintilla 的文本编辑器 — 而且它似乎可以工作。

答案2

版本 8.2.1允许选择 tab 和 enter 的任意组合:

Notepad++ 自动完成设置

答案3

Tab 和 Enter 的设置都在设置菜单的快捷键映射器中。请参阅 Scintilla 命令选项卡。

但是,您无法将 Tab 条目更改为 Enter,因为 Enter 已被映射。

正如所暗示的,这是嵌入式 Scintilla 组件的功能,而不是 Notepad++ 本身的错误。

在此处输入图片描述

在此处输入图片描述

答案4

在新版本中,没有更合​​适的更改键盘快捷键。
的效果Tab与 相同Enter

我正在使用 notepad++ 6.7.3

相关内容