이맥스, 26 바이트 (아마도 + 10 = 36 또는 − 2 = 24)
이 답변에 필요한 추가 키는 Esc입니다. 이것은 여전히 키보드의 절반에 있지만 여전히 어떤 이유로 질문에 언급되지 않았으므로 점수에 불이익을 줄 수 있습니다. ( Esc와 Alt이맥스에서 동일 것은, Alt이다 또한 키보드의 손상 절반하지만 질문에 언급되지 않지만 열린보다는 내가 내 여분의 열쇠로 사용할 수 없습니다 도청하는이 2 바이트를 저장합니다. 하지만 인코딩 시간 Esc이 짧기 때문 입니다.)
프로그램 자체 (쉼표는 Emacs가 입력을 승인하기 위해 사용하는 유선 형식의 바이트 간 경계를 구분 함) :
W, S, Esc, $, D, A, Ctrl- T, S, R, W, D, Esc, $, 5, Ctrl- Q, 5, f, Ctrl- X, r, Ctrl- Space, 1, Ctrl- X, r, g, 1, Ctrl-T
바이트 수를 증명하기 위해 이것을 원시 바이트로 인코딩 :
00000000: 5753 1b24 4441 1453 5257 441b 2435 1135 WS.$DA.SRWD.$5.5
00000010: 6618 7200 3118 7267 3114 f.r.1.rg1.
(참고 : 일부 세부 정보는 Emacs 구성 방법에 따라 다를 수 있습니다.이 답변에는 quoted-char-radix 를 16으로 설정하고 Emacs가 영국 영어 시스템에서 기본적으로 맞춤법 검사 사전을 사용해야합니다. 합리적인 구성 설정과 비슷하지만 Emacs 사본이 다르게 구성 될 수 있습니다. 다른 사전은 여전히 26 바이트 프로그램을 제공 할 수 있지만 원하는 수정 사항을 승인하려면 약간 다른 오타를 사용해야합니다. 총알이없는 키.)
설명
에디터 전쟁에 어떤 영향을 미칠지 잘 모르겠지만,이 질문에 대해서는 이맥스가 적어도 vim을이기는 것 같습니다. Emacs는 바이트 단위로 측정 된 편집기 골프에 매우 적합합니다. 여러 키를 누르지 만 단일 바이트 만 사용하는 코드에 크게 의존하기 때문입니다 (따라서 Emacs 프로그램은 종종 해당 Vim 프로그램보다 입력 속도가 느리지 만 디스크는 더 짧습니다). 또한, 가장 중요한 Emacs 명령의 대부분은 키보드의 왼쪽 하단에 있으며에 가깝습니다 Ctrl. 이와 같은 질문에 매우 유용합니다.
"글 머리 기호가 들어 오기 전에 인터프리터 쉘 / 소스 편집기가 열려 있다고 가정 할 수 있습니다. 슬프게도 키보드를 누르기 전에 아무 것도 쓰지 않았습니다."라고 Emacs에서 빈 파일이 열려 있다고 가정합니다. 비밀번호를 입력해야합니다. (나중에 파일을 저장하고 Emacs를 종료해야 할 수도 있지만 다른 사람들의 답변에 포함되지 않은 바이트 수는 여기에 포함되지 않습니다. 왼쪽의 왼쪽을 사용하여 완전히 수행 할 수 있습니다. 키보드, Ctrl- X,, Ctrl- S, Ctrl- X, Ctrl- C.)
한 번에 명령 (또는 유사한 명령 블록)을 가져옵니다.
- W, S:
WS
문서를 입력하십시오 .
- Esc, $: 맞춤법 검사기를 호출합니다.
WS
실제 단어는 아니지만 비슷한 두 글자로 된 단어를 많이 찾습니다.
- D: 맞춤법 검사기를 사용하여 올바른
WS
에 PS
. ( 여기서 이맥스 와 동일하게) Alt-를 사용하여 맞춤법 검사기를 호출하면 한 단어 만 검사 하므로이 작업을 수행하면 비활성화됩니다.$EscAlt
- A: 삽입
A
제공 PSA
.
- Ctrl- T: 앞의 두 문자를 바꾸고을 제공
PAS
합니다.
- S, R, W, D: 유형
SRWD
, 기부 PASSRWD
.
- Esc, $, 5: 우리는 우리의 철자 수정 원하기 때문에 우리는 다시 맞춤법 검사기를 호출
PASSRWD
에 PASSWORD
. PASSWRD
가장 근접한 실제 단어를 받아들이는 열쇠는 0우리가 누를 수 없기 때문에 첫 번째 시도에서 원하는 단어를 추측 할 수는 없습니다. 결과적으로, 약간 더 극단적 인 철자 PASSRWD
가 틀리면 우리가 원하는 단어를 5 번 위치로 밀어 넣을 수 있습니다.
- Ctrl- Q, 5, f: 문자 코드 U + 5 층, 즉와 문자를 삽입합니다
_
. 이제 문서가 읽 힙니다 PASSWORD_
(또는 다음 명령을 입력하기 시작하면 다른 16 진수를 입력 할 경우 밑줄이 나타나지 않습니다).
- Ctrl- X, r, Ctrl- Space, 1: 어떤 이상한 이유로 레지스터 (1)에서 (파일의 시작 부분을 기준으로) 현재의 커서 위치를 저장,이 커서 위치에, 1 인덱스 지금 (지금까지 9 개 문자를 작성하는 데)입니다
10
.
- Ctrl- X, r, g, 1: 문서에 레지스터 1의 내용을 복사합니다. 이제 읽습니다
PASSWORD_10
.
- Ctrl- T: 커서 앞에 두 문자를 바꿉니다. 우리는 이제
PASSWORD_01
질문이 요구하는 것처럼 있습니다.
우리가 사용할 수 있다면 Alt, "inpell spellchecker"명령을 a4
철자가 아닌 단일 바이트로 인코딩 할 수 있다 1b
24
. 두 번 나타나므로 2 바이트를 절약 할 수 있습니다. (대부분의 현대 단말기 사용 1b
24
에 대한 인코딩으로 Alt- $UTF-8과의 충돌을 피하기 위해,하지만 a4
인코딩은 구성 옵션 때로는 가능한 시간에 시간에서 발생합니다.)
가능한 바이트 절약에는 아마도 골퍼 철자가 틀리면 수정 될 수 있습니다. PSASWRD
입력하는 짧은 바이트가 될 것입니다,하지만 불행히도, 맞춤법 검사기는 이삭 줍기 할 수있는 것 같지 않습니다 PASSWORD
그 중, 그래서 PASSRWD
내가 지금까지 발견 한 가장 좋은 방법입니다. 등록에 기반을 둔 접근 방식 10
은 엄청나게 다루기 힘들지만, Emacs의 어느 곳에서나 숫자를 생성하는 방법은 많지 않으며, 0
그렇지 않으면 고통스런 성격입니다. (적어도 몇 가지 놀랍게도 유용한 우연의 일치가있었습니다. 커서가 위치에서 끝나고 필요할 때 바로 10
포함 0
합니다.) Emacs가 중복 g
레지스터 작업을 수락하여 레지스터의 내용을 문서에 삽입 한다는 사실 더 직관적 인 것 외에도i
.)