VimとBashでYanking - 互いに反対ですか?

VimとBashでYanking - 互いに反対ですか?

Googleで検索しても他の場所では見つからないほど非常に簡単な質問があります。たとえ私には非常に自然な質問で感じられますが、たぶん私が何かを逃しているのかもしれません。

したがって、YANKという言葉は、BashとVimで反対の意味を持つようです。

  • Bashからコピー&ペーストはKillとYankです。だから私たちはctrl-yおなじみです。生地キリングに保存されたテキスト(または愚かキリングのテキスト(例:引く
  • Vimのコピーと貼り付けはコピーと貼り付けです。だから私たちはp単に生地。しかし、我々はyテキストをバッファにコピーするために使用します。

それで、Bash Yankではコピーで、Vim Yankでは貼り付けると思います。英語では、Yankは「プール」を意味するので、Yankをバッファ/キリングからデータを取得すると考える方が合理的だと思います(したがってyank =貼り付け)。

しかし、これについての議論を実際に見つけることができないので、上記の問題について非常に合理的な説明があるべきだと思いました。誰かが私がこれを理解するのを手伝ってくれたら、とても感謝します!

ありがとうございます!

答え1

bash(またはこれはbashで使用される行編集ライブラリです。)1980年代初頭以降、他のほとんどのシェルと同様に、2つの人気のあるテキストエディタに基づくreadline2つの行編集モードがあります。emacsvi

BashはGNUシェルです。牛に似た一種の栄養emacsGNUのスターアプリケーションの1つであるデフォルトモードは、(またはtcshまたはzshの/)を使用して2つを切り替えることemacsができます。 Kshもあります。set -o emacsset -o vibindkey -ebindkey -vset -o gmacs小さなガチョウEmacsたとえば、これはSolarisのデフォルト設定です。

だから意味の違いに近い愚かemacsとviの言葉。

emacsとviは、どちらもbash(1989)またはvim(1991)の前の1970年代後半に作成されました。

見たらvi1979年の2BSD文書:

オペレーターワイオブジェクトのコピーを名前のないバッファにインポートします。バッファ名が前に来ると「xワイここで、xは文字に置き換えられます。a−z、指定されたバッファにテキストを配置します。その後、コマンドを使用してテキストをファイルに書き戻すことができます。そして;カーソルの後ろまたは下にテキストを配置し、カーソルの前または上にテキストを配置します。

Emacsには貼り付けバッファはありませんが、1つあります。殺人リング録音したテキストを録音します。またはコピー入ってください。プルはテキストからキルリングに引っ張るのではなく、そのキルリングからプルする別の方向に現れるようです。

存在する1985年頃のGNU emacsドキュメント、私達は次を発見します:

Yankingが削除されたテキストを検索しています。テキストを移動またはコピーする一般的な方法は、テキストを削除してから1回以上取り出すことです。

Bashには、キーまたはキーの組み合わせにバインドできる2つのエディタのウィジェットがあることがわかります。

$ bash -c 'bind -l' | grep -i yank
vi-yank-arg
vi-yank-pop
vi-yank-to
yank
yank-last-arg
yank-nth-arg
yank-pop

viほとんど文書化されていません)。

基本バインディング:

$ bash -o vi -c 'bind -pm vi' | grep yank
"_": vi-yank-arg
# vi-yank-pop (not bound)
"Y": vi-yank-to
"y": vi-yank-to
"\C-y": yank
# yank-last-arg (not bound)
# yank-nth-arg (not bound)
# yank-pop (not bound)
$ bash -o vi -c 'bind -pm vi-insert' | grep yank
# vi-yank-arg (not bound)
# vi-yank-pop (not bound)
# vi-yank-to (not bound)
"\C-y": yank
# yank-last-arg (not bound)
# yank-nth-arg (not bound)
# yank-pop (not bound)

vi挿入モードでemacsスタイル+を取得する方法を確認してくださいCtrly文書化されていないvi-yank-argバインディング_もemacsスタイルの用語を使用し、yank-last-argemacsウィジェットと同様に動作します。vi-yank-popどうすればいいのかわかりません。 BashソースディストリビューションのドキュメントNEWSによるとemacsモード yank-popのviモードバージョン、viにはキリングがないので、これは意味がありません。

関連情報