TIL

[리눅스] Linux vi 에디터 심화 기능 (검색, 환경설정, 창 분할) 2일차-2

엥이게되네 2023. 4. 25. 21:37
728x90

vi에디터의 더 다양한 기능을 알아보자

 

기본 기능은 아래의 링크 참고하면된다.

 

2023.04.25 - [TIL] - [리눅스] Linux vi 에디터 기본 기능 2일차-1

 


검색, 문자열 변경

입력모드가 아닌 일반 모드에서 실행해야하는걸 항상 생각해보자

 

무슨 모드인지 모르겠으면  일단 ESC 연타하자

/find          텍스트 에서 find를 검색한다. 찾은 항목들은 n 을 눌러 다음항목으로 이동가능하다.(3글자 이상)
? find        텍스트에서 find를 검색한다. /find 와 같음
:2, 5 s/find/ok                        2~5라인의 find가 있으면 ok 로 대체한다(substitute) 
:20, 30 s/choco/jelly/g          20~30라인의 choco가 여러번 나와도 모두 변경한다 global             
:1,$ s/choco/jelly                  처음부터 끝까지 변경한다
:% s/choco/jelly                    전체를 변경한다

+ 단어 위에서 shift + 8을 누르면 파일안에 있는 같은 단어를 찾을 수 있다.

 

 


vi 환경설정

:set                 설정 내용 보기
:set all           전체 설정
:se nu            줄 번호 보이기 (set number) 
:se nonu      줄 번호 가리기 (set nonumber)
:se ai             자동 들여쓰기 설정 (set auto indent)
:se noai        자동 들여쓰기 해제 (set no auto indent)
:se ts=5        탭 간격 5로 설정

 

 

줄 번호를 설정하면 편안해진다

 

설정 파일을 vi로 한 번에 편집할 수 있다.

$ vi ~/.vimrc

 

vimrc 파일을 편집해서도 ab 키 맵핑을 사용할 수 있다.

ab P printf(" ");                vi에서 P 입력후 enter키 누를 때 printf(" "); 가 출력 되게 한다.

 


vi 기타 유용한 기능

:f                       현재 파일명 보기
:r ! date             date 경과를 파일에 삽입
:17 r ! cal          17 라인에 cal 삽입
:0 r ! date          첫 번째 라인에 date 삽입
:set cursorline   커서 있는 라인 줄 표시
:set mouse=a   마우스로 커서 움직일 수 있게 설정
:set mouse=r    마우스 모드 해제

mouse mode를 설정하면 자동으로 visual mode로 전환된다.

 

visual mode 는 아래에 설명한다.

 


vi visual mode 여러 행 선택

비주얼 모드에서는 여러 행을 선택 할 수 있을 뿐만 아니라 여러 열을 선택할 수 있다.

 

ctrl + v 한상태에서 커서를 우측으로 이동하여 블록의 범위를 지정한다.

 

여러 열을 지정하려면 같은 상태에서 커서를 아래쪽으로 이동한다.

 

shift + v 를 이용해서 한 번에 여러 행을 지정할 수도 있다.

가로 블록 범위 지정

 

열 단위 블록 범위 지정

 

지정된 블록은 다음과 같은 명령어를 사용할 수 있다.

 

d     삭제
y     복사
p     붙여넣기
c     치환
~     대소문자 전환
J     두 줄 합치기
U     대문자로 변환
u     소문자로 변환
>     행 앞에 탭 삽입
<     행 앞에 탭 제거

 

 


vi 창분할

:vs newta              newta 파일명으로 세로창 분할
:sp newta2           newta2 파일명으로 가로창 분할
ctrl + w                  창 간 커서 전환
:close                     창 닫기

 

세로 창 분할

 

가로 창 분할

 

창 분할 보다는 PuTTY 에서 duplication session 한 후 창을 하나 더 띄우는 방법이 편할 수 있겠다.

728x90