안녕하세요.
리눅스에서 가장 많이 사용하는 에디터 중 하나인 vi 에디터의 명령어에 대해서 알아보겠습니다.
터미널 명령어
터미널 상에서 vi 에디터를 실행할 때 사용할 수 있는 명령어 입니다.
vi file | file을 연다. |
vi file1 file2 | file1과 file2를 차례로 연다. |
view file | file을 읽기 모드로 연다. |
vi -R file | file을 읽기 모드로 연다. |
vi -r file | file을 복구하고 잘못된 동작 이후부터 file을 편집한다. |
vi -t tag | 태그를 검사하고 정의된 위치에서 편집을 시작한다. |
vi + file | file을 열 때 커서가 본문의 마지막 행에 위치한다. |
vi +n file | file을 열 때 커서가 n행에 위치한다. |
vi -c command file | file을 열 때 검색 명령어나 행 번호에 관련된 일반적인 명령을 실행한다(POSIX). |
vi +/pattern file | pattern 위치에서 file을 연다. |
VI 명령어
VI 에디터 내부에서 사용할 수 있는 명령어 입니다.
이동 관련
기본 이동 명령어
w, W, b, B | 단어 앞으로, 단어 뒤로 |
e, E | 단어 끝으로 |
), ( | 다음 문장의 시작, 이전 문장의 시작 |
}, { | 다음 문단의 시작, 이전 문단의 시작 |
] ], [ [ | 다음 절의 시작, 이전 절의 시작 |
행 관련 명령어
RETURN | 다음 행에서 공백이 아닌 첫 번째 문자로 이동 |
0, $ | 현재 행에서 첫 번째 위치, 현재 행에서 마지막 위치 |
^ | 현재 행에서 공백이 아닌 첫 번째 문자 |
+, - | 다음 행에서 공백이 아닌 첫 번째 문자, 이전 행에서 공백이 아닌 첫 번째 문자 |
n | | 현재 행에서 n번째 열 |
H | 화면 맨 위 행 |
M | 화면 중간 행 |
L | 화면 맨 마지막 행 |
nH | 화면 맨 위에서부터 n번째 행 |
nL | 화면 맨 끝에서부터 n번째 행 |
화면 스크롤 명령어
CTRL-F , CTRL-B | 한 화면씩 앞으로 스크롤, 뒤로 스크롤 |
CTRL-D, CTRL-U | 화면 반 만큼씩 아래로 스크롤, 위로 스크롤 |
CTRL-E, CTRL-Y | 화면 아래에서 하나 이상의 행을 보여줌, 화면 위에서 하나 이상의 행을 보여줌 |
z RETURN | 커서가 위치한 행이 화면 위로 올라간다 |
z . | 커서가 위치한 행이 화면 중간으로 배치된다. |
z - | 커서가 위치한 행이 화면 아래로 내려간다. |
CTRL-L | 스크롤 없는 화면을 보여준다. |
검색 관련 명령어
/pattern | 앞으로 진행하면서 pattern 검색 |
?pattern | 뒤로 진행하면서 pattern 검색 |
n, N | 마지막으로 검색한 내용을 앞으로 진행하면서 반복, 뒤로 진행하면서 반복 |
/, ? | 이전에 검색한 내용을 앞으로 진행하면서 반복, 뒤로 진행하면서 반복 |
fx | 현재 행에서 문자 x를 앞으로 진행하면서 검색 |
Fx | 현재 행에서 문자 x를 뒤로 진행하면서 검색 |
tx | 현재 행에서 문자 x이전의 문자를 앞으로 진행하면서 검색 |
Tx | 현재 행에서 문자 x이후의 문자를 뒤로 진행하면서 검색 |
; | 현재 행에서 이전에 검색한 것을 반복 |
, | 현재 행에서 이전에 검색한 것을 반대 방향으로 검색 |
행 번호 관련 명령어
CTRL-G | 현재 행 번호를 보여준다. |
nG | 행 번호가 있을 때 n행으로 이동 |
G | 제일 마지막 행으로 이동 |
:n | n번째 행으로 이동 |
gg | 제일 첫 처음 행으로 이동 |
표시 위치 관련 명령어
mx | 현재 위치를 x로 표시 |
`x | 커서를 x로 이동 |
` ` | 이전 문자나 context로 되돌아간다. |
'x | x를 포함하고 있는 행의 처음으로 이동 |
' ' | 이전 문자를 포함하는 행의 처음으로 되돌아간다. |
편집 명령어
삽입 관련 명령어
i, a | 문자열을 커서 이전에 삽입, 커서 이후에 삽입 |
I, A | 문자열을 행의 처음에 삽입, 행의 마지막에 삽입 |
o, O | 문자열에서 새로운 행을 커서 아래에 삽입, 커서 위에 삽입 |
변경 관련 명령어
r | 문자 변경 |
cw | 단어 변경 |
cc | 현재 행 변경 |
C | 한 행 전체를 변경 |
R | 문자를 덮어쓰면서 변경 |
s | 치환 변경으로 문자를 삭제하고 새로운 문자열을 삽입 |
S | 치환 변경으로 현재 행을 삭제하고 새로운 문자열을 삽입 |
삭제 관련 명령어
x | 커서 다음 문자를 삭제 |
X | 커서 이전 문자를 삭제 |
dw | 단어 삭제 |
dd | 현재 행 삭제 |
D | 한 행 전체를 삭제 |
p, P | 삭제한 문자열을 커서 뒤에 삽입, 커서 앞에 삽입 |
복사 관련 명령어
yw | 단어 복사 |
yy | 현재 행 복사 |
종료 관련 명령어
ZZ | 파일 저장 후 종료 |
:x | 파일 저장 후 종료 |
:wq | 파일 저장 후 종료 |
:w | 파일 저장 |
:w! | 무조건 파일을 저장 |
q | 파일 종료 |
q! | 무조건 파일 종료 |
-2015. 03. 19 추가-
창분할 관련 명령어
#sp file | #(숫자) 줄 만큼 수평으로 새 창을 분할하여 만들고, file을 불러옴 (숫자 생략 시 기본값은 1, file명 생략 시 새 창을 띄움) |
#vs file | #(숫자) 줄 만큼 수직으로 새 창을 분할하여 만들고, file을 불러옴 (숫자 생략 시 기본값은 1, file명 생략 시 새 창을 띄움) |
new/vnew | 상하/좌우 로 새 창을 생성 |
[Ctrl+w] + 방향키 | 활성화 창 이동 |
[Ctrl+w] + =/+/- | 창 크기를 동일하게/크게/작게 |
파일 내용 비교
$ vim -d 비교할파일들 | diff 명령어, vi 실행 시 -d 옵션 사용 |
Vi/Vim 명령어/단축키 요약
'Computer System > Linux' 카테고리의 다른 글
[Ubuntu] 우분투 업데이트 서버 변경 (2) | 2013.09.03 |
---|---|
[Linux] xrdp - 윈도우 원격 데스크톱에서 리눅스 우분투 원격제어 하기 (8) | 2013.07.22 |
[Linux] 리눅스 압축 / 압축 해제 (zip, tar, tar.gz, tar.bz2) (1) | 2013.06.11 |
[Ubuntu] 리눅스 (우분투) 커널 컴파일 (121) | 2013.05.13 |
[Linux] vim 에디터 설치, 환경 설정 하기 (0) | 2013.02.12 |