Вопрос или проблема
Создать новый файл в 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++
- На панели инструментов Notepad++ нажмите “Настройки”
- Нажмите “Настройки…”
- На боковой панели нажмите “Новый документ”
- Поставьте галочку “Всегда открывать новый документ при запуске”
(Очевидный недостаток здесь заключается в том, что вы можете не захотеть, чтобы это происходило при каждом запуске!)
Вариант 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
В основном:
- Вы можете указать нестандартную директорию настроек при запуске Notepad++ с параметром
-settingsDir=
. - Этот пакетный файл клонирует вашу директорию настроек Notepad++, затем требует от вас редактирования клонированного файла config.xml, чтобы включить “Всегда открывать новый документ при запуске”
- Он превращает все остальные файлы в клонированной директории в символические ссылки, чтобы все файлы вашей сессии оставались актуальными. (Если вы измените другие настройки в диалоговом окне настроек приложения, возможно, вам придется повторно запустить этот пакетный скрипт, так как содержимое config.xml не будет автоматически обновляться)
- Наконец, он сохраняет строку команды на вашем рабочем столе. (Предполагая, что у вас полностью стандартная установка 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++. Однако каждая из них имеет свои ограничения и особенности применения.
Пример
-
Запуск новой сессии без предыдущих открытий:
Команда:
Notepad++.exe -nosession
позволяет открыть Notepad++ без восстановления ранее открытых файлов. Это предотвращает перегруженность программы неактуальными данными. Однако недоступны файлы, которые были открыты в предыдущих сессиях, и для их восстановления потребуется перезапуск стандартным образом.
-
Постоянное создание нового документа:
Настройка:
- Откройте Notepad++.
- Перейдите в "Настройки" -> "Параметры…".
- Выберите "Новый документ" в боковой панели.
- Установите флажок "Всегда открывать новый документ при запуске".
Хотя это может быть полезным для постоянного создания новых документов, это также приносит неудобство, если вы обычно работаете с ранее открытыми файлами.
-
Создание и открытие файла через командную строку:
Использование следующей команды позволяет создать файл через командную строку и открывать его без диалогов:
echo . > filename.extension && "notepad++.exe" -multiInst -nosession filename.extension
Сначала создается файл, а затем запускается Notepad++ в отдельной сессии без необходимости подтверждать создание файла в диалоговом окне.
-
Использование альтернативных настроек через скрипт:
Более сложные подходы могут использовать сценарии (например, batch-файлы), чтобы создать отдельную директорию настроек, где Notepad++ будет всегда открывать новый файл при запуске. Это решение требует некоторых знаний в программировании и манипуляциях файловой системы, но предоставляет высокий уровень автоматизации.
Применение
Для внедрения данных решений в рабочий процесс, вам необходимо:
- Установить Notepad++ и добавить его путь в системную переменную PATH для удобного доступа из командной строки.
- Если вы используете batch-скрипты, убедитесь, что они находятся в безопасном месте и проверены на предмет ошибок перед применением в автоматизационных сценариях.
- Рассмотрите влияние каждой настройки на вашу конкретную рабочую среду и выберите метод, который максимально отвечает вашим требованиям.
Данные подходы не только позволяют обойти ограничения стандартного диалога в Notepad++, но и предлагают возможности для более глубокого внедрения автоматизации в рабочие процессы. При правильной настройке команды и скрипты могут значительно повысить эффективность работы с текстовыми файлами в Windows.