Basic vim Editing
한국어 원문으로 표시합니다.
목표
vim 의 기본 편집(삽입·삭제·복사·붙여넣기)을 손에 익히고, 편집 명령을 파일로 저장해 재현하는 방법까지 배웁니다.
왜 중요한가
vim 의 키는 외워야 할 목록이 아니라 {횟수}{동작}{범위} 라는 문법입니다. d(삭제) + 3w(단어 3개) = d3w 처럼 조합하면 배우지 않은 명령도 만들어 쓸 수 있습니다. 그리고 vim 에서 삭제는 잘라내기입니다 - 지운 내용이 레지스터에 남기 때문에 ddp(아래 줄과 자리 바꾸기) 같은 관용구가 성립합니다. 마지막 두 단계에서 편집 명령 자체를 파일로 제출하는 이유는, 결과만 맞히는 것과 절차를 재현할 수 있는 것이 전혀 다르기 때문입니다.
단계
/root/.vimrc를 만들고 다음 네 가지를 켜세요: 줄 번호 표시, 탭 대신 공백, 탭 폭 4, 들여쓰기 폭 4./root/vim/poem.txt를 만들고 정확히 다음 8줄을 넣으세요. 4번째와 7번째 줄은 빈 줄입니다.alpha/bravo/charlie/ (빈 줄) /delta/echo/ (빈 줄) /foxtrot/root/vim/notes.txt를 만들고 다음 3줄을 넣으세요.i = insert before cursor/a = append after cursor/o = open line belowpoem.txt에서bravo와charlie두 줄만 지운 결과를/root/vim/cut.txt로 저장하세요. 원본은 그대로 두세요.poem.txt에서delta바로 아래에delta한 줄을 더한 9줄을/root/vim/dup.txt로 저장하세요.poem.txt에서alpha와bravo의 순서만 바꾼 8줄을/root/vim/swap.txt로 저장하세요.- 빈 줄을 전부 지우는 ex 명령 한 줄을
/root/vim/blank.ex에 저장하고, 그 명령을 적용한 6줄 결과를/root/vim/nogap.txt로 저장하세요. - 빈 줄을 지우고 모든 글자를 대문자로 바꾸는 ex 명령들을
/root/vim/build.ex에 저장하고, 그 결과를/root/vim/final.txt로 저장하세요.
참고
.ex파일에는 편집 명령만 넣고:wq같은 저장·종료 명령은 넣지 마세요. 채점기가 알아서 저장합니다.- 채점기는
.ex파일을 원본 사본에 다시 적용해 결과가 같은지 확인합니다. 즉 결과 파일과 명령 파일이 서로 일치해야 합니다. - 치환에서 매치된 전체는
&로 참조하고, 대문자 변환 지시자는\U입니다. - 흔한 실수 1: 4~6번에서
poem.txt자체를 고쳐 버리면 뒤 단계가 전부 깨집니다.:w 새파일로 다른 이름 저장을 쓰세요. - 흔한 실수 2: 1번에서
.vimrc에 오타가 있으면 그 줄만 조용히 무시됩니다. vim 을 열어:set expandtab?로 실제 적용 여부를 확인하세요.
설정 파일 만들고 확인하기
/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 에서 bravo 와 charlie 두 줄만 지운 결과를 /root/vim/cut.txt 로 저장하세요. 원본은 그대로 두세요.
dd 는 한 줄, 2dd 는 두 줄입니다. 원본 파일은 건드리지 말고 결과를 새 파일로 저장하세요.
줄 복제하기
poem.txt 에서 delta 바로 아래에 delta 한 줄을 더한 9줄을 /root/vim/dup.txt 로 저장하세요.
yy 로 복사하고 p 로 붙여넣습니다. vim 에서 삭제도 잘라내기라는 점을 떠올려 보세요.
두 줄 자리 바꾸기
poem.txt 에서 alpha 와 bravo 의 순서만 바꾼 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 로 저장하세요.
치환에서 대문자로 바꾸는 지시자와, 매치된 전체를 가리키는 기호를 조합합니다. 두 명령을 순서대로 넣으면 됩니다.