Kylian 태그 관리 글쓰기 방명록
2023-11-30 10:42:55

유닉스의 기본 편집기인 VI 에디터를 개량한 버전이, 바로 VIM (빔) 에디터입니다.

따라서 본질적인 차이는 없습니다.

VIM 은, "Vi IMproved (향상된 Vi)"의 약자입니다.

 

1976년에 빌 조이가  VI 편집기를 만들었습니다.

vi라는 이름은 한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터(visual editor)라는 뜻에서 유래했습니다.

간결하면서도 강력한 기능으로 사용자가 많습니다.

리눅스에는 vim 에디터만 설치되어 있습니다.

소문자로 vi 라고 치면 vim 이 실행되고, vim 이라고 쳐도 vim 이 실행됩니다.

리눅스에서는 vi를 쓸지 vim을 쓸지 고민하지 않아도 됩니다. 둘다 똑같은 것입니다.

vim 안에는 vi 의 기능들도 다 포함되어 있기에, 유닉스를 다룬다고 하더라도 vi 를 따로 익힐 필요는 없습니다.

 

삽입

키기능

i 커서 위치에 Insert
I 줄 맨 앞에서 Insert
a 커서 다음에 Insert
A 줄 맨 뒤에서 Insert
o 커서 아래로 한 줄 띄우고 Insert
O 커서 위로 한 줄 띄우고 Insert

i / a / o 를 누르면 -- INSERT -- 모드로 변경돼서 입력이 가능하다.

 

이동

키기능 

개인적으로 많이 쓰는 이동키는 {} 와 :$ / :^ 이다.

그리고 전체 삭제할 땐 :1,$d를 누르면 해당 파일의 전체 내용이 삭제된다.

   
w 단어 첫 글자 기준으로 다음으로 이동
W 공백 기준으로 다음(단어의 시작)으로 이동
b 단어 첫 글자 기준으로 이전으로 이동
B 공백 기준으로 이전으로 이동
e 단어 마지막 글자 기준으로 다음으로 이동
E 공백 기준으로 다음(단어의 끝)으로 이동
gg 문서 맨 앞으로 이동
G 문서 맨 아래로 이동
^ 문장 맨 앞으로 이동
$ 문장 맨 뒤로 이동
{ 띄어쓰기가 있는 문단의 맨 앞으로 이동
} 띄어쓰기가 있는 문단의 맨 뒤로 이동

 

참고사항 : vi 편집기가 아닌 커맨드라인(명령줄)에서  

맨 앞으로 가고 싶을 땐  ctrl + a (append)  

맨 뒤로 가고 싶을 땐  ctrl + e (end)  

 

검색

:/단어 = 검색할 단어를 검색, `n`과 `N`으로 다음/이전 찾기

:se nu = 코드 줄 번호를 볼 수 있다. (set number의 약자로 se nu라고만 입력해도 줄 번호를 볼 수 있다.)

:se nonu = set number 모드를 취소할 수 있다.

ex) :3   =   3번째 줄로 커서를 이동시킬 수 있다.

 

편집

키기능 = 복사, 붙여넣기, 잘라내기 할 때 유용하다.

ex) 만약 잘 못 삭제한 코드가 있다면 u를 입력해서 되돌리기가 가능하다.

5줄을 동시에 복사할 땐 5y를 하면 5줄이 복사되고 붙여넣고 싶은 줄에 p를 입력하면 5줄이 복사된다.

dd 현재 줄 잘라내기
yy 현재 줄 복사하기
p 붙여넣기
u 실행취소 (Undo)
ctrl + r 재실행 (Redo)
v Visual모드
y 복사
c 잘라내기

 

저장

키기능 : 코드 수정 후에 저장 또는 저장하지 않고 닫기를 해야 한다.

:w 저장
:q 닫기
:q! 저장하지 않고 닫기
:wq 저장하고 닫기
:숫자 지정한 줄 번호로 이동

 

h, j, k, l - 좌,하,상,우 커서이동
i - 현재 커서 위치에 Insert 하기
I - 현재 줄 맨앞에 Insert 하기
a - 현재 커서 다음칸에 Insert 하기
A - 현재 줄 맨뒤에 Insert 하기
O - 윗줄에 Insert 하기
o - 아랫줄에 Insert 하기

w - 단어 첫글자로 이동하기
W - 화이트스페이스 단위로 다음 글자로 이동하기
b - 백워드 방향으로 단어의 첫글자로 이동하기
B- 백워드 방향으로 화이트스페이스 단위로 다음 글자로 이동하기
e - 단어의 마지막 글자로 이동하기
ge - 백워드 방향으로 단어의 마지막 글자로 이동하기
gg - 문서 맨 앞으로 이동
G - 문서 맨끝으로 이동
^ - 문장 맨 앞으로 이동
0 - 라인 맨 앞으로 이동
$ - 문장 맨 뒤로 이동
f문자 - 문자의 위치로 이동 ; 를 누르면 계속 이동
F문자 - 백워드로 문자의 위치로 이동
t문자 - 문자의 앞위치로 이동
T문자 - 백워드방향으로 문자의 앞위치로 이동

/단어 - 문서에서 단어 찾기 n이나 N으로 다음/이전 찾기
* - 현재 단어를 포워드 방향으로 찾기
# - 현재 단어를 백워드 방향으로 찾기

Ctrl + f - 다음 페이지 이동
Ctrl + b - 이전 페이지 이동
Ctrl + u - 페이지절반만큼 다음으로 이동
Ctrl + d - 페이지절반만큼 이전으로 이동
H - 현재 화면의 맨 위라인으로 이동
M - 현재 화면의 중간 라인으로 이동
L - 현재 화면의 마지막 라인으로 이동

]] - 포워드 방향으로 여는 컬리 블레이스( { )로 이동
[[ - 백워드 방향으로 여는 컬리 블레이스( { )로 이동
][ - 포워드 방향으로 닫는 컬리 블레이스( { )로 이동
[] - 백워드 방향으로 닫는 컬리 블레이스( { )로 이동
% - {}나 ()에서 현재 괄호의 짝으로 이동

dd - 현재 줄 잘라내기
dw - 단어 잘라내기
yy - 현재 줄 복사하기
p - 붙혀넣기
r - 현재 글자 교체하기
u - Undo
Ctrl + R : Redo
x - 현재 글자 지우기
X - 앞의 글자 지우기
> - 들여쓰기
< - 내어쓰기
. - 이전 명령어를 다시 실행

v - 비쥬얼모드(비쥬얼 모드에서 커서 이동해서 블럭지정 가능)
y - 복사하기
c - 잘라내기
cw - 단어 잘라내기
J - 다음 라인을 현재 줄의 끝으로 이어 붙힘
~ : 선택 문자 대소문자 변경
Ctrl + A : 숫자를 증가시키기
Ctrl + X : 숫자를 감소시키기

:w - 문서 저장하기
:q - 현재 문서 닫기
:q! - 저장하지 않고 닫기
:wq - 저장하고 닫기
:숫자 - 지정한 라인넘버로 이동

:new - 가로로 분할된 창 열기
:vs - 세로로 분할된 창 열기
Ctrl + w - 분할창 간에 이동하기
:tabnew - 새로운 탭 열기
:gt - 다음 탭으로 이동하기
:gT - 이전 탭으로 이동하기
:e ./ - 현재 탭에 오픈할 파일 탐색하기( ./ 는 현재위치에서 탐색 시작)
:colorscheme 스키마명 - VIM의 칼라스키마를 변경함(blue, desert, evening 등.. 스키마명에서 탭누르면 자동완성됨)

zc - 코드 접기(fold)
zo - 접힌 코드 펼치기
zd - fold 지우기
zR - 접힌 코드 모두 펼치기
zM - 코드 모두 접기
zD - 모든 fold 지우기

:buffers - 현재 Vim에서 여러 파일을 열었을때 버퍼에 있는 목록 확인
:buffer 숫자 - 버퍼 목록에 나온 숫자를 입력하면 해당 파일을 오픈함 ( :buffer 대신 :b 도 가능)
:bnext - 버퍼에 있는 다음 파일로 이동 ( :bn 도 가능)
:bprevious - 버퍼에 있는 이전 파일로 이동 ( :bp 도 가능)
:ball - 버퍼 목록에 있는 파일들이 가로로 분할된 창에 열림

 

 

 

참고

https://wayhome25.github.io/etc/2017/03/27/vi/

https://velog.io/@courage331/Vim%EA%B3%BC-Vi-%EC%B0%A8%EC%9D%B4

'주요 개념 > 리눅스' 카테고리의 다른 글

Linux 리눅스 프로세스 확인 명령어(ps, ps -ef, grep)  (0) 2023.11.18
VMware Centos7 Nginx 설치하기  (0) 2023.11.13
사용자 계정  (0) 2023.06.14
Kylian. Designed by bskyvision.