vi는 잘 알려진 화면 지향 텍스트 편집기로 유닉스 초기로 거슬러 올라갑니다. 가장 인상적인 특징은 두 가지 모드로 작동 할 수 있다는 것입니다.
삽입 모드에서 텍스트는 파일의 일부가됩니다. 일반 모드에서 키 입력은 직접 명령으로 이해됩니다. 따라서 파일을 편집하는 데 필요한 작업량을 줄이기 위해 다양한 키보드 명령이 사용됩니다.
그러나 명령이 너무 다른 경우 키 입력 명령을 사용하여 행을 제거하거나 편집하는 것이 더 쉬운가요? - 알아 보자.
선 또는 블록 절단
빠른 링크
- 선 또는 블록 절단
-
-
- 제거하려는 텍스트 줄 앞에 커서를 놓습니다.
- v를 누르고 문자 시각적 선택을 시작하십시오
- 전체 줄을 선택하려면 V를 누르십시오
- 블록을 선택하려면 Ctrl + v 또는 Ctrl + q를 누르십시오
- 텍스트 줄 끝에 커서를 놓습니다.
- d를 눌러 자르십시오
-
-
- 라인을 통한 편집
- 여러 줄 삭제
- 일반 모드에서 문자, 단어 및 줄 사용
- dd
- 배반
- dw
- 마지막 생각
-
제거하려는 텍스트 줄 앞에 커서를 놓습니다.
-
v를 누르고 문자 시각적 선택을 시작하십시오
-
전체 줄을 선택하려면 V를 누르십시오
-
블록을 선택하려면 Ctrl + v 또는 Ctrl + q를 누르십시오
-
텍스트 줄 끝에 커서를 놓습니다.
-
d를 눌러 자르십시오
이제 해당 행을 다른 곳에 붙여 넣으려면 커서를 새 위치로 옮기고 p를 누르십시오. p를 누르면 커서 위치 다음에 선이나 블록이 붙여집니다. 커서 위치 앞에 붙여 넣으려면 P를 눌러야합니다.
라인을 통한 편집
6 단계에서 c를 누르면 선택한 텍스트를 변경할 수도 있습니다. d를 누르면 잘라 내고 y를 누르면 k거나 복사하며 c를 누르면 새 텍스트를 추가 할 수있는 삽입 모드가 열립니다. 이를 통해 전체 라인 또는 블록을 먼저 절단하지 않아도 교체 할 수 있습니다.
여러 줄 삭제
vi에서 둘 이상의 행을 삭제하려는 경우 두 가지 좋은 옵션이 있습니다.
“:%d”
이 명령은 모든 줄을 삭제합니다. ':'는 vi를 명령 모드로 설정합니다. '%'문자는 모든 행에 'd'(삭제 명령)를 적용하도록 지시합니다.
“:1, $d”
이것은 더 인기있는 대안입니다. 다시 ':'은 명령을 도입합니다. '1, $'는 vi에게 어떤 라인을 목표로할지 알려줍니다. 이 예에서는 1 행부터 시작하여 마지막 행이됩니다. 'd'는 삭제를 나타냅니다.
그러나이 명령이 첫 번째 명령보다 나은 이유는 무엇입니까? – 이것은 적응 가능합니다. 한 줄씩 삭제하지 않고 한 줄씩 삭제할 수 있습니다.
“:4, $-2d”
와 같은 것을 사용하면 vi는 마지막에서 세 번째와 두 번째 사이의 모든 행을 삭제합니다. 행은 0이 아니라 1로 시작하므로 처음 세 개는 그대로 유지됩니다. 그리고이 예에서 4를 삭제하려는 첫 번째 행을 지정합니다.
'-2'는 기본적으로 마지막 줄부터 시작하여 1까지 계산되는 줄 수를 나타냅니다.
일반 모드에서 문자, 단어 및 줄 사용
먼저, Escape를 눌러 일반 모드로 들어가고 싶을 것입니다. 그 후 다음 vi 명령을 사용하여 특정 정보를 삭제할 수 있습니다.
dd
이 명령은 전체 줄을 삭제합니다. 단어 나 빈 공간에 상관없이 줄의 어느 곳에 나 커서를 놓을 수 있습니다. 선과 점유 된 모든 공간이 지워집니다.
배반
한 줄에서 한 문자 만 제거하려면 x를 사용할 수 있습니다. 문자 뒤에 커서를 놓고 x를 누르십시오. 캐릭터와 캐릭터가 차지한 공간이 제거됩니다. 이것은 또한 근처에있는 다른 모든 문자들이 틈을 메우기 위해 함께 모일 것이라는 것을 의미합니다.
x를 사용하여 줄에서 빈 공간을 삭제할 수도 있습니다. 문자 위로 마우스를 가져 가서 문자를 제거하려면 x 대신 X를 누르십시오.
dw
커서가 단어의 시작 부분에있을 때 dw를 누르면 해당 단어가 삭제됩니다. 이것은 또한 단어가 차지하는 공간을 제거합니다. 또는 단어의 일부만 제거 할 수도 있습니다.
삭제하려는 부분의 왼쪽에 커서를 놓습니다. dw를 눌러 해당 문자와 줄에서 차지한 공간을 제거하십시오. 이렇게하면 인접한 문자가 모여 간격을 메 웁니다.
마지막 생각
vi가 모달 편집기만큼 재미 있고 독창적이기 때문에 익숙해지기까지 시간이 걸립니다. 모드 간 전환시 피드백은 거의 없습니다. 따라서 명령을 내릴 때 실수로 코드 텍스트를 쉽게 입력 할 수 있으며 그 반대도 마찬가지입니다.