2012-04-27 13 views
6

Estoy usando Notepad ++ durante un par de meses y he pasado por todas las configuraciones pero no puedo encontrar la manera de hacer que el npp se cierre cuando cierro la última pestaña. Siempre comenzaría un nuevo documento vacío.Bloc de notas de cierre ++ cuando el último documento está cerrado

¿Alguna idea de cómo puedo hacer que el npp se cierre al cerrar el último documento?

Respuesta

0

notepad ++ es una aplicación de formulario MDI, como MS OFFICE, cerrar el formulario MDI secundario no afectará a la aplicación principal, por lo tanto, creo que no es idea a menos que reconstruya la fuente de nodepad ++.

2

Si está familiarizado con Python, puede probar el plug-in Python Script para N ++. Debería configurar un script de devolución de llamada para el documento cerrado-evento. Dentro, haga una iteración a través de todos los documentos abiertos, y cuando solo quede 1 sin texto, termine N ++.

Personalmente asigné las teclas "Alt + x" a "Salir" del Notepad ++, que es más fácil de graficar que el "Alt + F4" que normalmente funciona.

/EDIT

De hecho, me gustó bastante su idea, tan rápido que he probado a mí mismo. Tardó ~ 20 minutos en descubrirlo. Aquí hay una solución completa:

  1. Instalar el plug-in de secuencias de comandos de Python (enlace de arriba)
  2. Ir a Plugins> Python> Configuración y cambiar inicialización modo de LAZY a ATSARTUP
  3. Abra "... \ Notepad ++ \ plugins \ Pyth OnScript \ scripts \ startup.py "y colocar siguiente código al final de la misma: 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

tiene un error - cuando no hay documentos guardados abiertos - se abrió solo (un && vacío && no modificado) documento - no es trabajo – msangel

3

Esto se basa totalmente en el código del OVNI. Solo que funciona cuando cierra el último documento, ya sea nuevo o no, y no congela npp.

En aras de la brevedad, aquí sigue los pasos de nuevo:

  1. instalar el script Python plug-in
  2. En Plugins> Script Python> Configuración cambio del modo de inicialización del perezoso para ATSARTUP
  3. Abra ... \ Notepad ++ \ plugins \ PythonScript \ scripts \ startup.py y coloque el siguiente código al final del mismo.
  4. Guarde y reinicie Npp para cargar la secuencia de comandos.

    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

La última actualización de Notepad ++ incluye la funcionalidad de cerrar la aplicación después de cerrar la última pestaña.

Para actualizar Notepad ++, vaya a?> Actualizar Notepad ++ y siga el asistente de instalación.

Cuando se complete la actualización, tendrá la opción en el menú Configuración> Preferencias para "Salir al cerrar la última pestaña" (en el grupo de entrada Barra de pestañas).

+0

A partir de Notepad ++ v7.5.3, el uso de startup.py con PythonScript tiene algunos problemas cuando usado como el editor de Git. Si un archivo se cierra a través de PythonScript, simplemente parece colgar el proceso de Git. La instancia de notepad ++ se ve visualmente cerrada, pero permanece de acuerdo con Process Explorer. El uso de la sugerencia de @ Sebastian funcionó para mí. – blitzvergnugen

Cuestiones relacionadas