개요
40년 전 만들어진 화면 기반 Text Editor
리눅스 에디터의 전통이며, 임베디드 리눅스에서 주로 사용한다.
vim(vi improve)을 사용할 것이다, vs code의 원조, 플러그인 설치 가능하도록 vi 의 업그레이드 판
우분투에는 기본적으로 텍스트 편집기로 vi가 제공되며, 시스템의 효율성과 경량성을 고려해 small version이 설치되어 있다.
vi 버전 확인하기
$vi -- version
Small version이 설치되어 있는 것을 볼 수 있다.
vim 설치
$ sudo apt install vim -y
위 명령어를 터미널에 입력하고 암호를 입력하면 패키지가 자동으로 설치가 된다.
Huge 버전으로 바뀐것을 볼 수 있다.
vi 사용하기
vi [파일명] 을 통해 vi를 실행해 준다 ex) vi ./abc.txt
vi 에는 세 가지 기본 모드가 존재한다.
1. command mode
명령어 입력, 처음 실행 화면, esc 키로 진입
2. insert mode
텍스트 입력 / 편집, command mode 에서 I 입력해서 진입
3. visual mode
텍스트 선택 / 편집, command mode 에서 v 입력해서 진입
세 가지 모드를 자유자재로 사용할 수 있어야 한다.
텍스트 입력하기
i 를 누르고 ( Insert(입력) 모드 진입 , 화면 왼쪽 하단에 끼워 넣기 문구 표시) 텍스트를 입력한다.
저장하기
vi 를 저장하기 위해선 다시 command mode 로 나와야 한다.
- ESC 키 누르기 ( command mode 로 빠져 나오기 )
- :wq 입력해서 저장 ( w : 저장, q : 종료 )
파일 열기
다시 $ vi ./abc.txt를 통해 저장한 파일을 열어본다.
기존에 작성했던 내용이 그대로 존재하는 것을 볼 수 있다.
다른 이름으로 저장하기
위 내용에서 일부 내용을 수정한 뒤 다른 이름으로 저장해보자
:w [파일명]을 통해 다른 이름으로 저장할 수 있다. ex) :w chicken.txt
새 터미널 창을 열어서 목록을 확인한다.
chicken.txt가 생성된 점을 확인할 수 있다.
저장하지 않고 종료하기
파일 내용을 수정 한 뒤 command mode 로 빠져나와서 :q 를 누른다.
command mode 에서복사/ 붙여넣기
vi 에서 복사를 하는 방법은 정말 다양하다, 반드시 반복해서 외워야 한다.
1. [라인수] dd → shift + p or p
• dd : n 개의 라인을 잘라내기 할 수 있다.
• p : 현재 커서 앞에 붙여 넣기
• shift + p : 현재 커서 뒤에 붙여 넣기
2. 마우스 사용하기
• 마우스로 더블 클릭해서 선택하면, 복사가 된다.
• 휠 키를 눌러서 붙여 넣기 한다.
visual mode 에서복사붙여넣기
command mode 에서 visual mode 로 진입한다.
진입하기 전에 복사하고자 영역으로 커서를 옮긴 뒤 v 를 누른다.
복사하기
• 방향 키로 영역을 선택한다
• y 키로 복사한다.
붙여 넣기
• p / shift + p 로 붙여넣기
vi에서 복사 붙여넣기 기능에 터미널에서 지원하는 복사 붙여넣기도 같이 동작한다.
마우스와 ctrl+insert / shift+insert 를 이용한 복사는 터미널에서 지원하는 복사 붙여넣기 방법이다
command mode 명령어
• 페이지 상단 이동 : gg
• 페이지 하단 이동 : G
• 실행 취소 : u
• 다시 실행 : ctrl + r
• 찾기 : /[검색어]
- 다음 검색 : n
- 이전 검색 : N
- Ex) /hello 입력 후 엔터
- N / n 을 눌러가며 검색
• 바꾸기 : %s/[검색어]/[변경]/g
- g : global 약어로, 파일 전체의 단어를 바꾸는 필수 옵션
- Ex) :%s/hello/hifaker/g
Insert 옵션
매 번 커서를 옮겨가며 엔터를 입력할 필요가 없다.
커서 위쪽에 라인 추가하면서 insert : O(대문자)
커서 아래쪽에 라인 추가하면서 insert : o(소문자)
현재 커서가 있는 라인 모두 지우면서 앞쪽에 insert : cc(소문자)
'임베디드 > 리눅스(Linux)' 카테고리의 다른 글
리눅스 사용자 Linux User (1) | 2024.09.11 |
---|---|
리눅스 터미널 Linux Terminal (0) | 2024.09.11 |
리눅스 텍스트 에디터 Linux Text Editor (0) | 2024.09.10 |
리눅스 root 파일 시스템 구조 (0) | 2024.09.09 |
리눅스 파일시스템 (0) | 2024.09.09 |