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 키를 누르면 됩니다.



 유닉스/리눅스 사용자라면 가장 자주 사용하는 프로그램 중에 하나인 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은 터미널을 실행해야 명령행을 사용할 수 있다.


 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의 명령행 버전


 UNIX/Linux 사용자들에게 아주 친근한 어플리캐이션 중의 하나가 바로 VI입니다. 저는 VIM의 윈도우 버전을 설치해서 윈도우에서도 비슷한 환경을 만들어놓고 쓰고 있습니다. 그래서 다른 분들이 적응하기 힘들어 하시는 경우를 많이 봤습니다. "어!! 화면이 왜 새까맣지??" ^^;
 VI에 관한 IBM DeveloperWorks의 튜토리얼을 소개합니다.
이 문서는 처음에 나오는 "난이도 : 초급"이라는 말에 걸맞게 컨닝 페이퍼를 만들어가며 사용자들에게 VI 사용법을 설명하고 있습니다. 재밌네요.

원문 : vi 입문 -- 컨닝 페이퍼 이용하기


이 튜토리얼에서는 강력한 시각적 편집기인 vi 사용법을 소개합니다. 여기서는 “컨닝 페이퍼(cheat sheet)”를 활용하여 짧은 시간에 vi를 능숙하게 익히는 지름길을 설명합니다. 이 튜토리얼을 통해 독자들은 커서를 이동하는 방법, 텍스트를 편집하는 방법, 삽입 모드로 전환하는 방법, 텍스트를 복사하여 붙여넣는 방법, 비주얼 모드나 멀티 윈도우 편집 등 주요 vim 확장 기능을 익히게 됩니다.

시작하기 전에

자습서 개요

vi 는 유닉스와 리눅스 플랫폼에서 사실상 업계(de facto) 표준으로 사용되는 텍스트 편집기다. 거의 모든 유닉스/리눅스 시스템에 존재할 뿐 아니라 윈도우, DOS, 매킨토시, OS/2, SGI 등 다른 많은 플랫폼에서도 제공된다. vi를 잘 모르거나 익숙하지 않다면 이번 기회를 통해 리눅스/유닉스 플랫폼용 시각적 편집기 프로그램 중 가장 강력하고 널리 쓰이는 프로그램인 vi를 익혀보기 바란다.

목적

이 튜토리얼 집필 목적은 독자들이 vi를 신속하게 익히도록 돕는 데 있다. vi를 배우기 어려운 이유 중 하나가 vi에서 사용하는 명령 수가 아주 많다는 사실 때문이다. vi를 효과적으로 사용하려면 많은 명령을 암기해야 하는데, 필요한 명령을 모두 암기하려면 오랜 시간이 걸린다. 그래서 이번 튜토리얼이 목적하는 바가 '단시간에 vi 익히기'다. 그렇다면 짧은 시간에 많은 명령을 어떻게 기억하도록 도와줄 수 있을까?

이 문제를 해결하는 방법으로 “컨닝 페이퍼”를 이용한다. 튜토리얼을 진행하면서 중요한 vi 명령을 “컨닝 페이퍼”에 하나둘씩 적어둔다는 말이다. 튜토리얼을 마친 후에는 명령을 잊어버릴 때마다 컨닝 페이퍼를 참조한다. 그러다 보면 명령이 머리 속에 새겨지고, 결국은 컨닝 페이퍼 없이도 vi를 능숙하게 사용하게 되리라고 믿는다.

선수 요건

이 튜토리얼은 별다른 선수 요건이 없다. 대신, 독자들이 따라야 할 지침은 있다. 첫째, (당연히) 내가 명령이 동작하는 방식을 여러분에게 설명한다. 둘째, (연습으로) 여러분이 vi에서 명령을 직접 실행해본다. 셋째, (나중에 참고할 목적으로) 여러분이 컨닝 페이퍼에 명령을 기록한다. vi를 빨리 배우고 싶다면 위 단계를 충실히 따르라고 권한다. 명령을 vi에서 직접 실행해보고 컨닝 페이퍼에 직접 기록하면 명령을 외우기도 쉬워진다.


+ Recent posts