파일에서 찾기-바꾸기 대화 상자를 사용하여 정규식을 사용하여 파일을 검색하고 바꾸려고 합니다.개발 5.x. 이에 대한 문서는 어디서 찾을 수 있나요?
찾기/바꾸기를 위한 사용자 인터페이스는 내가 사용한 다른 IDE(예: Eclipse)와 상당히 다릅니다.
- 정규식을 입력할 수 있는 검색 텍스트 상자 대신 패턴 텍스트 상자와 템플릿 텍스트 상자가 있습니다. 템플릿 텍스트 상자에
printf
-style 서식 옵션이 있는 것 같습니다. - "바꾸기" 텍스트 상자 대신 "템플릿으로 바꾸기" 텍스트 상자가 있는데, 여기에도
printf
-style 서식 옵션이 있는 것으로 보입니다.
KDevelop의 문서는 다음 링크로 연결됩니다.KDevelop 위키, 내가 놓친 것이 아니라면 그것과 아무 관련이 없습니다.
문서가 없는 경우 관련 소스 코드에 대한 링크와 해당 부분의 요약으로 충분합니다.
답변1
%s은(는) 템플릿 및 대체 템플릿 필드의 두 가지 다른 필드를 나타냅니다. 템플릿 필드의 %s는 패턴 필드에 입력한 문자열을 나타냅니다. "템플릿 바꾸기" 필드의 경우 "텍스트 바꾸기:" 필드에 입력한 문자열을 의미하며, 이는 검색 버튼을 클릭할 때 IDE 하단에 나타나는 "파일에서 찾기/바꾸기"에 나타납니다. " 부두에서.
이 영역에서 다양한 패턴을 만들 수 있습니다. 예를 들어 문서에서 (벡터)를 "foobar"로 바꾸고 싶다고 가정해 보겠습니다. "패턴" 필드에는 따옴표 없이 "벡터"를 입력하고, "템플릿" 필드에는 따옴표 없이 "(%s)"를 입력하고, "교체 템플릿" 필드에는 따옴표 없이 "["를 입력할 수 있습니다. 검색을 클릭한 후 확장 프로그램의 교체 텍스트 필드에 따옴표 없이 "foobar"를 입력하고 교체 버튼을 클릭하세요.
편집하다:
다음은 몇 가지 추가 예/설명입니다. 하지만 저는 Kdevelop 개발자가 아니고 소스 코드를 본 적이 없으며 시행착오를 통해 배운 내용을 보고할 뿐입니다. 불행히도 찾기-바꾸기 기능을 완전히 이해하지 못했습니다. 파일 기능에서.
찾기-바꾸기 대화 상자(위)에는 다음 필드가 있습니다.
Pattern
: 이 문자열이 당신이 찾고 있는 문자열입니다. 정규식을 지원할 수 있지만Regular expression
확인란을 선택한 경우에만 가능합니다.Template
: 검색 문자열을 수정하는 데 사용되는 정규식입니다. "%s"는 입력한 문자열에 대한 참조입니다Pattern
.%s
여러 번 사용할 수 있습니다 .Pattern
설정이 "foo"인 경우Template
"%s%s" 패턴은 "foofoo"로 확장됩니다. 그러면 KDevelop은 왼쪽 연관 "foofoo"와 일치하는 텍스트를 검색합니다. "%s"를 사용할 필요가 없지만 사용할 수 있는 다른 특별한 "%" 참조가 있는지는 모르겠습니다. 필드 오른쪽에는 사용할 수 있는 사전 정의된 다양한 템플릿이 포함된 드롭다운 메뉴가 있습니다. 스스로 정의할 수 있을지 모르겠습니다.Replacement template
: 대체 문자열을 장식하는 데 사용되는 패턴입니다(정규 표현식이 활성화되지 않음). 의문스럽게도 KDevelop 팀은Replacement text
필드를 다른 도크에 배치하기로 결정했습니다(아래 사진 참조). 이 필드Replacement text
에 입력하는 내용 이 "%s"로 확장됩니다. 마찬가지로 "%s"를 여러 번 사용할 수 있습니다. "%s"를 사용할 필요가 없지만 사용할 수 있는 다른 특별한 "%" 참조가 있는지는 모르겠습니다.Regular expression
:Pattern
정규식을 사용할 수 있는지 여부를 결정합니다.Case sensitive
: 대소문자 구분 검색을 전환합니다.Location(s)
: 찾기 및 바꾸기가 수행되는 위치를 구체화합니다. 오른쪽에서는 실행하려는 특정 디렉터리를 찾아보거나 사전 정의된 옵션의 드롭다운 메뉴에서 선택할 수 있습니다. 자신만의 사전 정의가 가능한지 잘 모르겠습니다.Depth
: 이것이 무엇을 하는지 완전히 확신할 수는 없지만, 찾기-바꾸기 프로젝트 디렉토리의 깊이를 제한하는 것 같습니다.Limit to project files
:메뉴 표시줄이나 마우스 오른쪽 버튼 클릭 메뉴에서 파일에서 찾기/바꾸기에 접근할 때 이 옵션이 영구적으로 비활성화된 것으로 나타납니다. 이는 아래 나열된 패턴을 사용하여 필터 파일을 검색할 수 있게 하는 것으로 보입니다.Files
. 제 생각에는 이것이 버그일 수 있으므로 활성화/비활성화할 수 있어야 합니다. 이를 전환하려면 파일에서 찾기/바꾸기 독의 돋보기를 통해 파일에서 찾기/바꾸기에 액세스해야 합니다. 이미지를 참조하세요.Files
: 찾기 및 바꾸기를 실행할 파일 형식의 쉼표로 구분된 목록입니다.Exclude
: 찾기 및 바꾸기를 실행할 때 무시할 디렉터리(프로젝트 루트 기준)와 파일의 쉼표로 구분된 목록입니다.
위 이미지에서는 "iomanip"의 특정 인스턴스를 검색하고 있습니다. 이 Template
모드를 사용하면 '<>'으로 둘러싸여 있고 'iomanip'에서 'i' 문자 왼쪽에 가변 자릿수가 있는 인스턴스만 찾습니다. 에서는 Replacement template
"%s" 참조의 두 인스턴스가 포함된 어리석은 대괄호 패턴을 입력했습니다. 각 "%s"는 Dock의 필드에 입력한 내용으로 확장되며, Replacement text
파일에서 찾기-바꾸기 대화 상자의 버튼을 클릭하면 IDE 하단에 나타납니다. Search
아래를 참조하세요:
보시다시피 파일에서 찾기/바꾸기 독이 IDE 하단에 나타납니다. 여기에서는 필드에 "IamTheBest"를 입력했습니다 Replacement text
. 이 문자열은 Replacement template
이전 대화 상자의 필드에 있는 "%s"의 확장된 문자열입니다.
Template
트리에는 이전 대화 상자에 제공된 확장 패턴과 일치하는 적중 목록이 있습니다. <29837489237482374iomanip>
및 은 <iomanip>
맞았으나 맞지는 않습니다 "iomanip"
. 트리에서 찾기 및 바꾸기 프로토콜에 포함할 항목을 선택할 수 있습니다. 이제 모두 선택된 상태로 두겠습니다. 드롭다운 메뉴에서는 이전 찾기-바꾸기 절차 중에서 선택할 수 있습니다. 버튼을 클릭 하면 Replace
이제 다음이 표시됩니다.
다음은 몇 가지 추가 예/사용 사례입니다.
- 여러 "%s"를 사용하는 방법을 보여줍니다. 간단히 말해서, 왼쪽 연관인 "foo"의 두 인스턴스를 검색하고 이를 다양한 어리석은 단어로 구분된 "Bar"의 네 인스턴스로 대체합니다. 12행의 단일 "foo"와 11행의 세 번째 "foo"는 변경되지 않았습니다.
Template
사전 정의된 "배포" 모드 중 하나를 시연합니다 . 할당 컨텍스트에서는 "thisNumber"를 "0"으로만 변경하지만 동등 컨텍스트에서는 변경하지 않습니다.
도움이 되었기를 바랍니다!
편집 2:
문서나 최소한 소스 코드에 대한 링크를 요청한 방법을 고려해 소스 코드에 링크하기로 결정했습니다. 또는 KDevelop 팀이 github에 게시한 내용은 다음과 같습니다.
파일의 찾기/바꾸기 기능은 위에 링크된 grepview 플러그인에 캡슐화되어 있습니다. 보다 구체적으로 grputil.h 및 grputil.cpp를 살펴보세요. 여기서는 Template
및 필드에서 '%s' 확장에 대한 대체 논리를 찾을 수 있습니다 Replacement template
.
편집 3:
이 옵션에 대한 나의 표현은 Limit to Project Files
정확하지 않으며 현재 소스 코드를 조사하여 이것이 무엇을 해야 하는지 알아내는 중입니다...
편집 4: 아직 프로젝트 제한 사항을 파악하지 못했지만 이 찾기/바꾸기 메뉴(창 오른쪽 상단에 있는 물음표)에 "이게 무엇인가요?" 기능이 있다는 것을 깨달았습니다. 클릭하면? 그런 다음 일부 필드를 클릭하면 특히 검색 모드 필드에 대한 더 유용한 정보가 표시됩니다. 표시되는 "이것은 무엇입니까?"라는 텍스트입니다.
아래의 "정규식"을 선택 취소하면 원시 문자열로 처리됩니다. 이는 모든 메타 문자가 이스케이프된다는 의미입니다.
가능한 메타문자는 다음과 같습니다:
. - 모든 문자와 일치
^ - 줄의 시작과 일치합니다.
$ - 줄 끝과 일치
\b - 단어 경계와 일치
\s - 공백 문자와 일치합니다.
다음과 같은 반복 연산자가 있습니다:
? - 이전 항목은 최대 한 번 일치합니다.
* - 이전 항목과 0회 이상 일치합니다.
+ - 이전 항목과 한 번 이상 일치합니다.
{n} - 이전 항목과 정확히 n번 일치합니다.
{n,} - 이전 항목과 n회 이상 일치합니다.
{,n} - 이전 항목과 최대 n회 일치
{n,m} - 이전 항목은 최소 n번, 최대 m번 일치합니다.
또한 \n 기호를 통해 괄호 안의 하위 표현식을 역참조할 수 있습니다.
자세한 내용은 www.pcre.org 또는 man pcresyntax를 방문하세요.