有没有办法让 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 的任意组合:
答案3
Tab 和 Enter 的设置都在设置菜单的快捷键映射器中。请参阅 Scintilla 命令选项卡。
但是,您无法将 Tab 条目更改为 Enter,因为 Enter 已被映射。
正如所暗示的,这是嵌入式 Scintilla 组件的功能,而不是 Notepad++ 本身的错误。
答案4
在新版本中,没有更合适的更改键盘快捷键。
的效果Tab
与 相同Enter
。
我正在使用 notepad++ 6.7.3