vim2012. 11. 14. 21:28

JSlider slider

JButton button


이것을 아래와 같이 변경하려고 한다.


slider JSlider

button JButton


다음과 같은 정규표현식을 사용하면 된다.

:'<,'>s/\([A-Za-z\<\>]*\) \([A-Za-z]*\)/\2 \1


\( \) 이렇게 해야지만 뒤에서 \1 이렇게 값을 가져다 쓸수 있다.




비주얼모드로 영역을 지정한 뒤, ' : ' 키를 누르면 아래처럼 뜬다.

:'<,'>

그다음은 치환명령어인 s/타겟/바꿀값 을 사용하면 된다.



Posted by 준피
vim2011. 6. 14. 20:00
테이블에 데이터를 넣으려고 csv 파일을 만지다 보면 한글 또는 영어와 같은 문자열 값을 큰따옴표로 감싸야 하는 작업을 반복하게 된다. 레코드의 양이 많으면 상당히 노가다를 하게 되는데 이를 정규식으로 해결할 수 있다.

핵심이 되는 정규표현식 : ([^0-9,][^,]*)

gvim에서 다음과 같이 정규식을 사용하면 테이블의 모든 문자열 필드의 값을 큰따옴표 안에 넣을 수 있다.

:%s/\([^0-9,][^,]*\)/"\1"/g

1,coin,10,스피커,음질좋음   =>  1,"coin",10,"스피커","음질좋음"



다음과 같은 예제에서 실패했음을 발견했다.

7부능선 => 7"부능선"

필드의 값이 숫자로 시작하는 경우를 고려하면 다음처럼 변경해야 한다.

:%s/\([0-9]\{0,\}[^0-9,][^,]*\)/"\1"/g 
 
1,coin,10,7부능선,능선이다   =>  1,"coin",10,"7부능선","능선이다"
  

{0,} 는 * 과 같은 의미이므로 다음과 같이 간결하게 변경할 수 있다.

:%s/\([0-9]\{0,\}[^0-9,][^,]*\)/"\1"/g  => :%s/\([0-9]*[^0-9,][^,]*\)/"\1"/g  

'vim' 카테고리의 다른 글

정규표현식 이용해서 문자열 순서 바꾸기  (0) 2012.11.14
[gVim] 찾은 내용 하이라이트  (0) 2011.06.08
[gVim] 유용한 단축키  (0) 2011.04.19
Posted by 준피
vim2011. 6. 8. 20:40
gVim 에서 문자열 검색을 하는 경우 결과를 전부 하이라이트로 표시해주는 옵션이다. 정규식으로 검색해도 표시된다.

: set hlsearch
 
Posted by 준피
vim2011. 4. 19. 21:07
" + [a-z] + y : 내부 버퍼 a부터 z 중에 지정한 버퍼에 복사한다.

" + * + y : 클립보드의 버퍼에 복사한다. 다른 데스크탑 어플리케이션에서 공유할 수 있다.

y + i + ) : 소괄호 내부의 전체 텍스트를 복사한다.
ex> abc(here)efg 소괄호 안에서 위의 키를 입력하면 here가 임시 버퍼에 등록된다.
Posted by 준피