유용하게 쓰이는 vi 명령어

2021. 1. 15. 00:40Development/[Dev] 개발일반

728x90

실무에서 사용할때마다 정리하는 중입니다.

*. vi 모드별 스크린샷

[ 이동모드 ]

1. shift 와 : 을 누르면 > 명령모드
2. a 를 누르면 > 현재커서 다음기준 편집모드 
[ 편집모드(직접작성) ]

1. ESC 한번 > 이동모드
[ 명령모드(치환 등) ]
 
1. ESC 한번 또는 빠르게 두번 > 이동모드

 

 

^, $ 등은 정규표현식의 첫, 끝과 같은 의미인듯..  (  ^x  문자열이 x로 시작한다. / x$ 문자열이 x로 끝난다.. )

저장하고 종료

명령모드
:wq

이동모드
ZZ (ZQ는 저장안하고 종료)

문서 가장끝으로 가기

:$

특정 - 현재라인을 복사해서 그 다음줄에 붙여넣기

(복사할 라인에서 명령모드로 변경후) :t.

*.  현재라인에 특정라인을 복사할 경우 (10번라인 > 현재라인)
:10t.   

전체 - 줄바꿈

특정 글자 이후에서 모두 줄바꿈할경우

:%s/특정글자/특정글자^M/g

예시 - 세미콜론다음 줄바꿈) 
:%s/;/;^M/g
(^M은 직접 타이핑하는 것이 아니라 Ctrl + V,M 으로 입력)

전체 - 문서처음부터 전체 치환

각행에서 찾은 단어들만 단어만 바꿀경우
:%s/찾을단어/바꿀단어

각행에서 찾은 모든 단어들을 바꿀경우
:%s/찾을단어/바꿀단어/g

*. / (슬러시) 특수문자치환 => \
%s/\//바꿀단어/g

*. 특정 라인 범위만 치환할 경우
:시작라인숫자,종료라인숫자s/찾을단어/바꿀단어/g

*. 커서가 있는 라인만 치환할 경우
:s/찾을단어/바꿀단어/g

전체 - 라인 번호 보기

:set number

특정 - 커서가 있는 라인 삭제

이동모드에서
dd

특정 - 1번라인부터 삭제 

:1,.d

*.  내용 전체삭제를 하고자 할때 이동모드에서
d ]]  (순서대로 타이핑)

전체 - 가장 앞 (^) 에 단어 추가 :%s/^/추가할단어/

*. 특정 라인만 넣을 경우
:시작라인숫자,종료라인숫자s/^/추가할단어/
전체 - 가장 뒤 ($) 에 단어 추가 :%s/$/추가할단어/

*. 특정 라인만 넣을 경우
:시작라인숫자,종료라인숫자s/$/추가할단어/
직전명령 취소(되돌리기) esc 로 이동모드 진입 > 소문자 u 
전체 - 짝수 행 지우기 :g/^/+d
클립보드 복사

:%w !pbcopy

편집중 잠시 커맨드 화면으로 돌아갈 경우

:sh

*. 편집기 복귀는 exit

전체 - 라인 좌측의 공백을 trim

:%le

 

728x90