Visual Studio에서 여러 줄 찾기 및 바꾸기


83

할 수 있습니까? 우리는 VS2005와 VS2008과 VS2010을 사용하고 있습니다.

제 자리가있는 정규식을 의미하는 것이 아니라 평범한 오래된 텍스트 찾기 및 바꾸기를 의미합니다. 나는 우리가 \ n 태그를 사용하는 정규식으로 그것을 할 수 있다는 것을 알고 있지만 정규식 이스케이프 문자로 얽 히지 않는 것을 선호하며 가독성 문제가 있습니다.

할 수 없다면 사람들이 사용하는 단순하고 단순한 (무료) 대안은 무엇입니까? 그것은 우리 자신의 매크로를 깨뜨리는 것을 포함하지 않습니다.


3
추가 소프트웨어를 고려하거나 매크로를 작성하는 시점에 있다면 총알을 물어 뜯고 정규식 찾기 / 바꾸기를 사용하는 방법을 배우십시오. 적어도 내장되어 있고 괜찮은 도움이 있습니다 ...
Dave D

3
정규식을 수행하는 방법을 알고 있지만 문장 부호가 많은 텍스트에는 많은 정규식 미세 조정이 필요합니다. 간단한 찾기 / 바꾸기 작업을위한 누구의 차 한잔인지 믿을 수 없습니다
hawbsl

1
이에 대한 기본 제공 솔루션을 얻으려면 이 MSConnect 기능 요청 에 투표 하십시오 .
Matt Faus

1
이 질문에 대한 업데이트가 있습니까? 의견에서 최고 답변이 완전히 작동하지 않는 것 같습니다. ... 이것에 대한 좋은 해결책이 있다면 그것은 좋은 것
JoeCool

답변:


65

드디어 찾았어요 ..

외부 매크로를 다운로드하고로드 할 필요가 없습니다.

적어도 내장 매크로를 사용하여 Visual Studio 2008에서 작동합니다. :)

단계 :
1) 찾고자하는 텍스트를 선택합니다.
2) "Alt + F8"을 누르거나 "도구-> 매크로-> 매크로 탐색기"를 엽니 다.
3) "샘플-> 유틸리티-> FindLine"을 두 번 클릭합니다. ( "찾기"필드에 선택한 항목이로드 된 찾기 상자가 열립니다. "찾기"필드에 잘린 텍스트가 표시되는 것에 대해 걱정하지 마십시오. 믿으십시오. 필드에 모든 것이 있습니다 ..MS 표시 방법은 다음과 같을 수 있습니다 ... : ))
4) "찾기 및 바꾸기"대화 상자에서 "빠른 바꾸기"버튼을 클릭합니다. 대체 텍스트를 입력하십시오.
5) 그리고 귀하의 요구 사항에 따라 3 개의 버튼 중 하나를 클릭하십시오. :)

만세 .. 그것의 작동 .. 그것을하기위한 직접적인 방법은 아니지만 당신은 MS로 알고 있습니다 .. 아무것도 간단하고 쉬운 것은 없습니다 .. :)


이것은 "파일에서 찾기"를 처리하지 않습니까? 내가 알 수 있듯이, 단일 파일 전용입니까?
Tom Lianza

1
@tlianza VS2010에서는 화면 상단에있는 버튼을 사용하여 빠른 찾기 대화 상자를 파일에서 찾기 또는 파일에서 바꾸기로 변경할 수 있습니다. 따라서 매크로가 빠른 찾기 대화 상자를 채우면 다른보기로 전환 할 수 있습니다.
AaronSieb 2011-04-01

13
대체 텍스트가 여러 줄에 걸쳐 있으면 이것이 작동하지 않는다고 생각합니다. "바꿀 내용"상자에 붙여 넣으면 잘립니다.
앤드류 Corkery

이 매크로에 키보드 단축키를 연결하기 만하면 일반적인 찾기 및 바꾸기처럼 간단합니다. 이 트릭에 감사드립니다!
사무엘

5
다음 Visual Studio 버전에서는 매크로가 사용 중지되었으므로 더 이상 작동하지 않습니다.
David Burg

23

이것은 현재 Visual Studio 2012에서 작동합니다.

fooPatternToStart.*(.*\n)+?.*barPatternToEnd

(.*\n)+?탐욕스럽지 않은 여러 줄 에서 부품이 어떻게 일치 하는지 확인하십시오 .
fooPatternToStart시작 줄에 정규식 패턴 barPatternToEnd이 있고 패턴은 아래 다른 줄에서 찾을 수 있습니다.

여기에 예제가 있습니다 .

간단하고 효과적인 :)

참고 : VS2012 이전에 작동 한 패턴은 다음과 같습니다.fooPatternToStart.(.\n)+@.*barPatternToEnd


1
상자에 적힌대로 잘 설명되고 작동합니다. 게시 당시에도 매크로가 죽은 지 오래되었으므로 이것이 허용되는 대답이라고 생각합니다.
nathanchere

19

이 블로그 항목을 살펴볼 수 있습니다.

Visual Studio에서 여러 줄 검색 및 바꾸기

검색을 이스케이프하고 VS 찾기 및 바꾸기 대화 상자를 표시하는 매크로 코드를 제공합니다.


불행히도이 링크는 죽었습니다.
Cade Roux

여기에서 여전히 작동합니다 . 도움이되는 경우를 대비하여 gist.github.com/3706886 의 요점에 코드를 복사했습니다 .
로버트 아담스

일시적인 문제 였을 것입니다.
Cade Roux

3
이 매크로는 VS 확장으로 변환되어 이제 VS 2012 및 2013에서 작동합니다. 참조 helixoft.com/blog/...을
피터 Macej에게

2
@PeterMacej 오늘의로 대답 거기에있는 확장 링크 - 내가 upvoted했습니다 -하지만 이상적으로 당신이 당신의 자신의 대답을 게시하고 난 그것을 받아 들일 것이다 - 2014로 확장 아마해야 이 매우 인기가 질문에 대한 허용 대답
hawbsl 2014

18

"찾기 및 바꾸기"대화 상자에서 "정규 표현식 사용"확인란을 클릭하여 여러 줄 표현식을 검색 할 수 있습니다. 줄 바꿈은로 표시됩니다 \n.

여기에 이미지 설명 입력


7
여러 줄 텍스트로 어떻게 바꿀 수 있습니까? 어떤 아이디어?
Tauseef 2013

2
당신은 변경해야 할 수도 있습니다 \n\r\n문서 캐리지 리턴 숨겨진 경우.
James McCormack

질문은 정규 표현식을 사용하지 않는다고 명시 적으로 언급했습니다. 정규식에는 줄 바꿈을 이스케이프해야 할뿐만 아니라 정규식 이스케이프 문자가되는 모든 일치 문자를 이스케이프해야한다는 단점이 있습니다. (질문에 대답하지 않는 부결)
데이비드 버크에게



1

MultiLine 교체를 완벽하게 지원하는 UltraEdit 로 파일을 열 수도 있습니다 . 한 번만 사용하려는 경우 평가판을 사용할 수 있습니다.


1

위의 9:52에 Andrew Corkery의 코멘트에 관하여

여러 줄로 된 대체 문자열도 지정하려면 매크로 코드를 편집하고 아래와 같이 대체 텍스트를 설정하십시오. 이렇게하면 필요한 작은 수정만으로 교체를 "미세 조정"할 수 있습니다.

 Sub FindLine()
    Dim textSelection As TextSelection

    textSelection = DTE.ActiveDocument.Selection
    textSelection.CharLeft(True)
    DTE.ExecuteCommand("Edit.Find")
    DTE.Find.FindWhat = textSelection.Text

    'also preset replacement text with current selection
    DTE.Find.ReplaceWith = textSelection.Text
End Sub

0

Notepad ++의 최신 버전 (이 게시물 현재)은 여러 줄 찾기 / 바꾸기를 수행합니다. 이 질문을 받았을 때 이것이 사실인지 모르겠습니다. 그러나 Visual Studio에서 더 이상 매크로 지원이 없으므로 이제 관련이 있습니다.

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