ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] vi 편집기
    Computer Science 2023. 5. 9. 11:40
    728x90

    Boaz 활동을 하다보면 linux 환경에서 파일을 편집하여 구동하는 경우가 잦다. 

    여러 활동을 하면서 Linux에 대한 이해가 부족하다고 생각해서 일단 가볍게 리눅스마스터 2급 취득을 목표로 틈틈이 공부중인데, 오늘 vi 편집기에 대해 알아보자.

    리눅스에서 지원하는 편집기로는 pico, emacs,vi, gedit, xedit 등이 있다.

    vi 편집기는 유닉스 환경에서 가장 많이 쓰이는 문서 편집기이다. 다른 편집기들과 다르게 모드형 편집기이며, 명령모드 / 입력모드 / 편집모드로 구성되어 있다. 한 줄씩 편집하는 줄 단위 편집기가 아닌 한 화면을 편집하는 비주얼 에디터이며, 기종별 다양한 vi 클론들이 존재한다.

    vim 편집기도 있는데, vi 편집기와 호환되며 독자적으로 다양한 기능을 추가하여 만든 편집기이다. ex 모드에서 히스토리 기능을 제공하며, 확장된 정규 표현식 문법과 강력한 문법 강조 기능을 갖는다. 

     

    명령 모드에서 편집 모드로 전환

      KEY 기능
    입력모드 전환 a 커서 뒤부터 입력
    A 줄의 마지막에 입력
    i 현재 문자 앞에 입력
    l 줄 시작 부분에 입력
    o 현재 줄 다음 줄에 입력
    p 커서가 있는 줄 위에 입력

    EX  명령 모드에서 저장 및 종료, 환경 설정

      KEY 기능
    저장 및 종료 :wq 버퍼를 파일에 기록하고 종료
    :q! 버퍼의 내용을 파일에 기록하지 않고 무조건 종료
    :q 버퍼의 내용과 파일의 내용이 일치하는 경우 종료
    환경 설정 :set nu 줄 번호 표시 설정
    :set nonu 줄 번호 표시 설정 해제

    명령 모드에서 삭제, 복사, 붙여넣기

      KEY 기능
    삭제 x 커서가 위치한 곳의 한 문자 삭제
    dd 한 라인 삭제
    dw 커서 위치에서 오른쪽 한 단어 삭제
    db 커서 위치에서 왼쪽 한 단어 삭제
    복사 yy 한 라인 복사
    yw 커서 위치에서 오른쪽 한 단어 복사
    yb 커서 위치에서 왼쪽 한 단어 복사
    붙여넣기 P 커서 위치에서 윗줄에 붙여넣기
    p 커서 위치에서 아랫줄에 붙여넣기

     

    그외 vi 예시

    :1,9 s/fail/success/g

    -  전체 9줄로 이루어진 문서를 fail이라는 문자열 모두를 success로 치환하려고 할때 사용

    # vi +ihd.txt

    - 커서의 위치를 마지막 줄로 이동

    - vi +[num] ihd.txt : ihd.txt 파일을 열면서 커서의 위치를 첫 번째 줄로 이동하기

    4,10 s/^#//

    - 4번째 줄부터 10번째 줄까지 주석을 제거하는 명령

    vi -r ihd.txt

    - 작업 중이었으나 비정상적으로 종료되었을 시  ihd.txt 파일을 불러오는 명령

    9dd

    - 명령모드에서 커서가 위치한 줄부터 9줄을 삭제하려고 할 때

    [root@www ~]$ cat > .exrc
    set nu

    - .exrc : vi 편집기의 환경 설정을 등록하여 지정된 설정을 지속적으로 사용하도록 해주는 파일

    - set nu : 해당 파일 안에 set 명령 사용 시 ':' 사용 x

    - :set nu : 현재 작업 중인 파일의 편집모드에서 환경 설정 지정 시

     

    set nu # 행 앞 행 번호 표시
    set no ai # set ai : 다음 행으로 이동 시 윗줄과 같은 열에 커서를 위치(들여쓰기 기능)
    set ts=4 # 탭의 크기를 4로 설정 
    map q :wq! # map q 매크로 선언 및 기능 켜짐

    map q 매크로

    ChatGPT 문의결과 map q 매크로는 다음과 같다.

    "The map q command in the vi editor is used to map the q key to a specific sequence of keystrokes, which can be a combination of other keys, commands, or macros. This allows you to create custom shortcuts for frequently used commands, making editing more efficient.

    For example, you can map the q key to the dd command, which deletes the current line, by typing map q dd in vi's command mode. From then on, every time you press the q key in command mode, vi will execute the dd command, deleting the current line.

    It's worth noting that this mapping is only temporary and will be lost when you exit vi. To make the mapping permanent, you can add it to your .vimrc file, which is vi's configuration file."

    빠른 편집을 위해 q 키를 활용 특정 커맨드를 수행하는 것이며, vi 편집기를 끄고 나서는 다시 지정해야한다.

    이와 같은 매크로를 편집기를 끈 후에도 이용하고 싶다면, .vimrc 파일에 접근하여 수정하면 된다. 

    728x90

    'Computer Science' 카테고리의 다른 글

    [DB]SQLD_2  (0) 2023.05.25
    [DB] SQLD_1  (0) 2023.05.21
    [OS] Semaphore에 대해  (0) 2023.04.27
    [OS] Process Synchronization  (0) 2023.04.27
    [OS] Synchronous I/O와 Asynchronous I/O  (0) 2023.04.12
Designed by Tistory.