Usando NppExec e Ruby para criar script de um novo recurso de macro para Notepad++

Usando NppExec e Ruby para criar script de um novo recurso de macro para Notepad++

Eu trabalho nos EUA e na Europa, e alternar entre os formatos mês/dia (EUA) e dia/mês (UE) leva a ambigüidades ao examinar registros ou notas (por exemplo, 8/7/12, 8 de julho ou 7 de agosto?).

Gostaria de alterar o recurso de carimbo de data/hora do Notepad++ para usar o formato internacional

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

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

Observe que ter o DIA da semana escrito seria um ótimo extra e evitaria ter que procurar que dia era no calendário.

Atualmente o NPP não tem essa flexibilidade. Existe uma maneira de fazer isso usando algum tipo de macro ou script, talvez usando Ruby?

Responder1

Compartilhando como fazer isso usando o plugin NppExec e Ruby.

Solução:

Abordagem: Obtenha uma linguagem de script externa (neste caso Ruby) para retornar o timestamp formatado e para o NppExec recebê-lo e inseri-lo no local do cursor no arquivo atual mostrado no Notepad++.

Primeiro configure o console:

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

Em seguida, em NppExec > comando de menu Executar, insira o seguinte trecho:

    // 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

Isso usa o mecanismo Ruby para gerar o carimbo de data/hora e insere-o onde o cursor está no arquivo atual no Notepad++. O resultado (com um atraso de cerca de 500 ms) é o carimbo de data/hora:

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

Observação:Embora isso certamente funcione, se alguém tiver uma solução que não dependa de nada externo (nesse caso, Ruby), seria melhor.


Editar: "Produção" da solução... (robustez e conveniência)

Seguindo as etapas abaixo, a solução acima pode ser produzida...

Um obstáculo é que fechar o Notepad++ perde a configuração do console, portanto, isso deve ser configurado a cada reinicialização.

Portanto, definimos a configuração do console como um script que é executado automaticamente sempre que o Notepad++ é iniciado.

Em seguida, associe um atalho de teclado (tecla de atalho) ao script do diário por conveniência.

Passo 1: Insira o código do diário em uma caixa de diálogo NppExec Excute...: Plugins > NppExec > Execute..., dando um nome a ele (você usará esse nome mais tarde)

Passo 1 - Insira o código do diário

Passo 2: Insira o código de configuração setup_console de forma semelhante:

Passo 2 – Insira o código de configuração do console

Etapas 3, 4, 5: Em Plugins > NppExec > Advanced Options, configure setup_console para ser executado na inicialização (3), crie um item de Menu para o código do diário (4) e coloque o item de Menu no Macromenu (5):

Etapas 3,4,5 – Preparando tudo

Etapa 6:Defina uma tecla de atalho do teclado (atalho) para o script do diário: Settings > Shortcut Mapper... > Pluginse role para baixo até encontrar o nome do script do diário que você usou...

Passo 6 – Atalho de teclado

Resultado:Olhando sob o Macroscomando do menu, você verá seu novo comando Timestamp com atalho de teclado.

Resultado - concluído

Feito!

informação relacionada