2 votos

Notepad ++ ¿Cómo cerrar automáticamente todas las pestañas al seleccionar un archivo nuevo (manteniendo solo la pestaña activa)?

Mi máquina es lenta, así que cada vez que abro un archivo nuevo(haciendo doble clic) me gustaría tener el abierto anteriormente ficha(s) el auto cerrado.

En el Bloc de notas++ 7.5.7, estoy abriendo una carpeta como un área de trabajo, y cada vez que abro un archivo nuevo, necesito clic con el botón derecho y seleccione close all but this, hay una manera de hacerlo de forma automática de configuración?

enter image description here

En otras palabras, cuando se abre un archivo nuevo, los demás se cierra automáticamente, sólo un archivo abierto(ficha) en un tiempo.

Traté de limitar el reciente historial de archivos para uno, pero no es la clave.

Editar

Creo que la idea es limitar el número de pestañas abiertas a 1, pero, ¿cómo hacer eso?

1voto

Toto Puntos 294

Menú: Configuración> Asignador de accesos directos

introduzca la descripción de la imagen aquí

luego elige el atajo que quieras

1voto

PryrtCJ Puntos 23

Yo sólo vi tres posibles maneras de resolver este problema; los dos primeros han sido rechazadas; tal vez el tercero de trabajo.

  1. Cambiar la configuración: tan lejos como yo he sido capaz de ver, la configuración se puede realizar cerca de su requerimiento, pero no se exactamente satisfacer sus necesidades. No creo que la configuración funcione para usted.

  2. El uso de un acceso directo como una solución: esto puede automatizar la apertura de un archivo y cierre todos los demás, pero no le permitirá utilizar la doble clic en el archivo desde el Explorador de Windows para iniciar el proceso.

  3. El uso de secuencias de comandos del plugin en el gancho de acciones en el archivo-abrir el evento dentro de Notepad++. Tal vez no rechazar este, aunque se necesita más trabajo para usted.

Cada método se describe en mayor detalle después, con los más antiguos empujado a la baja como he editado la respuesta.

TRES: el Uso de secuencias de comandos del plugin

El uso de la PythonScript plugin (o el LuaScript plugin, o, posiblemente, la jN Notepad++ Plugin), es posible conectar un gancho ("registrar una devolución de llamada") para el evento que se activa después de que se abre un archivo en el Bloc de notas++ (en PythonScript, este es el llamado NOTIFICATION.FILEOPENED evento, en el Bloc de notas de objeto). La función que se necesita para cerrar todos los archivos, pero el recientemente inaugurado archivo.

En realidad, no hay mucho más que eso. Sólo será un par de líneas de código, incluso con el contenedor, por lo que voy a escribir es para usted.

# encoding=utf-8
"""in response to https://superuser.com/questions/1412875"""
from Npp import *

def su1412882_OnOpen_callback(kwargs):
    """this is the function that will be called when a new file is opened"""
    notepad.activateBufferID(kwargs['bufferID'])
    notepad.closeAllButCurrent()

def register_OnOpen_callback():
    """Registers the OnOpen callback"""
    unregister_OnOpen_callback()    # starts by making sure there are none registered
    notepad.callback(su1412882_OnOpen_callback, [NOTIFICATION.FILEOPENED])

def unregister_OnOpen_callback():
    """Unregisters the OnOpen callback - used to make sure that running the script twice doesn't register two instances of the same callback"""
    notepad.clearCallbacks(su1412882_OnOpen_callback)

if __name__ == '__main__': register_OnOpen_callback()

Una vez:

  1. Instalar PythonScript (el uso de Plugins de Administración en la v7.6.3 o posterior, o usando el Plugin Manager plugin en la v7.5.9 o anterior), reinicie el Bloc de notas++
  2. Plugins > Secuencia De Comandos De Python > Nueva Secuencia De Comandos. El nombre de "closeAllButRecent.py" en la propuesta de directorio predeterminado
  3. Pegar el código anterior en el archivo y guárdelo.
  4. Plugins > secuencia de Comandos de Python > Configuración de..., del cambio de Inicialización: LAZY a ATSTARTUP.
  5. Plugins > secuencia de Comandos de Python > secuencias de comandos, a continuación, ctrl+clic en startup.
  6. Agregar las siguientes líneas al final de la startup.py, y guardar.
import closeAllButRecent
closeAllButRecent.register_OnOpen_callback()
  1. Reinicie El Bloc De Notas++

A partir de ahora, se debe cerrar todo, excepto el archivo abierto.

Oh, usted también querrá Configuración > preferencias > copia de seguridad > recuerde sesión actual para estar APAGADO, de lo contrario cuando se abre por primera vez, podría haber un segundo archivo abierto (aunque, después de eso, si usted abre un archivo, se cierra automáticamente en caso de que se abrió).

si desea deshacer esto, comentar las dos líneas de startup.py y reiniciar el Bloc de notas++; después de eso, el Bloc de notas++ le permite editar varios archivos de nuevo.

DOS: el Uso de un acceso directo como una solución

Inspirado por @Toto comentario bajo otra respuesta, puede asignar un acceso directo a múltiples acciones, si se utiliza una macro.

  1. Cierre todas las instancias de Notepad++, y cargar una sola instancia de Notepad++ (esto asegura que ningún proceso de configuración-los cambios que se han apoderado)
  2. Editar %AppData%\Notepad++\shortcuts.xml, y en el <macros> sección, agregar:
        <Macro name="Close All then Open New" Ctrl="no" Alt="no" Shift="no" Key="0">
            <Action type="2" message="0" wParam="41004" lParam="0" sParam="" />
            <Action type="2" message="0" wParam="41002" lParam="0" sParam="" />
        </Macro>
  1. Guardar. Salga De Bloc De Notas++. Volver a cargar el notepad++.
  2. De correr la macro (a través de Macros > Cerca de Todo, a continuación, Abra de Nuevo) va a cerrar todos los archivos abiertos, a continuación, el pop hasta el Archivo > Abrir el cuadro de diálogo
  3. Si usted lo desea, añadir un atajo de teclado con Macros > Modificar los accesos directos, la selección de Close All then Open New, y elige un acceso directo que puede recordar.

Esto no va a influir en el Explorador de Windows RClick > Abrir Con el Notepad++o el Bloc de notas++'s Archivo > Abrir. Pero le dará una forma de automatizar el proceso en un comando de menú o la tecla.

Gracias @Toto para el germen de la idea.

UNO: no se Puede hacer por un valor (RESPUESTA ORIGINAL con modificaciones)

Si deshabilita la Configuración > Preferencias > Copia de seguridad > ☐ Recordar actual período de sesiones para el próximo lanzamiento, a continuación, Notepad++ no voy a tratar de recordar lo que los archivos que estaban abiertos, y acaba de empezar con lo que usted inicie el Bloc de notas++ -- con un archivo en blanco si usted acaba de golpear a su acceso, o cualquier archivo que está editando, si usted está lanzando desde el Explorador de Windows o similar

actualización: tu aclaración me ayudó a entender lo que usted quiere. Si usted cambia de acceso directo (y las entradas del registro) para incluir el -nosession -notabbar opciones, entonces creo que se comportan de la manera que usted desea: no recordar previamente a abrir los archivos cuando se ejecuta por primera vez el Notepad++ (es decir, la aplicación de la movilidad ☐ Remember current session for next launch), y no tiene tabbar, que (creo) se limita a un archivo abierto en un tiempo. Yo nunca he usado este modo.

Usted necesita tener cuidado, porque hay un asNotepad.xml archivo (ver aquí y aquí para más detalles, buscando asNotepad.xml en cada página), que, si lo encuentra, ejecutar el Bloc de notas++ asumiendo -multiInst -nosession -notabbar opciones siempre habilitado -- el -multiInst permite que haya más de una copia de Notepad++ se ejecuta (similar a Windows ser capaz de abrir más de una notepad.exe simultáneamente). Puesto que usted está preocupado acerca de la memoria, usted no quiere múltiples Notepad++ instancias abiertas a la vez. El otro problema con multi-instancia mdoe es que si cambia la configuración en una de las instancias abiertas de Notepad++, que no se propagan a los demás... y la última configuración guardada en el disco va a ser la configuración de la instancia pasa a ser cerrada el pasado.

actualización 2: yo sólo hizo algunos experimentos. -notabbar no es suficiente: si se abre un segundo archivo con -notabbar activo, que todavía va a tener ambos archivos abiertos, como puede verse en el Bloc de notas++'s de la Ventana de menú, que todavía lista de archivos abiertos. Así que ahora mi respuesta es:

Lo sentimos, no hay, no se puede tener cierra automáticamente la anteriormente-abrir el archivo cuando se abre un nuevo archivo de Notepad++ se está ejecutando actualmente.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: