Uso de NppExec y Ruby para crear secuencias de comandos de una nueva función de macro para Notepad++

Uso de NppExec y Ruby para crear secuencias de comandos de una nueva función de macro para Notepad++

Trabajo en EE. UU. y Europa, y cambiar entre los formatos mes/día (EE. UU.) y día/mes (UE) genera ambigüedades al revisar registros o notas (por ejemplo, ¿es el 8/7/12 el 8 de julio o el 7 de agosto?).

Me gustaría cambiar la función de marca de tiempo de Notepad++ para usar el formato internacional

YYYY-MM-DD--DAY--HH:MM

2012-08-19--Sun--20:30

Tenga en cuenta que tener el DÍA de la semana escrito sería un buen extra y evita tener que buscar qué día era en un calendario.

Actualmente el NPP no tiene esta flexibilidad. ¿Hay alguna manera de hacer esto usando una macro o script de algún tipo, tal vez usando Ruby?

Respuesta1

Compartiendo cómo hacer esto usando el complemento NppExec y Ruby.

Solución:

Acercarse: Obtenga un lenguaje de secuencias de comandos externo (en este caso Ruby) para devolver la marca de tiempo formateada y para que NppExec la reciba y la inserte en la ubicación del cursor en el archivo actual que se muestra en Notepad++.

Primero configura la consola:

    npe_console v+   // set console to receive output in $(OUTPUT) variable
    npe_console d+   // set current working directory to same as current file

Luego, en NppExec > Ejecutar comando de menú, ingrese el siguiente fragmento:

    // Diary snippet (Generates timestamp YYYY-MM-DD--DAY--HH:MM for NPP++)
    npp_console disable     // turn off output displaying to console
    // this ruby one-liner does the work
    ruby -r Date -e "dt=DateTime.now; dname = Date::ABBR_DAYNAMES[dt.wday]; puts dt.strftime(\"%Y-%m-%d--#{dname}--%H:%M\");"  
    sel_settext $(OUTPUT)   // put result at cursor in current file
    npp_console enable      // restore output displaying to console
    npp_console 0           // hide the console window

Esto utiliza el motor Ruby para generar la marca de tiempo y la inserta donde está el cursor en el archivo actual en Notepad++. El resultado (con un retraso de aproximadamente 500 ms) es la marca de tiempo:

    2012-08-20--Mon--20:16

Nota:Si bien esto ciertamente funciona, si alguien tiene una solución que no dependa de nada externo (en este caso Ruby), sería mejor.


Editar: "Produccionar" la solución... (robustez y conveniencia)

Siguiendo los pasos a continuación, se puede producir la solución anterior...

Un obstáculo es que al cerrar Notepad++ se pierde la configuración de la consola, por lo que debe configurarse en cada reinicio.

Entonces configuramos la configuración de la consola como un script que se ejecuta automáticamente cada vez que se inicia Notepad++.

Luego, asocie un método abreviado de teclado (tecla de acceso rápido) al guión del diario para mayor comodidad.

Paso 1: Ingrese el código del diario en un cuadro de diálogo NppExec Excute...: Plugins > NppExec > Execute..., dándole un nombre (usará ese nombre más adelante)

Paso 1: ingrese el código del diario

Paso 2: Ingrese el código de configuración setup_console de manera similar:

Paso 2: ingrese el código de configuración de la consola

Pasos 3, 4, 5: En Plugins > NppExec > Advanced Options, configure setup_console para que se ejecute al inicio (3), cree un elemento de menú para el código del diario (4) y coloque el elemento de menú en el Macromenú (5):

Pasos 3,4,5: configurarlo todo

Paso 6:Configure una tecla de acceso rápido del teclado (atajo) para el script del diario: Settings > Shortcut Mapper... > Pluginsy desplácese hacia abajo hasta encontrar el nombre del script del diario que utilizó...

Paso 6: método abreviado de teclado

Resultado:Si busca debajo del Macroscomando de menú, verá su nuevo comando Marca de tiempo con un método abreviado de teclado.

Resultado - hecho

¡Hecho!

información relacionada