1. 복사하기 또는 잘라서 붙이기
복사하기나 잘라내기를 하면 내용이 임시 버퍼에 저장된다. 따라서 복사하기나 잘라내기를 한 뒤에는 다른 명령을 사용하지 말고 즉시 원하는 위치도 이동하여 붙이기를 하는 것이 좋다 .다른 명령을 사용하다가 임시 버퍼에 저장된 내용을 잃어버릴 수도 있기 때문이다.
명령키 | 기능 |
yy , #yy | 커서가 위치한 행을 복사한다. # 에는 복사할 행의 수를 지정 |
p | 커서가 위치한 행의 아래쪽에 붙인다. |
P | 커서가 위치한 행의 위쪽에 붙인다. |
dd, #dd | 커서가 위치한 행을 잘라둔다. 삭제와 같은 기능 , # 에는 잘라둘 행의 수를 지정한다. |
- 네임드 버퍼 사용하기
yy 명령키로 복사하거나, dd 명령 키로 잘라낼 경우, 복사하거나 잘라낸 내용이 버퍼에 저장된다.
이렇게 이름을 붙이지 않은 버퍼 = ' 언네임드 버퍼' , 여기에는 내용을 하나만 저장할 수 있다.
ex. 2yy 명령으로 두 행을 복사하여 저장했는데 다시 3yy 명령을 입력하면 앞서 저장한 두 행이 지워지고 새로 복사한 세 행이 저장된다.
반면, 이름을 붙여 사용할 수 있는 버퍼 = '네임드 버퍼 ' , 이것을 사용하면 각각 다른 이름을 붙인 버퍼에 독립적으로 내용을 저장하고 사용할 수 있다. 네임드 버퍼에 이름을 붙일 때는" + 문자 또는" +숫자 형태로 사용한다.
>> 네임드 버퍼 : " a,"b,"c,,,,
>> 숫자 버퍼: "1, "2, "3,,,,
네임드 버퍼에 커서가 위치한 행을 저장하려면 버퍼이름 + yy 를 입력하면 된다.
>> "a 버퍼에 복사한 내용을 저장하려면 "ayy 를 입력
>> 네임드 버퍼의 내용을 붙이려면 "ap 와 같이 버퍼이름+p를 입력
-마지막 행 모드에서 복사하기, 잘라내기, 붙이기
1) 범위 지정하기
명령키 | 기능 |
1, $ 또는 % | 1행부터 마지막 행까지 지정한다. |
1.. | 1행부터 커서가 있는 행까지 지정한다. |
..$ | 커서가 있는 행부터 마지막 행까지 지정한다. |
.,.+2 | 현재 행과 두 번째 아랫행 (총 세행)을 지정한다. |
10,20 | 10 행부터 20행 까지 지정한다. |
2) 복사하기, 잘라내기, 붙이기
명령키 | 기능 |
:#y | #로 지정한 행을 복사한다. ex. 3y 는 세 행을 복사 |
:<범위>y | 범위로 지정한 행을 복사한다. ex. 3,5y 3~5행 복사 |
:#d | #로 지정한 행을 잘라낸다. |
:<범위>d | 범위로 지정한 행을 잘라낸다. |
:pu | 현재 행 다음에 버퍼의 내용을 붙인다. |
:#pu | #로 지정한 행 다음에 버퍼의 내용을 붙인다. |
2. 검색하기와 바꾸기
: vi 에서 특정 문자열을 검색하거나 검색한 문자열을 다른 문자열로 바꾸는 명령은 마지막 행 모드에서 제공한다.
1) 검색하기
문자열을 검색하려면 일단 마지막 행 모드로 !
검색하기 위해 마지막 행 모드에서는 : 이 아니라 / 나 ? 를 입력한다.
/ 이나 ? 는 다음에 찾고자 하는 문자열을 입력하고 enter 키를 누르면 검색이 진행되고, 해당 문자열을 찾으면 그 문자열의 시작 위치로 커서가 이동한다.
명령키 | 기능 |
/ 문자열 | 문자열을 아래 방향으로 검색한다. |
?문자열 | 문자열을 위 방향으로 검색한다. |
n | 원래 찾던 방향으로 다음 문자열을 검색 |
N | 반대 방향으로 다음 문자열을 검색 |
2) 바꾸기
기존 문자열을 다른 문자열로 바꾸려면 먼저 : 을 입력하여 마지막 행 모드로 이동
커서 위치의 문자열만 바꿀 수도 있고, 파일 전체나 특정 범위 내에서 해당하는 문자열을 모두 바꿀 수도 있음
명령키 | 기능 |
:s/문자열1/문자열2/ | 커서가 위치한 행에서 첫번째로 나오는 문자열1 을 문자열 2로 바꾼다. |
:%s/문자열1/문자열2/g | 파일 전체에서 모든 문자열1을 문자열2로 바꾼다. |
:<범위>s/문자열1/문자열2/ | 범위 내 모든 각 행에서 첫 번째로 나오는 문자열1을 문자열2로 바꾼다 |
:<범위>s/문자열1/문자열2/g | 범위 내 모든 행에서 문자열1을 문자열2로 바꾼다 |
:<범위>s/문자열1/문자열2/gc | 범위 내 모든 행에서 문자열1을 문자열2로 바꿀 때 수정할지 여부를 물어본다. |
3. 기타 유용 명령키
- 파일 읽어오기, 여러 파일 편집하기 : 마지막 행 모드에서 제공
명령키 | 기능 |
:r 파일 | 지정한 파일을 읽어들여 현재 커서 위치에 삽입한다. |
:e 파일 | 지정한 파일로 전환한다.(기존 파일을 :w로 저장한 뒤에 실행해야 한다) |
:n | vi 시작시 여러파일을 지정했을 경우 다음 파일로 작업을 이동한다. |
- vi 에서 셸 명령 사용하기
명령키 | 기능 |
:!셸명령 |
vi 작업을 잠시 중단하고 셸 명령을 실행한다. vi 로 돌아오려면 enter 키를 누른다. |
:sh |
vi 를 잠시 빠져나가서 셸 명령을 실행한다. (vi 로 돌아오려면 exit 명령을 입력한다) |
vi 를 빠져나가거나 하는 번거로움 없이 바로 이용할 수 있다는 장점
다시 vi 작업으로 돌아가려면 enter 키 입력
- 기타 명령키
명령키 | 기기능 |
ctrl+l | 현재 화면을 다시 출력한다. |
ctrl+g | 현재 커서 위치의 행 번호를 마지막에 출력한다. |
J | 현재 행과 아랫행을 연결하여 한 행을 만든다. |
. | 바로 직전에 했던 명령을 반복한다. |
'리눅스프로그래밍' 카테고리의 다른 글
우분투 리눅스 - 셸 사용하기 (0) | 2020.05.08 |
---|---|
우분투 리눅스 - vi 환경 설정 (0) | 2020.04.26 |
vi - 문서 편집하기 (입력 , 이동 , 수정 , 삭제 , 명령 취소) (0) | 2020.04.24 |
우분투 리눅스 - 파일 다루기 (0) | 2020.04.10 |
우분투 리눅스 - 디렉터리 사용 명령 (0) | 2020.03.29 |