메모장 + +에 대한 grep 같은 기능?


52

메모장 ++에서 grep와 같은 기능을 원합니다.

가장 간단한 버전에서는 단어가 포함 된 현재 버퍼의 모든 줄을 foo새 버퍼 에 복사 할 수 있기를 원합니다 . TextFX 플러그인을 사용하여 모든 줄을 숨기고 숨길 foo수는 있지만 원하는 모든 것을하지는 않습니다 ( Alt- 에서 잃어 버렸습니다 Tab. 일치하는 줄만 복사 할 수는 없습니다).

답변:


79

Ctrl+ F-> 표시 탭으로 이동 -> 책갈피 줄 토글 -> 모두 표시를 클릭하십시오 .

메뉴 검색 -> 책갈피 -> 책갈피 된 행 복사를 선택하십시오 .


5
감사합니다 가난한 사람 grep -v도 '북마크 된 줄을자를'수 있습니다 .
ARRG

2
5.4.5와 같은 이후 버전에서는 "마크"탭이 없습니다. 대신 "찾기"탭에 "마크 라인"체크 상자가 있습니다. "Bookmarded Lines 복사"는 "검색"메뉴에 정확하게 있습니다.
피터 Mortensen

@ARRG 현재 버전에서 잘린 책갈피 된 줄 또는 책갈피 된 줄 복사를 찾을 수 없습니다. 어디입니까?
Nicolas Thery

매력처럼 작동 :-)
Sundararaj Govindasamy

12

나는 단지 같은 질문을 조사했다. 당신이 알고 있는지 잘 모르겠습니다. 찾기 대화 상자 에서 현재 문서에서 모두 찾기 를 누르면 맨 아래에 일치하는 선이 표시되는 창이 나타납니다. 그런 다음이를 새 문서에 복사 할 수 있습니다.

불행히도 결과에 몇 가지 관련없는 정보 (행 번호 등)가 포함되어 있지만 열 모드를 사용하여 필터링 할 수 있습니다.


1
추가 된 줄 번호도 기능 : 수 있습니다
프랭크 Meulenaar

2
이 플러그인은 유용한 code.google.com/p/searchplus
Amarghosh

@Amarghosh 니스 플러그인이지만 약간의 인체 공학이 부족합니다 (왜 단추가없고 키보드 단축키가 없습니까?). 멋진 캐치 :)
Benj

@Benji Alt-Q가 플러그인을 시작합니다. 플러그인 창에 바로 가기 키가 없지만 기본 탭 탐색이 활성화되었습니다. 플러그인에 관심이 많으면 시간이 지남에 따라 더 많은 기능을 추가하려고합니다. 의견 주셔서 감사합니다 :)
Amarghosh

2

또 다른 좋은 해결책은 NppExec 플러그인을 사용하여 메모장 ++에 grep 명령을 추가하는 것입니다.

"책갈피"솔루션의 주요 장점은 특히 대용량 파일의 경우 훨씬 빠르게 실행되며 원본 파일을 수정할 필요가 없다는 것입니다. 메모장 ++에서이 기능을 사용하려면 작은 스크립트를 한 번 작성해야합니다.

내 솔루션 예제는 Windows 용이며 findstr을 사용합니다. findstr 은 모든 Windows 컴퓨터에서 사용할 수있는 grep와 같은 명령 도구입니다. 그러나 원하는 다른 grep clone 을 사용할 수도 있습니다 .

1 단계 : NppExec 플러그인 설치

로 이동하여 Plugins / Plugin Manager / Show Plugin ManagerNppExec으로 아래로 스크롤 한 후이 플러그인을 선택하고 설치를 클릭하십시오. 설치 프로세스를 완료하기 위해 Notepad ++를 다시 시작해야 할 수도 있습니다.

2 단계 : NppExec을위한 작은 스크립트 만들기

로 이동 Plugins / NppExec / Execute하여 다음 스크립트를 입력하고 "grep"으로 저장하십시오.

SET local OUTFILE = "c:\temp\$(FILE_NAME).temp"
INPUTBOX "Input filter string"
cmd /c findstr $(INPUT) "$(FULL_CURRENT_PATH)" >$(OUTFILE)
NPP_OPEN $(OUTFILE)

(OUTFILE 경로가 환경에 맞는지 다시 확인하십시오)

3 단계 : 스크립트 메뉴 항목 추가 (선택 사항)

로 이동하여 Plugins / NppExec / Advanced Options아래에서 "grep"스크립트를 선택하고 Associated script확인을 클릭하여 저장하십시오. NppExec에서 요청한대로 메모장을 다시 시작하여 새 메뉴 항목 추가를 완료하십시오.

4 단계 : 스크립트 바로 가기 추가 (선택 사항)

로 이동하여 Settings / Shortcut Mapper / Plugin commands아래로 스크롤하여 스크립트 명령 "grep"을 찾은 다음 바로 가기를 정의하십시오. 예 :ALT-G


우선, 몇 년 동안 공표되기까지 기다려온 큰 답변에 감사드립니다 ... :-) 스크립트에 문제가 있다고 생각했는데 작동하지 않았습니다. 그런 다음 경로 등을 조정해야한다는 것을 알았지 만 명시 적으로 언급하지 않았으므로 맹목적으로 복사하여 붙여 넣었습니다! 너무 빨리 일해서 속도가 느려집니다
:-)

의견을 보내 주셔서 감사합니다. 나는 그것을 내 대답에 추가 할 것입니다.
Erik Kalkoken

또 다른 작은 메모 : $(FULL_CURRENT_PATH)파일이 아직 저장되지 않은 경우 경로를 반환하지 않습니다. 어딘가에 (temp directory?) 상주 할 수는 있지만 실제로는 그렇지 않습니다. 이 저장되지 않은 파일 상황은 매우 일반적 일 수 있습니다. 로그에서 무언가를 붙여 넣기 만하면 파일이 아직 저장되지 않은 경우 파일을 저장하기 위해이 스크립트를 완벽하게 만들 수 있습니다. 잡기 전에 수동으로. 감사.
pgr

검색 문자열에 공백이 있으면 작동합니까? 또는 다른 특수 문자?
G-Man

네, 작동합니다
Erik Kalkoken

-1

5 단계 : 빠른 저장 및 grep 문서를위한 스크립트 작성

플러그인 / NppExec / 실행으로 이동하여 다음 스크립트를 입력하고 "grep"으로 저장하십시오.

SET 로컬 AUTOSAVEFILE = "% tmp % \ NpPPautosave.tmp"
SET 로컬 OUTFILE = "% tmp % \ NpPPautosaveToGrep.temp"
NPP_SAVEAS "% tmp % \ NpPPfile.tmp"
INPUTBOX "GREP에 대한 입력 문자열"
cmd / c findstr $ (INPUT ) $ (AUTOSAVEFILE)> $ (OUTFILE)
NPP_OPEN $ (OUTFILE)


1, 2, 3, 4 단계는 어디에 있습니까?
Pierre.Vriens

(1) 우리는 가능한 한 많이 대답이 독립적 인 것을 선호합니다. 누군가가 귀하의 답변을 사용하기 전에 수행해야 할 단계가 하나 이상있는 것 같습니다 (힌트 : 1 단계). 답변에 포함 시키십시오. (2) 귀하의 답변이 Erik Kalkoken의 답변 의 어깨에 서있는 것 같습니다 . 그렇게하려면 명시 적으로 그렇게해야합니다. … (계속)
G-Man

(계속)… (3) 에릭보다 답이 낫습니까? 그렇다면, 방법과 이유를 설명하십시오. (실제로 답변의 기능과 사용법을 설명하면 좋을 것입니다.) 그렇지 않은 경우 왜 게시 했습니까? (4) 현재 파일 이름을 기반으로 한 파일이 아닌 하드 코딩 된 출력 파일 이름을 사용하는 것이 어떤면에서 우수하다고 생각하십니까? (5) findstr현재 파일이 아니라 자동 저장 파일 에서 실행 하면 어떤 이점이 있습니까? (6) 왜 대답은 사용합니까 모두 C:\tempC:\tmp? …… 의견에 응답하지 마십시오. 명확하고 완전하게 답변을 편집 하십시오.
G-Man

(1) "누군가 전에 수행해야하는 한 단계"-모든 Erik은 1에서 4까지 t니다. (2) 댓글을 달려면 50 개의 평판이 있어야합니다. (Erik post에 댓글을 달기 위해) (3) 예, 문서가 하드 디스크에 저장되기 전에 Erik의 답변이 작동하지 않기 때문에 제 답변은 조금 나아졌습니다. grep을 위해 임시 파일을 저장하고 싶지 않습니다. "답변은 무엇이며 어떻게 사용 하는가"-내 코드는 열린 텍스트를 notepad ++로 임시 파일 hdd로 저장합니다. 이 줄은 "NPP_SAVEAS"줄이며 hdd에 텍스트를 자동 저장합니다. (4) 아닙니다! 정확하지 않습니다. (5) 그렇습니다! Erik 코어는 작동하지 않습니다. 하드 드라이브에 저장하기 전에 제 (3) 답변을 찾으십시오.
Kasumiru

(6) Sory, 나는 서두르고 실수했다. 내 창문 cygwin에는 tmp와 temp dirs가있다. "댓글에 답장을 보내지 마십시오"-죄송하지만이 메모를 읽기 전에 내 답변을 작성했습니다
Kasumiru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.