Создайте новый экземпляр и файл из командной строки notepad++.

Вопрос или проблема

Создать новый файл в Notepad++ легко. Просто запустите notepad++.exe filename.extension, и если файл не существует, вам будет предложено: “Хотите создать этот файл?” Я хотел бы обойти это диалоговое окно, потому что оно заставляет окно диалога получить фокус и может создать проблемы для пользователей с ограниченными возможностями.

Суть в том, чтобы найти метод командной строки для запуска нового экземпляра, создающего новый файл, эквивалентный ALT+F6, кроме того, что он создает новый файл, что открывает второй экземпляр, если вы находитесь в Notepad-Plus-Plus.

Возможно ли использовать командную строку для запуска notepad++ с новым, пустым файлом, как будто внутри notepad++ была нажата комбинация клавиш ctrl+n?

Я понимаю, что вы можете добавить некоторые команды, такие как makefile или notepad++ filename.txt, а затем нажать “создать файл”, когда он говорит “файл не существует”. Но я предпочел бы эффективно нажать Ctrl+N с помощью команды на интерфейсе командной строки Windows (CLI).

Как заявили другие пользователи, это невозможно напрямую.

К счастью, есть несколько решений, все немного хитрые, но любой из них достигнет вашей цели. Обратите внимание, что они работают только в том случае, если Notepad++ еще не запущен.

Вариант 1: Запуск новой сессии

Notepad++.exe -nosession

Недостаток этой команды в том, что вы не сможете получить доступ к файлам, которые вы ранее оставили открытыми (обычно видимыми как вкладки под панелью инструментов Notepad++). Данные не будут потеряны, однако. Вам просто нужно снова запустить Notepad++ в обычном режиме, чтобы их увидеть.

Вариант 2: Создание новой вкладки файла каждый раз при запуске Notepad++

  1. На панели инструментов Notepad++ нажмите “Настройки”
  2. Нажмите “Настройки…”
  3. На боковой панели нажмите “Новый документ”
  4. Поставьте галочку “Всегда открывать новый документ при запуске”

(Очевидный недостаток здесь заключается в том, что вы можете не захотеть, чтобы это происходило при каждом запуске!)

Вариант 3: Запуск с альтернативными настройками

Сохраните следующий блок кода как пакетный файл и запустите его. Объяснение того, как это работает, в конце.

@ECHO OFF
SETLOCAL EnableDelayedExpansion

ECHO Вы можете вручную изменить переменную "settingsDir" в этом пакетном файле, чтобы избежать ошибок с нестандартными путями установки
SET settingsDir=%APPDATA%\Notepad++

CALL :test_path %SettingsDir% dirpath
CALL :test_path %CD%\config.xml dirpath
MKDIR Newtab
CP config.xml .\Newtab\
FOR %%f in (*) DO (
    MKLINK /H ".\Newtab\%%f" "%%d"
)
FOR /D %%d in (*) DO (
    MKLINK /J ".\Newtab\%%d" "%%d"
)

SET settingsDir=%CD%
SET newconfig=%CD%\Newtab\config.xml
CALL :test_path %CD%\Notepad++.exe
ECHO.
ECHO Вам необходимо вручную отредактировать %newconfig%
ECHO.
ECHO Найдите строку: addNewDocumentOnStartup="no"
ECHO Замените на: addNewDocumentOnStartup="yes" и сохраните файл.
.\Notepad++.exe %newconfig%
ECHO.
PAUSE

ECHO.
ECHO Предполагая, что вы внесли указанные выше правки в XML-файл, ваша команда теперь настроена!
ECHO Она будет сохранена как однострочный пакетный файл на вашем рабочем столе.
ECHO (Возможно, вы захотите скопировать команду в другое место, например, в цель ярлыка или в реестр!)
ECHO %CD%\Notepad++.exe -settingsDir="%SettingsDir%\NewTab">%USERPROFILE%\Desktop\NewTxtNP++.cmd

EXIT


:test_path
IF EXIST %1 (
    CD %1
    :EOF /b
) ELSE (
    IF %3==err (
        ECHO Указанный путь не существует!
    )
    IF %2==dirpath (
        ECHO Введите полный путь к вашей директории настроек Notepad++, заключенный в кавычки, например, "C:\Users\Имя\Appdata\Roaming\Notepad++"
        ECHO (Директория должна содержать "config.xml" среди других файлов.)
    )
    IF %2==exepath (
        ECHO Введите родительскую директорию вашего файла Notepad++.exe, заключенную в кавычки, например, "C:\Program Files\Notepad++"
    )
    SET /P pathvar=Путь к директории: 
    CALL :test_path !pathvar! %2 err
    :EOF /b
)

ENDLOCAL

В основном:

  1. Вы можете указать нестандартную директорию настроек при запуске Notepad++ с параметром -settingsDir=.
  2. Этот пакетный файл клонирует вашу директорию настроек Notepad++, затем требует от вас редактирования клонированного файла config.xml, чтобы включить “Всегда открывать новый документ при запуске”
  3. Он превращает все остальные файлы в клонированной директории в символические ссылки, чтобы все файлы вашей сессии оставались актуальными. (Если вы измените другие настройки в диалоговом окне настроек приложения, возможно, вам придется повторно запустить этот пакетный скрипт, так как содержимое config.xml не будет автоматически обновляться)
  4. Наконец, он сохраняет строку команды на вашем рабочем столе. (Предполагая, что у вас полностью стандартная установка Notepad++, эта команда будет: %ProgramFiles%\Notepad++\Notepad++.exe -settingsDir=%AppData%\Notepad++\Newtab )

Схожий вопрос.

Хорошо, похоже, исследуя этот вопрос, я пропустил этот вопрос 12-летней давности: открыть два экземпляра Notepad++…. Очень схожий, немного другой.

Краткий ответ:

Из командной строки мы используем

echo . > filename.extension && "notepad++.exe" -multiInst -nosession filename.extension

!Внимание!: не запускайте -multiInst БЕЗ -nosession. Это действительно сильно всё испортило для меня! Notepad++ стал чрезвычайно медленным и глючным, постоянно зависал, я пробовал переустанавливать и перезагружаться (не помогло), в итоге нашел “C:\Users%username%\AppData\Roaming\Notepad++\session.xml” (длиной ~500 строк) и решил, что будет лучше потратить часы, сохраняя все несохраненные файлы, и просто удалить session.xml…. Notepad++ кажется работает нормально, но я не чувствую уверенности, что я действительно всё починил!

Чувствительность к регистру, кавычки важны, но не обязательны во всех настройках. Это должно попросить вас и спросить, хотите ли вы создать файл, если файл еще не существует.

Без echo . > filename.extension мы не обходим диалог “Файл не существует. Создать новый?”

echo . > filename.extension && "notepad++.exe" -multiInst -nosession

сначала создает файл, связывая команды.

PowerShell использует "./notepad++.exe", при условии, что ваш путь настроен правильно и вы создали новый экземпляр командной строки после обновления пути.

В запущенном экземпляре NPP мы можем использовать Alt + F6, как указано в вопросе.

Предварительные требования:

  • Вам нужно установить Notepad++.
  • Добавьте директорию Notepad++ в путь. Директория по умолчанию C:\Program Files\Notepad++.
  • Запустите новую/свежую копию cmd, чтобы путь смог вступить в силу.

Ответ или решение

Создание нового файла и инстанса Notepad++ из командной строки может быть полезной задачей для автоматизации процессов или работы с текстовыми файлами в настройках, например, программного обеспечения или написания сценариев. Однако в данном контексте задача осложнима тем, что Notepad++ по умолчанию предлагает диалоговое окно, когда вызывается с именем файла, который еще не существует. Этот процесс может создавать неудобства для пользователей с ограниченными возможностями, а также несет в себе потери в плане производительности и устойчивости рабочих процессов.

Теория

Notepad++ — это популярный текстовый редактор для Windows, который поддерживает открытие файлов через командную строку. Это весьма удобно для тех, кто предпочитает автоматизацию и управление программами через CLI (интерфейс командной строки). Однако стандартное выполнение команды notepad++.exe filename.extension в случае отсутствия файла вызывает диалоговое окно, о котором упоминалось выше. Поэтому есть необходимость избегать появление этого окна посредством использования командных параметров.

Существует несколько подходов, чтобы обойти это диалоговое окно и автоматизировать процесс создания и открытия нового файла в отдельной инстансе Notepad++. Однако каждая из них имеет свои ограничения и особенности применения.

Пример

  1. Запуск новой сессии без предыдущих открытий:

    Команда:

    Notepad++.exe -nosession

    позволяет открыть Notepad++ без восстановления ранее открытых файлов. Это предотвращает перегруженность программы неактуальными данными. Однако недоступны файлы, которые были открыты в предыдущих сессиях, и для их восстановления потребуется перезапуск стандартным образом.

  2. Постоянное создание нового документа:

    Настройка:

    • Откройте Notepad++.
    • Перейдите в "Настройки" -> "Параметры…".
    • Выберите "Новый документ" в боковой панели.
    • Установите флажок "Всегда открывать новый документ при запуске".

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

  3. Создание и открытие файла через командную строку:

    Использование следующей команды позволяет создать файл через командную строку и открывать его без диалогов:

    echo . > filename.extension && "notepad++.exe" -multiInst -nosession filename.extension

    Сначала создается файл, а затем запускается Notepad++ в отдельной сессии без необходимости подтверждать создание файла в диалоговом окне.

  4. Использование альтернативных настроек через скрипт:

    Более сложные подходы могут использовать сценарии (например, batch-файлы), чтобы создать отдельную директорию настроек, где Notepad++ будет всегда открывать новый файл при запуске. Это решение требует некоторых знаний в программировании и манипуляциях файловой системы, но предоставляет высокий уровень автоматизации.

Применение

Для внедрения данных решений в рабочий процесс, вам необходимо:

  • Установить Notepad++ и добавить его путь в системную переменную PATH для удобного доступа из командной строки.
  • Если вы используете batch-скрипты, убедитесь, что они находятся в безопасном месте и проверены на предмет ошибок перед применением в автоматизационных сценариях.
  • Рассмотрите влияние каждой настройки на вашу конкретную рабочую среду и выберите метод, который максимально отвечает вашим требованиям.

Данные подходы не только позволяют обойти ограничения стандартного диалога в Notepad++, но и предлагают возможности для более глубокого внедрения автоматизации в рабочие процессы. При правильной настройке команды и скрипты могут значительно повысить эффективность работы с текстовыми файлами в Windows.

Оцените материал
Добавить комментарий

Капча загружается...