Подтвердить что ты не робот

Как имитировать функции Visual Studio CTRL-X, CTRL-V в Notepad ++?

Я использую Notepad ++ для некоторых проектов и пропускаю функциональность Visual Studio Ctrl + X, Ctrl + C, которая сокращает или копирует всю текущую строку при отсутствии текста. Сокращение строки сокращается, как представляется, Ctrl + L, что не так удобно, как Ctrl + X, а сокращенная копия выглядит как Ctrl + D, Ctrl + L, что еще менее удобно.

Хотя ранее был задан вопрос аналогичный вопрос, способ сделать это в Notepad ++ не был предоставлен, и я не могу найти решение на сайте Notepad ++ или на его форумах.

4b9b3361

Ответ 1

Синтезируя все другие ответы и комментарии, а также некоторые дополнительные необходимые шаги, которые не были упомянуты:

Scintilla предоставляет команду "copyAllowLine", которая делает это. Notepad ++ не раскрывает эту команду в ярлыке mapper, но вы можете вызвать его из Python script и сопоставить Ctrl + C с этим script. Для "cutAllowLine" нет соответствующей команды, но для этого потребуется немного дополнительного кода Python. Эти скрипты должны быть добавлены в меню, а Notepad ++ должен перезагрузиться, прежде чем они станут доступными в ярлыке.

  • Установите плагин Python Script (может быть выполнен с помощью диспетчера плагинов Notepad ++)

  • Создайте следующие два сценария python, используя меню Plugins → Python script → New Script

    copyAllowLine.py

    editor.copyAllowLine()
    


    cutAllowLine.py

    if editor.getSelectionStart() == editor.getSelectionEnd():
        editor.lineCut()
    else:
        editor.cut()
    


  • Python script → Конфигурация

    • под Сценарии пользователя, добавьте пункт меню для каждого script.

  • Перезапустить блокнот ++ (важно)

  • Настройки → Ярлык Mapper...

    • в командах Scintilla, удалите существующие ассоциации для Ctrl + C и Ctrl + X.

    • в командах плагинов, найдите созданные вами скрипты и нарисуйте их ярлыки.

Примечание: при установке с помощью диспетчера плагинов была установлена ​​версия 1.0.6. Когда я попытался запустить любой python, связанный с Notepad ++, я получил неизвестное исключение из диспетчера плагинов. Решение заключалось в том, чтобы вручную загрузить и установить 1.0.8.msi отсюда: 1.0.8 установщик

Ответ 3

  • Установите Плагин NppPython (может быть выполнен с помощью диспетчера модулей Notepad ++)
  • Создайте этот python script с помощью меню Plugins → Python script → New script:

    if editor.getSelectionStart() == editor.getSelectionEnd():
        editor.lineCut()
    else:
        editor.cut()
    
  • Перезапустить блокнот ++ (важно)

  • Перейдите в Настройки меню → Ярлык Mapper → Команды плагинов

  • Найдите script, который вы только что создали в списке, и установите для него сочетание клавиш CTRL + X

  • Наслаждайтесь!

Ответ 4

Перейдите в Настройки- > Ярлык и перейдите на вкладку "Команды Scintilla" вверху. Под ним вы можете изменить команду Ctrl + L на Ctrl + X.

Ответ 5

Вы можете добавить script с плагином Python script Notepad ++ и назначить Ctrl + C script (удалить отображение Ctrl + C из SCI_COPY в ярлыке mapper, Scintilla Commands)

script:

if editor.getSelectionStart() == editor.getSelectionEnd():
    line = editor.getCurLine()
    editor.copyText(line)
else:
    editor.copy()

Очевидно, просто добавьте еще один подобный script для Ctrl-X, который вместо этого удаляет строку.

Ответ 6

Плагин из MackieChan: блокнот с визуальной копией студии

должен быть настроен следующим образом:

  • Поместите его в папку notepad ++/plugin

  • открыть блокнот ++ (перезагрузка)

  • в настройках → ярлык Mapper

    в командах Scintilla, удалите существующие ассоциации для Ctrl + C, X

    в командах плагинов, найдите созданные вами скрипты и сопоставьте свои ярлыки с ними.

Ответ 7

Существует плагин для него https://github.com/kbilsted/NppPluginCutNCopyLine с открытым исходным кодом, и код можно легко изменить, если у вас есть дополнительные потребности.

Ответ 8

вы можете написать программу с глобальным ключевым событием, который каждый раз, когда вы делаете Ctrl + X, проверяет, является ли блокнот ++ самым передовым запущенным приложением, захватывает экран, проверяет, выбран ли какой-либо текст (путем поиска на снимке экрана и настройках цвета вашего блокнота +) и отправляет сообщение WM_KEYPRESS в окно блокнота ++, имитирующее Ctrl + L (при условии, что вы используете окна).

(это не помещает строку в буфер обмена, но вам придется сделать некоторое распознавание символов, чтобы это разрешить)