리눅스 Vi / Vim 편집기 명령어 익히기
Linux vi편집기 명령어
리눅스에서 작업을 도와주는 리눅스 단축명령어을 이용하며 편합니다.
vi 편집기를 처음시작하면 명령어 모드상태가 되며 이 상태에서 문자입력시 사용되는 명령어를 이용하여
입력모드로 들어갑니다. 이 후 명령어모드와 입력모드간의 변경은 esc키를 이용하여 변경하며
명령어모드에서 :키를 입력하면 마지막 라인모드가 됩니다.
아래 vi명령어를 정리해 두었으며 되로록 자주 사용하면서 습득하는 것이 좋습니다.
vi , vim 편집기 명령어 ( vi를 더 개량 한 것이 vim 편집기 이다.
1. vi 시작 및 종료
vi filename : vi를 시작하여 지정한 파일 편집
vi file1 file2 ... filen : 여러개의 파일을 동시에 편집
vi -r filename : 비정상적인 vi 모드의 종료 등에 의한 편집파일 복구모드에서 작업
[vi 종료 및 파일 생성]
:q - 수정하지 않았을 경우 종료하기
:q! - 수정한 것을 저장하지 않고 종료하기
:w - 저장하기
:w! - 읽기 전용의 파일을 저장하기
:wq- 저장하고 종료하기
ZZ - 저장하고 종료하기
:w new_file_name - 새로운 파일이름으로 저장하기
:w %.new - 현재 파일 이름에 .new를 붙여서 새로운 파일로 저장
:n,$ w file_name - n줄부터 끝줄까지 file_name으로 저장하기
:.,n w file_name - 현재줄부터 n줄까지 file_name으로 저장하기
:n1, n2 w file_name - n1줄부터 n2줄까지 file_name으로 저장하기
:n1, n2 w >> file_name - n1줄부터 n2줄까지를 file_name으로 추가하기
[파일관리]
:w [file-name] - 현재 내용 저장
:w! [file-name] - 기존의 파일에 덮어 쓰기
:e file-name - 파일 불러오기
:e! file-name - 현재 내용을 저장않고 새 파일 불러오기
:e# - 직전 편집 파일 불러오기 - 여러 개의 파일을 동시 작업시
:r file-name - 현재 커서 위치에 파일 내용 삽입
2. 모드전환
명령모드 ---> 입력모드 : a, A, i, I, o, O, ....
입력모드 ---> 명령모드 : Esc Key
3. 편집
- 텍스트를 편집하기 위해선 먼저 입력 모드로 변경해야 한다.
- vi 편집기에서 명령모드에서의 키는 다음의 약어를 암기한다.
d : delete 삭제
c : change 변경
y : yang 복사
p : paste 붙이기
w : word 단어
u : undo 취소
$ | ^ : 줄의 끝 | 시작
[텍스트의 추가 및 삽입]
i (insert) - 현재 커서가 있는 위치에 새로운 텍스트를 끼워 넣는 기능
I (insert) - 현재 줄의 처음부터 새로운 텍스트를 끼워 넣는 기능
a (append) - 현재 커서가 있는 위치 다음부터 입력하는 기능
A (append) - 현재 줄의 끝에 텍스트 입력하는 기능
o (open) - 현재 커서가 있는 다음 줄에 행을 삽입하여 편집
O (open) - 현재 커서가 있는 앞줄에 행을 삽입하여 편집
[문자 복사 및 삭제와 복구]
x - 한번에 커서 뒤의 한 글자를 삭제
X - 한번에 커서 앞의 한 글자를 삭제
숫자1, 숫자2d - 파일의 숫자 1행에서 숫자 2행까지 삭제
dd - 한 라인을 삭제하고 그 내용을 버퍼에 저장
ndd - 현재 line부터 n개의 line을 지우고 그 내용을 버퍼에 저장
dw - 한 단어를 삭제
D - 현재 커서의 위치에서 그 행의 끝까지 삭제
u - 마지막에 실행한 명령을 취소하고 명령 실행 이전으로 복구
U - u에 의해 취소된 명령 재실행
^r - u에 의해 연속적으로 취소된 명령을 연속적으로 재실행
nY - 다음 줄부터 n줄을 버퍼에 복사
yw - 한 단어 복사
y$ - 커서 위치에서 그 줄 끝까지 복사
yO - 커서 위치에서 그 줄 처음까지 복사
yG - 커서 위치에서 문서의 끝까지 복사
:n1,n2 y - n1번 line에서 n2번 line까지를 버퍼에 저장
p | P - 버퍼의 내용을 현재 line 뒤/앞에 붙인다
:n1,n2 t n3 - n1번 line에서 n2번 line까지를 n3번째 line 뒤에 복사
:n1,n2 m n3 - n1번 line에서 n2번 line까지를 n3번째 line 뒤에 이동
4. 이동
^은 Control Key를 의미하고, 아래에서 ^?은 ^과 다른 키(?)를 함께 누르는 것을 의미한다.
아래에서 n은 숫자를 의미한다.
[커서의 이동] - 커서의 이동은 명령 모드에서 가능하다.
한글자 이동 - h(왼쪽으로 한 글자 이동) l(오른쪽으로 한 글자 이동)
한 행 이동 - j(아래로 한 행 이동) k(위로 한 행 이동)
한 화면 이동 - ^f/^b: 한 화면 아래/위로 이동(forward/backward)
반 화면 이동 - ^d/^u : 반 화면 아래/위로 이동(down/up)
한 단어 이동 - w,W(한 단어 앞으로 이동), b, B(한단어 뒤로 이동),e(단어의 끝으로)
행 지정 이동 - nG(지정한 행으로 커서를 이동)
[커서 이동]
G - 파일의 맨 끝으로 이동
nG - n번째 줄로 이동
:n - n번째 줄로 이동
(, n( - 현재 문장의 선두(위의 n번째 선두)로 이동
), n) - 다음 문장의 선두(아래의 n번째 선두)로 이동
{, n{ - 현재 문단의 선두(위의 n번째 선두)로 이동
}, n} - 다음 문단의 선두(아래의 n번째 선두)로 이동
[ + [ - 이전 블록({})의 처음으로 이동
] + ] - 다음 블록({})의 처음으로 이동
^ (6) - 커서가 위치한 줄에서 맨앞으로 이동(빈칸무시)
O(숫자) - 커서가 위치한 줄에서 맨앞으로 이동(공백을 제외한 맨앞)
$ - 커서가 위치한 줄에서 맨뒤로 이동
H | M | L - 화면상에서 커서를 처음/중간/마지막 줄로 이동
[검색 & 치환]
:s/string - string을 탐색
/string - string이라는 문자를 현재의 위치에서 탐색
?string - string이라는 문자를 현재의 위치에서 역으로 탐색
n - 한번 탐색한 문자열을 연속적으로 탐색
N - 한번 탐색한 문자열을 역으로 연속적으로 탐색
[문자 치환] n은 숫자를 나타냄
rc - 현재 문자를 c로 치환
R - 현재 커서부터 Esc 문자가 입력될 때까지 치환
s - 현재문자를 삭제하고 입력모드로 전환
ns - 현재부터 n문자를 삭제하고 입력모드로 전환
S - 현재줄을 삭제하고 입력모드로 전환
[단어 치환] n은 숫자를 나타냄
cw - 한 단어를 치환하고 입력 모드로 전환
ncw - 현재부터 n단어를 삭제하고 입력 모드로 전환
cc - 현재 줄을 삭제하고 입력모드로 전환
ncc - 현재 줄부터 n줄을 삭제하고 입력모드로 전환
C - 현재 커서부터 줄 끝까지의 내용을 삭제하고 입력 모드로 전환
nC - 현재 커서부터 n줄까지 내용을 삭제하고 입력 모드로 전환
5. 환경 설정 및 기타 기능
[set 및 기타]
:set nu | nonu - line번호를 보여/안보여 준다
:set ai | noai - 자동 들여 쓰기/취소
:set shiftwidth=4 - 들여쓰기 폭을 4문자로 설정
:set cindent - C프로그램을 작성시 활용할 수 있는 자동 편집 기능
:set all - set 변수 보기
:set - 현재 설정된 set 상태
:syntax on | off\ - 색문자의 사용 on|off
[환경 설정]
set 등의 환경 초기 설정을 지정함으로 하여 vi 실행시에 초기 설정에 의한 작업 환경 홈디렉토리에 .exrc
또는 .vimrc에 사용하고자 하는 설정을 편집한다.
[태그 기능] 지정된 표시의 위치로 이동할 때 사용
m + a - 현재의 위치를 a위치로 표시(marking)
m + c - 현재의 위치를 c위치로 표시(marking)
' + a - a 표시된 위치로 이동
' + c - c 표시된 위치로 이동
' + ' - '를 연속 두 번 누르면 이전 작업 위치로 이동
[문자 buffer 기능] 각 문자에 대해 버퍼로 활용 가능
" + a + y5y - 문자 a에 현재 줄부터 5줄을 저장
" + a + p - 문자 a에 저장된 5줄의 내용을 붙여 넣기
[기타]
J - 현재 줄과 다음 줄을 합침
~ - 대소문자로 상호 변환
^v + m - 제어문자인 ^M문자를 현재의 위치에 삽입
.(dot) - 조금전 실행한 기능을 반복 실행
ctrl + g - 편집 중인 파일 이름과 현재 위치를 확인
ctrl + l - Refresh (화면갱신)
ctrl + 6 - 2개의 파일을 동시에 편집하고 있을 때 상호 이동
직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면
아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)