Patrick's 데이터 세상
Linux - vi 편집기 본문
리눅스를 비롯한 유닉스 계열 운영체제에서 많이 사용하는 텍스트 파일 편집 프로그램입니다.
vi 편집기의 운영모드
1. 명령어 모드 소개
명령어 모드는 vi 편집기에 기본 모드입니다. 이 모드에서는 글자를 지우고, 바꾸고, 복사하고 이동 등을 할 수 있습니다. 또한 커서의 위치, 문자열 검색, vi편집기를 빠져나가는 작업을 할 수 있습니다.
2. 편집 모드 소개
편집 모드는 사용자가 실제로 키보드로 입력한 텍스트가 파일로 들어갑니다. 편집모드는 다음 중 하나의 명령어를 입력할 수 있습니다.
i – 커서 앞에 텍스트 입력
o - 커서 아래 한 줄의 빈 공간을 만들어 입력
a – 커서위에 텍스트를 입력
3. 마지막 줄 모드 소개
마지막 줄 모드는 더 나은 편집 명령어를 사용하게 합니다. 마지막 줄 모드에 접근하기 위해서는 명령어모드 상태에서 콜론(:)을 입력합니다. 그러면 콜론이 화면의 제일 마지막줄에 위치하게 됩니다.
명령어 모드와 편집 모드간의 전환방법
vi 편집기의 기본 모드는 명령어 모드입니다. i, o, a 명령어일 때 vi 편집기는 편집 모드로 전환하게 됩니다. 파일의 편집이 끝났을 때 Esc를 누르면 편집 모드에서 다시 명령어 모드로 전환이 됩니다. 명령어 모드에서 vi 편집기의 파일을 저장하고 빠져 나갈 수 있습니다.
vi 편집기 연습해보기
1. vi filename을 입력해서 파일을 생성합니다. (자동으로 명령어 모드가 나옵니다.)
2. i 키를 누르면 왼쪽하단에 --INSERT-- 라고 뜹니다.
3. 텍스트를 입력합니다.
4. 텍스트 입력이 완료되었으면 esc를 눌러서 명령어 모드로 바꿉니다.
5. :wq를 입력해서 파일의 데이터를 저장하고 vi편집기를 나옵니다.
# vi file > i ---------------------------- hello vi ---------------------------- > Esc :wq # cat file hello vi |
1. 텍스트 입력과 추가 명령어
vi 편집기 상에서 텍스트를 입력하고 추가하는 명령어 입니다. 이 명령어들은 편집모드로 바꾸는 역할을 합니다. 편집 모드에서 명령어 모드로 되돌리기 위해서는 Esc키를 누릅니다.
명령어 |
기능 |
a |
커서뒤에 텍스트를 입력 |
A |
현재 줄의 끝에 텍스트를 입력 |
i |
현재 커서 앞에 텍스트를 입력 |
I |
현재 줄의 처음에 텍스트를 입력 |
o |
커서 밑에 새로운 줄을 만들어 입력 |
O |
커서 위에 새로운 줄을 만들어 입력 |
:$ |
맨 아래로 커서 이동 |
ctrl+f |
뒤로 이동 |
ctrl+b |
앞으로 이동 |
2. 텍스트 삭제 명령어
vi 편집기에서 텍스트를 삭제하는 명령어 입니다.
명령어 |
기능 |
R |
해당 줄에 Esc 키를 누를 때 까지 문자를 덮어 쓰거나 변경 |
C |
해당 줄의 끝까지 덮어 쓰거나 문자를 변경 |
s |
현재 커서에 있는 문자를 변경 |
x |
현재 커서에 있는 문자를 삭제 |
dw |
현재 커서의 오른쪽에 단어 단위로 삭제 |
dd |
커서가 있는 줄 전체를 삭제 |
D |
줄에 현재 커서로부터 오른쪽을 삭제 |
:n, md |
n줄에서 m줄까지 줄을 삭제 (예, :5,10d 하면 5에서 10번째 줄을 삭제) |
3. 텍스트 변경 명령어
vi 편집기에서 텍스트를 변경하고, 변경을 되돌리고, 편집기능을 다시 실행하는 명령어를 보여줍니다.
명령어 |
기능 |
cw |
커서의 오른쪽에 문자를 단어단위로 바꾸거나 덮어씀 |
r |
해당 커서의 한문자만 변경 |
J |
밑에 줄을 현재 줄의 오른쪽과 결합 |
xp |
현재 커서의 문자와 커서의 오른쪽 문자의 위치를 변경 |
- |
현재 커서의 윗 쪽 줄에 첫 번째로 이동 |
u |
바로 전에 한 명령을 되돌린다. |
U |
현재 줄에서 변경된 모든 것을 되돌린다. |
4. 텍스트 대체 명령어
vi 편집기에서 텍스트를 검색하고 바꾸는 명령어 입니다.
명령어 |
기능 |
/string |
string에 해당하는 문자열을 앞에서부터 검색 |
?string |
string에 해당하는 문자열을 뒤에서부터 검색 |
n |
해당되는 문자열을 검색 후 그와 같은 다음 문자열을 찾을 때 사용 |
N |
해당되는 문자열을 검색 후 그와 같은 이전 문자열을 찾을 때 사용 |
:%/old/new/g |
old에 해당하는 문자를 new에 해당하는 문자로 변경 |
5. 파일 저장 & 빠져나가는 명령어
명령어 |
기능 |
:w |
변경 내용을 디스크에 쓰고 저장 |
:w new_filename |
새로운 파일이름으로 버퍼의 내용을 저장 |
:wq |
vi 편집기에 파일을 저장하고 나감 |
:x |
vi 편집기에 파일을 저장하고 나감 |
ZZ |
vi 편집기에 파일을 저장하고 나감 |
:q! |
변경된걸 저장하지 않고 강제로 나감 |
:w! |
강제 저장 |
6. 세션 커스토마이징 편집 명령어
vi 세션을 사용자의 요구대로 설정 할 수 있습니다. vi 변수를 설정할 때, 기본적으로 활성화 되지 않는 특징을 가능하게 합니다. 변수를 활성화와 비활성화는 set 명령어를 사용합니다.
명령어 |
기능 |
:set nu |
줄의 번호를 표시 |
:set nonu |
줄의 번호를 숨김 |
:set ic |
검색시 대소문자 구별 x |
:set noic |
검색시 대소문자 구별 o |
:set list |
보이지 않는 문자 표시 TAB은 ^[ 로 표시 하고 라인 끝은 $로 표시 |
:set nolist |
보이지 않는 문자를 보게 하는 기능을 보이지 않게 되돌림 |
:set showmode |
현재 운용모드를 편집기 아래에 표시 |
:set noshowmode |
현재 운용모드를 편집기 아래에 표시 x |
:set |
vi 변수가 설정된 것을 표시 |
:set all |
vi 에 현재 설정된 변수들을 모두 표시 |
'Programming > Linux' 카테고리의 다른 글
Linux - 파일 관련 명령어 (0) | 2020.06.24 |
---|---|
Linux - 명령어 모음 (0) | 2020.06.23 |
Linux - 디렉터리 / 파일 생성 명령어 (0) | 2020.06.23 |
Linux - 퍼미션(권한) (0) | 2020.06.23 |
리눅스 기본 명령어 (0) | 2020.06.23 |