LabHub
배우기 러닝패스 코스

vim and tmux

Basic vim Editing

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

vim 의 기본 편집(삽입·삭제·복사·붙여넣기)을 손에 익히고, 편집 명령을 파일로 저장해 재현하는 방법까지 배웁니다.

왜 중요한가

vim 의 키는 외워야 할 목록이 아니라 {횟수}{동작}{범위} 라는 문법입니다. d(삭제) + 3w(단어 3개) = d3w 처럼 조합하면 배우지 않은 명령도 만들어 쓸 수 있습니다. 그리고 vim 에서 삭제는 잘라내기입니다 - 지운 내용이 레지스터에 남기 때문에 ddp(아래 줄과 자리 바꾸기) 같은 관용구가 성립합니다. 마지막 두 단계에서 편집 명령 자체를 파일로 제출하는 이유는, 결과만 맞히는 것과 절차를 재현할 수 있는 것이 전혀 다르기 때문입니다.

단계

  1. /root/.vimrc 를 만들고 다음 네 가지를 켜세요: 줄 번호 표시, 탭 대신 공백, 탭 폭 4, 들여쓰기 폭 4.
  2. /root/vim/poem.txt 를 만들고 정확히 다음 8줄을 넣으세요. 4번째와 7번째 줄은 빈 줄입니다. alpha / bravo / charlie / (빈 줄) / delta / echo / (빈 줄) / foxtrot
  3. /root/vim/notes.txt 를 만들고 다음 3줄을 넣으세요. i = insert before cursor / a = append after cursor / o = open line below
  4. poem.txt 에서 bravocharlie 두 줄만 지운 결과를 /root/vim/cut.txt 로 저장하세요. 원본은 그대로 두세요.
  5. poem.txt 에서 delta 바로 아래에 delta 한 줄을 더한 9줄을 /root/vim/dup.txt 로 저장하세요.
  6. poem.txt 에서 alphabravo 의 순서만 바꾼 8줄을 /root/vim/swap.txt 로 저장하세요.
  7. 빈 줄을 전부 지우는 ex 명령 한 줄/root/vim/blank.ex 에 저장하고, 그 명령을 적용한 6줄 결과를 /root/vim/nogap.txt 로 저장하세요.
  8. 빈 줄을 지우고 모든 글자를 대문자로 바꾸는 ex 명령들을 /root/vim/build.ex 에 저장하고, 그 결과를 /root/vim/final.txt 로 저장하세요.

참고

설정 파일 만들고 확인하기

/root/.vimrc 를 만들고 다음 네 가지를 켜세요: 줄 번호 표시, 탭 대신 공백, 탭 폭 4, 들여쓰기 폭 4.

파일에 적는 것과 vim 이 적용하는 것은 다릅니다. vim 안에서 :set number? 처럼 물음표를 붙이면 현재 값을 알려 줍니다.

연습용 파일 만들기

/root/vim/poem.txt 를 만들고 정확히 다음 8줄을 넣으세요. 4번째와 7번째 줄은 빈 줄입니다. alpha / bravo / charlie / (빈 줄) / delta / echo / (빈 줄) / foxtrot

빈 줄도 한 줄로 셉니다. 4번째와 7번째 줄이 비어 있어야 합니다.

삽입 모드 진입 연습

/root/vim/notes.txt 를 만들고 다음 3줄을 넣으세요. i = insert before cursor / a = append after cursor / o = open line below

i, a, o 는 각각 커서 앞·뒤·아래 줄에서 입력을 시작합니다. 세 줄의 내용과 순서를 정확히 맞추세요.

줄 삭제하기

poem.txt 에서 bravocharlie 두 줄만 지운 결과를 /root/vim/cut.txt 로 저장하세요. 원본은 그대로 두세요.

dd 는 한 줄, 2dd 는 두 줄입니다. 원본 파일은 건드리지 말고 결과를 새 파일로 저장하세요.

줄 복제하기

poem.txt 에서 delta 바로 아래에 delta 한 줄을 더한 9줄을 /root/vim/dup.txt 로 저장하세요.

yy 로 복사하고 p 로 붙여넣습니다. vim 에서 삭제도 잘라내기라는 점을 떠올려 보세요.

두 줄 자리 바꾸기

poem.txt 에서 alphabravo 의 순서만 바꾼 8줄을 /root/vim/swap.txt 로 저장하세요.

dd 로 지우면 레지스터에 남습니다. 그 다음 p 를 어디서 누를지 생각해 보세요.

빈 줄 제거를 명령으로

빈 줄을 전부 지우는 ex 명령 한 줄/root/vim/blank.ex 에 저장하고, 그 명령을 적용한 6줄 결과를 /root/vim/nogap.txt 로 저장하세요.

:g/패턴/d 는 패턴에 맞는 줄을 지웁니다. 빈 줄을 나타내는 패턴은 줄 시작과 줄 끝이 붙어 있는 형태입니다.

여러 편집을 한 스크립트로

빈 줄을 지우고 모든 글자를 대문자로 바꾸는 ex 명령들을 /root/vim/build.ex 에 저장하고, 그 결과를 /root/vim/final.txt 로 저장하세요.

치환에서 대문자로 바꾸는 지시자와, 매치된 전체를 가리키는 기호를 조합합니다. 두 명령을 순서대로 넣으면 됩니다.