저는 미국과 유럽에서 일하고 있는데 월/일(미국)과 일/월(EU) 형식을 전환하면 로그나 메모를 볼 때 모호해집니다(예: 7/8/12가 7월 8일인가요 아니면 8월 7일인가요?).
국제 형식을 사용하도록 Notepad++ 타임스탬프 기능을 변경하고 싶습니다.
YYYY-MM-DD--DAY--HH:MM
2012-08-19--Sun--20:30
참고로, 주의 요일을 명시하는 것은 좋은 추가 기능이 될 것이며, 달력에서 그 날이 무슨 요일인지 찾아볼 필요가 없습니다.
현재 NPP에는 이러한 유연성이 없습니다. Ruby를 사용하여 일종의 매크로나 스크립트를 사용하여 이를 수행할 수 있는 방법이 있습니까?
답변1
NppExec 플러그인과 Ruby를 사용하여 이를 수행하는 방법을 공유합니다.
해결책:
접근하다: 외부 스크립팅 언어(이 경우 Ruby)를 가져와 형식화된 타임스탬프를 반환하고 NppExec이 이를 수신하여 Notepad++에 표시된 현재 파일의 커서 위치에 삽입합니다.
먼저 콘솔을 구성하십시오.
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...
이름을 지정합니다(나중에 해당 이름을 사용하게 됩니다).
2 단계: 유사하게 setup_console 구성 코드를 입력하십시오.
3, 4, 5단계: 에서는 Plugins > NppExec > Advanced Options
시작 시 실행되도록 setup_console을 설정하고(3), 일기 코드에 대한 메뉴 항목을 생성하고(4), 메뉴 항목을 메뉴에 넣습니다 Macro
(5).
6단계:일기 스크립트에 키보드 단축키(단축키)를 설정하고 Settings > Shortcut Mapper... > Plugins
, 사용한 일기 스크립트 이름을 찾을 때까지 아래로 스크롤하세요...
결과:메뉴 명령 아래를 보면 Macros
키보드 단축키가 포함된 새로운 타임스탬프 명령이 표시됩니다.
완료!