Unix/Linux - vi 편집기 튜토리얼

안녕하세요, 야심찬 프로그래머 여러분! 오늘 우리는 vi 편집자의 세계로 접어들게 됩니다. Unix의 탄생 이후로 존재해 온 강력한 도구입니다. command line을 손댄 적이 없으신 분들도 걱정 마세요 - 우리는 가장 기초적인 것부터 시작하여 차례대로 올라갈 것입니다. 이 튜토리얼이 끝나면, 프로처럼 파일을 편집할 수 있을 것입니다!

Unix / Linux - The vi Editor

vi 편집기를 시작하는 방법

우리의 여정을 기초로 시작해 보겠습니다. vi 편집기를 열기 위해서는 단순히 터미널에 vi 뒤에 파일명을 작성하시면 됩니다. 예를 들어:

vi myfile.txt

파일이 존재하지 않는다면, vi는 자동으로 파일을 만들어 줍니다. 이렇게 좋은 건 아니겠습니까? vi는 " 걱정하지 마, 나는 너를 지킬 테니!"라고 말하는 것 같아요!

작동 모드

이제 흥미로운 부분으로 넘어가 보겠습니다. vi는 두 가지 주요 모드가 있습니다:

  1. 명령 모드
  2. 삽입 모드

명령 모드를 "본거지"라고 생각해 보세요. 여기서 시작하고, 복사, 붙여넣기, 이동과 같은 작업을 수행하기 위해 돌아올 곳입니다. 반면에 삽입 모드는 글쓰기의 마법이 일어나는 곳입니다.

명령 모드에서 삽입 모드로 전환하려면 i 키를 누르세요. 명령 모드로 돌아가려면 Esc 키를 누르세요. 이 점을 기억하세요 - vi 사용자의 비밀 손 shake입니다!

vi에서 나가는 방법

좋아요, vi를 열었지만 어떻게 나가는지 모르겠어요? 두려워하지 마세요! 다음 표의 명령어를 통해 도와드리겠습니다:

명령어 동작
:q! 저장하지 않고 나가기
:wq 저장하고 나가기
:x 저장하고 나가기 (':wq'와 동일)

이 명령어를 명령 모드에서 입력하시면 됩니다!

파일 내에서 이동하기

vi에서의 이동은 처음에는 어려워 보일 수 있지만, 익숙해지면 파일을 빠르게 이동할 수 있습니다. 다음은 기본 이동 명령어입니다:

h - 왼쪽으로 이동
j - 아래로 이동
k - 위로 이동
l - 오른쪽으로 이동

저는 "h"를 왼쪽으로 이동하는 이유는 왼쪽에 있기 때문이고, "l"을 오른쪽으로 이동하는 이유는 그냥 이렇게 느껴지기 때문입니다!

제어 명령어

vi에는 다양한 제어 명령어가 있습니다. 다음은 몇 가지를 소개합니다:

Ctrl + f : 페이지 앞으로 이동
Ctrl + b : 페이지 뒤로 이동
G : 마지막 줄로 이동
1G : 첫 번째 줄로 이동

파일 편집

이제 흥미로운 부분으로 넘어가 보겠습니다! 편집을 시작하려면 삽입 모드로 전환하려면 i 키를 누르세요. 그런 다음 마음껏 타이핑하세요. 끝나면 Esc 키를 눌러 명령 모드로 돌아가세요.

문자 삭제

명령 모드에서 문자를 삭제하려면 다음 명령어를 사용할 수 있습니다:

x : 커서 아래 문자를 삭제
dw : 단어를 삭제
dd : 전체 줄을 삭제

나는 한 번 실수로 dd를 사용하여 전체 문단을 지웠습니다. 그때부터 'u' 키의 중요성을 빨리 배웠습니다!

텍스트 변경 명령어

텍스트를 변경하고 싶으신가요? vi는 다음과 같은 명령어를 제공합니다:

cw : 단어를 변경
cc : 전체 줄을 변경
C : 커서에서 끝 줄까지 변경

복사와 붙여넣기 명령어

vi에서의 복사와 붙여넣기는 명령어를 알면 간편합니다:

yy : 줄을 복사 (Yoink yoink!)
p : 커서 뒤에 붙여넣기
P : 커서 앞에 붙여넣기

"yy"를 "yoink yoink!"라고 생각하면 됩니다 - 그 줄을 거기서 꺼내고 있습니다!

고급 명령어

고급 동작이 준비되셨나요? 다음을 시도해 보세요:

. : 마지막 명령어 반복
~ : 문자의 대소문자 변경

단어와 문자 검색

찾아야 할 것이 있나요? 다음 명령어를 사용하세요:

/pattern : 패턴을 앞으로 검색
?pattern : 패턴을 뒤로 검색
n : 동일 방향으로 검색 반복
N : 반대 방향으로 검색 반복

설정 명령어

vi는 여러 가지 옵션을 설정할 수 있습니다. 다음은 몇 가지 유용한 옵션입니다:

:set nu : 줄 번호 표시
:set nonu : 줄 번호 숨기기
:set ic : 검색 시 대소문자 무시

명령어 실행

vi에서 셸 명령어를 실행할 수 있습니다. 얼마나 멋지죠?

:!command : 셸 명령어 실행

예를 들어, :!ls는 현재 디렉토리의 파일을 나열합니다.

텍스트 변경

빠르게 많은 변경을 해야 하나요? 다음을 시도해 보세요:

:s/old/new : 현재 줄의 첫 번째 'old'을 'new'로 변경
:s/old/new/g : 현재 줄의 모든 'old'을 'new'로 변경
:%s/old/new/g : 전체 파일의 모든 'old'을 'new'로 변경

중요한 포인트

  1. vi는 대소문자를 구분합니다. 'A'와 'a'는 다른 명령어입니다.
  2. 어떤 모드에 있는지 항상 알아야 합니다. 예상치 못한 일이 발생하면 잘못된 모드에 있을 수 있습니다.
  3. 연습, 연습, 연습! vi는 학습 곡선이 있지만, 한 번 마스터하면 생각보다 빠르게 편집할 수 있습니다.

기억하세요, vi에 능숙해지는 것은 자전거 타는 것과 같습니다.처음에는 흔들릴 수 있지만, 연습을 하면 쉽게 타게 됩니다. 처음에는 어색할 수 있지만, 우리 모두 그런 적이 있었습니다!

그러니 터미널을 열고 vi를 열어보세요. 얼마 지나지 않아 프로처럼 편집하고, 친구들에게 커맨드 라인 실력을 보여줄 수 있을 것입니다. 행복하게 코딩하세요!

Credits: Image by storyset