2012-04-27 13 views
6

Ich benutze Notepad ++ für ein paar Monate jetzt und durch alle Einstellungen gegangen, aber finde keine Möglichkeit, die npp schließen zu schließen, wenn ich die letzte Registerkarte schließe. Es würde immer ein neues leeres Dokument starten.Schließen Notepad ++, wenn das letzte Dokument geschlossen ist

Irgendwelche Ideen, wie kann ich die NPP machen beim Schließen des letzten Dokument zu schließen?

Antwort

0

notepad ++ ist eine MDI-Formularanwendung, wie das MS OFFICE, schließen das Kind MDI-Formular nicht die Hauptanwendung, so denke ich, es ist keine Idee, wenn Sie die Quelle von nodepad ++ neu erstellen.

2

Wenn Sie mit Python vertraut sind, könnten Sie versuchen, die Python Script Plug-in für N ++. Sie würden einen Rückruf Skript für das Dokument-geschlossen-Veranstaltung. Innen ist es zu tun einige Iteration durch alle geöffneten Dokumente, und wenn 1 gibt es nur in es ohne Text links, dann N ++ beenden.

Persönlich habe ich die Tasten "Alt + x" auf "Exit" Notepad ++ gemappt, das ist dann einfacher zu meistern als das normalerweise funktionierende "Alt + F4".

/EDIT

ich eigentlich ganz Ihre Idee gefallen hat, also habe ich versucht, schnell es selbst. Es dauerte ~ 20 Minuten, um es herauszufinden. Hier ist eine komplette Lösung:

  1. Installieren Sie das Plug-in Python Script (Link oben)
  2. Zum Plugins> Python> Konfiguration und ändern Initialisation Modus von LAZY zu ATSARTUP
  3. Öffnen Sie "... \ Notepad ++ \ plugins \ Pyth onScript \ scripts \ startup.py "und am Ende davon folgenden Code: Seems like the code tags don't work below a numbered list, so click me to see the code
def shutdownNppOnLastFileClosed(args): 
    import os 
    files = notepad.getFiles() 
    # there are always at least 2 'buffers' open in N++ 
    if len(files) == 2: 
     currentBufferID = notepad.getCurrentBufferID() 
     for (filename, bufferID, index, view) in files: 
      if os.path.exists(filename): 
       break 
      notepad.activateBufferID(bufferID) 
      if editor.getLength() > 0: 
       break 
      # TODO: just to be on the safe side - if we 
      # reached here, we actually should also check 
      # if the 2 left empty buffers are not unsaved, 
      # but I couldn't find a way to do that. 
     else: 
      # following 'menuCommand' looks cleaner than 
      # the 'sys.exit' but it currently deadlocks N++: 
      #notepad.menuCommand(MENUCOMMAND.FILE_EXIT) 
      sys.exit(0) 
     notepad.activateBufferID(currentBufferID) 
notepad.callback(shutdownNppOnLastFileClosed, [NOTIFICATION.FILECLOSED]) 
+0

es hat einen Fehler - wenn keine gespeicherten Dokumente geöffnet - nur geöffnet (one && leer && nicht geändert) Dokument - es funktioniert nicht – msangel

3

Dieser total auf UFO-Code basiert. Nur, dass es funktioniert, wenn Sie das letzte Dokument schließen, sei es neu oder nicht, und es wird npp nicht eingefroren.

Aus Gründen der Kürze folgt hier die Schritte wieder:

  1. die Python-Skript-Plug-in installieren
  2. Auf Plugins> Python Script> Konfiguration Änderung Initialisation Modus von LAZY ATSARTUP
  3. Öffnen Sie ... \ Notepad ++ \ plugins \ PythonScript \ scripts \ startup.py und fügen Sie den folgenden Code am Ende davon ein.
  4. speichern und neu starten Npp das Skript zu laden.

    from threading import Timer 
    
    def shutdownNppOnLastFileClosed(args): 
    
        def closeNpp(): 
         notepad.menuCommand(MENUCOMMAND.FILE_EXIT) 
    
        files = notepad.getFiles() 
        if len(files) == 2: 
         t = Timer(0.1, closeNpp) 
         t.start() 
    
    notepad.callback(shutdownNppOnLastFileClosed, [NOTIFICATION.FILEBEFORECLOSE]) 
    
2

Das neueste Update von Notepad ++ beinhaltet die Funktionalität der Anwendung zu schließen, nachdem die letzte Registerkarte zu schließen.

Um Notepad ++ zu aktualisieren, gehen Sie zu?> Aktualisieren Sie Notepad ++ und folgen Sie dem Installationsassistenten.

Wenn die Aktualisierung abgeschlossen ist, können Sie im Menü Einstellungen> Voreinstellungen die Option "Beim Schließen der letzten Registerkarte beenden" (unter der Eingabegruppe "Registerleiste") auswählen.

+0

Ab Notepad ++ v7.5.3, die Verwendung der startup.py mit PythonScript hat einige Probleme, wenn als Git-Editor verwendet. Wenn eine Datei über das Python-Skript geschlossen wird, scheint es nur den Git-Prozess aufzuhängen. Die Notepad ++ -Instanz sieht optisch geschlossen aus, bleibt jedoch gemäß Process Explorer erhalten. Using @ Sebastians Vorschlag arbeitete für mich. – blitzvergnugen

Verwandte Themen