Keep going

텍스트 에디터 본문

School/리눅스 시스템

텍스트 에디터

코딩천재홍 2021. 5. 2. 22:44

Vim 

  • console 중심의 text editor만 사용가능한 경우가 있다. 데스크탑 버전이 아닌 서버 버전을 하게 되면 console을 만들게 된다. console terminal → graphic gui 사용 불가
  • 유닉스/리눅스가 가지고 있는 가장 기본적인 text editor

 

Vim 파일 여는 방법

  • vi + filename
    • 가장 마지막에 커서 대기
  • vi + n(숫자) filename
    • 파일의 n번째 줄에서 커서 대기
  • vi + /pat(패턴) filename
    • 해당하는 패턴에 대해서 호출, 존재하는 패턴중 첫번째위치에서 커서 대기
  • -R 
    • read only 파일 

 

 

VI 종료하기

  • w filename
    • 수정하고 있는 파일은 유지, 새로운 파일명으로 저장 
    • 새로운 파일 작성하면 입력한 파일명으로 저장
    • 저장만 함 꺼지지는 않음
  • w
    • 현재 파일명으로 파일 저장(저장만 함 꺼지지는 않음)
  • q
    • vi 종료 (이미 저장된 파일)
  • wq
    • 수정된 파일 저장하고 종료
  • q!
    • 저장하지 않고 강제 종료
  • ZZ
    • :wq와 같다.

 

 

파일 복구

  • vi가 중단되어 파일을 저장하지 못 한 경우가 있다.
  • 모든 text editor 들은 swap file을 가지고 있다.
    • ex) b라는 파일은 vi로 editing 하는 동안은 swap file이 존재하게 되고 시스템 문제가 생겨서 vi 강제로 꺼질 상황에도 .b.swp파일 살아있다면 -r 옵션을 통해 해당 내용을 불러올 수 있다.
  • vi -r
    • 복구 가능한 모든 파일들을 리스트 한다.
  • vi -r filename 
    • vi 를 열고 이전의 내용들을 복구 시킨다.

 

 

VI에서의 3가지 모드

  • Insert mode
    • 명령모드에서 i, a, o, I, A, O 명령을 통해서 입력 모드로 넘어 갈 수 있다. 입력 모드로 가게되면, 자유롭게 코드나 글을 작성할 수 있다. 명령 모드로 다시 돌아오려면 "Esc"를 누르면 된다.
  • Command mode
    • 처음 vi를 시작하게 되면 들어가게 된다. 방향키를 이용하여 커서를 이동할 수 있으며 명령어를 이용해 파일을 수정할 수 있다.
  • Line mode
    • 명령 모드에서 ' : ' , ' / ' , ' ? ' 를 이용하면 화면 맨 밑단에 :_____ 하며 입력을 할 수 있는 공간이 나온다. 여기서 파일을 저장하고 나간다던키 콜론을 통한 특별한 명령어를 적어줄수 있게 하는 명령어 모드이다.

 

 

 

커맨드 모드에서 커서 움직이기

  • ←(h) ↓(j) ↑(k) →(l)
  • ^ - 공백을 제외한 현재 행의 맨 앞으로 커서 이동
  • $ - 현재 행의 맨 뒤로 커서 이동
  • 화면 단위 커서 이동
    • ctrl +b : 위로 한 화면 스크롤
    • ctrl + f : 아래로 한 화면 스크롤
    • ctrl + u : 위로 1/2 화면 스크롤
    • ctrl + d : 아래로 1/2 화면 스크롤

 

 

 

커맨드 모드에서 입력 모드로 넘어가기

  • i
    • 현재 커서 위치에 삽입
  • a
    • 현재 커서 바로 다음위치에 삽입
  • o
    • 현재 줄 다음 위치에 삽입
  • I
    • 현재 줄의 처음에서 삽입
  • A
    • 현재줄의 끝에서 삽입
  • O
    • 현재 줄 위 줄로 삽입

 

 

커맨드 모드에서 파일 수정

    • 커서가 위치한 곳의 글자 1개 삭제
    • 5x : 문자 5개 삭제
  • dd
    • 커서가 위치한 곳의 한 줄 삭제
    • p로 복구 가능
    • 4dd : 4행 삭제. 삭제가 되는 것처럼 보이지만 실제로는 버퍼에 들어가 있다. 버퍼에 들어가 있기 때문에 p를 이용해서 붙여넣기 가능하다. 
  • D
    • 커서에서부터 맨 뒤쪽까지 삭제
    • p로 복구 가능
  • dw
    • 커서가 위치한 곳에서 부터 단어 삭제 (커서가 위치한 곳부터 띄어쓰기 까지)
    • p로 복구 가능
  • yy
    • 현재 줄을 버퍼로 복사
    • 5yy : 현재 줄부터 5줄 복사
  • p
    • 현재 커서의 그 다음 커서에 붙이기
    • 현재 줄의 그 다음 줄에 붙이기
  • P
    • 현재 커서에  붙이기
    • 현재 줄에 붙이기
  • v
    • 문자 단위로 복사 할 영역 선택
  • V
    • 줄 단위로 복사 할 영역 선택
  • r
    • 한 문자 변경
    • 8r : 8문자 변경
  • R
    • 현재 커서부터 덮어 쓰기. ESC로 끝내기
  • C
    • 현재 커서부터 줄의 끝까지 대체 . ESC로 끝내기
  • S
    • 전체 줄 대체. ESC로 끝내기
    • 4S : 4개 줄 대체
  • cw 
    • 현재 커서부터 한 단어 대체. ESC로 끝내기

 

 

라인 모드에서 움직이기

  • :n  → 파일의 n번째 줄로 이동
  • :$  → 파일의 마지막 줄로 이동
  • :$=  → 파일의 전체 줄의 수 출력
  • :.=  → 현재 줄의 수를 출력

 

 

 

라인 모드에서 파일 수정하기

  • : begin, end s/pattern1/pattern2/flag
  • 패턴 1에서 패턴 2로 변경하기
  • begin, end는 범위
    • 숫자로 지정
    • % - 전체 파일
    • $ - 마지막 줄 표현
    • . - 현재 줄 표현
    • begin,end가 없다면 커맨드는 현재줄에서 적용된다.
  • flag
    • g - 모든 찾는 경우
    • c - 사용자에게 물어봄

 

 

라인 모드에서 텍스트 검색

  • /문자열 
    • 현재 커서 위치에서부터 파일 앞쪽으로 문자열 탐색
  • ?문자열
    • 현재 커서 위치에서 부터 파일 뒤쪽으로 문자열 탐색

 

 

라인 모드에서 다른 옵션들

  • : begin, end w 파일명
    • 시작 라인부터 끝 라인 까지 수정하고 있는 구역을 특정한 파일명으로 바꿀 수 있다.
  • : 1,. w! 파일명
    • 첫번째 줄부터 현재 위치까지 수정하고 있는 구역을 특정한 파일명으로 바꾼다.(파일명이 이미 존재한 파일이어도 덮어써진다.)
  • :1,.w >> 파일명
    • 첫번째 줄부터 현재 줄까지 내용을 특정한 파일에 추가하는 것이다.
    • >> : append 시킨다. 
    • > : 파일을 새로 처음부터 적는다.
  • :r 파일명
    • 커서의 현재 위치부터 주어진 파일명 읽어온다.
  • :e 파일명
    • 파일 수정 종료하고 새로운 파일 읽어준다.
  • :! 명령어
    • shell 명령어 실행시킨다.
  • :r! 명령어
    • 쉘 명령어 실행시키고 파일에 결과 출력

 

 

UNDO & REDO & .

  • u - 방금 한 명령 취소
  • ^r (ctrl r) - 명령 취소한 것 재 명령
  • . - 마지막 명령 반복

 

 

vi 환경 설정하기

  • :set number / :set nonumber
    • 라인수 보여주기/ 끄기(d)
  • :set list / :set nolist
    • 특수문자 보여주기/ 특수문자 숨기기(d)
  • :set showmode / :set noshowmade
    • 편집 상태를 하단에 보여주기 / 편집 상태를 숨기기 (d)
  • :set tapstop=#(숫자)
    • tab 간격 지정
  • 나갔다 오면 초기화된다.

'School > 리눅스 시스템' 카테고리의 다른 글

파일 시스템  (0) 2021.06.03
매뉴얼, 패키지, 로그  (0) 2021.05.03
접근 권한  (0) 2021.04.09
파일과 디렉토리  (0) 2021.04.07
사용자/그룹 추가  (0) 2021.04.06
Comments