본문 바로가기

Programming/Linux

[Linux] vi, vim

서론

  • vi, vim
    • Linux나 Unix 환경에서 vi 에디터 혹은 vim 에디터를 기본으로 사용함
  • vim Editor
    • vim = vi iMproved
    • vi 에디터에서 기능 개선 및 확장이 된 것
  • 참고 자료
    • OJT 이미지 자료 키 배열
    • 책 165 ~ 166 페이지

vim 사용법

  • vim 명령어를 통해 실행 (파일명 생략 가능)
vim [파일명]

vim 실행

  • 사용모드
    모든 명령은 반드시 대소문자를 구분해야 함
    • 편집모드 : 입력 및 수정
      • 명령어
        - o : 포커스된 커서 아래 라인으로 이동 후 편집모드 시작
        - O : 포커스된 커서 윗 라인으로 이동 후 편집모드 시작
        - i : 포커스된 위치에서 편집모드 시작
        - I : 포커스된 라인의 맨 앞으로 이동해 편집모드 시작
        - a : 포커스된 커서의 다음 문자열에서 편집모드 시작
        - A : 포커스된 커서의 맨 뒤로 이동해 편집모드 시작

      • 문자열 변경
        - exmode로 문자열을 변경하는 방법
        - 문서 전체 혹은 지정 블록에서 원하는 패턴 변경 가능

        ▶ 양식
        :(시작줄),(끝줄)s/찾을 패턴/변경할 스트링/옵션

        옵션 리스트
        - g : 한 줄에 여러 개 일치하면 모두 변경
        - i : 대소문자 구분 안 함
        - c : 찾을 패턴 변경시 사용자에게 변경여부 확인

        추가 참고 링크 :  https://techlog.gurucat.net/297

      • 입력된 명령어에 따라 하단의 --INSERT-- 와 같이 현 실행 명령으로 바뀜
      • esc 키를 눌러 편집모드에서 나올 수 있음
    • 명령모드 : 명령을 내릴 수 있음
      • 키의 이동 [방향키로 동일하게 사용 가능]
        - h : 왼쪽으로 한 칸 이동
        - j : 아래 줄로 이동
        - k : 윗줄로 이동
        - l : 오른쪽으로 한 칸 이동

      • 그외 이동 방법
        - w : 다음 단어로 이동
        - b : 이전 단어로 이동
        - Ctrl + f : 다음 페이지로 이동
        - Ctrl + b : 이전 페이지로 이동
        - G : 문서의 맨 끝으로 이동
        - gg : 문서의 맨 앞으로 이동
        - $ : 커서를 라인의 맨 뒤로 이동
        - ^ : 커서를 라인의 맨 앞으로 이동
        - :라인번호 ==> 라인번호에 명시된 라인으로 이동

      • 편집 (복사, 삭제, 붙여넣기)
        vim은 삭제와 동시에 복사를 하기에 바로 클립보드에 다른 복사 내용이 없다면 바로 붙여넣기 가능

        - y : 지정된 블럭 복사
        - p : 복사된 블럭을 현 커서에 붙임
        - x : 커서의 한 문자 삭제
        - dd : 커서의 현 라인 삭제
        - shft + j : 커서의 아랫라인과 현 라인을 하나로 합칠 수 있음

      • 대소문자 변경 : ~
        => 블록을 잡고 ' ~ '을 누르면 대소문자 변경이 이루어짐

      • 들여쓰기 / 내어쓰기
        - < : 들여쓰기
        - > : 내어쓰기

      • 블록 지정 : 블록을 잡는 것으로, 명령모드에서만 지정할 수 있음
        - v : 단어 단위로 블럭 지정
        - shift + v : 라인 단위로 블럭 지정
        - ctrl + v : 블럭 단위로 블럭 지정

      • 찾기 기능: /
        - 슬래쉬( / )를 누르면 화면 제일 아래에 슬래쉬( / )와 글자를 쓸 수 있는 커서가 나타남.
        - 찾는 글자 입력 후 엔터를 치면 찾을 수 있음. 
        - 만약 찾는 갯수가 1개 이상일 경우 n을 누르면 다음 찾을 부분(문서 아래 방향)으로 이동이 가능하며,
          N을 누르면 이전 찾은 부분(문서 위 방향)으로 이동
        - 이는 정규식 사용도 가능함

        ex. /int[0-9][0-9]

      • 저장 / 열기 / 종료
        명령모드에서 :를 누르며 exmode가 됨. 이때 파일 열기, 저장, 닫기, 강제종료, 파일 이름확인 등이 가능함.
        만약 열고자 하는 파일이 존재하지 않을 경우 새로운 파일이 만들어짐.

        - :q ==> 종료
        - :w ==> 저장
        - :wq ==> 저장 후 종료
        - :e [파일명] ==> 파일명 열기
        - :q! ==> 강제 종료
        - :f ==> 작업 중인 파일 정보 (파일 이름과 라인 수)

      • Undo/Redo
        - u : Undo
        - Ctrl + r : redo

        undo = 『un + do』 do하지 말아라. 즉, 다시 원래대로 돌려라.
        redo = 『re + do』 다시 하라. 즉, 다시 시작하는 것.

        undo : 작업 롤백, 읽기 일관성, 복구
        redo : 복구 역할
 

[리눅스/Vi] vi editor 문자열 치환(replace) 방법

개요  리눅스 환경에서 코드를 작성하다 보면, 종종 vi editor 혹은 vim editor를 사용해서 코드의 특정 단어를 다른 단어로 교체(replace) 해야 하는 상황이 종종 있다. 즉, 특정 문자열을 치환해야 하

techlog.gurucat.net

파일 네비게이션

1. :v ./ 입력

2. 파일 네비게이션 창이 나타남

3. 나올때 마찬가지로 :q 하면 됨.


문자열 치환

[ :%s/기존문자열/새문자열] 형식으로 입력

 

ex. centos를 linux로 바꾸기

%s/centos/linus


 

vim 행 번호 보기

:set number


에러 기록

1) E325: ATTENTION

  1. find -> rm [충돌 파일명]