:vs を使用せずにテキストをコピー/貼り付けすることは可能ですか? 2 つの vi ウィンドウを開いている場合は、マウスでテキストをコピー/貼り付けできます。どうすればキーボードでそれを行うことができますか?
これに似た既存の質問が 2 つ見つかりましたが、どちらも私の質問に答えていません。
vi のコードをクリップボードにコピーする方法
コンテンツをあるファイルから VI の別のファイルにコピー アンド ペーストする
:vs を使用せずにテキストをコピー/貼り付けすることは可能ですか? 2 つの vi ウィンドウを開いている場合は、マウスでテキストをコピー/貼り付けできます。どうすればキーボードでそれを行うことができますか?
これに似た既存の質問が 2 つ見つかりましたが、どちらも私の質問に答えていません。
vi のコードをクリップボードにコピーする方法
コンテンツをあるファイルから VI の別のファイルにコピー アンド ペーストする
marks
いろいろな方法があると思いますが、とを使ってやっていますregisters
。
m
使用するマークの名前の後に使用して、ファイル内の任意の場所にマークを配置できます。
aとz(大文字と小文字)の間の任意の文字を使用して、マークに名前を付けることができます。
キーの付いたマークが含まれている行に移動でき'
ます。
たとえば、マークxmx
で行をマークし、マークxを含む行にカーソルを移動します 。'x
バックティックキーを使用して、マークの正確な位置に移動できます。`
たとえば、現在のカーソル位置からマークxを含む行にヤンクするには、次のように入力します。y'x
クリップボードを使用するには、ヤンクしたテキストを保存できる場所を表すレジスタを使用する必要があります。
文字ごとに異なるマークを使用できるのと同じように、テキストをヤンクするレジスタに名前を付けることができます。
"
ヤンク/パッティング時にキーを使用してレジスターを参照します。
たとえば"ay'x
、カーソルとxを含む行の間のテキストをヤンクして、を登録します。
クリップボードは、環境に応じて、*
または特殊レジスタによって表されます。+
カーソルとマークxを含む行の間のテキストをクリップボードにヤンクするには、次のように入力します。"+y'x
つまり、バッファ+
(クリップボード)を使用して、カーソルとマークxを含む行の間にテキストを格納します。
これを行うと、テキストがクリップボードに表示されます。CONTROL-Vを使用して他のアプリに貼り付けることができます。
注:一部の環境では、クリップボードは。という名前のバッファーで表され*
ます。
これは圧倒的に聞こえるかもしれませんが、慣れれば非常に強力です。
私はこれを毎日何百回も使用しています。
重要なポイントがいくつかあるファイルを編集している場合は、ファイルの各部分に異なるマークを付けて、編集する必要のあるコード間でカーソルをすばやく移動できます。
同様に、繰り返しコピーする必要のあるテキストが複数ある場合は、それぞれを異なるレジスタに保存して、貼り付けをより効率的にすることができます。
レジスターを使用してコピー/貼り付けできます+
(詳細:システム クリップボードへのアクセス)
"+gyy
行をヤンクし、レジスタに入れ+
ます。"+p
通常モードまたはCtrl+r +
挿入モードで、他のウィンドウに貼り付けることができます。
分割ウィンドウを使用したくない場合は、システム クリップボードを使用する以外にウィンドウ間で貼り付ける方法はありません。
@up は話題を尽くす。関連する組み合わせのほとんどは、システムキーの組み合わせに関連付けられていることを付け加えることができます.Gvimの構成で見つけることができます(たとえば、CTRL + C CTRL + VなどのWindowsマッピングはmswin.vimにあります)