Gleichzeitig mit und ohne Tabulator für Notepad ++

2

Ich möchte, dass Notepad ++ im Edit with Notepad++Kontextmenü des Explorers mit Registerkarten versehen wird (wie dies standardmäßig der Fall ist) , aber in einem neuen Fenster ohne Registerkarten (ähnlich wie Notepad / Notepad2) geöffnet wird, wenn ich nur Openbestimmte Dateierweiterungen verwende. Wenn dies in einem anderen Kontextmenü als möglich Openwäre, wäre dies auch gut.

Notepad2 ist gut, aber ich würde gerne die genaue Funktionalität von Notepad ++ für Fenster ohne Tabulator sehen (wie es alle Instanzen des ausgewählten Wortes, Tastenkombinationen usw. hervorhebt). Durch Hinzufügen von asNotepad.xml zum Ordner Notepad ++ wird es jedes Mal in einem neuen Fenster geöffnet, aber ich möchte in der Lage sein, Fenster mit Registerkarten gleichzeitig zu öffnen.

Mit "C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -notabbar -nosession <text file> in cmd (das leicht geändert werden kann, um es in ein Kontextmenü einzufügen oder möglicherweise mit "Öffnen" zu arbeiten) wird Notepad ++ in einem neuen Fenster ohne Tab-Leiste geöffnet. Das scheint auf den ersten Blick gut zu sein, aber wenn dieses Fenster noch geöffnet ist, Edit with Notepad++wird es in diesem Fenster ohne Registerkarte geöffnet, wenn Sie eine beliebige Datei verwenden.

Zantier
quelle
Übergeben von Parametern hat funktioniert? In diesem Fall können Sie den Registrierungseintrag bearbeiten, der für das Öffnen von N ++ verantwortlich ist, wenn Sie auf "Mit N ++ bearbeiten" klicken. Hier ist, wie stackoverflow.com/questions/9379120/…
Alex
Das beantwortet meine Frage nicht, aber danke, das ist nützlich zu wissen.
Zantier
1
Sie könnten versuchen, zwei verschiedene Versionen von N ++ an zwei verschiedenen Orten zu installieren und diesen Registrierungseintrag zum Öffnen einer dieser Versionen und den Doppelklick zum Öffnen einer anderen Version verwenden. Das ist jedoch nur eine Umgehung. Sie können beide Versionen so einstellen, dass Konfigurationsdateien und persönliche Dateien im selben Ordner gespeichert werden, damit beim Verschieben von einem Fenster in ein anderes keine Daten verloren gehen. Stellen Sie einfach sicher, dass Sie "Autoupdate" deaktivieren.
Alex
Dies wird Ihr Problem nicht lösen, aber als Problemumgehung können Sie die Move to New InstanceOption immer dann verwenden, wenn sie in der Registerkartenansicht geöffnet wird.
Roney Michael
@ user117893 Ich habe die komprimierte Version von Notepad ++ 6.2.3 heruntergeladen (während ich 6.3 installiert habe). Ich habe eine Textdatei mit der heruntergeladenen Version: notepad++.exe -multiInst -notabbar -nosession <text file>geöffnet. Wenn ich dann eine andere Datei mit öffne Edit with Notepad++, wird sie im selben Fenster geöffnet. Ich hoffe, es ist offensichtlich, dass es nicht ideal ist, zwei Dateien im selben Fenster ohne Tab-Leiste zu öffnen! Ich hatte das gleiche Ergebnis beim Versuch mit mehreren Versionen von Notepad ++.
Zantier

Antworten:

2

Es scheint keine triviale Lösung zu geben, daher habe ich 2 Kopien von Notepad ++ verwendet:

  • (Kopie mit Registerkarten) Installation von Notepad ++ 6.3 zum Öffnen von Dateien in Registerkarten
  • (ungetabbte Kopie) Notepad ++ 6.3 wurde aus dem Quellcode kompiliert und mit ein paar kniffligen Änderungen versehen, um Dateien in neuen Fenstern zu öffnen (ungetabbt).

Ohne die Verbesserungen an der unbenutzten Version von Notepad ++ werden Dateien in der erwarteten Version von Notepad ++ nicht immer geöffnet. Es tut mir leid, wenn das Bearbeiten von Quelldateien nicht für Superuser geeignet ist, aber ich hoffe, dass dies für jemanden nützlich ist.


Kompilieren der unbenutzten Kopie

In der Readme-Datei zum Quellcode wird das Kompilieren in Visual Studio 2005 empfohlen, in Visual C ++ 2010 Express (kostenlos von Microsoft - http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express ).

Öffnen Sie einfach npp.6.3.src \ PowerEditor \ visual.net \ notepadPlus.vcproj (und konvertieren Sie das Projekt, wenn Sie dazu aufgefordert werden) und erstellen Sie "Unicode Release". Sie können jetzt testen, ob es richtig erstellt wurde:

Bildbeschreibung hier eingeben

Dadurch wird notepad ++. Exe in PowerEditor \ bin abgelegt, aber Sie benötigen eine Kopie von SciLexer.dll im selben Verzeichnis, bevor es ausgeführt wird. Dies ist im Lieferumfang von Notepad ++ enthalten. Laden Sie es einfach von der Website herunter. Erstellen Sie außerdem eine leere Textdatei "asNotepad.xml" im selben Verzeichnis, wodurch die Tabulatur aufgehoben und Dateien in neuen Fenstern geöffnet werden.

Optimierungen

Ändern Sie in winmain.cpp in Zeile 214 "nppInstance"zu "nppInstance2"oder ähnlich. Mit dieser Änderung wird die Registerkartenkopie von Notepad ++ nicht denken, dass ein Notepad ++ - Fenster bereits geöffnet ist, wenn Sie nur Fenster ohne Registerkarten geöffnet haben.

Ändern Sie in Notepad_plus_Window.cpp in Zeile 32 "Notepad++"zu "Notepad++2"oder ähnlich. Dies wird in winmain.cpp in Zeile 287 verwendet. Mit dieser Änderung enthält die Version mit Registerkarten keine Fenster ohne Registerkarten, wenn nach derzeit geöffneten Fenstern gesucht wird, in denen die Datei geöffnet werden soll.

Erstellen Sie nun erneut und verschieben Sie den Ordner PowerEditor \ bin an eine beliebige Stelle. Wenn Sie möchten, dass die Kopie ohne Tabulatoren beim Öffnen bestimmter Dateierweiterungen (z. B. TXT) geöffnet wird, musste ich in Windows 7 "notepad ++. Exe" in "notepad ++ 2.exe" umbenennen, da sie sonst geöffnet wird die installierte (tabbed) Kopie.


Bearbeiten:

Wenn Sie aus dem Quellcode kompiliert haben und das Plugins-Menü verwenden möchten, müssen Sie auch DLLs aus einer anderen Kopie von Notepad ++ in den Plugins-Ordner kopieren.

Zantier
quelle
0

Eine Lösung wäre die Verwendung der Funktion "Senden an" in Windows.

Fügen Sie eine Verknüpfung zu Notepad ++ in den %APPDATA%\Microsoft\Windows\SendToOrdner ein

(Dies ist normalerweise in C:\Users\<username>\Appdata\Roaming\Microsoft\Windows\SendTo)

Klicken Sie mit der rechten Maustaste auf die Verknüpfung, wählen Sie Eigenschaften aus und wechseln Sie zur Registerkarte Verknüpfung.

Verwenden Sie "C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst -notabbar -nosessionim Feld Ziel.

Klicken Sie nun mit der rechten Maustaste auf eine Datei und Senden an -> Editor ++ öffnet die Datei in Editor ++ ohne Tabulator.

Da das -notabbarFlag Notepad ++ derzeit zu zwingen scheint, seine Einstellungen zu speichern, sollten Sie in SendTo zwei Verknüpfungen einrichten:

Ein Hinweis auf die standardmäßig installierte Version von Notepad ++ mit dem Namen "Notepad ++ Tabbed" (mit den Flags -multiInst -nosessionam Ende des Zielfelds)

Einer (mit -multiInst -nosession -notabbarangefügtem Zielfeld) zeigt auf die komprimierte Version des Programms mit dem Namen "Notepad ++ Untabbed".

Solange beide Verknüpfungen mit dem -multiInstFlag versehen sind, können sie gleichzeitig ausgeführt werden und Sie haben die VOLLSTÄNDIGE Kontrolle darüber, welche Version welches Dokument öffnet.

Tim Radcliffe
quelle
Vielen Dank für die Mühe, Balthus, aber mit der Registerkarte Notepad ++ .exe, die mit der Markierung -multiInstgeöffnet wird, werden die Dateien jedes Mal in einem neuen Fenster und nicht in einer neuen Registerkarte geöffnet.
Zantier