임베디드/리눅스(Linux)

리눅스 vi Linux Visual Editor

마달랭 2024. 9. 10. 10:19

개요

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 로 나와야 한다.

  1. ESC 키 누르기 ( command mode 로 빠져 나오기 )
  2. :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(소문자)

 

 

728x90