web-dev-qa-db-ja.com

次のスペースに進む入力を削除する

ターミナルにいるときは使用できます Ctrl+w プロンプトの左側に移動するときに、WordまたはIP全体(.は各オクテットの区切り文字)を削除します。しかし、私が試してみると Alt+d プロンプトの右に進むと、端末は「。」を認識します。セパレータのIPで、IP全体から.になるまで、1つのチャンクのみを削除します。

端末がWordの区切り文字の空白スペースのみを認識するように調整するにはどうすればよいですか、または別の区切り文字の別のショートカット(.=,など)を使用する方がよいでしょうか。

これは、Ctrl +矢印(左と右)を使用したターミナルでの操作と非常によく似ており、Wordセパレーターに設定されている内容に基づいて動作が似ています。

Emacsエディターは、ターミナルがこれらのショートカットを使用するために使用するものの背後にあると読みましたが、Twinkにアクセスできませんでした。

私はUbuntu10でこれを達成しようとしています。

ここで: https://askubuntu.com/questions/577433/deleting-input-forward-to-the-next-space は、Ubuntu14の他のフォーラムで提案されたものです。

私はこれを試しました:

「では、これら2つのキーストロークを組み合わせたい場合は(Alt+w に続く Ctrl+w)新しいものでは、新しいキーストロークをバインドする必要があります(私の例では) Alt+q)次のように前のキーストロークを実行します。

bind '"\eq": "\ew \C-w"'

最後に、これらの変更を永続的に行うには、~/.inputrcファイルに次の行を追加するだけです(ファイルがない場合は作成します)。

"\ew": vi-forward-bigword
"\eq": "\ew \C-w" 

しかし、私は結果としてこれを取得します:

それを追加すると、 Alt+w まだ機能しません、そして Ctrl そして  エラーはもう機能しません。ターミナルは、WordからWordへの移動に使用される場合に;5Dおよび;5Cを出力します。

2つのバージョンの違いは何ですか?

6
Lacho

あなたがEmacsユーザーなら、私の答えはおそらくあなたが使いたいものではないでしょうが、それでもこのページに注意する必要があるので、ここにあります:

Bashシェルでviキーバインディングを非常に簡単に使用できます。 set -o viと入力します。結果が気に入ったら、それを.bashrcに追加します。

特定の質問に対する答えは、次のスペースに向かって削除し、dt<Space>(スペースまで削除)またはdE(スペースで区切られたWordの最後まで削除)で実行されます。

標準のviキーバインディングが使用されます—(すでにviユーザーである場合)慣れる主なことは、デフォルトで挿入モードになることです。したがって、上記のような通常モードのコマンドを使用するには、最初に<Esc>と入力します。または、Altキーを押しながら、コマンドの最初の文字を入力することもできます。たとえば、kは1行上に移動するviコマンドであるため、<Alt>kを上矢印のように使用して、履歴内の1つのコマンドに戻ることができます。

1
Wildcard

これは、スペースの検索、前に進む、Wordの削除を使用して実行することもできます。

"\eq": "\C-]\ \C-f\C-w"

1
cdosborn

.inputrcが存在する場合、/etc/inputrcは読み取られなくなるため、現在使用しているすべての設定が失われます(.inputrcはグローバル設定を上書きします)。グローバルなものをコピーして、変更を追加するだけです。次に、新しいバインディングを追加することで、以前と同じように機能するはずです。それか、bindコマンドを.bashrcに入れるだけで、インタラクティブシェルを開くたびに実行されます。基本的には現在と同じ効果です。

.inputrcに別の設定ファイルを「ソース/インクルード」する方法を知っている人がいたら、ぜひ聞いてみてください。

0
orion