Можно ли сделать Notepad ++ для открытия ссылок на файлы?

13

В «Настройках / Предпочтениях» Notepad ++ имеет параметр на MISC.вкладке «Кликабельные настройки ссылок» справа, чтобы включить, чтобы открывать ссылки, найденные в отредактированных файлах. Он подчеркивает их и открывает их по двойному щелчку. Я попробовал это с file:///протоколом, и он работает, но на самом деле он выполняет их в соответствии с любой файловой ассоциацией, которую я установил в Windows.

Есть ли способ, протокол или способ «сделать» (локальный) протокол, чтобы Notepad ++ открывал любые типы файлов (с любым расширением) по этим ссылкам в документе в самом Notepad ++? (т.е. в другой вкладке)

n611x007
источник
Это довольно поздний ответ ... То есть вы не хотите менять свой редактор по умолчанию на Notepad ++, вы просто хотите, чтобы ссылки, которые находятся внутри Notepad ++, оставались там при их открытии?
Джон
@ Да, как ты говоришь! Кроме того, еще лучше, если я могу выбрать, какой тип (протокол) ссылок открывать внутренне (n ++) и внешне (ОС). Таким образом, я мог выбрать этот единственный файл: // ссылки для открытия в n ++.
n611x007
1
Я предполагаю, что для этого потребуется плагин. Просканировано с помощью плагинов Directory for Notepad ++, но ничего подобного не обнаружено, только плагин Explorer, который обещает открыть любой файл, который щелкает в Npp.
Загримсан
Для всех, кто такой же дурак, как я: я не мог заставить это работать с file: // links. Это потому, что я пытался "file: // C: \ SomeFolder \ SomeFile.txt". Это сработало, когда он переключился на «file: // C: /SomeFolder/SomeFile.txt»
Rob3C
Не забудьте использовать в %20качестве замены пробел в ссылке, например file://C:/Some%20Folder/Some%20File.txt. Он также работает , если вы оставите обратный слэш \ в пути до тех пор , пока у вас есть право протокола: file://C:\Some%20Folder\Some%20File.txt.
Томас Х. Шмидт

Ответы:

6

file://это встроенный протокол Windows, поэтому, если вы хотите игнорировать «какую бы файловую ассоциацию не было установлено в Windows», я бы предложил вам использовать выделенный протокол, скажем npp://. Затем добавьте это в свой реестр (используя соответствующий путь в вашей системе):

[HKEY_CLASSES_ROOT\NPP]
@="URL: NotePad++ Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\NPP\DefaultIcon]
@="\"C:\\Program Files\\Notepad++\\notepad++.exe\""

[HKEY_CLASSES_ROOT\NPP\shell]

[HKEY_CLASSES_ROOT\NPP\shell\open]

[HKEY_CLASSES_ROOT\NPP\shell\open\command]
@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""
CB
источник
1
превосходный совет и забавные результаты: D. в зависимости от разделителя пути и количества каталогов, которые я использую, N ++ / windows ведет себя очень по-разному (иногда открывая папку в проводнике ?!), большинство комбинаций не работает. Также я сбежал \"%1\"в файл .reg.
n611x007
Дело принято. : "> Я сам исправил это сейчас, но я думаю, что вы могли бы сделать это сами, учитывая, что это исправление ошибки. Что касается противоречивых результатов, программист во мне хотел бы предложить вам сделать тестовое приложение, которое выдвигает на первый план что бы то ни было, окна переходят к нему как args [0] ...: D
CB
Не работает на моем Win10. (С исправлениями «(x86)» в пути к файлу или без них.) Думаю, мне также понадобится обходной путь, который Люк описывает в своем ответе .
StackzOfZtuff
1

Данный ответ не работает для моей системы Windows 7 Pro. Параметр %1никогда (правильно) не передавался в NotePad ++ и начинался с пустого нового файла.

Однако вместо этого я начал пакетный файл через @=c:\soft\start-notepad.bat "%1" В этом пакетном файле я содранный с NPP:///префиксом из %1и заменить /с \внутренней стороны %1. Из этого пакетного файла запуск NotePad ++ с измененным параметром %1работает отлично. Вот краткий код командного файла:

пуско-notepad.bat

set note=insert here the path to notepad++.exe
set para1=%1%
SETLOCAL ENABLEDELAYEDEXPANSION 
set para1=!para1:edit:///=!
set para1=!para1:/=\!
%note% %para1%

Кавычки "%1"вокруг на %1самом деле не нужны, потому что путь или имена файлы с пробелами или специальными символами , будет в любом случае приведут к сломанным гиперссылка в Notepad ++.

При необходимости это должно быть исправлено в NotePad ++, например, %20для «пробела», иначе гиперссылка на ссылку NPP:///c:/path/file name.txtпрекратится после file.

Люк
источник