Home> ID PW Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

Programming :::

VI / VIM

설치

단축키



[도서] 손에 잡히는 Vim ( link)
--> 원본인데, 틀린 부분이 있음. ==> 정오표


수정본 (link)



설정

찾기, 바꾸기

~~~~~~,0x 를 0x로 바꾸기 (?* 해석하면, 임의의 문자 하나인 ?가 여러번 반복된 패턴)

:%s/?*,0x/0x/

vi 편집기 (패턴 찾아 치환하기 꿀팁!!!!)

	변경전: vListData.get(1)
변경후: vListData[1]
      *단, () 안의 숫자는 임의의 숫자가 오고, 도잉랗ㄴ 값이 변경후에 들어가야 한다.

:%s/vListData.get(([0123456789]*))/vListData[1]/g

답장 무우 (2001년 12월 09일 오전 09:35)
[0123456789] 는 [0-9] 요로케...
2같은것도 다 먹는다는 거.. 실험해 보셔서 아셨져?

1 2 로 두개의 문자열 swap 을 할 수 있을 겁니다.
:%s/(앗싸)(좋구나)(108계단)/231/g
이렇게 하시면
'앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.

이거 왕입니다. 엄청난 양의 데이터를 가진 문서에서
순서바꾸기를 할 때 정말끝내줍니다.

123 def ghi
432 ius dkf
089 cdo lks

이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면

:%s/([0-9]*) ([a-z]*) ([a-z]*)/3 2 1/g

출처: https://keep2smile.tistory.com/109 [keep2smile의 시나블로그]

맨뒤 옵션
/g global   (라인내에 모든 패턴을 바꿈.  이옵션없으면 라인의 첫번째 패턴만 바꿈)
/c confirm	
			:%s/foo/bar/c
			이와 같이 바꿀 단어를 만나게 되면, 사용자에게 물어본다. 
			y: 현재 focus 된 'foo'를 'bar'로 바꾸고 다음 'foo'로 건너뛰어 focus를 맞춘다.
			n: 현재 focus 된 'foo'를 'bar'로 바꾸지 않고 다음 'foo'로 건너뛰어 focus를 맞춘다.
			a: 더이상 묻지 않고, 모든 'foo'를 'bar'로 바꾼다.
			q: 바꾸는 것을 그만 둔다.
			l : 현재 focus된 'foo'를 'bar'로 바꾸고, 더이상 바꾸기를 하지 않고 그만둔다.

			출처: https://techlog.gurucat.net/297 [하얀쿠아의 이것저것 만들기 Blog]
			
/i (?)		(패턴을 찾을 때, 대소문자 구분없이 변경함)

# 내용수정

    * cw: 단어 바꾸기
    * r  : 한글자 바꾸기   R: 모두 바꾸기
    * ~ : 대소문자바꾸기


#: %lt;범위%gt;s/old/new/%lt;옵션%gt;

    * Ex)
          o:s/add/plus/g
                + 전체 문서에서 add 를 plus로 치환
          o:s//etc///etc/local//g
                + 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환

출처: https://keep2smile.tistory.com/109 [keep2smile의 시나블로그]