Vim : 231 키 명령
문자 앞에있는 ^는 해당 문자를 입력하는 동안 제어 권한을 보유해야 함을 의미합니다.
mbomayiwo^V^R"^V^V^V^X ^V^["sy0dd`a@f ^["bc0yiwo^V^V^V^X^V^R"^V^[0l@sa^V^V^V^A-^V^[0f-"ayhdd`a@i ^["dc0mbyiwo^V^R"Exe@b^V^[0fel"ty2ldd`b@t ^["ec0wmbyiwo@f @d^V^[@z ^["fc0"xyiwwmbyiwocw^V^V^V^Rx^V^V^V^[@a@i @e^V^[@z ^["ic0IB0 B^V^R" ^V^OWB0 ^V^OA B0^V^[0*w"tyiWdd`b@t ^["zd0dd`bAe^[0@e
당신도 이것을 실행할 수 있도록 단계!
- Vim에 줄을 복사
- 입력
:s/\^V/<Ctrl-V><Ctrl-V>/g하고 Enter 키를 누릅니다 (두 s에 파란색 ^ V가 표시되어야 함)
- 입력
:s/\^R/<Ctrl-V><Ctrl-R>/g하고 Enter 키를 누릅니다 (이제 파란색 ^ R이 표시됩니다)
- 입력
:s/\^X/<Ctrl-V><Ctrl-X>/g하고 Enter 키를 누릅니다 (지금 파란색 ^ X가 표시됨)
- 입력
:s/\^O/<Ctrl-V><Ctrl-O>/g하고 Enter를 누르십시오
- 입력
:s/\^A/<Ctrl-V><Ctrl-A>/g하고 Enter를 누르십시오
- 입력
:s/\^\[/<Ctrl-V><Ctrl-[>/g하고 Enter 키를 누릅니다 ([
- 을 입력하십시오
0"yy$. 명령은 이제 y 레지스터에 저장됩니다
- 라인에 입력을 설정하고
@y
누군가가 명령을 공유하는 더 좋은 방법을 알고 있다면 알려주십시오. 나는 이것이 길다는 것을 알고 있지만, 내가 생각해 낼 수있는 최선입니다.
입출력
입력 문자열은 파일의 모든 행에서 단독이어야합니다. 1000 34 0 0 7
출력은 단순히 입력 문자열을 덮어 씁니다. 1 2 3 4 3 4 5 6 7
설명
연산
- 0이 아닌 숫자로 시작하여 마지막 숫자가 아닌지 확인하십시오.
- 0이 아닌 다음 숫자 찾기
- 그들의 차이를 가져 가라. 대답이 음수이면 범위를 수리하기 위해 감소해야하며, 그렇지 않으면 범위를 수리하기 위해 증가해야합니다.
- 첫 번째 문자로 돌아가서 이전 숫자를 증가 / 감소시켜 각각의 0을 대체하십시오.
- 마지막 캐릭터가 나올 때까지 반복
사용 된 매크로
@e-종료를 확인하십시오. 마지막 숫자에는 e가 붙습니다. 커서 아래의 숫자에 끝에 e가 있으면 e를 삭제하고 실행을 중지하십시오. 그렇지 않으면 @b를 사용하여 보간 사이클을 시작하십시오.
mbyiwo^R"Exe@b^[0fel"ty2ldd`b@t
@b-보간 사이클을 시작합니다. 빼기 연산 (@s)을 위해 커서 아래에 숫자를 저장하고 0이 아닌 다음 항 (@f)을 찾으십시오.
mayiwo^R"^V^X ^["sy0dd`a@f
@s-@d에서 사용할 빼기 명령을 저장합니다. 보간 단계 시작 부분의 숫자 는 단순히 (val)^X어디에 (val)있습니다. 이것은 @b 명령에 의해 설정됩니다.
@f-0이 아닌 다음 항을 찾습니다. 현재 값을 명명되지 않은 레지스터에 쓴 @f @d다음 다음 줄에 쓰고 @z를 실행합니다. 숫자가 0이면이 명령을 반복하고 그렇지 않으면 @d를 실행합니다.
wmbyiwo@f @d^[@z
@z-명명되지 않은 레지스터가 0 인 경우 조건부 실행.이 명령은 새 행에 두 개의 명령 형식이 필요합니다 command1 command2. 명명되지 않은 레지스터가 0이면 command1실행되고 그렇지 않으면 command2실행됩니다. 어떤 명령도 공백을 가질 수 없습니다.
IB0 B^R" ^OWB0 ^OA B0^[0*w"tyiWdd`b@t`
@t-임시 명령 레지스터. 다양한 명령을 실행하기 전에 짧은 시간 동안 저장합니다. if 문에서 주로 사용됩니다.
@d-보간 방향을 결정합니다. 커서 아래의 숫자에서 시퀀스의 첫 번째 숫자를 뺍니다 (@s 사용). 결과가 음수이면 보간을 줄여야 ^ X가 @a에 저장됩니다. 그렇지 않으면 ^ A가 @a에 저장되도록 증가시켜야합니다. 이것이 저장되면이 보간 사이클의 시작으로 돌아가서 실제로 보간하기 위해 @i를 실행하십시오
yiwo^V^X^R"^[0l@sa^V^A-^[0f-"ayhdd`a@i
@a - 상점 중 하나 ^A또는 ^X보간 단계에서 증가 또는 감소합니다. 이것은 @d 명령에 의해 설정됩니다.
@i-보간. 현재 위치의 번호를 @x에 복사하고 다음 번호로 이동하십시오. 해당 숫자가 0이면 @x로 바꾸고 @a를 실행하여 위 또는 아래로 올바르게 수정 한 다음이 명령을 반복하십시오. 숫자가 0이 아닌 경우이 보간주기의 끝에 도달 한 것입니다. 이 번호로 시작하는 새로운 번호를 시작해야하므로 @e를 실행하여 끝을 확인한 후 다시 실행하십시오.
"xyiwwmbyiwocw^V^Rx^V^[@a@i @e^[@z
@x-임시 저장 레지스터. 보간 명령에 사용됨 (@i)
키 입력 세분화
mbo :Set b mark to current position and open a new line below to write macros
mayiwo^V^R"^V^V^V^X ^V^["sy0dd`a@f ^["bc0 :Write to @b and reset line
yiwo^V^V^V^X^V^R"^V^[0l@sa^V^V^V^A-^V^[0f-"ayhdd`a@i ^["dc0 :Write to @d and reset line
mbyiwo^V^R"Exe@b^V^[0fel"ty2ldd`b@t ^["ec0 :Write to @e and reset line
wmbyiwo@f @d^V^[@z ^["fc0 :Write to @f and reset line
"xyiwwmbyiwocw^V^V^V^Rx^V^V^V^[@a@i @e^V^[@z ^["ic0 :Write to @i and reset line
IB0 B^V^R" ^V^OWB0 ^V^OA B0^V^[0*w"tyiWdd`b@t ^["zd0 :Write to @z and reset line
dd`b :Delete this line and move cursor back to original line
Ae^[ :Append an e to the last number
0@e :Move to the beginning of the line and run
0우리의 프로그램은 다음과 같은 다른 가치를 가질 수null있습니까?