Notepad ++ peut-il être fait pour ouvrir des liens de fichiers en soi?

13

Dans Paramètres / Préférences, Notepad ++ a une option sur l' MISC.onglet sous 'Paramètres de lien cliquable' à droite, pour activer pour ouvrir les liens trouvés dans les fichiers modifiés. Il les souligne et les ouvre en double-cliquant. Je l'ai essayé avec le file:///protocole et cela fonctionne, mais il les exécute en fonction de l'association de fichiers que j'ai définie dans Windows.

Existe-t-il un moyen, un protocole ou un moyen de "créer" un protocole (local), tel que Notepad ++ ouvre tout type de fichiers (n'importe quelle extension), à partir de ces liens dans le document, dans Notepad ++ lui-même? (c'est-à-dire dans un autre onglet)

n611x007
la source
C'est une réponse assez tardive ... Donc, vous ne voulez pas changer votre éditeur par défaut pour Notepad ++, vous voulez simplement permettre aux liens qui sont à l'intérieur de Notepad ++ de rester là-bas lorsque vous les ouvrez?
Jon
@Jon oui, comme tu dis! En plus, encore mieux si je peux sélectionner le type (protocole) de liens à ouvrir en interne (n ++) et en externe (OS). J'ai donc pu sélectionner ce seul fichier: // liens à ouvrir en n ++.
n611x007
1
Je suppose que cela nécessiterait un plugin pour le faire. Analysé par le répertoire pour les plug-ins Notepad ++ mais n'a rien repéré comme ça, seul le plug-in Explorer qui promet d'ouvrir tout fichier sur lequel on clique dans Npp.
zagrimsan
Pour quiconque là-bas aussi stupide que moi: je ne pouvais pas faire fonctionner cela avec les liens file: //. C'est parce que j'essayais "file: // C: \ SomeFolder \ SomeFile.txt". Cela a fonctionné quand il est passé à "file: // C: /SomeFolder/SomeFile.txt"
Rob3C
N'oubliez pas d'utiliser %20en remplacement d'un espace dans le lien, par exemple file://C:/Some%20Folder/Some%20File.txt. Il fonctionne également si vous quittez la barre oblique inverse \ dans le chemin aussi longtemps que vous avez le droit de protocole: file://C:\Some%20Folder\Some%20File.txt.
Thomas H. Schmidt,

Réponses:

6

file://est un protocole intrinsèque de Windows, donc si vous voulez ignorer "quelle que soit l'association de fichiers [est] définie dans Windows", je vous suggère d'utiliser un protocole dédié, disons npp://. Ajoutez ensuite ceci à votre registre (en utilisant le chemin correspondant sur votre système):

[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
la source
1
superbe astuce et résultats amusants: D. selon le séparateur de chemin et le nombre de répertoires que j'utilise, N ++ / windows se comporte très différemment (parfois en ouvrant un dossier dans l'explorateur?!), la plupart des combinaisons ne fonctionnent pas. Je me suis également échappé \"%1\"dans le fichier .reg.
n611x007
Point pris. : "> Je l'ai corrigé moi-même maintenant, mais je pense que vous auriez pu le faire vous-même, considérant que c'est un bug.; Quant aux résultats incohérents, le programmeur en moi aimerait vous suggérer de faire une application de test qui met en évidence quoi que ce soit que windows lui passe comme args [0] ...: D
CB
Ne fonctionne pas sur mon Win10. (Avec ou sans corrections pour "(x86)" dans le chemin du fichier.) Je suppose que j'aurais également besoin de la solution de contournement décrite par Luke dans sa réponse .
StackzOfZtuff
1

La réponse donnée n'a pas fonctionné pour mon système Windows 7 Pro. Le paramètre %1n'a jamais (correctement) été fourni à NotePad ++ et il a commencé avec un nouveau fichier vide.

Cependant, au lieu de cela, j'ai commencé un fichier de commandes via @=c:\soft\start-notepad.bat "%1" Dans ce fichier de commandes, j'ai supprimé le NPP:///préfixe de %1et remplacé /par l' \intérieur de %1. A partir de ce fichier batch, le démarrage de NotePad ++ avec le paramètre modifié %1fonctionne parfaitement. Voici le code de fichier batch court:

start-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%

Les guillemets "%1"autour %1ne sont pas vraiment nécessaires, car les chemins ou les noms de fichiers avec des espaces ou des symboles spéciaux entraîneront de toute façon des hyperliens cassés dans Notepad ++.

Si nécessaire, cela doit être corrigé dans NotePad ++ avec par exemple %20pour "l'espace", sinon l'hyperlien de lien NPP:///c:/path/file name.txts'arrêtera après file.

Luc
la source