키 조합을 누른 후 터미널 / tty에이 "(arg : 1)"이 나타나는 것은 무엇입니까?


21

가상 터미널에서 (실수로) Win+를 누르고 다음 1으로 구성된 새 줄을 얻었습니다.

(arg: 1)

계속 Win누르고있는 동안, 누른 모든 숫자는 괄호 안의 숫자에 추가됩니다 (예 : Winand 1+ 4yields) (arg:14).

(해제 후 나는 경우 Win) 어떤 키를 누르면, 그 문자는 숫자 읽기 수만큼 인쇄하고 (arg: ...)표현은 표준 메시지로 대체됩니다.

아무도 여기에서 무슨 일이 일어나는지 알고 있습니까?

답변:


24

이것은 readline 라이브러리의 기능인 숫자 인수입니다bash .

digit-argument (M-0, M-1, ..., M--)
    Add  this digit to the argument already accumulating, or start a
    new argument. M-- starts a negative argument.

이 기능을 사용하면 현재 편집 된 명령 줄에서 텍스트를 쉽게 추가하거나 삭제할 수 있습니다. 작성하고 싶다고합시다 echo gggg.

  1. echo뒤에 공백을 입력하십시오
  2. 메타의 (일 수있는 키 입력 Win, Alt및 / 또는 Esc당신을 위해) 및 유형4g

그러나 얼마나 자주 단일 문자를 여러 번 입력해야합니까? 이 기능은 주로 readline 명령을 위해 설계되었습니다 . 참조 설명서의 8.2.1–8.2.3 장 (“C”의미)을 참조 하십시오.Ctrl 메타 의미, "M")를.

Meta 및을 사용하여 한 단어 뒤로 이동할 수 B있지만 여러 단어를 한 번에 뒤로 옮기려면 어떻게해야합니까? 당신은 보류 중 수 Alt를 눌러 B여러 번, 또는 숫자 인수를 사용 :

  1. 커맨드 라인에 오타가 5 단어가 있습니다.

    $ echo one two tree four five six seven
  2. 메타 키를 누르고 입력 한 5후 메타 및을 누릅니다 B. 비올라 :

    $ echo one two ree four five six seven
  3. 오타를 수정하고을 눌러 Enter촬영하거나 End또는 Ctrl+ E를 눌러 줄 끝으로 다시 이동하십시오.

Meta 및을 눌러 한 단어를 삭제할 수 Backspace있지만 한 번에 여러 단어를 삭제하려면 어떻게해야합니까?

  1. 명령 행에서 단어를 잊었습니다.

    $ echo one two four five six seven
  2. 메타 키를 누르고 입력 한 4후 메타 및을 누릅니다 Backspace.

    $ echo one two 
  3. 누락 된 단어 다음에 공백을 입력하고 Ctrl+ Y를 눌러 방금 삭제 한 내용을 붙여 넣습니다. 비올라 :

    $ echo one two three four five six seven

당신은 옳습니다, 당신은 아무것도 삭제하지 않고 방금 설명한대로 거기로 옮길 수도 있습니다. 우리는 Linux를 사용하고 있으며 항상 같은 일을하는 몇 가지 방법이 있습니다.

그리고 "부정적인 주장"은 무엇입니까? 메타 -2메타 Backspace는 명령 행에서 다음 두 단어를 삭제 하지만 똑같이 작동합니다 . “하지만 메타 1메타는D 를 하여 같은 작업을 수행 !"

더 읽을 거리 :


이것은 어떤 bash 버전에서 나왔습니까? 정말 유용 해 보입니다. +1
Sergiy Kolodyazhnyy 2018 년

WSL에Esc
αғsнιη

1
와우! 나는 당신에게 그런 위대한 대답에 대한 유인을 주신 것을 기쁘게 생각합니다 !!
guntbert

우리가 이미 알고있는 것에 대해 이야기 할 때 종종 "인정"할 것은 없다. 우리는 이미 연구를하지 않는 경향이있다. 귀하의 연구는 출처를 포함하여이 답변을 매우 포괄적으로 만듭니다.
guntbert

1
깔끔한 점은 vi와 같은 편집 모드 ( ) 에서 숫자 인수가 mutates mutandis 인 것입니다 set -o vi.
Geremia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.