티스토리 뷰



 ※ 연관글 목록



jEdit의 찾기/바꾸기 기능은 아래의 그림과 같이 선택 범위<현재 버퍼(편집창)<모든 버퍼<디렉토리로 그 찾기/바꾸기 영역을 지정할 수 있습니다.



일반적인 찾기를 위해서는 "찾기 대상" 입력란에 검색할 문자열을 입력하고 찾습니다. 바꾸기를 적용할 경우에는 "바꾸기 내용"란에 찾은 문자열을 대치할 문자열을 입력합니다. 찾은 문자열을 지울 경우에는 "바꾸기 내용"란에 아무것도 입력하지 않고 [바꾸기]를 수행하면 됩니다.


"찾기 대상" 및 "바꾸기 내용"란에서 페이지 Up/Down 키를 누르면 이전에 찾기 대상 및 바꾸기 내용으로 입력한 것을 선택하여 다시 사용할 수 있고 입력란에 우측 마우스를 클릭하면 이전 입력 목록을 보여주어 간편하게 선택할 수도 있습니다.


검색 옵션에 대한 설명은 다음과 같습니다.

  • 창유지 : 찾기/바꾸기를 수행할 때 검색 창을 숨기지 않고 그대로 둔 상태에서 찾기/바꾸기를 수행
  • 대소문자 구분 안함 : 옵션을 체크하면 ABC나 abc 모두를 검색합니다.
  • 정규식 : "찾기 대상" 및 "바꾸기 내용"란의 내용을 단순 텍스트가 아닌 정규식으로 취급하는 것으로 아래에서 자세히 다루겠습니다.
  • 하이퍼 검색 : 검색 결과를 별도의 창에 목록으로 표시하고 하이퍼 검색 결과에서 개별 항목을 클릭하여 해당 위치로 이동하며 검토할 때 사용합니다. 검색 결과가 너무 많을 때는 적절하지 않습니다.
  • 전체 단어 : 체크하면 단어의 일부가 일치하는 것은 검색에서 제외하고 단어 전체가 일치하는 것만을 검색합니다. 예를 들어 "국어"를 찾는데 "전체 단어" 옵션이 켜있으면 "국어를"과 같이 "국어"가 단어의 일부인 것은 검색 대상에서 제외하는 것입니다.
  • 방향>자동순환 : 찾기를 앞으로/뒤로해서 파일의 끝이나 처음에 도달하면 다시 파일의 처음이나 끝으로 돌아가서 순환하여 다시 검색할 것인지를 설정합니다.
  • 디렉토리 검색 옵션 : 하단의 필터, 디렉토리 및 생략 옵션등은 찾기 영역을 디렉토리로 했을 때 사용하는 것으로 파일을 편집창에 열어 놓지 않고도 검색할 수있는 기능입니다. 콤마(,)로 구분하여 여러개의 필터를 설정할 수 있으며, 필터를 설정하면 디렉토리를 검색할 때 필터에 해당하는 것만 찾기 대상으로 합니다. [동기화] 버튼을 클릭하면 현재 버퍼에 있는 파일의 확장자나 디렉토리를 기본값으로 가져와서 디렉토리를 검색할 수 있도록 해줍니다. 

찾기/바꾸기, 모든 버퍼에서 검색, 디렉토리에서 검색 등은 모든 위에서 다룬 검색창을 통해서 작업을 수행하며 "빠른 검색", "빠른 하이퍼 검색", "선택 단어 빠른 검색", "선택 단어 빠른 하이퍼 검색"은 위의 찾기/바꾸기 창을 사용하지 않고 화면 상단의 빠른 검색창을 통해서 간편하게 찾기를 할 수 있도록 기능을 지원합니다. 아래의 그림은 하이퍼 검색을 수행했을 때의 결과창으로 도킹가능한 창이므로 한쪽으로 붙여놓고 사용하셔도 좋습니다.




* jEdit의 정규식

단순 단어 일치 여부가 아니라 조금 복잡한 검색, 예를 들면 Ab로 시작하고 ly로 끝나는 단어를 찾고 싶을 경우에는 일반적인 검색으로는 해결하기 어려운 기능입니다. 이런 경우 적용할 수 있는 것이 정규식(Regular Expressions)입니다. 앞서 언급한 예를 정규식으로 기술하면 Ab[a-zA-Z]+ly 로 이 내용을 찾기 대상에 입력하고 찾기하면 원하는 내용을 찾을 수 있습니다. "Ab[a-zA-Z]+ly"를 간단히 설명하면 Ab로 시작하고 1개 이상의 대소문자로 구성되어 있는 문자열과 ly로 끝나는 단어입니다. 정규식을 찾기 및 바꾸기에 사용할 때는 반드시 정규식 옵션을 켜야 합니다. 이 경우 앞선 예의 []처럼 특별한 의미로 사용하는 연산자들이 있으므로 이런 연산자 몇개를 알아두고 적절하게 사용합니다.


참조 : http://www.jedit.org/users-guide/regexps.html 

조 : http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html


다음은 행 및 단어 위치 지정 연산자입니다.

  • ^ : 행의 시작을 의미.  
    "^국어를" 은 행 시작 위치에 있는 "국어를"를 찾습니다.

  • $ : 행의 끝을 의미.
    "습니다$" 는 "습니다"로 끝나는 행을 찾습니다.

  • \B : 단어의 끝이 아님을 의미.
    "국어\B"를 찾으면 국어뒤에 조사나 뭔가가 붙어있는 것을 찾습니다.

  • \b : 단어의 끝을 의미.
    "국어\b"를 찾으면 "국어"로 끝나는 단어를 찾습니다.


다음은 하나의 문자를 나타내는 연산자입니다.
  • . : 어떤 한 문자

  • \d : 숫자 하나

  • \D : 숫자가 아닌 문자 하나로 눈에 보이지 않는 개행문자도 이 범주에 모두 포함 됩니다.

  • \w : 영숫자 하나

  • \W : 영숫자가 아닌 나머지 문자중 하나

  • \n : 개행 문자

  • \s : White space로 탭, 개행문자, 공백등 눈에 보이지 않는 것들 입니다.

  • \S : White space가 아닌 나머지 모든 문자 하나.

  • \xNN : 16진수로 지정하는 문자 코드

  • \t : 탭 문자

  • \\ : \문자 자체

  • [abc] : []안에 지정한 문자들로 이루어진 문자 그룹

  • [^abc] : [^ ]안에 지정한 문자를 제외한 나머지 문자들로 이루어진 문자 그룹

  • [a-z][^a-z] : 범위를 지정한 문자그룹으로 -가 문자 사이에 있을때는 범위로 인식하지만 앞이나 뒤에 붙을 경우에는 -문자 자체로 인식합니다.


위의 하나의 문자 또는 문자그룹에 붙어서 N개의 문자로 이루어진 단어나 문장을 찾는데 사용하는 반복 연산자입니다.

  • * : 널스트링이거나 N회 연속

  • + : 1회이상 반복
    [\d] 1자리 이상의 숫자 찾기

  • {m} : m회 반복
    [0-9]{3} 3자리 숫자 찾기

  • {m,n} : m-n회 반복
    [0-9]{2,10} 2-10자리 숫자 찾기

  • {m,} : m회 이상 반복
    [0-9]{3,} 3자리 이상의 숫자 찾기


하나의 문자 및 문자 그룹과 반복을 조합한 표현은 ()로 묶어서 하나의 검색 단위로 추출할 수 있습니다. 그리고 이렇게 추출된 검색 단위는 바꾸기 내용에서 $1부터 $9까지로 지정해서 사용할 수 있습니다. 예를 들어 위에서 언급한 예제 "Ab[a-zA-Z]+ly"에서 가운데 있는 문자 그룹은 그대로 두고 뒤의 ly를 "ness"로 바꾸고 싶다면 찾기 대상에는 "Ab([a-zA-Z]+)ly"를 입력하고 바꾸기 내용에는 "Ab$1ness"로 하면 찾아진 내용을 가져와서 자동으로 바꾸기를 수행합니다. 조금은 복잡하다 느낄 수 있지만 한번 익혀두면 비주얼스튜디오나 다른 도구들도 지원하는 좋은 기능으로 작업을 정확하고 빠르게 할 수 있도록 도울 것입니다. 




댓글
댓글쓰기 폼
«   2022/12   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함