vi (visual editor)
vi improved
vim은 다양한 플랫폼을 지원함
vim [filename] - 특정 파일명을 열면서 시작
[filename] = “-” = -stdin-를 의미함
find . -name “*.txt” | vim -
일반보드: normal mode
입력모드: insert mode
명령행모드 : command-line mode
비주얼 모드: visual mode
단축어 | 뜻 | 기능 |
---|---|---|
a | append | 현재 커서에서 한 칸 뒤로 이동한 후, 입력 모드로 전환 |
A | append | 현재 행의 끝으로 이동한 후, 입력 모드로 전환 |
i | insert | 현재 커서 위치에서 입력 모드로 전환 |
I | insert | 현재 행의 맨 앞으로 이동 후, 입력 모드로 전환 |
o | open line | 현재 행 아래에 새로운 행을 하나 만든 후, 입력 모드로 전환 |
O | open line | 현재 행 위에 새로운 행을 하나 만든 후, 입력 모드로 전환 |
저장을 하지 않고 나가기 시도할 경우 error 발생함
단축어 | 뜻 | 기능 |
---|---|---|
:w | write | 파일 저장 |
:q | quite | vim 종료 |
좌, 하, 상, 우 커서 이동 (in nomer mode)
단축어 | 설명 |
---|---|
[#]h | 좌로 #칸 이동 |
[#]j | 아래로 #칸 이동 |
[#]k | 위로 #칸 이동 |
[#]l | 우로 #칸 이동 |
^ | 행의 맨 앞으로 이동 |
$ | 행의 맨 끝으로 이동 |
page up/down도 없다고 생각하자
마우스가 없다고 생각하자
단축어 | 뜻 | 설명 |
---|---|---|
ctrl + b | backward | 위로 한 화면 스크롤 |
ctrl + f | forward | 아래로 한 화면 스크롤 |
ctrl + u | upward | 위로 1/2 화면 스크롤 |
ctrl + d | downward | 아래로 1/2 화면 스크롤 |
goto # line
단축어 | 뜻 | 설명 |
---|---|---|
[#]gg | goto | #행으로 이동합니다. (default # = 1) |
[#]G | goto | #행으로 이동합니다. (default # = end line) |
:# | #행으로 이동합니다. |
단축어
:file → 현재 문서 위치 정보를 하단 상태 바에 표시합니다
삭제(잘라내기)
단축어 | 뜻 | 설명 |
---|---|---|
x | X | 커서에 위치한 문자 삭제 |
dd :d | delete | 현재 행을 삭제 |
D | delete | 현재 컬럼 위치에서 현재 행의 끝부분까지 삭제 |
J | jump | 아래 행을 현재 행의 끝에 붙임 |
붙여넣기
단축어 | 뜻 | 설명 |
---|---|---|
p :pu | paste | 현재 행에 붙여 넣습니다. (put) 개행 문자가 포함된 경우에는 현재 행의 아래에 붙여 넣습니다. |
P | paste | 현재 행의 위쪽에 뭍입니다. |
5p → 5번 붙여넣어짐
단축어 | 뜻 | 설명 |
---|---|---|
yy :y Y | copy | 현재 행을 레지스터에 복사 (yank) 합니다. |
단축어 | 뜻 | 설명 |
---|---|---|
u | undo | 바로 이전에 행한 명령 한개를 취소합니다. (undo) |
CTRL-R | redo | 바로 이전에 취소했던 명령을 다시 실행합니다. (redo) |
. (dot) | 이전 명령어 반복 |
: 기호 앞에 쓰임
기호 | 설명 |
---|---|
. | 현재 행 |
$ | 마지막 행 |
+# | 현재 위치에서 #만큼 아래 행을 의미 |
-# | 현재 위치에서 #만큼 위 행을 의미 |
% | 문서(파일) 전체를 의미 |
예시
명령어 | 설명 |
---|---|
:20d | 20행 삭제 |
:10, 20d | 10~20행 삭제 |
:10,$d | 10~마지막 행까지 삭제 |
:%y | 문서 전체 복사 (% = 1, $) |
:.,+20y | 현재 행부터 아래로 스무행을 복사 |
:-10,+5d | 현재 행부터 위로 10행, 아래로 5행, 총 16행을 삭제 |
:40pu | 40번 행에 레지스터의 내용을 붙여넣습니다. |
마우스의 드래그 작업을 대신하는 모드
기호 | 설명 |
---|---|
v | visual mode(default), 현재 커서 위치에서 블록 지정 |
V | visual line mode, 현재 커서가 위치한 행에서 행 단위로 블록을 지정 |
CTRL-V | visual block mode, 열 단위로 블록을 지정 (CTRL-V가 예약되어 사용할 수 없는 경우 CTRL-Q로 대신할 수 있다.) |
tip - ':' 를 사용하면 normal mode처럼 쓸 수 있음 (e.g. :’<,’>d → 선택한 내용이 삭제 됨)
colum editing
I | insert | 특정 열에 문자열을 삽입 하는 경우 |
---|---|---|
A | append | 특정 열에 문자열을 추가 하는 경우 |
c | change | 특정 열에 문자열을 교체 하는 경우 |
~ | switch case | |
ESC*2 | escape | 명령어 적용후 모드 바꾸기 |
기호 | 설명 |
---|---|
o | visual mode에서 커서의 위치 스위칭 |
gv | previous highlighted text 영역 불러오기 |
기능 | 명령어 | RedHat 계열 | Debian 계열 |
---|---|---|---|
일반 vi | vi | vim-minimal | vim-tiny |
enhanced vim | vim | vin-enhanced | vim-nox |
vim with X | vimx, gvim | vim-Xll | vim-gnome |
vim-athena |
sudo apt install vim-gtk3
gnome: 21세기 디자인
athena: 20세기 디자인
vim —version | grep clipboard