728x90
vi는 Linux OS를 포함한 Unix베이스 OS에서 이용할 수 있는 텍스트 에디터이다.
vi 커맨드의 기본
vi 는 Linux의 표준 에디터를 실행시키는 커맨드이다. 기본적인 사용법은 다음과 같다.
$ vi 파일명
이미 "파일명"으로 지정한 파일이 존재한다면, 그 파일이 열리고 없으면 새로 생성하는 에디터창이 열린다.
vi 에디터의 기본적인 사용법
vi 에디터는 입력 모드, 커맨드 모드 이렇게 두 가지 모드가 존재한다. 실행시키면 기본 커맨드 모드이다. 커맨드 모드에서 입력 모드로 전환하는 키로는 i, R, A, O, o가 있는데, 각 키마다 아래와 같이 조금씩 역할이 다르다. 다시 입력 모드부터 커맨드 모드의 전환은 "esc"키를 이용한다.
1. 입력 모드의 키 목록
커맨드 모드에서 아래의 키를 누르면 각각 다른 입력 모드로 전환된다.
i 키 | 현재의 커서 위치에 문자를 삽입한다. |
R 키 | 현재 커서 위치의 문자를 덮어쓴다. |
A 키 | 현재 커서가 위치한 행의 마지막에 문자를 추가한다. |
O 키 (대문자) | 현재 커서가 위치한 행의 앞의 행에 행을 삽입한다. |
o 키 (소문자) | 현재 커서가 위치한 행의 다음 행에 행을 삽입한다. |
2. 커맨드 모드의 키 목록
커맨드 모드에서 다음의 키를 입력하면 아래와 같은 역할을 하게 된다.
1) 문자의 삭제
x키 | 한 개의 문자를 삭제 |
dd키 | 하나의 행을 삭제 |
xdd키 | x행 삭제 (예: "3dd"를 입력하면 3행이 삭제) |
J키 | 다음의 행을 현재 커서가 위치한 행의 끝에 추가 (행의 끝에 문자의 삭제) |
2) 행의 복사, 붙여넣기
커맨드 모드에서 Y혹은 yy를 입력하면, 그 행을 복사한다. 또한, p를 입력하면 Y로 복사한 하나의 행을 붙여넣기하는 것이 가능하다.
Y키 | 커서가 위치한 행을 복사 |
yy키 | 커서가 위치한 하나의 행을 복사하여 클립보드에 저장(Y와 동일) |
p키 | 클립보드의 내용을 커서가 위치한 행의 아래 행에 붙여넣기 |
yyp키 | 커서가 위치한 행을 복사하여, 다음 행의 아래에 붙여넣기 (Yp와 동일) |
3) vi의 종료
:q키 | 파일을 닫음. 파일에 변경이 있는 경우 메시지가 표시되며 닫히지 않음. (무엇도 적지 않고 종료하고 싶은 경우 사용) |
:q! 키 | 파일을 닫음. 파일에 변경이 있는 경우라도 변경이 저장되지 않고 강제로 종료됨. |
:wq 키 | 파일의 변경사항을 저장하고 vi를 종료 |
:wq! 키 | 읽기전용 파일을 강제로 편집하한 뒤 종료 |
커서의 이동
vi에서 커서를 이동할 때 방향키를 쓰지 않는다. 대신 아래의 키를 사용한다.
h키 | 커서를 한 문자 왼쪽으로 |
j키 | 커서를 1행 아래로 |
k키 | 커서를 1행 위로 |
l키 | 커서를 한 문자 오른쪽으로 |
0키 | 커서를 행 맨 앞으로 |
$키 | 커서를 행 맨 뒤로 |
검색
/를 입력한 뒤에, 검색하고 싶은 문자열을 입력하고, Enter키를 누르면 검색이 이루어진다. 맨 처음 발견한 문자열로 커서가 이동된다.
/sample | sample이라는 문자열을 파일의 문자열을 끝 방향으로 이동하며 검색 |
?sample | sample이라는 문자열을 파일의 문자열을 앞 방향으로 이동하며 검색 |
n | 다음 후보를 검색 |
UNDO
u를 입력하면 직전의 조작을 취소하는 것이 가능하다.
u | 직전의 조작을 취소 |
U | 행 전체의 조작을 취소 |
그 외
:set number | 행 번호를 표시한다. |
:set nonumber | 행 번호를 비표시한다. |
:x,yd | 행을 지정하여 삭제한다 (예 : x(행의 시작), y(행의 끝) d라고 입력하면, x~y행을 삭제한다) |
참고자료
http://turbo.mech.iwate-u.ac.jp/Fel/unix/vi.html
https://eng-entrance.com/linux-command-vi
728x90
'IT > 기초 지식' 카테고리의 다른 글
[Singularity] Singularity 이미지를 생성하는 방법(Docker hub/def file) (0) | 2021.06.16 |
---|---|
[Linux] 쉘 스크립트(Shell script) 기초 (4) | 2021.06.15 |
[Singularity] Ubuntu 18.04에 Singularity 설치해 NGC 컨테이너 사용하기 (0) | 2021.06.10 |
[Singularity] Singularity란? (0) | 2021.05.21 |
[Docker] Docker 이미지 튜토리얼 (0) | 2021.05.10 |