Notepad++ с вкладками и без вкладок одновременно

Я хочу, чтобы Notepad++ был с вкладками (как это по умолчанию), когда я использую Edit with Notepad++ контекстное меню в проводнике, но открывается в новом окне без вкладок (аналогично Notepad/Notepad2), когда я просто Open определенные расширения файлов. Если это можно сделать в другом пункте контекстного меню, кроме OpenЭто тоже было бы хорошо.

Notepad2 хорош, но мне бы хотелось, чтобы точные функциональные возможности Notepad++ были открыты для окон без ярлыков (способ выделения всех экземпляров выбранного слова, сочетаний клавиш и т. Д.). Добавление asNotepad.xml в папку Notepad++ будет каждый раз открывать ее в новом окне, но я хочу иметь возможность открывать окна с вкладками одновременно.

С помощью "C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -notabbar -nosession <text file> в cmd (который можно легко изменить, чтобы поместить в контекстное меню, или, возможно, для работы с "Открыть"), откроется Notepad++ в новом окне без панели вкладок. Это кажется хорошим на первый взгляд, но с этим открытым окном, используя Edit with Notepad++ любой файл откроет его в этом окне без ярлыков.

2 ответа

Решение

Кажется, нет тривиального решения, поэтому я использовал 2 копии Notepad++:

  • (копия с вкладками) Notepad++ 6.3 Установка для открытия файлов во вкладках
  • (untabbed copy) Notepad++ 6.3 скомпилирован из исходного кода с парочкой хакерских твиков для открытия файлов в новых окнах (untabbed).

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


Компиляция неотмеченной копии

Исходный код readme рекомендует компилировать в Visual Studio 2005, но он прекрасно скомпилирован для меня в Visual C++ 2010 Express (бесплатно от Microsoft - http://www.microsoft.com/visualstudio/eng/downloads).

Просто откройте npp.6.3.src\PowerEditor\visual.net\notepadPlus.vcproj (и преобразуйте проект, если вас об этом попросят) и выберите сборку "Выпуск Unicode". Теперь вы можете проверить правильность сборки:

Это поместит notepad ++. Exe в PowerEditor\bin, но вам потребуется копия SciLexer.dll в том же каталоге, прежде чем он запустится. Это идет с Notepad++, поэтому просто скачайте его с сайта. Также создайте пустой текстовый файл "asNotepad.xml" в том же каталоге, что сделает его открытым и откроет файлы в новых окнах.

Tweaks

В winmain.cpp, в строке 214, измените "nppInstance" в "nppInstance2", или похожие. С этим изменением копия Notepad++ с вкладками не будет думать, что окно Notepad++ уже открыто, если у вас открыты только окна без ярлыков.

В Notepad_plus_Window.cpp в строке 32 измените "Notepad++" в "Notepad++2" или похожие. Это используется в winmain.cpp в строке 287. С этим изменением версия с вкладками не будет включать в себя окна без ярлыков при поиске открытых в данный момент окон, в которых можно открыть файл.

Теперь соберите заново и переместите папку PowerEditor\bin в любое место. Если вы хотите, чтобы неотмеченная копия открывалась при открытии определенных расширений файлов (таких как.txt), в Windows 7 я обнаружил, что мне пришлось переименовать "notepad++. Exe" в "notepad++2.exe", в противном случае он будет открыт установленная (с вкладками) копия.


Редактировать:

Если вы скомпилировали из исходного кода и хотите меню плагинов, вам также необходимо скопировать DLL-файлы в папку плагинов из другой копии Notepad++.

Одним из решений будет использование функции "Отправить" в Windows.

Положите ярлык для Notepad ++ в %APPDATA%\Microsoft\Windows\SendTo папка

(Это обычно в C:\Users\<username>\Appdata\Roaming\Microsoft\Windows\SendTo)

Щелкните правой кнопкой мыши по ярлыку, выберите свойства и перейдите на вкладку ярлыка.

использование "C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -notabbar -nosession в поле "Цель".

Теперь щелкните правой кнопкой мыши по файлу и нажмите "Отправить" -> "Блокнот ++", чтобы открыть файл без ярлыка в "Блокноте ++".

Как -notabbar флаг в настоящее время, кажется, заставляет Notepad ++ сохранять свои настройки, вы должны установить 2 ярлыка в SendTo:

Один указывает на стандартную установленную версию Notepad ++ под названием "Notepad ++ Tabbed" (с флагами -multiInst -nosession добавляется в конец целевого поля)

Один (с -multiInst -nosession -notabbar добавляется к целевому полю), указывая на сжатую версию программы, которая называется "Notepad ++ Untabbed".

Пока оба ярлыка имеют -multiInst добавлен флаг, они могут быть запущены одновременно, и вы ПОЛНОСТЬЮ можете контролировать, какая версия открывает какой документ.

Другие вопросы по тегам