READLINE(3)

명칭
readline - 유저로부터 편집 기능부로 일행을 받는다

서식

#include <readline/readline.h>
#include <readline/history.h>

char *readline (prompt)
char *prompt;

COPYRIGHT
Readline is Copyright (C) 1989, 1991, 1993, 1995, 1996 by the Free Software Foundation, Inc.

해설

readline (은)는, prompt로서 prompt (을)를 사용해, 단말로부터 일행을 읽어들여, 그 값을 돌려줍니다. prompt 하지만 NULL 인 경우, prompt는 출력되지 않습니다. 돌려주어진 행에는 malloc(3) (을)를 사용해 메모리를 할당할 수 있고 있으므로, 호출측은 종료시에 메모리를 해방하지 않으면 안됩니다. 돌려주어진 행에서는 말미의 개행은 삭제되고 있어 행 중 텍스트만이 남습니다.

readline (은)는, 유저가 행을 입력하고 있는 동안의 편집 기능을 제공합니다. 디폴트에서는, 행 편집 명령은, emacs 의 거기에 닮았습니다. vi 스타일의 편집 인터페이스도 사용할 수 있습니다.

반환값

readline (은)는, 읽어들인 행의 텍스트를 돌려줍니다. 공행은 하늘의 캐릭터 라인을 돌려줍니다. EOF 하지만 행을 독 붐비고 있을 때 나타나 한편, 그 행이 하늘 때는, NULL (을)를 돌려줍니다. 행이 하늘이 아닐 때에 EOF 하지만 읽혔을 때는, 이것은 개행으로서 다루어집니다.

표기법

키스트로크(keystroke)의 표기에서는 emacs 스타일의 표기법이 사용됩니다. 컨트롤 키는, C-key 라고 표기합니다. 예를 들어 C-n 는, Control-N 를 나타냅니다. 메타키는, M-x 라고 표기합니다. 즉 M-x 는, Meta-X 를 나타냅니다. (메타키가 없는 키보드의 경우, M-x 는 ESC x 를 나타냅니다. 즉 Esc key를 누르고 나서 x 키를 누르는 것을 나타냅니다. 이것은 ESC 를 메타·프레픽스로 합니다. 복합 조작의 M-C-x 는, ESC-Control-x 를 나타냅니다. 즉, Esc key를 눌러, 다음에 컨트롤 키를 누르면서 x 키를 누르는 것을 나타냅니다. )

readline 명령은, 수치 인수를 취하는 일이 있습니다. 통상의 경우, 이 인수는 반복의 회수로서 동작합니다. 그러나, 경우에 따라서는, 중요한 의미를 가집니다. 전방을 향해 작용하는 명령 (kill-line 등 ) 에 부의 인수를 건네주면(자), 이 명령은 후방으로 향해 작용합니다. 인수가 주어졌을 때의 행동이 이것과는 다른 명령에는 설명을 붙일 수 있고 있습니다.

명령이 텍스트를 「삭제」 (kill) 한다고 해 기술되고 있는 경우, 소거된 텍스트는, 다음에 되찾을 수 있도록(듯이) 보존 (얀크 yank )됩니다. 삭제된 텍스트는, 삭제 링 (kill ring)에 보존됩니다. 연속해 삭제했을 경우는, 텍스트는 1 개의 유니트에 축적되어 1 번에 전부를 얀크 할 수 있게 됩니다. 텍스트를 삭제하지 않는 명령은, 삭제 링 (kill ring) 상의 텍스트의 덩어리의 단락이 됩니다.

초기화 파일

readline 는, 초기화 파일 (inputrc) 에 명령을 두는 하는 것으로 커스터마이즈 됩니다. 이 파일의 이름은, 환경 변수 INPUTRC 의 값으로부터 놓칩니다. 이 환경 변수가 설정되어 있지 않은 경우는, 디폴트의 ~/.inputrc 하지만 사용됩니다. readline 프로그램 라이브러리를 사용하고 있는 프로그램을 기동하면(자), 초기화 파일이 읽혀 키 바인딩과 변수가 설정됩니다. readline 초기화 파일에서는, 그저 2,3 의 기본적인 구조 구문만이 허가되고 있습니다. 공백행은 무시됩니다. # 로 시작되는 행은 코멘트로 간주해집니다. $ 로 시작되는 행은 조건문으로 간주해집니다. 그 외의 행은 키 바인딩과 변수의 설정을 나타냅니다. 이 프로그램 라이브러리를 사용하고 있는 각 프로그램은, 독자적인 명령와 바인딩을 추가할 수가 있습니다.

이하의 예를 참조해 주세요.

    M-Control-u: universal-argument
(이)나
    C-Meta-u: universal-argument
(을)를 inputrc 에 두면(자), M-C-u 로 readline 의 명령 universal-argument 가 실행됩니다.

키의 바인딩을 행하고 있을 때는, 다음의 상징적 캐릭터명 RUBOUT, DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE, TAB 하지만 인식됩니다. 한층 더 명령명에 가세해 readline 는 키를 눌렀을 때에 캐릭터 라인이 삽입되도록(듯이) 키에 바인드 하도록(듯이)도 할 수 있습니다. (매크로 )

  키 바인드
inputrc 파일 중(안)에서 키 바인드를 제어하는 문법은 단순합니다. 필요한 것은, 명령의 이름이나 매크로의 텍스트, 그리고 거기에 바인드 하는 키 순차 순서만입니다. 이름은 2 개의 방법의 어느 쪽인지로 지정할 수 있습니다. 1 개(살)은, 상징적인 키의 이름으로 지정하는 방법, 이것은 경우에 따라서는 Meta- 나 Control- 프레픽스가 다합니다. 이제(벌써) 1 개(살)은, 키 순차 순서를 지정하는 방법입니다. keyname:function-name 또는, keyname:macro 라고 하는 형식을 사용했을 경우, keyname (은)는 영어로 써진 키의 이름이 됩니다. 예를 들면,

    Control-u: universal-argument
    Meta-Rubout: backward-kill-word
    Control-o: ">&output"

위의 예에서는, C-u 하지만 univesal-argument 에 바인드 되어 M-DEL 하지만 backward-kill-word 에 바인드 되어 C-o 하지만 우변에 기술되고 있는 매크로 (여기에서는 텍스트 >&output (을)를 그 행에 삽입한다 ) 의 실행에 바인드 됩니다.

2 번째의, "keyseq":function-name 또는 "keyseq":macro 그렇다고 하는 형식에서는, 키 순차 순서 ( keyseq )(은)는, 키 순차 순서 전체를 나타내는 캐릭터 라인을 이중 인용부호로 둘러싸 지정한다고 한다 점으로 전출의 키명 ( keyname )(와)과는 다릅니다. 이하의 예의 같게, GNU Emacs 의 스타일의 키 이스케이프를 사용할 수 있습니다.

    "\C-u": universal-argument
    "\C-x\C-r": re-read-init-file
    "\e[11~": "Function Key 1"

이 예에서는, C-u (은)는 다시 universal-argument 에 바인드 되어 C-x C-r 하 re-read-init-file 에 바인드 되어 ESC [ 1 1 ~ (은)는 텍스트 Function Key 1 의 삽입에 바인드 되고 있습니다. GNU Emacs 스타일의 escape sequence의 일람을 이하에 나타냅니다.
    \C- 컨트롤 프리픽스
    \M- 메타프레피크스
    \e  escape character
    \\  backslash
    \"  캐릭터 「"」
    \'  캐릭터 「'」

GNU Emacs 스타일의 escape sequence 외에, 이하와 같은 backslash에 의한 이스케이프도 사용할 수 있습니다.
    \a  경고 (벨 )
    \b  후퇴 (backspace)
    \d  소거 (delete)
    \f  개페이지 (form feed)
    \n  개행 (newline)
    \r  복귀 (carrige return)
    \t  수평 탭
    \v  수직 탭
    \nnn
        ASCII 코드가 8 진치 nnn ( 1 자리수에서 3 자리수 )인 캐릭터
    \xnnn
        ASCII 코드가 16 진치 nnn ( 1 자리수에서 3 자리수 )인 캐릭터

매크로의 텍스트를 입력하는 경우는, 홑겹 인용부호나 이중 인용부호를 사용해 매크로 정의를 나타내 주세요. 인용부호로 둘러싸이지 않은 텍스트는 기능명으로 간주해집니다. 매크로 본체에서는, 상기의 backslash에 의한 이스케이프가 전개됩니다. backslash는, 「"」과「'」도 포함해 매크로 텍스트의 어느 캐릭터도 쿼츠 합니다.

bash 그럼, 현재의 readline 의 키 바인딩을 bind 편입 명령을 이용해 표시하거나 수정하거나 할 수가 있습니다. 편집 모드는, -o 옵션을 set 편입 명령에 사용하는 것으로, 대화 형식에서 사용하면서 바꿀 수도 있습니다. 이 프로그램 라이브러리를 사용하고 있는 다른 프로그램은, 같은 기구를 제공합니다. 새로운 바인딩을 집어 넣기 위한 다른 수단을, 프로그램이 제공하고 있지 않는 경우여도 inputrc 파일을 편집해 다시 읽기 보고 할 수도 있습니다.

  변수
readline 에는, 동작을 한층 더 커스터마이즈하기 위한 변수가 있습니다. 변수는, 이하의 서식에서 inputrc 파일 중(안)에서 설정할 수 있습니다.

    set variable-name value

특별히 거절하지 않는 이상 readline 의 변수는 On 인가 Off 의 값을 받습니다. 변수와 그 기본값은 이하대로입니다.

bell-style (audible)
    readline 로 단말 벨을 울리려고 할 때의 처리 방법을 제어합니다. none 로 설정하면(자), readline 는 벨을 울리지 않습니다. visible 로 설정하면(자), readline 는 가능하면 가시화 벨 (visible bell)을 사용합니다. audible 로 설정하면(자), readline 는 단말의 벨을 울리려고 합니다.
comment-begin (``#'')
    insert-comment 명령을 실행했을 때에 vi 모드로 삽입되는 캐릭터 라인입니다. 이 명령은, emacs 모드에서는 M-# 에, vi 명령 모드에서는 # 에 바인드 되고 있습니다.
completion-ignore-case (Off)
    On 로 설정하면(자), readline 는, 대문자와 소문자를 구별하지 않고 (case-insensitive) 파일명의 매치과 보간을 실시합니다.
completion-query-items (100)
    possible-completions 명령이 생성한 보간 후보를 표시하는지 어떤지를 유저에게 문의할 때의 개수입니다. 이것은 제로 이상의 정수치로 설정해 주세요. 보간 후보의 수가 이 변수의 값이상이 되면(자), 유저에게 보간 후보를 표시하는지 어떤지를 문의합니다. 그 이외 때는 단순하게 후보의 일람을 단말에 표시합니다.
convert-meta (On)
    On 로 설정하면(자), readline 는 8 번째의 비트가 세트 되고 있는 캐릭터를, 8 번째의 비트를 제거해 (strip) escape character를 앞에 두고 붙이는 방식으로, ASCII 의 키의 및 변환합니다. (메타프레픽스로서 Esc key를 사용하고 있게 됩니다 )
disable-completion (Off)
    On 로 설정하면(자), readline 는 단어의 보간을 억제하게 됩니다. 보간 캐릭터 (completion character)는 self-insert 에 MAP 되었는지와 같이 행에 삽입되게 됩니다.
editing-mode (emacs)
    readline 를 emacs 와 같은 키 바인딩으로 시작하는지, vi 와 같은 키 바인딩으로 시작하는지를 제어합니다. editing-mode (은)는, emacs 인가 vi (으)로 설정할 수 있습니다.
enable-keypad (Off)
    On 로 설정하면(자), readline 는 불려 갔을 때에 어플리케이션 키 패드를 사용할 수 있도록(듯이) 하려고 합니다. 일부의 시스템에서는, 커서 키를 사용할 수 있도록(듯이) 하기 위해서 이 설정이 필요합니다.
expand-tilde (Off)
    on 로 설정하면(자), readline 가 단어를 보간 하려고 했을 때에 치르다의 전개가 행해집니다.
horizontal-scroll-mode (Off)
    On 로 설정하면(자), readline 는 표시에 1 행 밖에 사용하지 않게 됩니다. 입력이 화면의 폭보다 길어졌을 경우는, 새로운 행에 되풀이하는 것이 아니라, 화면의 1 행으로 수평에 입력을 스크롤 합니다.
keymap (emacs)
    현재의 readline 키 MAP를 설정합니다. 적절한 키 MAP명은, emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, vi-insert 입니다. vi 는 vi-command 와 같아, emacs 는 emacs-standard 와 같습니다. 기본값은 emacs 입니다. editing-mode 의 값도 디폴트 키 MAP에 영향을 줍니다.
mark-directories (On)
    On 로 설정하면(자), 보간 된 디렉토리명에 slash를 붙일 수 있습니다.
mark-modified-lines (Off)
    On 로 설정하면(자), 수정된 히스토리행 (history line)은, asterisk (*)를 선두에 붙여 표시됩니다.
meta-flag (Off)
    On 로 설정하면(자), readline 는, 단말이 이것을 서포트할 수 있는지 어떤지에 관련되지 않고, 8 비트 입력을 가능하게 합니다. (즉, 읽어들인 캐릭터로부터 상위 비트를 제거하지 않습니다. )
output-meta (Off)
    On 로 설정하면(자), readline 는, 8 번째의 비트가 세트 된 캐릭터를, 메타프레픽스에스케이프시켄스로서가 아니고, 직접 표시하게 됩니다.
print-completions-horizontally (Off)
    On 로 설정하면(자), readline 는 매치 한 보간 후보의 일람을, 화면의 수직 방향은 아니고 수평 방향으로, 알파벳순서로 정렬 해 표시하게 됩니다.
show-all-if-ambiguous (Off)
    보간 기능의 디폴트의 동작을 변경합니다. On 로 설정하면(자), 보간 후보의 말이 1 보다 많을 때, 벨을 울리지 않고 즉석에서 매치 한 것을 일람표 가리킵니다.
visible-stats (Off)
    On 로 설정하면(자), 보간 후보의 일람을 표시할 경우에 stat(2)가 보고하는 파일 타입을 나타내는 캐릭터가 파일명에 덧붙일 수 있습니다.

  조건 콘스트라크트
readline 는, C 프리프로세서의 조건 컴파일 기능과 근본적으로 같은 기능을 실현하고 있습니다. 이것은 키 바인드와 변수 설정을 조건 판정의 결과에 따라 실행하는 것을 가능하게 합니다. 여기에서는, 4 개의 인스트럭션을 사용할 수 있습니다.

$if $if 콘스트라크트는, 편집 모드, 사용하고 있는 단말, readline 를 사용하고 있는 어플리케이션에 관련 지어 바인드 하는 것을 가능하게 합니다. 조건 판정의 텍스트는 그 행의 끝까지 계속됩니다. 구분하기 위한 캐릭터는 없습니다.

    mode
        $if 지시문의 mode= 그렇다고 하는 형식은 readline 가 emacs 모드가 되어 있을까 vi 모드가 되어 있을까를 판정하는데 이용됩니다. 이것은 set keymap 명령와 함께 사용되겠지요. 예를 들면, readline 가 emacs 모드로 기동하고 있는 경우에 한해서, emacs-standard 키 MAP와 emacs-ctlx 키 MAP에 바인딩을 설정한다, 라고 하도록(듯이)입니다.

    term
        term= 라고 하는 형식은, 단말의 function key를 누르면(자) 키의 줄을 출력하도록(듯이) 바인드 하는, (와)과 같이, 단말에 고유한 키 바인드를 포함하기 위해서(때문에) 이용되겠지요. = 의 우측의 워드는, 단말의 풀네임과 최초의 - 의 전까지의 단말명의 일부와에 대해서 판정됩니다. 예를 들어 sun 하 sun (와)과 sun-cmd 의 양쪽 모두와에 일치합니다.

    application
        application 콘스트라크트는 어플리케이션에 고유한 설정을 포함하기 위해서(때문에) 이용됩니다. readline 프로그램 라이브러리를 사용하고 있는 각 프로그램은 application name 를 설정해, 초기화 파일은 그 값을 판정할 수가 있습니다. 이것을 사용하면(자), 특정의 프로그램에 있어 편리한 기능에 키 순차 순서를 바인드 한다, 라고 했던 것(적)이 가능합니다. 예를 들어 이하의 명령은, bash 의 현재의 말이나 전의 말을 인용부호로 묶는 키 순차 순서를 추가합니다.

        $if bash
        # Quote the current or previous word
        "\C-xq": "\eb\"\ef\""
        $endif

$endif
    위의 예에 나오는 이 명령은, $if 커멘드를 종료하는 것입니다.

$else
    $if 지시문의 분기 중(안)에서 나오는 이 명령은, 판정이 가짜 때에 실행됩니다.

$include
    이 지시문은 1 개의 파일명을 인수로서 취해, 그 파일로부터 명령와 바인딩을 읽어들입니다. 예를 들어 이하의 지시문에서는, /etc/inputrc 가 읽힙니다.

    $include  /etc/inputrc

검색

readline 에는, 명령 히스토리로부터 특정의 캐릭터 라인을 포함한 행을 검색한다 명령이 있습니다. 검색 모드에는, 증분 ( incremental )(와)과 비증분 ( non-incremental )의 2 개의 모드가 있습니다.

증분 검색은, 유저가 검색 캐릭터 라인을 다 입력하기 전에 개시합니다. 검색 캐릭터 라인의 각 캐릭터가 입력될 때마다, readline 는, 그때까지 입력된 캐릭터 라인과 일치한 히스토리의, 다음의 엔트리를 표시합니다. 증분 검색에서는, 목적의 히스토리 엔트리의 검색에 필요한 최저한의 캐릭터만이 필요합니다. 이스케이프 캐릭터를 사용하면(자) 증분 검색을 종료할 수 있습니다. Control-J 도 검색을 종료할 수 있습니다. Control-G 는 증분 검색을 중단 (abort)해, 원의 행에 되돌립니다. 검색이 종료하면(자), 검색 캐릭터 라인을 포함한 히스토리 엔트리가 현재의 행이 됩니다. 히스토리 리스트안의, 일치하는 다른 엔트리를 찾으려면 , Control-S 나 Control-R 를 필요한 만큼 입력합니다. 이것은 그때까지 입력한 검색 캐릭터 라인과 일치하는 것 같은 다음의 행을 찾아 히스토리를 후방이나 전방으로 검색합니다. readline 명령에 바인드 된 다른 키 순차 순서가 사용되면(자), 검색을 종료해 그 명령을 실행합니다. 예를 들어, newline 가 사용되면(자) 검색을 종료해 그 행을 받아들이므로, 그 히스토리 리스트에 있던 해당하는 명령이 실행됩니다.

비증분 검색은, 검색 캐릭터 라인 전체를 읽어들이고 나서 검색을 개시해, 일치하는 히스토리행을 찾습니다. 검색 캐릭터 라인은, 유저가 입력한 것이거나 현재의 행의 내용의 일부에서 만나거나 합니다.

편집 명령
이하는, 명령명과 바인드 되고 있는 디폴트의 키 순차 순서의 일람입니다. 키 순서가 기재되지 않은 명령에는, 디폴트에서는 바인드 되고 있지 않습니다.

  이동 명령

beginning-of-line (C-a)
    현재행의 선두로 이동합니다.
end-of-line (C-e)
    그 행의 말미로 이동합니다.
forward-char (C-f)
    1 캐릭터 진행됩니다.
backward-char (C-b)
    1 캐릭터 돌아옵니다.
forward-word (M-f)
    다음의 말의 말미에 진행됩니다. 단어는, 영숫자 (영문자와 숫자 )로 구성되어 있습니다.
backward-word (-b)
    현재의 말의 선두나 전의 말로 돌아옵니다. 단어는, 영숫자 (영문자와 숫자 )로 구성되어 있습니다.
clear-screen (C-l)
    현재의 행을 화면의 최상정도에 남겨 화면을 클리어 합니다. 인수가 있는 경우는, 화면을 클리어 하지 않고 현재의 행을 리프레쉬 합니다.
redraw-current-line
    현재의 행을 리프레쉬 합니다.

  히스토리 조작 명령

accept-line (Newline, Return)
    커서의 위치에 관련되지 않고 행을 받아들입니다. 이 행이 하늘이 아닌 경우는, 히스토리 리스트에 추가합니다. 이 행이 히스토리행을 수정한 것인 경우는, 해당하는 히스토리행을 원래 상태에 되돌립니다.
previous-history (C-p)
    히스토리 리스트를 돌아와, 리스트로부터 전의 명령을 꺼냅니다.
next-history (C-n)
    히스토리 리스트를 진행시켜 리스트로부터 다음의 명령을 꺼냅니다.
beginning-of-history (M-<)
    히스토리의 최초의 행으로 이동합니다.
end-of-history (M->)
    입력 히스토리의 마지막에 이동합니다. 예를 들어 현재 입력하고 있는 행입니다.
reverse-search-history (C-r)
    현재의 행으로부터 필요한 만큼 히스토리를 「위에」이동하면서 후방 검색합니다. 이것은 증분 검색입니다.
forward-search-history (C-s)
    현재의 행으로부터 필요한 만큼 히스토리를 「아래에」이동하면서 전방 검색합니다. 이것은 증분 검색입니다.
non-incremental-reverse-search-history (M-p)
    비증분 검색으로 유저가 지정한 캐릭터 라인을 찾아, 현재의 행으로부터 히스토리를 후방에 검색합니다.
non-incremental-forward-search-history (M-n)
    비증분 검색으로 유저가 지정한 캐릭터 라인을 전방으로 검색합니다.
history-search-forward
    현재행의 선두와 커서의 현재 위치 (포인트 point)의 사이에 있는 캐릭터 라인을 찾아, 히스토리를 전방으로 검색합니다. 이것은 비증분 검색입니다.
history-search-backward
    현재행의 선두와 포인트의 사이에 있는 캐릭터 라인을 찾아, 히스토리를 전방으로 검색합니다. 이것은 비증분 검색입니다.
yank-nth-arg (M-C-y)
    전의 명령의 1 번째의 인수 (통상은 전의 행의 2 번째의 말 )를 포인트 (커서의 현재 위치 )에 삽입합니다. 인수 n (이)가 있는 경우는, 전의 명령의 n 번째의 말 (전의 명령의 말은 0 번째로부터 시작됩니다 ) (을)를 삽입합니다. 인수가 부 때는, 전의 명령의 말미로부터 n 번째의 말을 삽입합니다.
yank-last-arg (M-. , M-_)
    전의 명령의 마지막 인수 (전의 히스토리 엔트리의 마지막 말 ) (을)를 삽입합니다. 인수가 있을 때는, yank-nth-arg 와 완전히 똑같이 대접합니다. yank-last-arg 를 연속해 호출하면(자), 각 행의 마지막 인수를 삽입하면서 히스토리 리스트를 돌아옵니다.

  텍스트 변경 명령

delete-char (C-d)
    커서아래의 캐릭터를 소거합니다. 포인트가 행의 선두에 있어, 그 행에 캐릭터가 없고, 마지막에 입력한 캐릭터가 delete-char 에 바인드되어 있지 않은 경우는 EOF (을)를 돌려줍니다.
backward-delete-char (Rubout)
    커서의 전에 있는 캐릭터를 소거합니다. 수치 인수가 있을 때는, 소거된 텍스트를 삭제 링에 보존합니다.
quoted-insert (C-q, C-v)
    다음에 입력된 캐릭터를 그대로행에 추가합니다. 이것은, C-q 와 같은 캐릭터를 삽입하는 방법입니다.
tab-insert (M-TAB)
    탭 캐릭터를 삽입합니다.
self-insert (a, b, A, 1, !, ...)
    입력된 캐릭터를 삽입합니다.
transpose-chars (C-t)
    포인트의 전의 캐릭터를 포인트의 캐릭터의 뒤에 드러그 합니다. 포인트도 뒤로 이동합니다. 포인트가 줄 끝에 있는 경우는, 포인트의 전의 2 개의 캐릭터를 바꿔 넣습니다. 부의 인수는 동작하지 않습니다.
transpose-words (M-t)
    커서의 전의 말을 커서의 뒤의 말에 드러그 합니다. 커서도 그 말 위로 이동합니다.
upcase-word (M-u)
    현재의 말 (또는 그 후의 말 )을 대문자로 합니다. 부의 인수가 있을 때는 전의 말이 대문자가 됩니다만, 포인트는 이동하지 않습니다.
downcase-word (M-l)
    현재의 말 (또는 그 후의 말 )을 소문자로 합니다. 부의 인수가 있을 때는 전의 말이 소문자가 됩니다만, 포인트는 이동하지 않습니다.
capitalize-word (M-c)
    현재의 말 (또는 그 후의 말 )의 머리 글자를 대문자로 합니다. 부의 인수가 있을 때는 전의 말의 머리 글자를 대문자로 합니다만, 포인트는 이동하지 않습니다.

  삭제 (kill)와 얀크

kill-line (C-k)
    현재의 커서의 위치로부터 줄 끝까지의 텍스트를 삭제 (kill)합니다.
backward-kill-line (C-x Rubout)
    줄머리까지 후방에 삭제합니다.
unix-line-discard (C-u)
    포인트로부터 줄머리까지 후방에 삭제합니다. 삭제된 텍스트는 삭제 링에 보존됩니다.
kill-whole-line
    커서 위치에 관련되지 않고, 현행 라인의 모든 캐릭터를 소거합니다.
kill-word (M-d)
    커서로부터 현재의 말의 말미까지, 단어간의 경우는 다음의 말의 말미까지를 소거합니다. 단어 경계는, forward-word 로 사용하는 것 것과 같습니다.
backward-kill-word (M-Rubout)
    커서의 뒤의 말을 소거합니다. 단어 경계는, backward-word 로 사용하는 것 것과 같습니다.
unix-word-rubout (C-w)
    공백을 단어 경계로서 사용해, 커서의 전의 워드를 삭제합니다. 단어 경계는 backward-kill-word (와)과는 다릅니다.
delete-horizontal-space (M-\)
    포인트 주위의 모든 공백과 탭을 소거합니다.
kill-region
    포인트와 마크 (보존된 커서 위치 )의 사이의 텍스트를 삭제합니다. 이 텍스트는, 리젼 (region)으로서 참조됩니다.
copy-region-as-kill
    리젼의 텍스트를 삭제 버퍼에 카피합니다.
copy-backward-word
    포인트의 전의 말을 삭제 버퍼에 카피합니다. 단어 경계는 backward-word 와 같습니다.
copy-forward-word
    포인트의 다음의 말을 삭제 버퍼에 카피합니다. 단어 경계는 forward-word 와 같습니다.
yank (C-y)
    삭제 링의 최상정도를 커서 위치의 버퍼에 얀크 합니다.
yank-pop (M-y)
    삭제 링을 회전해, 새롭고 최상정도가 된 것을 얀크 합니다. yank 인가 yank-pop 의 다음에 밖에 동작하지 않습니다.

  수치 인수
digit-argument (M-0, M-1, ..., M--)
    벌써 축적되고 있는 인수에 이 숫자를 추가하는지, 새로운 인수를 개시합니다. M-- 는, 부의 인수를 개시합니다.
universal-argument
    인수를 지정하는 다른 방법입니다. 이 명령에 1 개 이상의 숫자가 계속되는 경우, 혹은 마이너스 기호의 뒤에 1 개 이상의 숫자가 계속되는 경우 (은)는 이 숫자가 인수가 됩니다. 이 명령에 숫자가 계속되는 경우, universal-argument (을)를 재차 실행하는 것으로 수치 인수는 끝납니다만, 그 이외의 경우는 무시됩니다. 특별한 경우로서 이 명령의 직후에 숫자나 마이너스 기호 이외의 캐릭터가 계속될 때는, 다음의 명령의 인수의 수치는 4 배 됩니다. 초기 상태에서의 인수의 수치는 1 이므로, 이 기능을 최초로 실행하면(자) 인수의 수치는 4 가 되어, 2 회 실행하면(자) 인수의 수치는 16 이 된다, 와 같이 됩니다.

  보간 (completion)

complete (TAB)
    포인트의 전의 텍스트로 보간 (complition)을 실행합니다. 실제의 보간은 어플리케이션에 고유합니다. 예를 들어, bash (은)는, 각각, 변수 (텍스트가 $ 로 시작되는 경우 ) , 유저명 (텍스트가 ~ 로 시작되는 경우 ) , 호스트명 (텍스트가 @ 로 시작되는 경우 ) , 명령 (앨리어스(alias)와 함수를 포함한 경우 ) (으)로서 텍스트를 취급해, 보간을 실행합니다. 이것들에 들어맞지 않는 경우는 파일명의 보간이 실행됩니다. 한편, gdb 그럼 프로그램의 함수와 변수의 보간이 인정되고 있어 특정의 상황에서만 파일명 보간이 시도됩니다.
possible-completions (M-? )
    포인트의 전의 텍스트에 대한 보간 후보 일람을 표시합니다.
insert-completions (M-*)
    포인트의 전의 텍스트에 대해, possble-completions 에 의해 생성되었다 모든 보간 후보를 삽입합니다.
menu-complete
    complete 를 닮아 있습니다만, 보간 후보의 일람 중 하나를 이용해 보간 해, 말을 옮겨놓습니다. menu-complete 를 반복해 실행하면(자), 일치하는 것을 차례로 삽입하면서, 보간 후보의 일람을 한개씩 진행됩니다. 보간 후보 일람의 말미에 이르면(자) 벨이 울려, 원래의 텍스트가 복원됩니다. 인수 n 는, 보간 후보 일람을 n 만 진행됩니다. 부의 인수는 리스트를 돌아옵니다. 이 명령은, TAB 에 바인드 되는 것을 상정하고 있습니다만, 디폴트에서는 바인드 되고 있지 않습니다.

  키보드 매크로

start-kbd-macro (C-x ()
    키보드로부터 입력된 캐릭터의, 현재의 키보드 매크로에의 보존을 개시합니다.
end-kbd-macro (C-x ))
    키보드로부터 입력된 캐릭터의, 현재의 키보드 매크로에의 보존을 정지합니다.
call-last-kbd-macro (C-x e)
    키보드로부터 입력되었는지와 같이, 매크로중의 캐릭터를 표시해, 마지막에 정의된 키보드 매크로를 재실행합니다.

  그 외

re-read-init-file (C-x C-r)
    inputrc 파일의 내용을 읽어들여, 그 파일로 발견된 바인드나 변수 할당을 짜넣습니다.
abort (C-g)
    현재의 편집 명령을 중단해, 단말 벨을 울립니다. ( bell-style 의 설정에 따릅니다 )
do-uppercase-version (M-a, M-b, M-x, ...)
    메타화 (metafy) 된 캐릭터 x 가 소문자인 경우, 상당하는 대문자에 바인드 된 명령을 실행합니다.
prefix-meta (ESC)
    다음에 입력된 캐릭터를 메타화합니다. ESC f 하 Meta-f (와)과 동등합니다.
undo (C-_, C-x C-u)
    각 행으로 개별적으로 기억되는, 증분 취소 (incremental undo)입니다.
revert-line (M-r)
    이 행에 행해진 변경의 모두를 취소합니다. 이것은 undo 명령을 이 행으로 필요한 만큼 반복해, 초기 상태에 되돌리는 것에 닮았습니다.
tilde-expand (M-~)
    현재의 말에 치르다 전개를 실행합니다.
set-mark (C-@, M-<space>)
    현재의 포인트에 마크 합니다. 수치 인수를 지정하면(자), 마크는 그 자리소로 설정됩니다.
exchange-point-and-mark (C-x C-x)
    마크와 포인트를 바꿔 넣습니다. 커서의 현재 위치는 보존된 위치로 설정되어 낡은 커서 위치는 마크로서 보존됩니다.
character-search (C-])
    캐릭터가 읽혀 그 캐릭터와 다음에 일치하는 장소에 포인트가 이동합니다. 부의 수를 사용하면(자), 앞쪽에서 일치하는 것이 검색됩니다.
character-search-backward (M-C-])
    캐릭터가 읽혀 앞쪽에서 그 캐릭터와 일치하는 장소에 포인트가 이동합니다. 부의 수를 사용하면(자), 후의 (분)편으로 일치하는 것이 검색됩니다.
insert-comment (M-#)
    readline 의 comment-begin 변수의 값이 현재행의 선두에 삽입되어 개행이 입력되었는지와 같이 그 행을 받아들일 수 있습니다. 이것에 의해, 현재행이 쉘의 코멘트가 됩니다.
dump-functions
    모든 기능명과 그 키 바인드를 readline 의 출력 스트림에 인자합니다. 수치 인수를 지정하면(자), 출력은 inputrc 파일의 일부로 할 수 있도록(듯이) 포맷 됩니다.
dump-variables
    모든 설정 가능한 변수와 그 값을 readline 의 출력 스트림에 인자합니다. 수치 인수를 지정하면(자), 출력은 inputrc 파일의 일부로 할 수 있도록(듯이) 포맷 됩니다.
dump-macros
    매크로에 바인드 된 모든 readline 키 순차 순서, 및 그것이 출력하는 string를 인자합니다. 수치 인수를 지정하면(자), 출력은 inputrc 파일의 일부로 할 수 있도록(듯이) 포맷 됩니다.
emacs-editing-mode (C-e)
    vi 편집 모드가 되어 있는 경우에, emacs 편집 모드로 전환합니다.
vi-editing-mode (M-C-j)
    emacs 편집 모드가 되어 있는 경우에, vi 편집 모드로 전환합니다.

디폴트의 키 바인드

이하는, 디폴트의 emacs 바인드와 vi 바인드의 리스트입니다. 제 8 비트가 세트 되고 있는 캐릭터는, M-<character> 라고 표기합니다. 이것은, 메타화 된 캐릭터를 나타냅니다. emacs 표준 바인드의 리스트에 실려 있지 않은, 인자 가능한 ASCII 캐릭터는, self-insert 기능에 연결시킬 수 있고 있습니다. 이 기능은, 주어진 캐릭터를 입력행에 삽입합니다. vi 삽입 모드의 경우, 특필하고 있지 않는 모든 캐릭터는 self-insert 에 바인드 되고 있습니다. C-Z 나 C-C 와 같은, stty(1) (이)나 단말 드라이버로 시그널의 생성에 할당할 수 있고 있는 캐릭터는, 그 기능을 보관 유지합니다. 메타화 된 대문자와 소문자의 캐릭터는, emacs 모드의 메타키맙과 같은 기능에 바인드 되고 있습니다. 나머지의 캐릭터는 바인드 되지 않고, 그렇게 말한 캐릭터를 사용하면(자), readline 는 ( bell-style 변수의 설정에 따라 ) 벨을 울립니다.

  Emacs 모드

    emacs 표준 바인드

    "C-@"  set-mark
    "C-A"  beginning-of-line
    "C-B"  backward-char
    "C-D"  delete-char
    "C-E"  end-of-line
    "C-F"  forward-char
    "C-G"  abort
    "C-H"  backward-delete-char
    "C-I"  complete
    "C-J"  accept-line
    "C-K"  kill-line
    "C-L"  clear-screen
    "C-M"  accept-line
    "C-N"  next-history
    "C-P"  previous-history
    "C-Q"  quoted-insert
    "C-R"  reverse-search-history
    "C-S"  forward-search-history
    "C-T"  transpose-chars
    "C-U"  unix-line-discard
    "C-V"  quoted-insert
    "C-W"  unix-word-rubout
    "C-Y"  yank
    "C-]"  character-search
    "C-_"  undo
    " " to "/"  self-insert
    "0"  to "9"  self-insert
    ":"  to "~"  self-insert
    "C-? "  backward-delete-char

    emacs 메타키바인드

    "M-C-G"  abort
    "M-C-H"  backward-kill-word
    "M-C-I"  tab-insert
    "M-C-J"  vi-editing-mode
    "M-C-M"  vi-editing-mode
    "M-C-R"  revert-line
    "M-C-Y"  yank-nth-arg
    "M-C-["  complete
    "M-C-]"  character-search-backward
    "M-space"  set-mark
    "M-#"  insert-comment
    "M-&"  tilde-expand
    "M-*"  insert-completions
    "M--"  digit-argument
    "M-. "  yank-last-arg
    "M-0"  digit-argument
    "M-1"  digit-argument
    "M-2"  digit-argument
    "M-3"  digit-argument
    "M-4"  digit-argument
    "M-5"  digit-argument
    "M-6"  digit-argument
    "M-7"  digit-argument
    "M-8"  digit-argument
    "M-9"  digit-argument
    "M-<"  beginning-of-history
    "M-="  possible-completions
    "M->"  end-of-history
    "M-? "  possible-completions
    "M-B"  backward-word
    "M-C"  capitalize-word
    "M-D"  kill-word
    "M-F"  forward-word
    "M-L"  downcase-word
    "M-N"  non-incremental-forward-search-history
    "M-P"  non-incremental-reverse-search-history
    "M-R"  revert-line
    "M-T"  transpose-words
    "M-U"  upcase-word
    "M-Y"  yank-pop
    "M-\"  delete-horizontal-space
    "M-~"  tilde-expand
    "M-C-? "  backward-delete-word
    "M-_"  yank-last-arg

    emacs 콘트로르키바인드

    "C-XC-G"  abort
    "C-XC-R"  re-read-init-file
    "C-XC-U"  undo
    "C-XC-X"  exchange-point-and-mark
    "C-X("  start-kbd-macro
    "C-X)"  end-kbd-macro
    "C-XE"  call-last-kbd-macro
    "C-XC-? "  backward-kill-line

  VI 모드바인드

    VI 삽입 모드 기능명

    "C-D"  vi-eof-maybe
    "C-H"  backward-delete-char
    "C-I"  complete
    "C-J"  accept-line
    "C-M"  accept-line
    "C-R"  reverse-search-history
    "C-S"  forward-search-history
    "C-T"  transpose-chars
    "C-U"  unix-line-discard
    "C-V"  quoted-insert
    "C-W"  unix-word-rubout
    "C-Y"  yank
    "C-["  vi-movement-mode
    "C-_"  undo
    " " to "~"  self-insert
    "C-? "  backward-delete-char

    VI 명령 모드 기능명

    "C-D"  vi-eof-maybe
    "C-E"  emacs-editing-mode
    "C-G"  abort
    "C-H"  backward-char
    "C-J"  accept-line
    "C-K"  kill-line
    "C-L"  clear-screen
    "C-M"  accept-line
    "C-N"  next-history
    "C-P"  previous-history
    "C-Q"  quoted-insert
    "C-R"  reverse-search-history
    "C-S"  forward-search-history
    "C-T"  transpose-chars
    "C-U"  unix-line-discard
    "C-V"  quoted-insert
    "C-W"  unix-word-rubout
    "C-Y"  yank
    " "  forward-char
    "#"  insert-comment
    "$"  end-of-line
    "%"  vi-match
    "&"  vi-tilde-expand
    "*"  vi-complete
    "+"  next-history
    ","  vi-char-search
    "-"  previous-history
    ". "  vi-redo
    "/"  vi-search
    "0"  beginning-of-line
    "1" to "9"  vi-arg-digit
    ";"  vi-char-search
    "="  vi-complete
    "? "  vi-search
    "A"  vi-append-eol
    "B"  vi-prev-word
    "C"  vi-change-to
    "D"  vi-delete-to
    "E"  vi-end-word
    "F"  vi-char-search
    "G"  vi-fetch-history
    "I"  vi-insert-beg
    "N"  vi-search-again
    "P"  vi-put
    "R"  vi-replace
    "S"  vi-subst
    "T"  vi-char-search
    "U"  revert-line
    "W"  vi-next-word
    "X"  backward-delete-char
    "Y"  vi-yank-to
    "\"  vi-complete
    "^"  vi-first-print
    "_"  vi-yank-arg
    "`"  vi-goto-mark
    "a"  vi-append-mode
    "b"  vi-prev-word
    "c"  vi-change-to
    "d"  vi-delete-to
    "e"  vi-end-word
    "f"  vi-char-search
    "h"  backward-char
    "i"  vi-insertion-mode
    "j"  next-history
    "k"  prev-history
    "l"  forward-char
    "m"  vi-set-mark
    "n"  vi-search-again
    "p"  vi-put
    "r"  vi-change-char
    "s"  vi-subst
    "t"  vi-char-search
    "u"  undo
    "w"  vi-next-word
    "x"  vi-delete
    "y"  vi-yank-to
    "|"  vi-column
    "~"  vi-change-case

관련 항목
The Gnu Readline Library, Brian Fox and Chet Ramey
The Gnu History Library, Brian Fox and Chet Ramey
bash(1)

관련 파일
각각의 readline 초기화 파일

저자
Brian Fox, Free Software Foundation (주요 저자)
bfox@ai.MIT.Edu

Chet Ramey, Case Western Reserve University
chet@ins.CWRU.Edu

버그 리포트
readline 의 버그를 찾아냈을 경우는 보고해 주세요. 그러나, 우선 정말로 버그인지 어떤지를 확인해, readline 프로그램 라이브러리의 최신 버젼에 그 버그가 나타나는 것을 확인해 주세요.

버그가 정말로 존재하는 것이 확인할 수 있으면(자), 버그 리포트를 bug-readline@gnu.org 에 송신해 주세요. 버그의 수정이 있는 경우는 메일로 송신해 주세요 환영합니다. 제안이나 「철학적인」버그 리포트는, bug-read-line@gnu.org 에 메일로 송신하는지, Usenet 뉴스 그룹 gnu.bash.bug 에 투고해 주세요.

이 메뉴얼 페이지에 관한 코멘트나 버그 리포트는, chet@ins.CWRU.Edu 에 송신해 주세요.

버그

너무 큰 것, 그리고 너무 늦은 것.