KLDP에서 퍼온 VI Editor에서 텍스트 찾지, 바꾸기 명령어 예제입니다.

원문 : vi 텍스트 찾기 바꾸기 관련 명령어 모음

1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다.
:%s/char/_&_/g

2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g

3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다.
:1,10s/buf_.*\[255\]/hello/g

4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.

/^\d\+$

^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분

5. 전체 문서에서 add 를 plus로 치환

:s/add/plus/g

6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환

:s/\/etc\//\/etc\/local\//g

7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.

:%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g

8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.

:%s/foo/bar/i

9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.

:%s/\/bar

10. 정렬

123 def ghi
432 ius dkf
089 cdo lks

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

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

11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.

/[0123456789]\{3,5\} 또는
/[0-9]\{3,5\}

12. 만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.

:%s/ab[a-z]*//g

13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.

:g/cpu/d

# g는 모든 라인에 적용한다라는 의미이고,
# d는 delete를 의미합니다.

14. stat0,stat1.....stat9 패턴이 있는 라인을 모조리 지우기

:g/stat[0-9]/d

15. 빈 줄 두 줄을 한 줄로 바꾸기

:%s/\n\n/\n/g

16. 두 칸을 한 칸으로 줄이기

:%s/ / /g

17. 탭을 스페이스 공백으로 바꾸기

:%s/\t/ /g

18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기

:%s/ $//g 또는
:%s/ \n/\n/g

19. 줄 첫 칸의 띠어쓰기를 없애기

:%s/^ //g

20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.



YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


 유닉스/리눅스 사용자라면 가장 자주 사용하는 프로그램 중에 하나인 vi 편집기에 대한 튜토리얼입니다.
그 동안 vi에 대한 글들이 많았지만 그래도 빠뜨릴수 없는 부분인거 같아서 소개하려합니다. 기본적인 유닉스/리눅스 사용법에 대해서는 알고 있는 사용자를 대상으로 작성된 문서입니다.

원문 : 초보자를 위한 유닉스 팁과 기교, Part 2:vi 편집기

vi 편집기를 처음 접하는 사용자는 편집기가 직관적이지 못하다고 느끼기 쉽습니다. 하지만 세상에서 내로라하는 개발자들이 30년이 넘는 도구를 아직도 애용하는 데는 그만한 이유가 있습니다. vi 편집기는 삽입 모드(insert mode)와 명령 모드(command mode)로 작업을 분리합니다. 그래서 키보드에서 엄청나게 빨리 사용자가 정의한 영역을 대상으로 텍스트를 편집하고 삽입하고 이동할 수 있습니다.

이 튜토리얼 내에서

  • vi 소개

  • vi에서 커서 이동하기

  • vi에서 텍스트 삽입하고 편집하기

  • 고급 vi 명령

선수조건

이 튜토리얼을 따라가려면 명령행, 파일, 디렉터리라는 개념을 알아야 한다. 또한 유닉스(UNIX®) 계열 운영체제에 로그인할 줄도 알아야 한다.


시스템 필요조건

유닉스 계열 운영체제가 돌아가는 시스템에 로그인할 수 있는 계정만 있으면 충분하다. 유닉스 계열 운영체제는 IBM® AIX®, 리눅스(Linux®), BSD(Berkeley Software Distribution), 맥 OS(Mac OS®) X 등을 포함한다. 맥 OS X은 터미널을 실행해야 명령행을 사용할 수 있다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


 UNIX 혹은 Linux 환경에서 작업을 하시는 분들이라면 VI라는 에디터를 자주 접하실 겁니다. 명령행 환경에서 이만큼 다양한 기능을 제공하는 에디터도 없을거라고 생각합니다.
 물론 FSF의 어떤분은 "VI는 짐승들의 에디터이아"라고 할 정도로 싫어하시는 분들도 있죠. VI파, 이맥스파가 나뉘어있기도 한데, 일단 제가 자주 사용하는 VI...가 아니라 VI와 거의 동일한 기능을 제공하는 VIM이라는 프로그램을 소개하려합니다.

 VIM은 향상된 VI라는 뜻의 "Vi IMproved"의 약자입니다. 저는 이 프로그램을 윈도우 XP에 설치해서 일반적인 개발/관리 업무에도 사용하곤 합니다. 이렇게 하지 않으면 VI 사용법을 잊어버릴것 같다는 두려움도 한 몫했구요. 정규식을 이용한 문자열 치환이라는 강력한 기능도 윈도우에서 VIM을 사용하는 이유중 하나입니다.

www.vim.org에 가시면 윈도우용 VIM을 다운받으실 수 있습니다.



윈도우에 설치하시면 일반적으로 유닉스 명령행 환경에서 사용하던 VIM과 X-Window에서 사용하시던 GUI 버전의 VIM까지 사용하 실 수 있습니다.

C:\> gvim  <= GUI 버전이 실행됩니다.

C:\> vim   <= 명령행 버전이 실행됩니다.

사용자 삽입 이미지

VIM의 GUI버전


사용자 삽입 이미지

VIM의 명령행 버전


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST