4

Есть ли способ сделать Notepad++ автоматически завершать слова на вкладке вместо Enter?

В настоящее время, если вы хотите напечатать, скажем, frame , нажмите Enter, чтобы начать новую строку, вместо этого Enter выберет первое предложение автозаполнения , например frameElement:

    

Я хочу функцию автозаполнения, но я предпочел бы иметь ключ , как Tab сделать фактический выбор, потому что вписывает часто предназначено в стороне начала новой строки, а Tab редко используется для отступа после слова (с отступом, как правило , сделано в начале строки), и поэтому, возможно, будет лучше перенаправить на автозаполнение.

3 ответа3

4

Настройки для Tab и Enter находятся в ярлыке ярлыков в меню настроек. Смотрите вкладку Команды Scintilla.

Однако вы не можете изменить запись Tab на Enter, поскольку Enter уже сопоставлен.

Как уже говорилось, это функция встроенного компонента Scintilla, а не ошибка самого Notepad++.

3

Это нежелательное поведение жестко запрограммировано в Scintilla, компоненте редактирования текста, лежащем в основе 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, но я сделал то же самое с Geany - другим текстовым редактором, основанным на Scintilla - и это, похоже, работает.

1

В новой версии больше нет необходимости менять комбинацию клавиш.
Эффект Tab такой же, как Enter .

Я использую блокнот ++ 6.7.3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .