컬쥐네 다락방
vi 에디터 명령어 본문
VI 편집기
구조 :
Linux, Unix 환경에서 사용하는 vi 편집기는 명령 모드, 입력 모드, 마지막 행 모드 크게 3가지로 나눌 수 있다.
1. 명령 모드 :
처음 vi 편집기를 이용해 파일을 실행하면 들어가는 모드. 여기서는 방향키를 이용해 커서를 이동할 수 있고 "dd"나 "yy"로 한 줄 삭제 혹은 붙여넣기가 가능하다. "x" 는 글자 하나 삭제 명령어
2. 입력 모드 :
명령 모드에서 "i"나 "a"를 입력하면 입력 모드로 전환된다. 입력 모드에서는 자유롭게 코드나 글 작성이 가능!
다시 명령 모드로 돌아가려면 "ESC"를 누르면 된다.
("i"는 커서가 현재 위치한 부분에서 시작, "a"는 커서 바로 다음 부분부터 시작)
3. 마지막 행 모드:
명령 모드에서 ":"를 입력하면 화면 맨 하단에 입력할 수 있는 공간이 나온다. 여기서 현재 작성된 내용을 저장하고 종료하려면 ":wq!" 그냥 종료하려면 "q!" 입력.
*wq, q만 입력해도 실행은 된다. 하지만 vi가 뭐라고 간섭할 수 있으니 !를 붙여 강제로 실행하라 명령 해버릴 수 있다!
저장과 종료
:q : 종료
:q! : 강제로 종료 (보통 파일 수정 후 내용을 저장하지 않고 종료할 때 사용한다)
:w 다른파일이름 : 다른 이름으로 저장
:wq 저장하고 종료
:x 저장하고 종료
* 대기모드에서 shift + zz (z 두번) : 저장하고 종료
입력
i a s o I A S O
i : 커서가 있는 위치에서 바로 입력
a : 커서가 있는 문자 한 칸 뒤에서 입력
s : 커서가 위치한 문자를 하나 삭제하고 입력
*응용 ns (여기서 n은 숫자) ex) 5s : 커서 위치 뒤로 다섯의 문자를 삭제 후 입력
o : 커서가 위치한 라인의 아래로 공백 라인을 확보하고 입력
I : 커서가 있는 라인의 가장 앞으로 이동 후 입력
A : 커서가 있는 라인의 가장 뒤로 이동 후 입력
S : 커서가 위치한 라인 하나를 삭제하고 입력
O : 커서가 위치한 라인의 위로 공백 라인을 확보하고 입력
o를 가장 많이 사용할 듯.
복사 붙여넣기
*복사 잘라내기 붙여넣기 삭제 모두 대기모드에서 진행한다.
yank y -------> 이동 -------> p paste
nymw (n,m은 숫자 곱하기로 이루어진다) ex) 1y1w == 1x1 yw == 1yw , 2y3w == 6yw
yw : 단어를 복사
yy : 라인을 복사 ex) 5yy 현재 커서가 있는 라인을 포합하여 아래로 5라인을 복사
y^ : 커서가 있는 앞쪽으로 복사
y$ : 커서가 있는 뒤쪽으로 복사
yH : 커서가 있는 라인부터 화면에 보이는 윗 부분까지 복사
yL : 커서가 있는 라인부터 화면에 보이는 아랫 부분까지 복사
ygg : 커서가 있는 라인부터 파일의 가장 윗부분 까지 복사
yG : 커서가 있는 라인부터 파일의 가장 아랫부분까지 복사
n,my : n번째 라인부터 m번째 라인까지 복사
잘라내기, 붙여넣기
cut c ------> 입력 모드 -> ESC -> p paste
cw : 단어를 잘라내기
cc : 라인을 잘라내기
c^ : 커서가 있는 앞쪽으로 잘라내기
c$ : 커서가 있는 뒤쪽으로 잘라내기
cH : 커서가 있는 라인부터 화면에 보이는 윗 부분까지 잘라내기
cL : 커서가 있는 라인부터 화면에 보이는 아랫 부분까지 잘라내기
cgg : 커서가 있는 라인부터 파일의 가장 윗부분 까지 잘라내기
cG : 커서가 있는 라인부터 파일의 가장 아랫부분까지 잘라내기
n,mc : n번째 라인부터 m번째 라인까지 잘라내기
삭제
문자 삭제
x,X ex) 5x, 5X
x : 커서가 위치한 뒤로 문자를 삭제
X : 커서가 위치한 앞으로 문자를 삭제
단어와 라인 삭제
dw : 단어를 삭제
dd : 라인을 삭제
d^ : 커서가 있는 앞쪽으로 삭제
d$ : 커서가 있는 뒤쪽으로 삭제
dH : 커서가 있는 라인부터 화면의 윗부분까지 삭제
dL : 커서가 있는 라인부터 화면의 아래부분까지 삭제
dgg : 커서가 있는 라인부터 파일의 가장 윗 부분까지 삭제
dG : 커서가 있는 라인부터 파일의 가장 아랫 부분까지 삭제
n,md : n번째 라인부터 m번째 라인까지 삭제
되돌리기
u undo
U 바로 한칸 앞에꺼로 되돌리기
이동
h j k l 이동 방향키 (왼 위 아래 오른)
^, $ 라인의 앞, 뒤로 이동
gg, G : 파일의 가장 처음, 마지막 라인으로 이동
:n command line 모드에서 숫자를 지정하면 해당 라인으로 이동
검색
/ : 커서의 아래로 검색
? : 커서의 위로 검색
/단어 : 커서 아래로 단어 검색 (정규화 표현식 가능) , n next 아래로 검색된 내용 확인 N 위로 검색된 내용 확인
?단어 : 커서 위로 단어 검색 (정규화 표현식 가능) , n next 아래로 검색된 내용 확인 N 위로 검색된 내용 확인
치환
:n,ms/찾고자하는 단어/바꾸고자하는 단어/g
여기서 n,m은 라인 범위 설정, 단어는 정규화 표현식 사용 가능.
ex) 10,20s/nologin/hahaha/g g는 한번에 모두 변경
10,20s/nologin/hahaha/gc gc는 선택해서 변경 가능 (y,n,a,q,l,^E,^Y)?
a : 나머지 모두 바꾼다.
q : 커서 위치의 문자를 바꾸지 않고 종료한다.
l : 커서 위치의 문자까지만 바꾸고 종료한다.
^E ^Y : 변경을 하다가 아래 위로 변경하고자 하는 부분을 찾아볼때 (ctrl + 대문자 E Y)
다중 편집
[root@localhost ~]# vim aaa ccc
다중 파일 오픈시 :n 과 :N 을 이용하여 다음 파일로 이동이 가능하다.
오픈을 하면 aaa 파일이 오픈되고 :n 하면 ccc 파일이 오픈된다.
ccc 파일에서 :N 하게 되면 aaa 파일로 이동하게 된다.
만약 3개 이상의 파일을 열어서 동시에 작업 하는 경우
2개 이상의 파일을 한번에 넘어서 이동할 시 :2n :2N 형태로 명령하면 된다.
* 주의: 파일의 수정이 발생한 경우 저장이 되지 않은 상태로는 이동이 불가 하다
다중파일 오픈시 :ls 명령을 통해 현재 열린 파일 목록 및 번호 확인가능. :b숫자로 파일 이동이 가능하다.
vi 환경설정
.vimrc 파일을 편집해서 vi 환경을 설정할 수 있다.
.vimrc 파일은 빈 파일로 취향에 맞게 설정값을 입력하면 된다.
set number : 라인 넘버를 보여준다
set mouse=a : 마우스를 클릭하는 곳으로 커서를 옮긴다
set autoindent : indent를 다음줄에도 유지한다
set smartindent : 문법에 맞게 자동으로 indent를 넣어준다
autocmd FileType c,cpp,java :set cindent : 지정된 filetype에 대해 cindent를 적용한다
set cinoptions=g0,t0 : switch~case문 등 세부 indent를 정의한다
참고(http://vimdoc.sourceforge.net/htmldoc/indent.html)
set tabstop=4 : Tab의 크기를 결정한다
set shiftwidth=4 : indent의 크기를 결정한다
set expandtab : Tab을 공백(space)으로 자동 전환한다
set ignorecase : 검색할 때 대소문자 구분을 하지 않는다
set smartcase : 검색할 때 대문자를 섞어 사용하면 대소문자 구분하여 검색하고, 소문자로만 쓰면 대소문자 구분을 하지 않는다
set incsearch : 검색시 단어 전체를 입력하지 않아도, 입력된 글자까지 순차적으로 검색한다
set hlsearch : 검색된 단어를 highlight 한다
set title : 상단에 파일 이름을 표시해준다
set ruler :하단에 현재 커서의 위치를 표시해준다
colo default : color set을 결정한다
set textwidth=90
set colorcolumn=+1 : 91번째줄 색을 바꾼다(line length 맞추기 위한 guideline)
hi ColorColumn ctermbg=235 : 세로줄 색깔
간단 명령어 정리 :
-명령 모드 상태
1. 파일의 끝으로 이동할때 - G
2. 한줄 잘라내기 - dd
3. 세줄 잘라내기 - 3dd
4. 붙여넣기 - p
5. 한글자 삭제 - x
6. 단어 삭제 - dw
7. 실행취소 - u
8. 줄의 맨 앞 - o
9. 줄의 맨 뒤 - $
-마지막 행 모드 상태
1. 저장 : w
2. 종료 : q
3. 저장 후 종료 : wq
4. 라인 번호 보기 : set nu
5. 커서 위치 뒤로 문자열 찾기 : ?문자열
6. 커서 위치 앞으로 문자열 찾기 : /문자열
7. 라인 번호 숨기기 :set nonu8. 하이라이트 없애기 :nohl9. 현재 디렉토리 출력 :cd
'클라우드 > 리눅스' 카테고리의 다른 글
리눅스 | 시스템 디스크 / 파티션, 스왑 메모리 (0) | 2022.02.24 |
---|---|
작업 예약 - cron (0) | 2022.02.24 |
파일 입출력 명령어 (0) | 2022.02.18 |
리눅스 시스템 명령어 (0) | 2022.02.16 |
리눅스 기본 명령어 (0) | 2022.02.15 |