본문 바로가기
개인 공부/Linux (CentOS 리눅스)

CentOS 리눅스 : 문서 편집 (3장)

by 희조당 2022. 5. 2.
728x90

■ 리눅스의 문서 편집기

 - 리눅스의 편집기 종류

 구분  종류
 행 단위 편집기  ed, ex, sed
 화면 단위 편집기  vi, emacs
 GUI 편집기  gedit

 문서 편집기는 모드형비모드형으로 구분되어 있다.

  모드형 : 입력 모드와 명령 모드가 구분되어 있음

  비모드형 : 모드의 구분이 없음, 'ctrl'이나 'alt'로 편집 기능을 활용 (ex. 한글, 워드)

■ vi 사용법

 - vi 동작 모드

# : 숫자 입력 가능                                

 

 - vi 시작과 종료

 명령키  기능
 vi [파일]  파일을 연다, 없으면 빈 페이지
 :q, :q!   종료 / 변경 내용 무시 후 종료
 :w, :wq, ZZ  저장 / 저장 후 종료

 

 - vi 모드 전환

명령키 기능 명령키 기능  명령키 기능 
 i  현재 커서  a  다음 커서  o  다음 행
 I   행의 첫 칼럼  A  마지막 칼럼  O  이전 행

 

 - 커서와 화면 이동

명령키 기능  명령키 기능 
 k  상  j  하
 l  우  h  좌
 ^  home  $  end
 G  마지막 행으로  #G  지정한 행으로
 :#  지정한 행으로  :$  마지막 행으로

 

 - 내용 수정

 명령키  기능   명령키  기능 
 r  한 글자  #cw  커서 ~ 단어 끝
 #s  커서 ~ esc cc  행
 C  커서 ~ 행 끝    

 

 - 내용 삭제

 명령키  기능  명령키  기능 
 #x  글자  #dw  단어
 #dd  행  D  커서 ~ 행 끝

 삭제한 내용들은 모두 버퍼에 저장이 된다!

 

 - 명령 취소

 명령키  기능   명령키  기능 
 u  취소  U  행 취소

 

 - 복사 및 잘라 붙이기

 명령키  기능   명령키  기능 
 #yy  행 복사  p  아래 행에 붙이기
 #dd  행 잘라내기  P  위 행에 붙이기

 언네임드 버퍼 : 복사하거나 잘라내기 할 경우 저장되는 한 개의 버퍼

 네임드(숫자) 버퍼 : " + a~z (1~9) 입력으로 따로 저장하는 버퍼 (ex : a 버퍼에 저장 → "ayy )

 

 - 검색 및 바꾸기 ( '/', '?' 입력)

 명령키  기능   명령키  기능 
 /문자열  아래 방향 검색  ?문자열  위 방향 검색
 n  다음 문자열  N  역방향
 :s/문자열1/문자열2  행의 첫 문자열 변경  :%s/문자열1/문자열2/g  파일 내 모든 문자열 변경

 

 - 기타 유용한 명령키

 명령키  기능
 :r [파일]  커서에 파일 삽입
 :e [파일]  파일 전환 (:w 필수)
 :n  다음 파일로 이동
 :! 셸 명령어  vi 중단 후 셸 명령어 실행 (종료 - enter)
 :sh  vi를 잠시 나가서 명령어 실행 (종료 - exit)

 

 - 기타 유용한 명령키2

 명령키  기능   명령키  기능 
 ctrl + l  화면 재출력  ctrl + g  행 번호 출력
 J  아랫 행과 연결  .  이전 명령 반복
 ~  대소문자 변경    

■ vi 환경 설정

  vi의 환경을 설정하는 데는 3가지 방법이 존재.

 1. 사용자 홈 디렉터리에 .exrc 파일로 저장

 2. 환경 변수 EXTINIT에 지정.

 3. vi 마지막 행모드에서 명령으로 설정 (일시적, vi 종료 시 해제)

 명령키  기능
 set (no)nu  행 번호 표시 (감추기)
 set (no)list  보이지 않는 특수문자 표시 (감추기)
 set (no)showmode)  현재 모드 표시 (감추기)
 set  set으로 설정한 모든 vi 환경 설정 값 출력
 set all  모든 vi 환경 설정 값 출력

 

 - 환경 설정 파일과 변수 이용

 .exrc 파일 환경 설정 : 기본적으로 없는 파일이므로 만들어야한다. set 명령과 옵션을 지정해두면 모든 vi에 적용가능

 EXINIT 환경 변수 설정 : 셸 환경 변수로 설정 (ex. EXINIT = 'set nu list') 

댓글