NppExec 및 Ruby를 사용하여 메모장의 새로운 매크로 기능 스크립팅 ++


8

미국과 유럽에서 일하고 있으며 월 / 일 (US)과 일 / 월 (EU) 형식 간을 전환하면 로그 나 메모를 볼 때 모호성이 생깁니다 (예 : 7 월 8 일 또는 12 일 8 월 7 일 또는 8 월 7 일?).

국제 형식을 사용하도록 메모장 ++ 타임 스탬프 기능을 변경하고 싶습니다

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

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

요일을 표시하는 것은 좋은 추가 기능이며 캘린더에서 어떤 요일을 찾지 않아도됩니다.

현재 NPP에는 이러한 유연성이 없습니다. 루비를 사용하여 매크로 나 스크립트를 사용하여이 작업을 수행 할 수있는 방법이 있습니까?


DD & DAY와 DAY & HH 사이의 대시는 무엇입니까?
Louis Waweru

이중 대시-시간을 기준으로 날짜를 시각적으로 설정합니다. 보다 미학적으로 더 즐거운 것 같습니다 2012-08-19-Sun-20:30. (타임 스탬프가 단일 문자 단위가되기를 원하므로 공백을 원하지 않습니다 ...) 그에 따라 질문을 편집했습니다.
Assad Ebrahim

1
메모장의 강력한 기능 세트로 인해 메모장 ++을 사용하여 수년 동안 많은 코딩 작업을 수행 한 결과 GUI 내에서 스크립팅 언어를 사용하여 몇 번이나 연결하고 싶었는지 전혀 알 수 없습니다. 이것을 게시 해 주셔서 감사합니다!
벤 리차드

답변:


6

NppExec 플러그인과 Ruby를 사용하여이 작업을 수행하는 방법을 공유합니다.

해결책:

접근 방식 : 외부 스크립팅 언어 (이 경우 Ruby)를 가져 와서 포맷 된 타임 스탬프를 반환하고 NppExec이이를 수신하여 메모장 ++에 표시된 현재 파일의 커서 위치에 삽입합니다.

먼저 콘솔을 구성하십시오.

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

그런 다음 NppExec> 실행 메뉴 명령에서 다음 스 니펫을 입력하십시오.

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

Ruby 엔진을 사용하여 타임 스탬프를 생성하고 메모장 ++의 현재 파일에서 커서가있는 위치에 삽입합니다. 결과 (약 500ms 지연)는 타임 스탬프입니다.

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

참고 : 이것은 분명히 일을하지만, 누군가 외부 (이 경우 Ruby)에 의존하지 않는 솔루션을 가지고 있다면 더 좋습니다.


편집 : 솔루션 "제조"... (견고성 및 편의성)

아래 단계에 따라 위의 솔루션을 생산할 수 있습니다 ...

장애물은 Notepad ++를 닫으면 콘솔 구성이 손실되므로 다시 시작할 때마다 설정해야한다는 것입니다.

따라서 Notepad ++가 시작될 때마다 자동으로 실행되는 스크립트로 콘솔 구성을 설정했습니다.

그런 다음 편의를 위해 키보드 단축키 (핫키)를 다이어리 스크립트에 연결합니다.

1 단계 : NppExec Excute ... 대화 상자에 다이어리 코드를 입력하십시오. Plugins > NppExec > Execute...이름을 지정하십시오 (나중에 해당 이름을 사용함)

1 단계-일기 코드 입력

2 단계 : setup_console 구성 코드를 유사하게 입력하십시오.

2 단계-콘솔 구성 코드 입력

5, 4, 3 단계 : 로그인하여 Plugins > NppExec > Advanced Options, 시작 (3)에 실행되도록 설정 setup_console이 일기 코드 (4)에 대한 메뉴 항목을 작성하고에 메뉴 항목을 넣어 Macro메뉴 (5)

3,4,5 단계-모든 설정 가져 오기

6 단계 : 키보드 핫키 (바로 가기)를 일기 스크립트 : Settings > Shortcut Mapper... > Plugins로 설정하고 사용한 일기 스크립트 이름을 찾을 때까지 아래로 스크롤합니다.

6 단계-키보드 단축키

결과 :Macros 메뉴 명령 아래에 키보드 단축키가있는 새로운 타임 스탬프 명령이 표시됩니다.

결과-완료

끝난!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.