1.vim과 nano
- 유닉스에서 사용할 수 있는 에디터로, 터미널을 통해서 텍스트 편집이 가능한 텍스트 편집기
2.vi와 vim
- vi : visual display editor
- vim : vi iMproved , 향상된 vi (업그레이드 버전)
3.vim 사용법 익히기
vim 처음 사용할 때 언제는 esc를 쓰고, 이런게 너무 어려웠는데 이렇게 접근하니까 훨씬 수월했다.
1.우선 vim에 진입해주자.
vim
#이미 있는 파일을 수정하기
vim [파일명]
이렇게 진입해주면, vim 일반 모드가 실행된 것이다.
2.입력 모드로 진입하기
vim을 처음 들어가면, 입력이 되지 않을 것이다. 그럼 텍스트를 편집할 수 있는 입력 모드로 전환해줘야 한다. 진입한 상태로 커서 기준 어디서 부터 입력할지를 생각해서, 상황에 맞는 키로 진입해주면 된다.
a : 커서 위치 다음칸부터 입력
A : 커서 행의 맨 마지막부터 입력
i : 커서의 위치에 입력
I : 커서 행의 맨 앞에서 부터 입력
o : 커서의 다음행에 입력
O : 커서의 이전 행에 입력
s : 커서 위치의 한글자를 지우고 입력
cc : 커서 위치의 한 행을 지우고 입력
편집기에 진입하면, 방향키로 위치를 이동해가며 메모장 쓰듯이 작성해주면 된다.
3.명령 모드로 진입하기 = 입력 모드의 종료
원하는 내용으로 작성을 마치고 나면, 저장을 하던 나가던 해야한다. 그럴 땐 명령 모드에 진입해야하는데, esc를 눌러주면 명령모드에 진입할 수 있다.
해당 모드에 진입해서 아무리 키보드를 두드려도 입력이 되지 않는다. 우리는 현재 편집 모드가 아니라 명령 모드이니깐.
그럼 명령 모드에선 어떤 명령을 내릴 수 있을까? 아래와 같은 명령어를 사용할 수 있다. 편집한 텍스트의 저장 뿐만 아니라 명령을 통한 어느정도의 수정도 가능하다.
#커서 이동
h = 왼쪽 방향키
j = 아래 방향키
k = 위 방향키
l = 오른쪽 방향키
b : 한 단어 뒤로 이동 (back)
w : 한 단어 앞으로 이동 (forward)
H : 화면 맨 위로 이동
M : 화면 중간으로 이동
L = G : 화면 맨 아래로 이동
nG : n번째 줄로 이동
#저장 및 종료
:w 편집된 내용 저장
:q 편집화면 수정하지 않았거나
:wq 편집된 내용 저장하고 종료
:q! 저장하지 않고 종료
:q read only 일 때, 저장하지 않고 종료
:w! read only 일 때, 강제로 저장
#복사 (yank)
yy : 한줄 복사
yyn : n줄 만큼 복사 (똑같은걸 n줄 복사)
yw : 한 단어 복사 (yank word)
ynw : n 단어 복사 (똑같은 단어를 n번 복사)
y$ : 커서부터 이줄 끝까지 복사
y0 : 커서부터 이줄 앞까지 복사 메
#붙여넣기
p : 커서 앞으로 붙여넣기
P : 커서 뒤로 붙여넣기
#삭제 (delete)
x : 커서 뒤의 문자 하나 삭제
X : 커서 앞에 문자 하나 삭제
dd : 한줄 삭제
ddn : n줄 삭제
dw : 한 단어 삭제 (delete word)
dnw : n 단어 삭제
d$ : 커서부터 이줄 끝까지 삭제
d0 : 커서부터 이줄 앞까지 삭제
dG : 커서부터 문서 끝까지 삭제
#명령 되돌리기
u : 되돌리기 (undo)
#검색
/검색할 단어
위 명령어를 통해 입력했던 내용을 한줄 더 복사해보고, result.txt라는 파일명으로 저장해보겠다.
* 번외 : 비주얼 모드
vim에는 텍스트를 마우스로 드래그하듯 선택할 수 있는 비주얼 모드라는 것이 있다. 일반 모드에서
으로 진입할 수 있다. 해당 비주얼 모드에서는 명령 모드의 명령어 사용이 동일하게 가능해서, 비주얼모드와 명령 모드의 복사 / 삭제 / 커서 이동등의 키와 같이 사용하면 엄청난 효율 극대화를 이루어낼 수 있다.
처음에 vim을 접했을 때, 저장할때는 esc + :wq.. 이런식으로 외우니 너무 어려웠는데 4가지 모드에 대해 이해하고 접근하니 훨씬 쉬워졌었다. 모드에 대해 이해하고 차근차근 직접 작성해보면 금방 익숙해질 것이다 ✌
'리눅스 Linux' 카테고리의 다른 글
[Linux] 도커 컴포즈 (Docker Compose) 기초 개념과 설치부터 실행까지 (0) | 2024.04.09 |
---|---|
[Linux] 뉴비를 위한 Docker 기초 개념 및 명령어, 설치부터 예제까지 (0) | 2024.04.09 |
[Linux/Ubuntu] 삼바(Samba)를 설치하고 HDFS를 윈도우 디렉토리와 연결해보자 (0) | 2024.03.29 |
[Linux/Ubuntu] Fuse를 이용하여 HDFS를 Linux에 Mount하기 (0) | 2024.03.29 |
[Linux/Ubuntu] 리눅스와 우분투는 무엇일까? (0) | 2024.03.20 |
댓글