Vim 기본 문법

han811·2021년 1월 1일
0

good to know

목록 보기
3/7
post-thumbnail
post-custom-banner

1. 기본 사용 방법

1) 시작
명령설명
vim저장할 때 반드시 파일 이름을 지정해 주어야 함
vim [파일명]해당 파일명으로 자동으로 저장됨

파일의 경우 저장할 때 생성됨

2) 저장
명령설명
:w파일을 저장
:w [파일명]파일을 해당 파일명으로 저장
:w!파일을 강제로 저장, 해당 파일이 이미 존재한다면 덮어씌움
:w! [파일명]파일을 강제로 저장, 해당 파일이 이미 존재한다면 덮어씌움
3) 종료
명령설명
:q편집기 종료, 파일이 수정된 채로 저장되어 있지 않다면 오류 발생
:q!편집기 강제 종료
:wq 혹은 xw와q명령어 동시에 실행

2. 명령 모드

1) 문자의 입력
명령설명
a현재 커서 위치 다음에 문자 입력
A현재 커서 위치 라인의 끝에 문자 입력
i현재 커서 위치에 문자 입력
I현재 커서 위치 라인의 앞에 문자 입력
o현재 커서 위치 라인의 아래에 새로운 문장 입력
O현재 커서 위치 라인의 위에 새로운 문장 입력
2) 문자의 수정
명령설명
r커서가 위치한 곳 한 글자만 다른 글자로 변경
R커서가 위치한 곳 글자를 다른 글자로 변경 esc를 입력 할 때 까지 수행
[n]s커서가 위치한 글자를 지우고 해당 위치 입력모드 전환, n은 몇 개의 글자를 지울지 결정
[n]S커서가 위치한 라인을 지우고 해당 위치 입력모드 전환, n은 몇 개의 라인을 지울지 결정
[n]cw현재 커서 기준 뒤쪽으로 위치한 단어를 제거하고 해당 위치 입력모드 전환, n은 몇 개의 단어를 제거할 지 결정
C현재 커서 기준으로 커서 위치 글자부터 라인 맨 끝까지 제거 및 해당 위치 입력모드 전환
[n]cc[n]S와 동일한 기능
3) 문자의 삭제
명령설명
[n]x커서가 위치한 곳 뒤의 글자를 제거(del과 같은 효과), n은 몇 개를 제거할 지 결정
[n]X커서가 위치한 곳 앞의 글자를 제거(backspace과 같은 효과), n은 몇 개를 제거할 지 결정
[n]dw커서가 위치한 곳 뒤의 단어를 제거, n은 몇 개를 제거할 지 결정
d0커서가 위치한 곳 기준 라인 맨 앞까지 제거
d$커서가 위치한 곳 기준 라인 맨 뒤까지 제거
[n]dd커서가 위치한 곳 라인 제거, n은 몇 개를 제거할 지 결정
p커서가 위치한 곳 기준 뒤 혹은 아래 라인에 붙여넣기
P커서가 위치한 곳 기준 앞 혹은 위 라인에 붙여넣기

d를 이용한 문자의 삭제는 버퍼에 저장이 되므로 오려넣기와 붙여넣기가 가능하다
d, x 명령어 계열은 삭제와 동시에 오려두기 기능을 한다!!

4) 복사하기
명령설명
[n]yw커서가 위치한 곳 뒤의 단어를 복사, n은 몇 개를 제거할 지 결정
y0커서가 위치한 곳 기준 라인 맨 앞까지 복사
y$커서가 위치한 곳 기준 라인 맨 뒤까지 복사
[n]yy커서가 위치한 곳 라인 복사, n은 몇 개를 제거할 지 결정
p커서가 위치한 곳 기준 뒤 혹은 아래 라인에 붙여넣기
P커서가 위치한 곳 기준 앞 혹은 위 라인에 붙여넣기
5) 작업 취소, 되돌리기 및 반복
명령설명
u이전 작업 취소
.직전에 수행한 작업 반복
ctrl+r작업 취소한 내용을 다시 실행 즉 작업 취소를 취소
6) 화면 이동
  • 문자 단위
명령설명
h한 글자 왼쪽 이동
j한 문장 아래로 이동
k한 문장 위로 이동
l한 글자 오른쪽 이동
  • 단어 단위
명령설명
w, W커서가 위치한 곳 기준 뒤의 단어 첫 글자로 이동
b, B커서가 위치한 곳 기준 앞의 단어 첫 글자로 이동
  • 문장 단위
명령설명
^, 0커서를 현재 문장의 첫 글자로 이동
$커서를 현재 문장의 마지막 글자로 이동
[n]+, [n]커서를 다음 문장의 첫 글자로 이동, n은 몇 개의 문장을 이동할 것인지 결정
[n]-커서를 이전 문장의 첫 글자로 이동, n은 몇 개의 문장을 이동할 것인지 결정
H커서를 화면의 제일 윗 문장 맨 앞 글자로 이동
M커서를 화면의 가운데 문장 맨 앞 글자로 이동
L커서를 화면의 제일 끝 문장 맨 앞 글자로 이동
  • 화면 단위
명령설명
ctrl + f커서를 다음 화면으로 이동
ctrl + b커서를 이전 화면으로 이동
ctrl + d커서를 다음 화면의 반만큼 이동
ctrl + u커서를 이전 화면의 반만큼 이동
ctrl + y커서를 한 행씩 위로 이동
ctrl + e커서를 한 행씩 아래로 이동
[n] shift + g커서를 맨 마지막 라인의 처음으로 이동, n이 있을 경우 n번째 라인의 처음으로 이동

3. 라인 모드

1) 문장으로 이동
명령설명
:[n]n번째 라인으로 이동
2) 범위 지정

이부분의 경우 명령어가 아니라 문법입니다!!
[범위] 부분은 다음의 문법으로 입력하시면 됩니다!!

기호설명
숫자문장 번호 의미
$마지막 의미
%전체 의미
.현재 커서가 위치한 문장 의미
3) 복사하기 오려두기 붙이기
명령설명
:[n]y현재 커서가 있는 라인 복사, n이 있을 시 해당 라인 복사
:[범위]y해당 범위 복사
:[n]d현재 커서가 있는 라인 오려두기, n이 있을 시 해당 라인 오려두기
:[범위]d해당 범위 오려두기
:[n]pu현재 커서 위치한 라인 다음으로 붙이기, n이 있을 시 n번째 문장 아래로 붙이기
4) 문자열 검색 및 변경
명령설명
/[검색문자열] + n 혹은 N현재 커서 위치 기준 아래로 검색, n은 검색 방향 N은 검색 반대 방향으로 다음 문자열 검색
?[검색문자열] + n 혹은 N현재 커서 위치 기준 위로 검색, n은 검색 방향 N은 검색 반대 방향으로 다음 문자열 검색
:s[문자열1]/[문자열2]커서 위치 라인의 첫 번쨰 문자열1을 문자열2로 변경
:s[문자열1]/[문자열2]/c커서 위치 라인의 첫 번쨰 문자열1을 문자열2로 변경 및 변경 여부 물음
:s[문자열1]/[문자열2]/g커서 위치 라인의 모든 문자열1을 문자열2로 변경
:s%[문자열1]/[문자열2]/g문서에 존재하는 모든 문자열1을 문자열2로 변경
:[범위]s[문자열1]/[문자열2]/g해당 범위 내에서 모든 문자열1을 문자열2로 변경
5) 파일 불러오기 및 전환
명령설명
:r [파일명]해당 파일을 현재 커서 아래로 삽입
:e [파일명]해당 파일로 전환
:n 혹은 :N현재 파일에서 n이면 앞으로, N이면 뒤로 전환
6) 쉘 사용
명령설명
:! [쉘명령어]해당 쉘명령어 결과 출력
:sh쉘 프롬프트로 전환, exit입력 시 다시 vim으로 돌아옴



기본 적인 내용이니 이 정도는 외워두자!!

Reference

  • 시스템운영과 관리 우분투 리눅스 / 저자 : 이광, 김봉근, 안준호 / 출판사 : 도서출판 글로벌
profile
han811
post-custom-banner

0개의 댓글