본문 바로가기

Operating System/Linux

[Ubuntu] Linux vi 편집기

728x90
vi 편집기
  • 텍스트 파일을 편집할 수 있는 터미널 기반의 편집기Linux에서 파일을 편집할 때 주로 사용
  • 거의 모든 리눅스 배포판에 vi 편집기가 기본적으로 포함
  • 요즘은 vi를 실행하면 대부분 vim(Vi IMproved)으로 연결되는데 vim은 vi의 향상된 버전
vi가 기본 포함된 경우
  • 대부분의 전통적인 리눅스 배포판(예: Ubuntu, CentOS, Debian, Red Hat 등)에는 기본적으로 vi가 설치
  • 심지어 최소 설치(minimal installation) 환경에서도 포함되는 경우가 많음
vi가 없는 경우
  • 일부 경량화된 배포판(예: Alpine Linux)이나 최소 설치 환경에서는 vi가 빠져 있을 수 있음
  • 대신 vim-tiny 같은 더 가벼운 에디터기본 제공될 수 있음
vi가 없을 때 확인하는 방법

 

vi가 없을 때 설치하는 방법
  • Ubuntu/Debian 계열
sudo apt install vim
  • CentOS/RHEL 계열
sudo yum install vim
  • Alpine Linux
sudo apk add vim

vi의 3가지 모드
명령 모드 (command mode)
  • vi 명령어를 통해 vi를 시작할 경우 실행되는 모드
  • 방향키를 통해 커서를 이동 가능
입력 모드 (insert mode)
  • 명령 모드에서 i 또는 a 키를 눌러 입력 모드로 전환
  • 입력 모드에서는 자유롭게 코드나 글을 작성할 수 있으며, ESC를 누르면 명령 모드로 전환
    • i : 커서가 현재 위치한 부분에서부터 시작
    • a : 커서 바로 다음 부분부터 시작
    • shift+spacebar : 영/한 변환
콜론 모드
  • 명령 모드에서 : (콜론)을 입력하면 화면 맨 아랫줄에 입력 가능한 공간이 출력
  • 콜론 모드에서 vi를 종료
vi 구성


vi 명령어
  • vi 편집기 명령 연습에 사용할 샘플
The quick brown fox jumps over the lazy dog. This sentence contains every letter of the English alphabet, making it a perfect phrase for typing practice.

Vi (or Vim) is a powerful text editor used in Unix-based systems. It operates in different modes, such as Command mode, Insert mode, and Visual mode. Mastering Vi can significantly improve your efficiency in editing files within a terminal.

To navigate inside Vi, you can use:
- h (move left), l (move right)
- j (move down), k (move up)
- w (jump forward by word), b (jump backward by word)

Some common commands:
- `i` → Insert mode (start typing)
- `Esc` → Return to Command mode
- `dd` → Delete the current line
- `yy` → Copy the current line
- `p` → Paste after the cursor
- `u` → Undo the last change
- `:wq` → Save and exit
- `:q!` → Exit without saving

Learning Vi might seem difficult at first, but with regular practice, it becomes an incredibly efficient tool. Many advanced users prefer Vi because it allows for fast navigation and editing without needing to use a mouse.

Now, try practicing:
1. Open this file in Vi.
2. Move around using `h`, `j`, `k`, and `l`.
3. Delete some lines with `dd`.
4. Copy and paste lines using `yy` and `p`.
5. Try searching for a word using `/searchword`.
6. Save your changes with `:w`.

Remember, Vi is not just a text editor; it's a skill that improves over time. Happy coding!

vi 파일명
  • 해당 파일이 존재할 경우 편집
  • 해당 파일이 존재하지 않을 경우 작성한 내용으로 파일 생성
    • 이전 포스팅에서 'cat > 파일명'으로 파일을 생성 했지만, 'vi 파일명' 명령어로 내용을 작성하고 저장을 하면 파일이 생성되기도 함

명령 모드 → 입력 모드 전환

  • i : 커서 앞(왼쪽)에 입력

  • a : 커서 다음(오른쪽)에 입력
입력 모드 → 명령 모드 전환
  • ESC
저장, 종료
  • 명령 모드에서 : (콜론)을 이용하여 콜론 모드로 전환
    • :q  종료
    • :q! → 저장하지 않고 강제로 종료
    • :w → 저장
    • :wq → 저장 후 종료
    • ZZ → 저장 후 종료 (:wq와 동일)
      소문자 zz 불가
    • :wq 파일 이름 → 저장 후 파일 이름 지정
  • vi 에디터에서는 비정상 종료 시 .swp 파일 생성
    • 필요하지 않은 경우 삭제
    • ls -a로 숨은 파일을 찾아보면 .sample.swp 파일이 생성되어 있음

커서 이동
  • h, j, k, l : 좌,하,상,우 커서 이동 (방향 키가 없는 키보드에서 사용)

  • w : 다음 단어의 첫 글자로 이동

  • b : 이전 단어의 첫 글자로 이동

  • G : 마지막 행으로 가기

  • :숫자 : 지정한 숫자 행으로 이동
    ex) :7
삭제

  • x : 커서에 있는 글자 삭제

  • X : 커서 앞에 있는 글자 삭제

  • dw : 커서를 기준으로 뒤에 있는 단어 글자 삭제 (커서 포함)

  • db : 커서를 기준으로 앞에 있는 단어 글자 삭제

  • dd : 커서가 있는 라인(줄) 삭제

  • dw, db, dd 명령 앞에 삭제할 숫자를 지정 가능
    ex) 3dw, 2db, 4dd
  • 삭제 된 내용은 버퍼에 저장되어 붙여넣기가 가능
복사

  • yw : 커서를 기준으로 뒤에 있는 단어 글자 복사 (커서 포함)

  • yb : 커서를 기준으로 앞에 있는 단어 글자 복사

  • yy : 커서가 있는 라인(줄) 복사
  • yw, yb, yy 명령 앞에 복사할 숫자를 지정 가능 ex) 3yw, 2yb, 4yy
붙여넣기 (복사, 삭제된 내용을 붙여넣기)
  • p : 커서 다음에 붙여넣기
  • P : 커서 이전에 붙여넣기
찾기

  • /문자열 : 현재 커서를 기준으로 다음 문자열 탐색

  • ?문자열 : 현재 커서를 기준으로 이전 문자열 탐색
  • n : 뒤로 검색 (다음)
  • : 앞으로 검색 (이전)
바꾸기

  • :%s/old/new : 각 행의 처음 나오는 old를 찾아 new로 변경

  • :%s/old/new/g : 모든 old를 찾아 new로 변경

  • :%s/old/new/gc : 모든 old를 찾아 new로 바꾸기 전에 사용자에게 물어봄
설명
y (yes) 현재 항목을 변경하고 다음으로 이동
n (no) 현재 항목을 변경하지 않고 다음으로 이동
a (all) 남은 모든 항목을 한 번에 변경 (더 이상 묻지 않음)
q (quit) 대체 작업을 중단 (변경된 것들은 유지됨)
l (last) 현재 항목만 변경하고 종료
^E (Ctrl + E) 화면을 아래로 스크롤하여 더 많은 텍스트 보기
^Y (Ctrl + Y) 화면을 위로 스크롤하여 더 많은 텍스트 보기
되돌리기(Undo), 다시실행(Redo)

  • u : 이전으로 되돌리기 (Undo)
    • 이전으로 되돌리기 이기 때문에 u를 계속 입력하더라도 위의 두 사진의 작업으로 되돌리기만 됨
    • Ctrl + Z 같은 것을 원한다면 아래의 Ctrl + r 명령어를 사용

  • Ctrl + r : 되돌리기한 것을 다시 실행 (Redo)
    • Ctrl + Z와 동일
자주 사용하는 기능들

  • :set number(:set nu) : 행번호 출력 

  • :set nonumber(:set nonu) : 행번호를 숨김

  • :cd : 현재 디렉토리를 출력

참고 자료

https://velog.io/@zeesoo/Linux-vi-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EB%AA%85%EB%A0%B9%EC%96%B4

 

[Linux] vi 편집기 사용법 및 명령어

셀 상에서 vi [파일명]을 입력하면 새로운 문서를 편집할 수 있는 환경이 만들어진다. vi의 세 가지 모드 1. 명령 모드 (command mode) vi 명령어를 통해 vi를 시작할 경우 실행되는 모드. 방향키를 통해

velog.io

 

728x90