[ Linux ]
[Linux] Vi editer란? vi 단축키 정리
히앤님
2020. 10. 29. 17:17
반응형
SMALL
리눅스 VI ( Visual Editor ) 편집기
vi 편집기는 유닉스 계열에서 가장 많이 사용되는 편집기이다. 1976년 빌조이가 개발하였다. vi 편집기는 한 화면을 편집하는 비쥬얼 에디터 ( Visual Editor ) 이다.
VI ( Visual Editor ) 편집기의 특징
vi는 Emacs와 함께 Unix 환경에서 가장 많이 쓰이는 문서 편집기이다. 1976년 빌 조이가 초기 BSD 릴리즈에 포함될 편집기로 만들었다. vi라는 이름은 한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터라는 뜻에서 유래했다. 간결하면서도, 강력한 기능으로 열광적인 사용자가 많다.
현재는 오리지널 vi를 사용하는 경우는 거의 없고, 일반적으로 기능을 모방하여 만들어진 클론을 사용하고 있다. 이런 클론 중 많이 쓰이는 것은 기능이 다양한 것을 장점으로 내세우며, 리눅스 배포판에 포함되는 Vim, 그리고 BSD 라이센스로 제공되며 원본 vi의 동작과 호환성으로 정평이 나 있는 nvi, 독자적인 팬층을 확보한 elvis 등이 있다.
vi 편집기가 동작하는 원리를 보면 버퍼에서 작업을 하게 된다. 그러므로 저장을 시키는 명령어를 입력하지 않는 이상 디스크상에 파일의 내용으로 저장되는 것은 아니다.
출처 : https://tear94fall.github.io/lecture/2020/02/10/vi-keyboard-short-cut.html
vi 단축키(자주 사용하는 것 위주로)
기본기능
키 | 기능 |
h | ⬅️ 커서를 왼쪽으로 움직임 |
j | ⬇️ 커서를 아래로 움직임 |
k | ⬆️ 커서를 위로 움직임 |
l | ➡️ 커서를 오른쪽으로 움직임 |
- | 커서를 줄의 처음으로 옮기 |
gg | 문서의 맨위로 커서를 이동 |
Shift + g | 문서의 맨 마지막으로 커서를 이동 |
Ctrl + f | 한페이지 아래로 이동 |
Ctrl + b | 한페이지 이전으로 이동 |
Ctrl + d | 반페이지 아래로 이동 |
Ctrl + u | 반페이지 위로 이동 |
Ctrl + e | 페이지를 한줄씩 아래로 이동 |
Ctrl + y | 페이지를 한줄씩 위로 이동 |
Shift + h | 페이지는 이동하지 않고, 화면 내에서 커서를 맨 위로 이동 시킴 |
Shift + m | 페이지는 이동하지 않고, 화면 내에서 커서를 맨 중간으로 이동 시킴 |
Shift + l | 페이지는 이동하지 않고, 화면 내에서 커서를 맨 마지막으로 이동 시킴 |
x | 커서부터 오른쪽으로 삭제 |
Shift + x | 커서기준으로 커서 왼쪽으로 삭제 |
v | 글자 단위 블럭 지정 |
Shift + v | 라인단위 블럭 지정 |
Ctrl + v | 블럭단위 블럭 지정 (h,j,k,l로 지정이 가능함) |
dd | 현재 커서가 위치한 라인 삭제 |
dG | 현재 커서가 위치한 라인부터 마지막 까지 삭제 |
yy | 현재 커서가 위치한 라인 복사 |
p | 현재 커서가 위치한 라인 바로 아래 붙여 넣기 |
Shift + p | 현재 커서가 위치한 라인 바로 위 라인에 붙여 넣기 |
$ | 커서를 라인의 맨 마지막으로 이동 |
^ | 커서를 라인의 맨 처음으로 이동 |
i | 현재 커서가 위치한 문자의 앞에 insert |
Shift + i | 현재 커서가 위치한 라인의 맨 앞에 insert |
a | 현재 커서 위치에서 한칸 다음으로 이동해서 insert |
Shift + a | 현재 커서가 위치한 라인의 마지막 위치에서 insert |
o | 현재 커서가 위치한 라인의 아래에 한줄 삽입하고, 커서를 새로운 라인에 위치한 후 insert |
Shift + o | 현재 커서가 위치한 라인의 위에 한줄을 삽입하고, 커서를 새로운 라인에 위치한 후 insert |
s | 현재 커서가 위치한 문자를 지우고 insert |
Shift + s | 현재 커서가 위치한 라인을 지우고 insert |
u | Undo, 이전으로 되돌리기 |
Ctrl + r | Redo, 이전으로 되돌리기 취소 |
> 2번 클릭 | 들여쓰기 |
>} | 한문단 전체 들여쓰기 |
2 > > | 2줄 들여쓰기 |
< 2번 클릭 | 내어쓰기 |
~ | 현재 커서가 위치한 문자가 대문자면 소문자로, 소문자면 대문자로 변경한다 |
Ctrl + a | 현재 커서가 위치한 문자가 숫자면 숫자를 증가 시킬 수 있다 (자릿수 변경 가능) |
Ctrl + x | 현재 커서가 위치한 문자가 숫자면 숫자를 감소 시킬 수 있다 (음수 값도 가능) |
파일 관련 기능
키 | 기능 |
:q | 종료 |
:q! | 강제 종료 |
:wq | 저장 후 종료 |
:w | 현재 파일 명으로 저장 |
:w {filename} | filename으로 저장 |
vi ./{PATH} | 파일 네비게이션 기능이다. 현재 디렉토리의 리스트를 보여준다. 커서가 위치한 디렉토리에 엔터를 누르면 해당 디렉터리의 리시트를 다시 보여준다. 파일에서 엔터를 누르면 해당 파일을 열어서 보여준다. (vim 6.0 부터 사용가능하다) |
화면 관련 기능
키 | 기능 |
:split (:sp) | 화면을 수평으로 나눈다. 두개의 화면에 같은 파일이 표시된다. |
:split (:sp) {fileanem} | 수평으로 나눠진 화면에 filename을 표시한다. |
:vsplit (:vs) | 화면을 수직으로 나눈다 |
:vsplit (:vs) {fileanem} | 수직으로 나눠진 화면에 filename을 표시한다. |
Crtl + ww | 화면을 이동할때 사용한다. (다음화면으로 이동 한다) |
Crtl + w {h,j,k,l} | 화면을 이동할때 사용한다. (상하좌우 키를 이용해, 원하는 위치로 이동한다) |
Ctrl + w= | 분할된 화면 사이즈를 동일하게 |
:close | 화면을 닫을때 사용한다 |
:new | 새로운 창을 수직으로 분할된 화면에 열기 |
:tabnew | 새창을 현재 화면과 같은 위치에 열기 (상단에 탭 추가됨) |
gt | 오른쪽 탭으로 이동 |
gT | 왼쪽 탭으로 이동 |
기타 기능
키 | 기능 |
Ctrl + v(블럭), Shift + i(클릭), esc 키 두번 클릭 | 여러줄 수정 |
:set number | 줄번호 보이기 |
:set nonumber | 줄번호 없애기 |
:{줄 번호} | 줄번호로 이동1 |
{줄번호} + Shift + g | 줄번호로 이동2 |
/{찾을 내용} | 단어 찾기 |
n 또는 * | 단어 찾기 위로 |
Shift +n 또는 # | 단어 찾기 아래로 |
접기 기능
키 | 기능 |
zf | 선택 부분 접기 |
zo | 부분 펴기 (open) |
zc | 부분 접기 (close) |
zi | 누를 때마다 접기/펴기 할 수 있음 (zc/zo)를 누르지 않아도 됨 |
zd | 현재 위치의 폴드 삭제 하기 |
zM | 모두 접기 |
zR | 모두 펴기 |
zE | 현재 문서의 모든 폴드 삭제 |
zD | 현재 위치의 겹쳐진 폴드 삭제 |
반응형
LIST