vim을 알아보자

Chipmunk_jeong·2021년 9월 29일
0

TIL

목록 보기
62/62

깃을 CLI환경으로 사용하기 위해 VIM을 사용하려고하는데 예전에 분명 배웠던 것들이 다 백지화 되어 다시 공부해보고자 블로깅을 작성해본다.

VIM


우리가 윈도우 또는 맥 OS를 사용할때 GUI환경을 사용한다.
GUI환경에서 텍스트 편집기는 간단하게 메모장부터 VSC같은 강력한 툴이 있지만
CLI환경에서 텍스트 편집기는 VIM, emacs, nano 등이 있다.

글을 좀 찾아보니 VIM vs emacs라는 끝나지 않는 토론이 존재하는 것 같다.
마치 들여쓰기 2칸 4칸 같은 느낌이려나..

여튼 VIM은 CLI환경에서 텍스트를 편집할수 있는 편집기라고 볼 수 있다.

설치

우선 VIM이 없을수도 있다는점...
VIM을 설치하자!

sudo apt-get install vim

단축키

CLI에서 텍스트 편집기는 마우스가 없던시절부터 사용해왔기 때문에 마우스를 지원 않할 수 있다. VIM은 사용해보니 마우스를 사용 안하더라...
그리고 키보드에서도 방향키가 안먹혔다.
그래서! 간단하게 단축키를 정리 해보았다.

우선 디렉토리에 test.txt 파일을 생성하고

vi test.txt

를 실행해보면 아래와 같은 화면이 뜬다.
vi편집기

방금 만든 파일을 열었는데 ~표시가 가득해서 오해할 수있지만 저건 그냥 여기는 작성하거나 사용한 곳이 아니다라는 표시라고 이해하면 편하다. 입력모드로 바뀌면 사라진다.

이 화면에서 문자를 입력하려고 해봐도 아무반응이없거나 원치않은 동작이 일어난다.
그 이유는 vi는 모드라는것이 존재하는데 실행시 노멀모드인 상태이다.
무언가를 입력하기 위해서 i를 눌러 입력모드로 전환하여야한다.
그 다음 입력을 하면 문자들이 정상적으로 입력이 된다.

하지만 나는 또 한번 막힌것이 입력된 글자를 어떻게 지우는지 모르겠다는것이다...
백스페이스 누르니 커서가 이동만 된다.

알고보니 esc를 눌러 처음 노멀모드로 전환한 뒤 x를 이용하여 커서 위치문자를 지우거나 dd를 이용하여 줄 전체를 삭제할 수 있었다.

i : 노멀모드 기준으로 해당 커서에서 입력모드로 전환
I : shift + i를 누르면 해당 커서가있는 줄에서 맨 앞으로 이동하여 입력모드가 실행
esc : 입력모드에서 노멀모드로 전환
dw : 현재 커서 기준으로 뒤를 다 지움
dd : 현재 커서가있는 줄 전체를 삭제

앞서 설명을 못한것은 문자를 지우기 위해 커서를 이동해야하는데, 방향키가 먹히지 않는다. 방향키와 같은 역활을 하는게
hjkl 네가지 키이다. h는 왼쪽 j는 아래 kl 오른쪽으로 한칸씩 이동한다.

그 다음 vi에서 바뀐 문서를 저장하고 나가기 위해서는
노말모드에서 :을 누른뒤(shift + ':') w(저장) q(나가기) 를 입력하고 엔터를 누르면된다.

:wq

또는 저장을 안하고 나가려면

:q!

를 눌러 강제로 나가면 된다.

이정도가 git commit을 위한 기본적인 vi 사용법이고 추가적인 단축키를 아래에 정리 해놓아 보겠다.

h, j, k, l : 좌우상하 이동
0 : 줄의 처음으로 이동
$ : 줄의 끝으로 이동
G : 문서의 끝으로 이동
gg : 문서의 처음으로 이동

i: 커서 위치 입력모드
I: 커서의 줄 앞에서 입력 모드
a: 커서위치 다음칸에서 입력모드
A : 커서의 줄끝에서 입력 모드
o: 커서 다음 줄에서 입력모드(개행)
O: 커서 이전 줄에서 이벽모드(개행)

x : 한글자 지우기
dd : 한 줄 지우기
dw : 커서기준 뒤쪽 지우기

:q!: 저장 안하고 강제로 나가기
:wq: 저장하고 나가기
:w: 저장하기
:q: 나가기

이정도면 git을 사용하는데에는 그럭저럭 사용할 수 있을것 같다.

profile
Web Developer

0개의 댓글