Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Readlineのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Readline
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:コマンドシェル]] [[en:Readline]] [[it:Readline]] [[ru:Readline]] [[zh-CN:Readline]] '''Readline''' は [[GNU プロジェクト]]によって開発されているライブラリで、コマンドラインで編集したり対話するために [[Bash]] などの CLI インターフェイスプログラムで使われています。このページを読む前にライブラリの [http://www.gnu.org/s/readline/ ホームページ] を参照してください。ここでは簡単な設定だけに触れます。 == 編集モード == デフォルトでは Readline はコマンドラインと対話するのに Emacs のようなショートカットを使います。ただし、vi スタイルの編集インターフェイスもサポートはされています。 [[vi]] あるいは vim を使っている場合、以下の行を {{Ic|~/.inputrc}} に記述することで Readline ベースのアプリケーションで vi ライクなキーバインドを有効にできます: set editing-mode vi もしくは、以下の行を {{Ic|~/.bashrc}} に追加すると Bash で vi ライクなキーバインドが設定されます: set -o vi 便利な [http://www.catonmat.net/download/bash-vi-editing-mode-cheat-sheet.pdf vi] や [http://www.catonmat.net/download/readline-emacs-editing-mode-cheat-sheet.pdf emacs] のチートシートも参照。 == 高速な単語移動 == [[Xterm]] は {{ic|Ctrl+Left}} と {{ic|Ctrl+Right}} による単語ごとの移動を [http://stackoverflow.com/a/7783928 デフォルトで] サポートしています。他のターミナルエミュレータでもこの機能を使うには、適切な [http://wiki.bash-hackers.org/scripting/terminalcodes ターミナルコード] を確認して、{{ic|~/.inputrc}} で {{ic|backward-word}} と {{ic|forward-word}} にバインドしてください。 例えば [[urxvt]] の場合: {{hc|~/.inputrc| "\eOd": backward-word "\eOc": forward-word}} == 履歴 == 通常、上方向キーを押すと、今入力しているコマンドとは関係なく、最後に実行したコマンドが表示されます。しかしながら、今入力した文字列とマッチする過去のコマンドだけを表示するようにすると便利かもしれません。 例えば、ユーザーが以下のコマンドを実行していた場合: * {{Ic|ls /usr/src/linux-2.6.15-ARCH/kernel/power/Kconfig}} * {{Ic|who}} * {{Ic|mount}} * {{Ic|man mount}} この場合、{{Ic|ls}} と入力して上方向キーを押したときに、入力されている文字が {{Ic|man mount}} に置き換わるようなことです。履歴検索を有効にしていれば、(現在入力した) {{Ic|ls}} から始まる過去のコマンドだけが表示されます。上記の例なら {{Ic|ls /usr/src/linux-2.6.15-ARCH/kernel/power/Kconfig}} です。 以下の行を {{Ic|/etc/inputrc}} または {{Ic|~/.inputrc}} に追加することで履歴検索モードを有効にできます: "\e[A":history-search-backward "\e[B":history-search-forward vi モードを使っている場合、以下の行を {{Ic|~/.inputrc}} に追加します ([https://bbs.archlinux.org/viewtopic.php?pid=428760#p428760 この投稿] を参照): set editing-mode vi $if mode=vi set keymap vi-command # these are for vi-command mode "\e[A": history-search-backward "\e[B": history-search-forward set keymap vi-insert # these are for vi-insert mode "\e[A": history-search-backward "\e[B": history-search-forward $endif 上記の行を {{Ic|~/.inputrc}} に追加する場合、[https://bbs.archlinux.org/viewtopic.php?id=112537 こちら] のような変なことが起こらないようにファイルの最初に以下の行を追加することを推奨します: $include /etc/inputrc また、{{ic|Ctrl+R}} を押すことで reverse-search-history (インクリメンタル検索) を使うこともできます。前の入力に基づいて検索する代わりに入力されたコマンドを検索語として履歴バッファを後方に検索します。このモードで {{ic|Ctrl+R}} をもう一度押すと現在の検索語にマッチするバッファの一つ前の行が表示され、{{ic|Ctrl+G}} (abort) を押すと検索がキャンセルされて現在の入力行に戻ります。例えば前に実行した {{Ic|mount}} コマンドを検索したい場合、{{ic|Ctrl+R}} を押してから 'mount' と入力して、見つけたい行が出るまで {{ic|Ctrl+R}} を押します。 このモードの前方検索は forward-search-history と呼ばれデフォルトでは {{ic|Ctrl+S}} で呼び出せます。しかしながら、ほとんどのターミナルは {{ic|Ctrl+S}} を上書きしてしまい、{{ic|Ctrl+Q}} が入力されるまで画面出力が一時停止します (XON/XOFF フロー制御と呼ばれます)。forward-search-history を有効にするには、以下のコマンドを実行してフロー制御を無効化: $ stty -ixon または {{Ic|inputrc}} で別のキーを使って下さい。例えば、デフォルトで何にもバインドされていない {{ic|Alt+S}} を使うには: "\es":forward-search-history == 高速な補完 == タブ補完を実行するとき、タブを一回押すと入力している単語が部分的に補完されます。部分補完ができない場合、タブを二回押すと全ての補完候補が表示されます。 タブを一回押した時に二回押したときと同じ補完を実行するには、以下を設定: {{hc|~/.inputrc| set show-all-if-unmodified on }} もしくは一回のタブで両方の補完を実行するように設定: 部分補完を実行して補完候補を全て表示: {{hc|~/.inputrc| set show-all-if-ambiguous on }} == マクロ == Readline ではキーをキーボードマクロにバインドすることができます。例えば、Bash で以下のコマンドを実行します: bind '"\ew":"\C-e # macro"' もしくは inputrc に以下を追加します: "\ew":"\C-e # macro" そして何か文字を入力して {{ic|Alt}}+{{ic|W}} を押して見て下さい。Readline はまるで {{ic|Ctrl+E}} (end-of-line) が押されたように振る舞い、'{{Ic| # macro}}' が追加されます。 Readline マクロで既存のキーバインドを使うことで、頻繁に使用するイディオムを自動的に使うようにできて大変便利です。例えば、以下のマクロは {{ic|Ctrl+Alt+L}} で "| less" を行末に追加して実行します ({{ic|Ctrl+M}} は {{ic|Enter}} と同じです): "\e\C-l":"\C-e | less\C-m" 以下のマクロは {{ic|Ctrl+Alt+Y}} を押すと行頭に 'yes |' が追加され、yes/no を聞いてくるコマンドに y で答えてくれます: "\e\C-y":"\C-ayes | \C-m" 以下のマクロは {{ic|Alt+S}} が押されたときに入力した文字列を {{Ic|su -c ''}} で囲ってくれます: "\es":"\C-a su -c '\C-e'\C-m" 以下のマクロは {{ic|Alt+S}} が押されたときに {{Ic|sudo }} を行頭に付けます。{{ic|Enter}} キーは入力しないので安全です。 "\es":"\C-asudo \C-e" 最後の例は、{{ic|Ctrl+Alt+B}} でコマンドを バックグラウンドに送って、全ての出力を捨てます: "\e\C-b":"\C-e > /dev/null 2>&1 &\C-m" === 制御エコーを無効にする === {{Pkg|readline}} のアップデートによって、{{ic|Ctrl+C}} を押すとターミナルは {{Ic|^C}} を表示するようになっています。制御文字を表示して欲しくない場合、以下を {{Ic|~/.inputrc}} に追加します: set echo-control-characters off
このページで使用されているテンプレート:
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Readline
に戻る。
検索
検索
Readlineのソースを表示
話題を追加