Published 2021. 12. 27. 15:16

x 명령어의 기본형식


(범위지정) (명령어) (명령이 수행될 위치)
:k,l command m
예) 

- :40y _ 40번째줄 복사
- :1,10 co 50  _ 1 줄 부터 10 줄 까지를 50 줄 이후로 복사
- :34,50 d  _ 34 줄 부터 50 줄 까지 삭제
- :100,150 m 10  _ 100 줄 부터 150 줄까지를 10 줄 이후로 옮김
- :.,$ d  _ 현재줄부터 끝까지 지우기
- :.,+20 co -4  _ 현재줄부터 20줄을, 4줄 위에 복사하기
- :-,+ t 0  _ 위, 아래로 한줄(총 3줄)씩을, 문서 맨위에 복사하기
- :/pattern/ d  _ pattern 이 들어있는 줄 지우기
- :/pattern/ -nd  _ pattern 이 들어있는 줄로부터 n 번째 윗줄 지우기
- :/pattern/ +nd  _ pattern 이 들어있는 줄로부터 n 번째 아랫줄 지우기
- :/pattern1/,/pattern2/d  _ pattern1 이 들어있는 줄부터, pattern2 가 들어있 는 줄까지 지우기
- :.,/pattern/ m 23  _ 현재줄부터 pattern 이 들어있는 줄까지, 23번줄 이 후로 옮기기

g 옵션 붙여 문서전체에 적용하기


- :g/리눅스 : 파일 전체에서 '리눅스'가 있는 마지막 줄로 이동한다
- :g/리눅스/ p : 파일 전체에서 '리눅스'가 있는 줄을 보여준다
- :g/리눅스/ nu : 파일 전체에서 '리눅스'가 있는 줄을 번호와 함께 보여준다
- :60,100 g/리눅스/ p : 60∼100줄 사이에서 '리눅스'가 있는 줄을 보여준다
- :g/리눅스/d : 문서 전체에서 '리눅스'가 있는 줄을 제거한다

저장 및 종료하기


- :w : 저장하기 (write)
- :q : 종료하기 (quit)
- :wq : 저장하고 종료하기
- :xv저장하고 종료하기 (:wq 와 동일)
- :w! : 강제로 저장하기 (read-only 로 열었을경우)
- :q! : 편집한 내용을 저장하지 않고 종료하기
- :w new_file_name : 새로운 파일이름으로 저장하기
- :w %.new : 현재화일 이름에 .new 를 붙여서 새로운 화일로 저장
- :230,$ w file_name : 230 줄부터 끝줄까지 file_name 으로 저장하기
- :.,600 w file_name : 현재줄부터 600줄까지 file_name 으로 저장하기
- :1,10 w new_file : 1줄부터 10줄까지 new_file 로 저장하기
- :340,$ w >> new_file : 340줄부터 끝줄까지 new_file 에 추가하기

읽기


- :f[ile] : 현재 열린파일정보 확인 // 일반모드에서는 Ctrl +G
- :r[ead] filename : 현재위치에 filename 읽어들이기
- :r /usr/local/data : 현재위치에 /usr/local/data 읽어들이기
- :185 r /usr/local/data : 185줄 이후에 /usr/local/data 읽어들이기
- :$r /usr/local/data : 맨끝줄 이후에 /usr/local/data 읽어들이기
- :0 r /usr/local/data : 맨윗줄에 /usr/local/data 읽어들이기
- :/pattern/ r /usr/local/data : pattern 이 존재하는 줄에 /usr/local/data 읽어들이기

다중편집하기


vi file1 file2 :file1과 file2라는 두 개의 문서를 읽어들인다. 먼저 읽는 문서는 file1이다
- :args :현재 편집중인 화일목록을 보여준다
v - :n :두 번째 문서(file2)를 편집할 수 있다
- :e # :이후부터는 ':e #' 명령을 사용하여 문서를 번갈아 열며 편집할 수 있다
- :prev[ious] :이전화일로 돌아간다
주의 - 편집중인 화일이 저장되지 않으면 다음 화일로 넘어갈수 없다
* * 새로운 파일 편집하기
- :e file1:새로운 파일(file1)을 읽어들여 편집한다
- e[dit] file_name :새로운 file_name 편집하기
- :e! :현재의 편집중인 내용을 무시하고 가장 최근에 편집한 내용을 다시편집하기

g 옵션과 바꾸기


- :m,n s/old/new/g - :g/pattern/ s/old/new/g
예 )
: 1,5 s/리눅스/linuk/gc :1줄부터 5 줄까지 리눅스를 linuk 로 확인해가면서 바꾼다.
:g/문자 /s/파일/file/g : '문자'가 있는줄만을 찾아서 '파일'을 'file'로 바꾼다.
:% s/버퍼/buffer/g :처음줄부터 마지막줄까지, 버퍼 를 buffer 로 바꾼다.
* * 프로그램 소스 코드에서 괄호 짝 찾기
프로그램이나 HTML 소스에는 수많은 괄호(< >, ,…)가 사용되게 마련입니다. 때문에 편집을 하다 보면 괄호의 짝을 잃어버려 프로그램 오류가 나는 경우도 빈번합니다. 이럴 때 vi는 편리한 기능을 제공합니다. 해당 괄호 위에 커서를 놓은 후 키를 누르면 짝이 되는 괄호의 위치로 이동합니다.



출처: https://booolean.tistory.com/348?category=627838 [Boolean]

'터미널' 카테고리의 다른 글

Vim - Vi 복사 붙이기 합치기  (0) 2021.12.27
Vim - Vi 편집기 시작_ [커서이동 화면이동]  (0) 2021.12.27
톰캣 콘솔  (0) 2021.04.29
db root 전환  (0) 2021.04.28
root 전환  (0) 2021.04.28
복사했습니다!