이 기사에서는 vi 명령에 대한 자세한 분석을 제공합니다. vi 편집기는 모든 Unix 및 Linux 시스템의 표준 편집기이며 모든 최신 텍스트 편집기보다 열등하지 않습니다.
다음은 사용법에 대한 간략한 소개와 지침의 일부입니다. vi 편집기는 모든 Unix 및 Linux 시스템 버전에서 동일하므로 vi가 도입되는 곳마다 이에 대해 자세히 알아볼 수 있습니다. Vi는 Linux에서 가장 기본적인 텍스트 편집기이기도 합니다. Vi를 배우고 나면 Linux 세계에서 아무런 문제가 없을 것입니다.
1, vi의 기본 개념
기본적으로 vi는 명령 모드(command mode), 삽입 모드(Insert 모드), 하단 라인 모드(last line mode)의 세 가지 상태로 나눌 수 있는데, 각각 모드의 기능은 다음과 같이 구분됩니다.
1) 명령줄 모드)
화면 커서의 움직임 제어, 문자, 단어 또는 줄 삭제, 섹션 이동 및 복사 및 삽입 모드로 진입 또는 이동 마지막 줄 모드로.
2) 삽입 모드(삽입 모드)
삽입 모드에서만 텍스트 입력이 가능하며, 명령줄 모드로 돌아가려면 "ESC" 키를 누르세요.
3) 마지막 줄 모드
파일을 저장하거나 vi를 종료하며, 문자열 검색, 줄 번호 나열 등 편집 환경을 설정할 수도 있습니다.
하지만 일반적으로 vi를 사용할 때 vi를 두 가지 모드로 단순화합니다. 즉, 마지막 줄 모드(마지막 줄 모드)도 명령줄 모드(명령 모드)에 포함됩니다.
2, vi의 기본 동작
a) vi 입력
시스템 프롬프트에 vi와 파일 이름을 입력한 후 vi를 입력한 후 "명령 모드"에 들어가야 합니다. 텍스트를 입력하려면 "삽입 모드"로 전환하세요. vi를 처음 사용하는 사람들은 커서를 먼저 움직이기 위해 위쪽, 아래쪽, 왼쪽, 오른쪽 키를 사용하려고 할 것입니다. 그러면 컴퓨터에서 계속 신호음이 울리기 때문에 vi를 입력한 후에는 움직이지 마십시오. 주위에 "삽입 모드"로 전환합니다!
b) 파일을 편집하려면 삽입 모드로 전환하세요
"명령 모드(명령 모드)"에서 문자 "i"를 클릭하여 "삽입 모드(삽입 모드)"로 들어가면 시작됩니다. 텍스트를 입력 중입니다.
c) 삽입 스위치
현재 "삽입 모드(삽입 모드)"에서는 잘못된 단어를 입력한 경우에만 계속 입력할 수 있습니다! 커서 키를 이용하여 뒤로 이동하여 단어를 삭제하려면 먼저 "ESC" 키를 눌러 "명령 모드(command mode)"로 이동한 후 단어를 삭제해야 합니다.
d) vi를 종료하고 파일을 저장합니다
"명령 모드(명령 모드)"에서 ":" 콜론 키를 클릭하여 "마지막 줄 모드"로 들어갑니다. 예:
: w filename ( "w filename"을 입력하면 지정된 파일 이름으로 기사가 저장됩니다. filename)
: wq("wq" 입력, 저장하고 vi 종료)
: q!(q! 입력, 저장하지 않고 vi 강제 종료)
3 , 명령 모드(명령 모드) 기능 키
1) 삽입 모드
"i"를 눌러 "삽입 모드"로 전환하고, "i"를 눌러 삽입 모드로 들어갑니다. 현재 커서 위치에서 파일 입력 시작
삽입 모드로 들어가기 위해 "a"를 누르면 현재 커서 위치 옆의 위치에서 텍스트 입력이 시작됩니다.
삽입 모드로 들어가기 위해 "o"를 누른 후; , 줄 시작 부분부터 새 줄을 삽입합니다. 텍스트 입력을 시작합니다.
2) 삽입 모드에서 명령줄 모드로 전환합니다.
"ESC" 키를 누릅니다.
3) 커서를 이동하려면
vi는 키보드의 커서를 직접 사용하여 상하좌우로 이동할 수 있지만 일반 vi는 영문 소문자 "h", "j"를 사용합니다. , "k" 및 "l" 은 각각 커서를 제어하여 왼쪽, 아래, 위, 오른쪽으로 한 칸 이동합니다.
"ctrl" + "b" 누르기: 화면이 한 페이지 "뒤로" 이동합니다.
"ctrl" + "f"를 누르면 화면이 한 페이지 "앞으로" 이동합니다.
"ctrl" + "u" 누르기: 화면이 반 페이지 "뒤로" 이동합니다.
"ctrl" + "d" 누르기: 화면이 반 페이지씩 "앞으로" 이동합니다.
숫자 "0"을 누르세요: 기사의 시작 부분으로 이동합니다.
"G" 누르기: 기사 끝으로 이동합니다.
"$" 누르기: 커서가 위치한 줄의 "끝"으로 이동합니다.
"^" 누르기: 커서가 있는 줄의 "시작"으로 이동
"w" 누르기: 커서가 다음 단어의 시작 부분으로 이동
"e" 누르기 : 커서가 다음 단어로 이동합니다. 단어의 끝
"b" 누르기: 커서가 이전 단어의 시작 부분으로 돌아갑니다.
"#l" 누르기: 커서가 #번째 위치로 이동합니다. 5l, 56l와 같은 라인.
4). 텍스트 삭제
"x": 누를 때마다 커서 위치 "뒤의" 문자 하나가 삭제됩니다.
『#x』: 예를 들어 "6x"는 커서 위치 "뒤"의 6자를 삭제한다는 의미입니다.
「X」:대문자 X를 누를 때마다 커서 위치 "앞"의 문자를 삭제합니다.
「#X」:예를 들어 "20X"는 커서 위치에서 "첫 번째" 20자를 삭제한다는 의미입니다.
「dd」: 커서가 있는 줄을 삭제합니다.
「#dd」:커서가 있는 줄부터 # 줄을 삭제합니다
5). 복사
「yw」:커서부터 끝까지 문자를 복사합니다. 완충지구에 대한 말씀입니다.
「#yw」:# 단어를 버퍼에 복사
「yy」:커서가 있는 줄을 버퍼에 복사합니다.
『#yy』: 예를 들어 "6yy"는 커서가 위치한 줄부터 "카운트다운"하여 6줄의 텍스트를 복사한다는 의미입니다.
「p」: 버퍼의 문자를 커서 위치에 붙여 넣습니다. 참고: 복사 및 붙여넣기 기능을 완료하려면 "y"와 관련된 모든 복사 명령을 "p"와 결합해야 합니다.
6) 바꾸기
"r": 커서가 있는 문자를 바꿉니다.
「R」: "ESC" 키를 누를 때까지 커서가 있는 문자를 바꿉니다.
7).이전 작업으로 되돌리기
"u": 실수로 명령을 실행한 경우 즉시 "u"를 눌러 이전 작업으로 돌아갈 수 있습니다. 여러 번 답장하려면 "u"를 여러 번 누르세요.
8) 변경
"cw": 커서가 있는 단어를 단어 끝으로 변경합니다.
"c#w": 예를 들어 "c3w"는 3을 변경하는 것을 의미합니다. 단어
9) 지정된 줄로 이동
"ctrl" + "g"는 커서가 있는 줄의 줄 번호를 나열합니다.
「#G」:예를 들어 "15G"는 커서를 기사의 15번째 줄 시작 부분으로 이동하는 것을 의미합니다.
4, 마지막 줄 모드의 명령 소개
"마지막 줄 모드"를 사용하기 전에 "ESC" 키를 눌러 "명령 모드"에 있는지 확인한 다음 " :" 콜론은 "마지막 줄 모드"로 들어갑니다.
A) 줄 번호 나열
「set nu」: "set nu"를 입력한 후 파일의 각 줄 앞에 줄 번호가 나열됩니다.
B) 파일의 특정 줄로 이동
「#」: "#" 기호는 콜론 뒤에 숫자를 입력하고 Enter 키를 누르면 해당 줄로 이동합니다. 숫자 15를 입력하고 Enter를 눌러 기사의 15행으로 이동합니다.
C) 문자 검색
「/키워드」: 먼저 「/」키를 누른 뒤, 처음 찾고자 하는 키워드가 아닌 경우 찾고자 하는 문자를 입력하세요. 원하는 키워드를 찾을 때까지 계속해서 「n」을 누르면 검색이 계속됩니다.
『?키워드』: 먼저 "?" 키를 누른 후 찾고자 하는 문자를 입력하세요. 처음 찾는 키워드가 원하는 내용이 아닐 경우 계속해서 "n"을 누르시면 됩니다. 원하는 키워드를 앞으로 검색합니다.
D) 파일 저장
「w」 : 파일을 저장하려면 콜론 안에 "w"를 입력하세요.
E) vi 떠나기
「q」: vi를 종료하려면 "q"를 누르세요. vi를 종료할 수 없으면 "q" 다음에 "!"를 강제로 종료할 수 있습니다.
"qw": 일반적으로 종료 시 파일을 저장할 수 있도록 나갈 때 "w"와 함께 사용하는 것이 좋습니다.
5, vi 명령 목록
1, 다음 표에는 명령 모드에서 일부 키의 기능이 나열되어 있습니다.
h 커서를 한 문자 왼쪽으로 이동합니다.
l 이동 커서 오른쪽으로 한 글자
k커서를 한 줄 위로 이동
j커서를 한 줄 아래로 이동
^커서가 줄의 시작 부분으로 이동
0숫자 "0", 커서 글의 시작으로 이동
G 커서를 글의 끝으로 이동
$ 줄의 끝으로 커서 이동
Ctrl+f 앞으로 스크롤
Ctrl +b 뒤로 스크롤
Ctrl+d 화면 반 앞으로 스크롤
Ctrl+u 화면 절반 뒤로 뒤집기
i커서 위치 앞에 문자 삽입
a커서 뒤에 문자 추가 시작 position
o 줄의 시작 부분에 입력 시작에서 새 줄을 삽입합니다.
ESC 입력 상태에서 명령 상태로 돌아갑니다.
x 커서 뒤에 있는 문자를 삭제합니다.
#x 커서 뒤 # 문자 삭제
X(대문자 X), 커서 앞 문자 삭제
#
#yw커서 위치에서 # 문자 복사
yy1개 복사 커서 위치의 줄
#yyCopy # 커서 위치의 줄
p붙여넣기
u작업 취소
cw 커서 위치의 한 문자 변경
#cw # 문자 변경 커서 위치
w filename
편집 중인 파일을 filenamewq filename
편집 중인 파일을 파일 이름으로 저장하고 vi를 종료합니다.
1. vi로 파일을 연 후 "명령 모드"로 전환해야 텍스트를 입력할 수 있습니다. 전환 방법: "명령 모드"에서 문자 "i"를 클릭하여 "삽입 모드"로 진입합니다. 이때 텍스트 입력을 시작할 수 있습니다.
2. 편집 후 파일을 저장하려면 삽입 모드에서 명령줄 모드로 전환해야 합니다. 전환 방법: "ESC" 키를 누릅니다.
3. 파일을 저장하고 종료합니다. 명령 모드에서 wq를 입력하세요! (앞에 wq를 잊지 마세요 :)
화면에서 이동
Vi는 파일 자체를 스크롤하지 않고 전체 화면에서 커서를 이동할 수 있는 세 가지 명령을 제공합니다. 각각 H, M, L 명령입니다.
HCommand
이 명령은 커서를 화면의 첫 번째 줄(예: 왼쪽 상단)의 시작 부분으로 이동합니다. 이는 전체 화면의 첫 번째 줄이 아닌 현재 화면의 첫 번째 줄입니다. 파일. 이 명령을 사용하면 커서를 화면 상단으로 빠르게 이동할 수 있습니다. H 명령 앞에 숫자 n을 추가하면 커서가 n번째 줄의 시작 부분으로 이동합니다.
MCommand
이 명령은 커서를 화면 표시 파일의 중간 줄의 시작 부분으로 이동합니다. 즉, 현재 화면이 꽉 차 있으면 전체 화면의 가운데 줄로 이동하고, 꽉 차지 않으면 해당 텍스트 줄의 가운데 줄로 이동합니다. 이 명령을 사용하면 커서를 화면의 임의 위치에서 화면 표시 파일의 중간 줄 시작 부분으로 빠르게 이동할 수 있습니다. 예를 들어 위 화면 표시의 경우(커서가 화면 어디에 있든 상관 없음) 명령 모드에서 M 명령을 입력하면 커서가 추가 라인의 문자 a로 이동합니다.
dM 명령을 사용하면 커서의 현재 줄부터 화면에 표시된 파일의 중간 줄까지 모든 내용이 삭제된다는 점도 언급할 가치가 있습니다.
LCommand
파일 표시 내용이 한 화면을 초과하는 경우 이 명령은 파일 표시 내용이 한 화면 미만인 경우 커서를 화면 맨 아래 줄의 시작 부분으로 이동합니다. 커서는 파일의 마지막 줄의 시작 부분입니다. 이 명령을 사용하면 커서를 화면 하단이나 파일의 마지막 줄로 빠르고 정확하게 이동할 수 있음을 알 수 있다. L 명령어 앞에 숫자 n을 추가하면 화면 하단에서 n번째 줄의 시작 부분으로 커서가 이동합니다. 예를 들어 위 화면 표시의 경우(커서가 화면 어디에 있든 관계 없음) 명령 모드에서 3L 명령을 입력하면 커서가 x++ 행의 문자 x로 이동합니다.
dL 명령을 사용하면 커서의 현재 줄부터 화면 맨 아래 줄까지 모든 내용이 삭제된다는 점도 언급할 가치가 있습니다.
단어별로 커서를 이동하세요
먼저 Vi에서 "단어"의 개념을 소개하겠습니다. "Word"는 Vi에서 두 가지 의미를 갖습니다. 하나는 두 공백 사이에 있는 모든 단어가 될 수 있는 광범위한 단어입니다. 또 다른 유형의 단어는 좁은 의미의 단어입니다. 이러한 의미에서는 영어 단어, 구두점 및 알파벳이 아닌 문자(예:!, @, #, $, %, ^, &, *, (,), - , +, {, }, [,], ~, |, ", <, >, / 등)은 하나의 단어로 간주됩니다. 따라서 위 줄에는 {, int, k,; 이 네 단어가 포함됩니다.
Vi에서 대문자 명령을 사용한다는 것은 일반적으로 단어를 넓은 의미로 취급한다는 의미이고, 소문자 명령을 사용한다는 것은 좁은 의미에서 단어를 취급한다는 의미입니다.
Vi에서 단어의 의미를 이해한 후에 커서를 이동하는 명령을 도입할 수 있습니다.
Vi는 커서를 단어 단위로 이동하기 위한 총 세 가지 명령 세트를 제공합니다. 즉,
w 및 W 명령
을 사용하여 커서를 다음 단어의 시작 부분으로 바로 이동합니다. e
및 E Command 커서의 시작 위치가 단어 내에 있으면(즉, 단어의 끝이 아님) 이 명령은 시작 위치가 단어의 끝으로 이동합니다. 커서가 단어 끝에 있는 경우 이 명령은 커서를 다음 단어의 끝으로 이동합니다.
b
및 B 커서가 현재 단어 내에 있는 경우(예: 시작 부분이 아님) 단어), 이 명령은 커서를 현재 단어의 시작 부분으로 이동합니다. 커서가 현재 단어의 시작 부분에 있으면 이 명령은 커서를 이전 단어의 시작 부분으로 이동합니다. 커서별 문장
Vi에서 문장은 쉼표(,), 마침표(.) 또는 물음표(?)와 느낌표(!)로 시작하고 그 뒤에 최소 두 개(포함)로 정의됩니다. two) 공백 또는 개행 문자 시퀀스
Vi는 각각 문장별로 커서를 이동하는 두 가지 명령을 제공합니다:
1 (Command.이전 문장의 시작 부분으로 커서를 이동하세요.
2. ) 명령
커서를 다음 문장의 시작 부분으로 이동시키는 명령입니다.
세그먼트별로 커서 이동
Vi에서 세그먼트는 빈 줄로 시작하고 끝나는 조각으로 정의됩니다. Vi는 세그먼트별로 커서를 이동하는 두 가지 명령을 제공합니다.
명령 이 명령은 커서를 이전 세그먼트의 시작 부분으로 이동합니다. }
명령이 명령은 커서를 다음 단락의 시작 부분으로 뒤로 이동합니다.
화면 스크롤화면 명령은 커서를 화면 단위로 이동하며 파일 스크롤 및 페이징에 자주 사용됩니다. 화면 명령은 커서 이동 명령이 아니며 삭제 명령에서 텍스트 한정자로 사용할 수 없다는 점에 유의해야 합니다.
화면 스크롤 명령은 명령 모드와 텍스트 입력 모드 모두에서 사용할 수 있습니다.
1.
스크롤 명령두 가지 스크롤 명령이 있습니다:
· < Ctrl+u > 화면을 절반만큼 앞으로 스크롤합니다(파일 헤더 방향). +d > 화면을 절반 화면 뒤로(파일 끝쪽으로) 스크롤합니다. 이 두 명령 앞에 숫자 n을 추가하면 화면이 n줄 앞으로 또는 뒤로 스크롤됩니다. 그리고 이 값은 나중에 스크롤하기 위해 < Ctrl+u >
2. 페이징 명령두 가지 페이징 명령도 있습니다.
· < Ctrl+f > 화면을 전체 화면으로 스크롤합니다(예: 한 페이지). · < Ctrl+b > 화면을 전체 화면(예: 한 페이지)으로 문서의 시작 부분으로 스크롤합니다.
이 두 명령 앞에 숫자 n을 추가할 수도 있으며, 그러면 화면이 n 페이지 앞이나 뒤로 이동합니다. 3.
상태 명령 < Ctrl+G >명령은 편집 중인 파일 이름, 수정 여부, 현재 줄 번호를 포함하여 vi 상태 정보를 표시합니다. , 파일의 줄 수 및 전체 파일에 대한 백분율로 표시되는 커서 앞의 줄.
4. 화면 영점 조정 명령Vi는 화면 영점 조정과 관련된 세 가지 명령을 제공합니다. 해당 형식은 다음과 같습니다. · [줄 번호] z [줄 수]
· [줄 번호] z [줄 수] .
· [줄 번호] z [줄 수] _ 줄 번호와 줄 번호를 생략하면 이 세 가지 명령은 커서가 있는 현재 줄을 화면의 첫 번째 줄, 중간 줄, 마지막 줄로 다시 표시하고 줄 번호가 주어지면 해당 줄 번호를 표시합니다. 행은 화면의 첫 번째 행, 중간 행, 마지막 행에서 현재 행으로 표시됩니다. 행 번호가 제공되면 화면에 표시되는 행 수를 지정합니다. [예제 13]
8z16
15z .: 파일의 15번째 줄을 화면 표시의 중간 줄로 사용하고, 표시되는 줄 수는 전체 화면입니다.
15z 5_: 파일의 15번째 줄을 화면에 표시되는 마지막 줄로 사용하고, 표시되는 줄 수는 5줄입니다.
텍스트 삽입 작업
명령 모드에서 사용자가 입력한 모든 문자는 Vi에 의해 명령으로 해석되고 실행됩니다. 사용자가 입력한 문자를 텍스트 내용으로 처리하려면 먼저 명령에서 Vi의 작업 모드를 변경해야 합니다. 모드가 텍스트 입력 모드로 전환됩니다. 전환하는 방법은 다음 명령을 사용하는 것입니다.
Insert 명령Vi는 i와 I라는 두 가지 삽입 명령을 제공합니다.
iCommand커서 위치 앞에서부터 텍스트를 삽입하고, 삽입 과정에서 키를 사용하여 잘못된 입력을 삭제할 수 있습니다. 이때 Vi는 삽입 상태이고, 화면 하단에 "--INSERT--"(삽입)이라는 단어가 표시됩니다.
ICommand이 명령은 커서를 현재 줄의 시작 부분으로 이동하고 그 앞에 텍스트를 삽입합니다. Append 명령
Vi는 a와 A라는 두 가지 추가 삽입 명령을 제공합니다.
a명령
이 명령은 현재 커서 위치 뒤에 새 텍스트를 추가하는 데 사용됩니다. 새로 입력된 텍스트는 커서 뒤에 배치되고, 커서 뒤의 원본 텍스트는 그에 따라 뒤로 이동됩니다. 커서는 줄의 어느 곳에나 있을 수 있습니다.
ACommand
이 명령과 a 명령의 차이점은 A 명령은 커서를 줄 끝으로 이동하고 거기에서 새 텍스트를 삽입한다는 것입니다. A 명령을 입력하면 커서가 자동으로 해당 줄의 끝으로 이동합니다.
a 및 A 명령은 줄 끝에 텍스트를 삽입하는 유일한 방법입니다.
열기 명령
삽입 명령이든 추가 명령이든 삽입된 내용은 현재 줄의 특정 위치부터 시작됩니다. 특정 줄 앞이나 뒤에 새로운 줄을 삽입하려면 open 명령을 사용해야 합니다.
Vi는 o와 O라는 두 가지 열기 명령을 제공합니다.
oCommand
이 명령은 커서가 있는 줄 아래에 새 줄을 열고 커서를 줄의 시작 부분에 놓고 텍스트 입력을 기다립니다. 문자 삭제 기능을 사용할 경우, 삽입 모드 시작 위치 이후의 문자만 삭제할 수 있으며, 이전 문자는 삭제되지 않으니 주의하시기 바랍니다. 텍스트 입력 모드에서 일부 제어 문자를 입력할 수도 있습니다. 예를 들어 Ctrl+l을 누르면 ^L로 표시되는 페이지 나누기가 삽입됩니다.
OCommand
는 o 명령과 반대되는 명령입니다. O 명령은 커서가 있는 줄 위에 줄을 삽입하고 줄의 시작 부분에 커서를 놓고 텍스트 입력을 기다립니다.
11.3.4 텍스트 수정
명령 모드에서는 Vi가 제공하는 다양한 관련 명령을 사용하여 텍스트 내용 삭제, 복사, 바꾸기 등을 포함하여 텍스트를 수정할 수 있습니다.
텍스트 삭제
텍스트를 편집할 때 불필요한 텍스트를 삭제해야 하는 경우가 많습니다. 잘못 입력했거나 불필요한 텍스트를 키를 사용하여 삭제할 수 있지만 이때 줄의 시작 부분까지 삭제한 후에는 제한이 있습니다. 다시 삭제하고 싶습니다. 위의 줄은 불가능합니다.
명령 모드에서 Vi는 많은 삭제 명령을 제공합니다. 이러한 명령의 대부분은 d로 시작합니다. 일반적으로 사용되는 문자는 다음과 같습니다.
1. 단일 문자 삭제
x: 커서 위치의 문자를 삭제합니다. x 앞에 숫자 n을 추가하면 커서 위치에서 오른쪽으로 n개의 문자가 삭제됩니다.
X: 커서 앞의 문자를 삭제합니다. X 앞에 숫자 n이 추가되면 커서 앞의 문자부터 왼쪽에 있는 n개의 문자가 삭제됩니다.
분명히 이 두 명령은 소수의 문자를 삭제하는 빠른 방법입니다.
2. 여러 문자 삭제
dd: 커서가 있는 줄 전체를 삭제합니다. dd 앞에 숫자 n을 추가하면 현재 줄과 다음 n-1줄을 삭제할 수 있습니다.
D 또는 d$: 두 명령은 동일한 기능을 가지고 있으며 둘 다 커서부터 줄 끝까지의 내용을 삭제합니다.
d0: 커서 앞의 문자부터 줄의 시작 부분까지 내용을 삭제합니다.
dw: 단어를 삭제합니다. 커서가 단어 중간에 있는 경우 커서 위치부터 단어 끝까지 삭제합니다. dd 명령과 마찬가지로 dw 앞에 숫자 n을 추가하여 n개의 지정된 단어를 삭제할 수 있습니다.
사용자가 실수로 텍스트를 삭제하더라도 문제가 되지 않습니다. Vi는 잘못된 작업을 복원하는 명령을 제공하며 복원된 내용은 텍스트의 어느 위치에나 이동 및 배치할 수 있습니다. 복구 명령은 ² np를 사용합니다. 여기서 n은 레지스터 번호입니다. 이는 Vi 내부에 삭제 작업을 유지하는 데 사용되는 9개의 레지스터가 각각 1, 2, ¼, 9로 표시되기 때문입니다. 이들은 각각 과거에 dd 명령으로 삭제된 내용을 저장합니다. 예를 들어, dd 명령을 사용하여 가장 최근에 삭제된 내용은 다음 번에 dd 명령을 사용하여 텍스트 내용을 삭제할 때 레지스터 1의 내용을 레지스터 2로 전송합니다. 레지스터 1은 가장 최근의 dd 명령에 의해 삭제된 내용이 됩니다. 비유하자면, Vi는 dd 명령으로 삭제된 마지막 9개의 내용을 저장할 수 있는 반면, dd 명령으로 삭제된 이전 내용은 폐기됩니다.
마지막 줄 모드에서는 파일 내용도 삭제할 수 있지만, 전체 줄만 삭제할 수 있습니다. 지정된 범위(시작 줄 번호, 끝 줄 번호) 내의 모든 줄을 한 번에 삭제할 수 있습니다. 이런 방식으로 삭제하는 경우 Vi는 삭제된 내용을 레지스터에 넣지 않으므로 실수로 삭제한 경우 ² np 명령을 사용하여 복원할 수 없으며 제한적으로 u 명령만 사용할 수 있습니다. 회복.
마지막으로 텍스트 입력 모드에서 입력한 텍스트를 삭제하는 방법입니다. 사용자는 키 조합만 사용할 수 있으며, 커서는 삽입이 시작된 위치로 돌아가고 Vi는 여전히 텍스트 입력 모드에 있습니다.
이전 명령 취소(Undo)
복구 명령이라고도 하는 이전 명령 취소(Undo)는 이전에 잘못된 작업이나 부적절한 작업이 파일에 미치는 영향을 취소할 수 있는 매우 유용한 명령입니다. , 그러한 오조작이나 부적절한 조작을 수행하기 전의 상태로 복원합니다.
이전 명령을 취소하는 방법에는 두 가지가 있습니다. 명령 모드에서 u와 U 문자를 입력하세요. 그 기능은 방금 입력한 명령을 취소하고 원래 상황으로 복원하는 것입니다. 소문자 u와 대문자 U의 차이점은 대문자 U 명령의 기능은 명령이 잘못 작동되기 전의 상황, 즉 명령을 삽입한 후 U 명령을 사용하는 경우이다. 방금 삽입한 내용은 삭제됩니다.
명령을 삭제한 후 U 명령을 사용하면 방금 삭제한 내용을 커서 위치에 삽입하는 것과 같습니다. 여기서는 텍스트를 수정하는 모든 명령이 삽입 명령으로 간주됩니다. 즉, U 명령은 이전 작업을 취소할 수만 있으며 U 명령을 사용하여 이전 작업을 취소한 경우 U 키를 다시 누르면 이전 작업이 취소되지 않고 방금 수행한 작업이 취소됩니다. 즉, U 명령을 처음 사용하기 전의 상태로 복원되며, 결과적으로는 아무것도 수행되지 않습니다. 소문자 u 명령의 기능은 행이 몇 번 편집되었는지에 관계없이 현재 행을 편집되기 전의 상태로 복원하는 것입니다.
참고: 취소 명령에 취소 명령을 계속 사용할 수 있습니다. 이때, "부정이 긍정적을 만든다"는 효과가 발생하며, 아무 작업도 수행하지 않은 것처럼 취소 명령을 처음 실행하기 전의 상태로 파일 상태가 복원됩니다. 예를 들어 위의 예에서 U 명령을 다시 사용하면 화면에 표시되는 내용은 여전히 삽입된 내용입니다.
반복 명령(Redo)
반복 명령도 매우 자주 사용되는 명령입니다. 텍스트 편집에서 일부 작업을 기계적으로 반복해야 하는 경우가 종종 있습니다. 이 경우 반복 명령을 사용해야 합니다. 이를 통해 사용자는 이전에 완료한 복잡한 명령을 쉽게 실행할 수 있습니다.
반복 명령은 명령 모드에서만 작동합니다. 이 모드에서는 "." 키를 누르기만 하면 됩니다. 반복되는 명령을 실행할 때 결과는 커서의 현재 위치에 따라 달라집니다.
텍스트 내용 수정
텍스트 내용 수정은 편집 과정에서 텍스트의 특정 문자와 특정 줄을 수정할 수 있음을 의미합니다. 즉, 수정해야 하는 이전 텍스트가 새로 입력된 텍스트로 대체됩니다. text.수정해야 할 내용을 삭제 명령을 사용하여 삭제한 후, 새 내용을 삽입하려면 삽입 명령을 사용하는 것과 같습니다. 따라서 수정 명령을 사용한 후 vi는 새 내용을 입력한 후 명령 모드로 다시 돌아가야 합니다. 그렇지 않으면 Vi는 항상 텍스트 입력 모드에 있다고 생각하고 이번에는 모두 수정된 새 콘텐츠로 간주됩니다.
Vi는 c, C, cc라는 세 가지 수정 명령을 제공합니다. 수정하는 텍스트 범위는 커서 위치와 커서 이동 명령에 의해 제한됩니다. 이 세 가지 수정 명령은 아래에 소개되어 있습니다.
c 명령
c 뒤에는 커서 이동 명령이 옵니다. 이 명령은 수정된 내용의 범위를 커서의 현재 위치에서 시작하여 지정된 위치로 제한합니다. c 명령에서 수정된 텍스트의 범위는 커서 위치와 커서 이동 명령에 의해 제한됩니다.
C, c$ 명령
C, c$ 명령은 커서의 현재 위치에서 줄 끝까지 또는 커서의 현재 위치에서 줄 끝까지 내용을 수정할 수 있습니다.
명령 C 앞에 숫자 n이 추가되면 지정된 줄 수의 내용을 수정할 수 있다는 의미입니다. 예를 들어, 3C 명령은 커서 위치에 있는 문자(전체 줄이 아님)부터 다음 두 줄 전체까지의 내용을 삭제하고 나중에 입력한 내용으로 바꾸는 것을 의미합니다.
ccCommand
cc 명령은 C와 기능은 동일하지만 수정 범위가 C와 다릅니다. 커서가 위치한 행의 시작 위치부터 수정합니다(커서가 어느 열에 있는지 관계 없음). in the line) to the line 라인의 끝을 지정하는 범위 내의 끝 또는 내용입니다. 커서가 위치한 줄의 내용 전체가 새로 입력된 내용으로 대체됩니다.
명령 C와 마찬가지로 cc 앞에 숫자 n을 추가하여 커서의 현재 줄부터 시작하여 총 n 줄을 수정함을 나타낼 수도 있습니다. 예를 들어 5cc는 커서가 위치한 줄과 그 아래 4줄을 먼저 삭제한 후 수정할 내용을 입력한다는 의미입니다.
텍스트 교체
텍스트 교체는 기존 텍스트를 새로 입력한 텍스트로 바꾸는 것입니다. 텍스트 수정과 동일하게 삭제 작업을 먼저 수행한 후 삽입 작업을 수행합니다.
Vi에서 제공하는 바꾸기 명령에는 바꾸기 명령, 바꾸기 명령, 단어 바꾸기 명령이 포함됩니다.
1. Replace 명령: r 및 R
r: 현재 커서의 문자를 다음에 입력한 문자로 바꿉니다.
R: 현재 커서 이후의 여러 문자를 이후에 입력된 텍스트로 바꿉니다. 입력된 각 문자는 < Esc > 키를 눌러 대체를 종료할 때까지 원래 문자를 대체합니다. 새로 입력된 문자 수가 원래 해당 문자 수를 초과하는 경우 추가 부분이 추가됩니다.
명령어 R 앞에 숫자(예: 5R)를 추가하면 새로 입력한 텍스트가 5번 반복되지만 입력 텍스트에 포함된 문자 시퀀스만 바뀌고 현재 줄의 복구되지 않은 내용은 여전히 남아 있다는 의미입니다. 유지되지만 그에 따라 위치가 오른쪽으로 이동됩니다.
R을 사용하여 텍스트 내용을 바꿀 때 새로 입력한 텍스트가 여러 줄을 차지할 수 있다는 점을 언급할 가치가 있습니다. 바꿀 때 커서가 있는 줄의 해당 문자만 덮어쓰게 됩니다.
새로 입력된 6자(공백 포함, < Esc > 제외)가 원래 줄의 6자를 대체하는 것을 볼 수 있습니다.
2. 대체 명령: s 및 S
s(소문자): 이 명령은 현재 커서가 있는 문자를 나중에 입력한 텍스트로 바꾸는 것을 의미합니다.
커서가 있는 문자만 새 문자로 바꾸는 경우 s 명령은 r 명령과 유사한 기능을 갖습니다. 예를 들어 sh와 rh는 모두 커서가 있는 문자를 h로 변경합니다. 그러나 둘 사이에는 차이점이 있습니다. r 명령은 교체를 완료하는 반면 s 명령은 교체를 완료하는 동안 작업 모드를 명령 모드에서 텍스트 입력 모드로 변경합니다. 따라서 s 명령의 일반적인 사용법은 다음과 같습니다. s 뒤에 바꿀 텍스트가 오고 마지막으로 텍스트 입력 모드를 종료하고 명령 모드로 돌아가야 합니다.
s 앞에 숫자 n을 추가할 수 있습니다. 즉, s 뒤에 입력된 텍스트는 커서가 있는 문자부터 시작하여 그 다음의 n-1개 문자(총 n자)를 대체하는 데 사용됩니다.
S(대문자): 이 명령은 커서의 현재 줄(전체 줄)을 새로 입력한 텍스트로 바꾸는 것을 의미합니다(커서가 위치한 열에 관계 없음).
S 앞에 3과 같은 숫자 n이 주어지면 3줄(커서의 현재 줄과 그 아래 2줄 포함)이 S 명령 다음에 입력된 텍스트로 대체된다는 의미입니다.
3. 단어 바꾸기 cw
특정 단어의 내용을 다른 텍스트 문자열로만 바꾸려면 cw 명령을 사용할 수 있습니다. cw가 대체하는 것은 좁은 의미의 단어이다. 이 명령을 입력하면 Vi는 커서에 있는 단어를 삭제하고 사용자는 어떤 텍스트 내용이라도 입력할 수 있습니다. 입력을 완료한 후 키를 누르면 Vi는 원래 커서 위치부터 해당 단어의 끝까지 모든 내용을 입력한 내용으로 대체합니다.
텍스트 줄 병합
Vi는 텍스트의 특정 줄을 병합하는 명령을 제공합니다. 이 명령은 J(대문자)로 표시되며, 커서가 위치한 라인과 그 아래 라인을 한 라인으로 합치는 기능을 한다.
J 명령 앞에 3과 같은 숫자 n이 주어지면 커서의 현재 줄과 그 뒤의 2줄(총 3줄)이 한 줄로 합쳐진다는 뜻입니다.
텍스트 줄 이동
Vi에서는 특정 범위 내에서 텍스트 줄을 왼쪽이나 오른쪽으로 또는 한 위치에서 다른 위치로 쉽게 이동할 수 있습니다.
텍스트 줄을 왼쪽과 오른쪽으로 이동합니다.
텍스트 줄을 왼쪽과 오른쪽으로 이동하는 명령에는 >, <, >> 및 <<가 있습니다.
(1)> 명령은 > 형식을 사용하여 제한된 텍스트 줄(화면의 첫 번째 줄)을 오른쪽(일반적으로 8칸)으로 이동합니다. 이동하는 텍스트 줄의 범위는 커서가 있는 줄과 이어서 입력되는 커서 이동 명령에 의해 제한됩니다.
(2)< 명령은 제한된 텍스트 줄을 왼쪽으로 이동합니다. 이동 방향이 반대라는 점을 제외하면 > 명령과 동일한 방식으로 사용됩니다. 예를 들어, <6M은 커서의 현재 줄과 화면 표시의 중간 줄 사이의 각 줄을 왼쪽으로 8칸 이동합니다.
(3)>> 명령은 커서가 위치한 줄을 오른쪽으로 8칸 이동합니다. >> 명령 앞에 숫자 n(예: 4)이 주어지면 커서의 현재 줄과 그 아래 3줄(총 4줄)이 오른쪽으로 8칸 이동한다는 의미입니다.
(4)<< 명령은 커서가 위치한 줄을 왼쪽으로 8칸 이동합니다. 이동 방향이 반대라는 점을 제외하면 사용법은 >> 명령과 동일합니다.
텍스트 줄의 줄간 이동
다음 단계를 사용하여 텍스트 줄을 한 위치에서 다른 위치로 이동할 수 있습니다.
이동할 텍스트의 첫 번째 줄로 커서를 이동하세요.
ndd 명령을 누르세요. 여기서 n은 이동할 행 수입니다. 이때 Vi는 파일에서 이동할 텍스트 줄을 삭제하고 삭제 레지스터 1번에 넣습니다.
커서를 대상 줄로 이동합니다.
이동할 텍스트 줄을 삭제하려면 ² 1p를 누르세요. 등록부에서 삭제되었습니다.
이때, 이동할 텍스트 라인이 목적지 위치에 나타납니다.
위의 방법으로 텍스트 줄의 줄간 이동을 구현할 수 있지만 분명히 너무 번거롭습니다. Vi는 또한 마지막 줄 모드에서 m(이동 명령) 명령을 사용하는 또 다른 빠른 방법을 제공합니다. 사용법은 n m k로, n번째 행을 k번째 행 아래로 이동한다는 의미입니다.
이제 5행을 4행으로 이동하려면 마지막 행 모드로 입력하면 됩니다.
:5 m 3
m 명령 앞에 행 번호 범위를 지정할 수도 있습니다(시작 행 번호는 Terminating line number와 동일), 지정된 범위 내의 텍스트 행이 지정된 위치로 이동됨을 나타냅니다. 예:
:2, 5 m 0
은 파일의 두 번째에서 다섯 번째 줄의 내용을 파일 헤더로 이동한다는 의미입니다(0번째 줄 아래의 이 0줄은 더미 줄입니다).
Vi의 줄 번호
Vi의 많은 명령은 줄 번호, 줄 번호 등의 값을 사용합니다. 편집할 파일이 큰 경우에는 직접 계산하기가 매우 불편합니다. 이를 위해 Vi는 텍스트에 줄 번호를 추가하는 기능을 제공합니다. 이 줄 번호는 화면 왼쪽에 표시되며 해당 줄의 내용은 줄 번호 뒤에 표시됩니다.
사용된 명령은 다음과 같습니다. 마지막 줄 모드에서 명령을 입력하세요:
:set number
여기에 추가된 줄 번호는 사용자에게만 표시되며 파일 내용의 일부가 아닙니다.
더 큰 파일의 경우, 사용자는 커서가 현재 어느 줄에 있고 파일의 어디에 있는지 알아야 할 수도 있습니다. 이때 명령 모드에서 키 조합을 사용할 수 있습니다. 디스플레이 창의 마지막 줄. 이 명령은 언제든지 사용할 수 있습니다.
마지막 줄 모드에서 nu(단어 번호의 약어) 명령을 입력하면 커서 아래에 있는 현재 줄의 줄 번호와 내용을 가져올 수 있습니다.
커서 이동 작업
전체 화면 텍스트 편집기에서 커서 이동 작업은 의심할 여지없이 가장 자주 사용되는 작업입니다. 사용자가 이러한 명령을 능숙하게 사용하여 커서를 이동해야만 편집하려는 위치에 빠르고 정확하게 도달할 수 있습니다.
Vi의 커서 이동은 명령 모드나 텍스트 입력 모드일 수 있지만 조작 방법이 다릅니다.
텍스트 입력 모드에서는 키보드의 방향키 4개를 직접 사용해 커서를 이동할 수 있습니다.
명령 모드에서는 커서를 이동하는 방법이 다양합니다. 4개의 방향 키를 사용하여 커서를 이동할 수 있을 뿐만 아니라 4개의 방향 키 대신 h, j, k, l 4개의 키를 사용하여 커서를 이동할 수도 있습니다. 이렇게 하면 서로 다른 키보드 정의로 인한 충돌을 피할 수 있습니다. , 그리고 익숙해지면 문자 키보드에 손을 대지 않고도 모든 작업을 완료할 수 있어 작업 효율성이 향상됩니다. 또한 , , 4개의 키 또는 키 조합을 사용하여 커서를 이동할 수도 있습니다. 그리고 위의 세 가지 유형의 키는 기능면에서 동일합니다. 또한 커서를 이동하는 몇 가지 명령이 있습니다. 다음은 작동 방식에 대한 소개입니다.
, ®(둘 다 오른쪽 키라고 함)
오른쪽 키의 기능은 커서를 오른쪽으로 한 위치 이동하는 것입니다. 오른쪽 키를 누르기 전에 숫자 n을 입력하면 커서가 오른쪽으로 n만큼 이동합니다. 예를 들어, 5l은 커서가 오른쪽으로 5칸 이동한다는 의미입니다. 커서는 현재 줄의 끝을 넘어 이동할 수 없다는 점에 유의해야 합니다. 주어진 n이 현재 커서 위치에서 줄 끝까지의 문자 수를 초과하는 경우 오른쪽 화살표 키를 사용하면 커서는 줄 끝으로만 이동할 수 있습니다. 커서가 아래 하나 이상의 줄에서 적절한 위치로 이동합니다.
h,,¬(왼쪽 키)
왼쪽 키를 한 번 실행하면 커서가 왼쪽으로 한 위치 이동합니다. 오른쪽 키와 마찬가지로 왼쪽 키 앞에 숫자 n을 입력하면 커서가 왼쪽으로 n만큼 이동합니다. 왼쪽 화살표 키를 사용하면 커서가 줄의 시작 부분을 넘어 왼쪽으로 이동할 수 없습니다. 왼쪽 화살표 키를 사용하면 커서가 하나 이상의 줄 위의 적절한 위치로 이동합니다.
j,, ̅(Down 키)
Down 키를 한 번 실행하면 커서가 한 위치(즉, 한 행) 아래로 이동하지만 커서가 위치한 열은 변경되지 않습니다. 이러한 명령 앞에 숫자 n이 오면 커서가 n 줄 아래로 이동합니다.
아래쪽 키를 사용하여 커서를 아래로 이동하는 것 외에도 Vi는 키와 "+" 키를 사용하여 커서를 한 줄 또는 n 줄(이 줄 제외) 아래로 이동할 수 있지만 이때 커서는 줄의 첫 번째 문자에서. 예:
3j 커서가 3줄 아래로 이동하고 커서가 있는 열의 위치는 변경되지 않습니다.
3+ 또는 3 커서가 3줄 아래로 이동하고 커서가 줄의 시작 부분에 있습니다.
k,, (up 키)
up 키를 한 번 실행하면 커서가 한 위치(즉, 한 행) 위로 이동하지만 커서가 위치한 열은 변경되지 않습니다. 또한 커서를 n 줄 위로 이동하려면 이 명령 앞에 숫자 n을 추가하세요.
위로 이동한 후 커서를 줄의 시작 부분에 두려면 "-" 명령을 사용하면 됩니다.
L(줄의 시작 부분으로 이동)
L 명령은 커서를 현재 줄의 시작 부분으로 이동합니다. 즉, 커서를 비어 있지 않은 첫 번째 줄(탭이 아닌 또는 탭이 아닌 줄)로 이동합니다. 공백 문자) 현재 줄의 .
$(줄 끝으로 이동)
이 명령은 커서를 현재 줄의 끝으로 이동하고 마지막 문자에서 중지합니다. $ 명령 앞에 숫자 n을 추가하면 커서가 n-1줄 아래로 이동하여 줄의 끝에 도달합니다.
[줄번호] G(지정된 줄로 이동)
이 명령은 커서를 지정한 줄번호에 지정된 줄의 시작 부분으로 이동합니다. 이런 종류의 움직임을 절대 위치결정 움직임이라고 합니다.
커서가 6행의 시작 부분으로 이동합니다.
줄 번호를 생략하면 커서는 파일의 마지막 줄의 시작 부분으로 이동합니다. 즉, 파일의 화면 수에 관계없이 마지막 줄로 이동합니다.
관련 권장 사항: "Linux 비디오 튜토리얼"
위 내용은 Linux의 vi 명령어에 대한 자세한 설명을 정리하고 공유합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!