Vimperatorのコピー/貼り付け


23

Vimperatorを試しています。私は主にhjklスクロールのためにそれを望んでいました、そして、私はリンクをたどるためにその「ヒント」システムが好きです。これら2つの機能は本当に必要なものすべてです。おもう。

他の機能は気にせず、時々邪魔になります。

私を最も悩ませるのは、コピー/貼り付けです。私はCtrl+ c/ Ctrl+に慣れてvいますが、別のショートカットを使用しても構いませんが、..

:help yank は、選択したテキストのコピーがYで行われることを示しますが、貼り付けについて言及されている唯一の方法は、マウスの中ボタンです!

これは、Vimの精神に反してばかげています!

マウスを使用せずにVimperatorに貼り付けるにはどうすればよいですか?


あなたからここに上陸した場合は、この問題の答えは(彼らは7歳なので意味があります)、日付のすべて出ているこれらは、(今日のような)ではありませんグーグルあなたが探している答え
アーサーUlfeldt

回答:


15

あなたができる最善かつ最も簡単なことは、キーを再マップすることです。それは厳しくない。これを_vimperatorrc(またはLinuxの.vimperatorrc)に入れます

noremap <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

<C-v>デフォルトでは「Pass next」モードにマップされます。つまり、押した次のキーは、vimperatorによって処理されたり食べられたりすることなく、Firefoxに直接送信されます。したがって、上記のマッピングは、「次を渡す」モードを有効にして、それぞれのショートカットを送信します。

これをさらに拡張し、すべての一般的なウィンドウショートカットを再マップするvimperatorプラグインもありますので、期待どおりに動作します。


3
<Cv値>のために(ペースト)それはinoremapする必要があります
HASEN

プラグインリンクに承認されました!これは素晴らしいですし、問題が修正されます
HASEN

2
現在のバージョン(3.8.1)には、デフォルトでOSレベルのコピーと貼り付けを行うCcとCvが含まれているようです...変更ログでそれについて何も見つけることができませんでしたが、Pentadactylから最新のものに切り替えましたVimperatorとCcとCvは、私が望んでいたように機能しました。
ドリフトキャッチャー

@hangtwentyは正しいようです。ここでの答えは時代遅れです
アーサーウルフェルト

36

この質問に対してこれほど正確な答えがなかったことに驚いた。選択した回答のプラグインリンクでOPの問題は解決しましたが、パススルー(Cv)モードを使用せずにテキストフィールドに何かを貼り付ける方法を実際に説明した人はいませんでした。

INSERTモードのテキストフィールドで何かを貼り付けたい場合、vi-landで行うべき明らかなことは、ESCとpを押して貼り付けることです。vimperatorでは、これは機能しません。ESCは、INSERTモードを完全に終了し、ページ/タブ全体を操作するモードに移行します。

Vimperatorは、追加のBASICモードであるTEXTAREAを使用してこれを解決します。TEXTAREAモードでは、viで使用するサポートされているコマンドを使用できます。

Enter TEXTAREA mode: C-t
Paste:    p
Copy line:    yy
Delete Char:  x
Delete Line:  dd

等。

これは十分に文書化されていないようです-私はほとんど間違いでそれを理解することになりました。複数行および単一行のテキストボックスでも同じように機能します。


このコメントをありがとう。これは、私が頭を丸くするために必要なものです。
ツヴァイブルーメン

TEXTAREAモードに入ったときの@RevAaronは、これが従来のVI環境とほとんど同じで、ほとんどのVIキーがテキストの編集に使用できますか?また、TEXTAREAモードで「d」を押してから「s」または「a」を押すと、(偶然にも)VISUALと呼ばれるモードに変わります。これに関する情報を提供していただければ幸いです。または、あなたが気に入ったとしても、私は質問としてそれを置くことができます、そして、あなたはそれに答えることができます、そして、他の人はそれを使うでしょう。
メーラッド14

13

現在、vimperatorはCtrl + C(「コピー」から「キャンセル」)とCtrl + V(「ペースト」から「パススルー」)の両方を再マップします。Linuxでは、コピー/貼り付けの好ましい方法はマウスの中ボタンを使用することなので、これは問題ではありません。Windowsでは、これはユーザーインターフェイスの障害であり、修正が必要です。

コピーできる場所は、Webページからのテキスト、フォームフィールドからのテキスト、外部アプリケーションからのテキストの3つです。コピー先として、フォームフィールドと外部アプリケーションの2つの場所があります。アドレスバーとコマンドバーは、フォームフィールドのように機能します。

Copying from...
     A web page: 'Y' works, '^C' doesn't
     Form field: 'Y' doesn't work, '^C' does
     Extern application: 'Y' doesn't work, '^C' does
  Copying to...
     Form field: '^V' doesn't work, '^V,^V' does
     External application: '^V' works, '^V,^V' pastes twice
 Or, seen another way
       Copy  Paste
 Page  Y     N/A
 Form  ^C    ^V,^V
 App   ^C    ^V

通常のユーザーはそのテーブルを記憶しません。明確に文書化されておらず、たとえそれがあったとしても読むことはないので、彼らはそれを決して理解しません。代わりに、右クリックメニューを使用します。これはどこでも機能します。実際、Vimperatorを使い始めてから数週間後、まったく関係のないアプリケーションで、これまでやったことのないことをやってみました。

^ Cと^ Vを元の正当な機能であるコピーアンドペーストとして復元する必要があります。これは、^ C = cancelと^ V = pass-throughホットキーを置き換えることを意味します。実際、これらのホットキーはどちらもvimperatorに固有のものであり、vimには表示されません。^ Vはvimの 'visual visual'を意味しますが、これはvimperatorには適用されないため、パススルーを他のキーに簡単に割り当てることができます。コマンドモードではバックスラッシュを、コマンドモードと挿入モードではCtrl +バックスラッシュを使用することをお勧めします。^ Cが残ります。^ Sに移動する必要があると思います。これには2つの優れたニーモニックがあります。「停止」であり、XOFFのUnixホットキーでもあります。^ Sは現在、vimperatorで「ページを名前を付けて保存」しています。これはめったに使用されず、:saveまたは:saveasで引き続きアクセスできます。

元に戻すも壊れています。^ Zでしたが、^ Zはパススルーモードではなく、マウスを使用せずにフォームフィールドの編集を取り消す方法はありません。特にvimの^ Zはサスペンドを意味するので、これを別のホットキーに移動しない理由はないと思います。これを任意のホットキーに変更することは考えられませんが、^ Zはそもそもかなりarbitrary意的なものでしたので、未使用のホットキーでも同様です。

Soruce:http : //www.mozdev.org/pipermail/vimperator/2008-October/002359.html


2

私はしばらくこれを行う方法を探していました。良いですね。しかし、joeが指摘しているように、コマンドラインまたはテキストボックスに貼り付けたい場合、user4126のnoremapソリューションは完全ではありませんでした。そこで、http: //charlieharvey.org.uk/page/vimperator_cut_and_pasteでinoremapとcnoremapで調整しました。vnoremapがサポートされているようには見えません。

そのため、ctrl-vショートカットを1回だけ使用して、コマンドラインとテキストボックスに貼り付けることができます。次を.vimperatorrcに貼り付けて、Firefoxを再起動します。

noremap <C-v> <C-v><C-v>
inoremap <C-v> <C-v><C-v>
cnoremap <C-v> <C-v><C-v>

noremap <C-c> <C-v><C-c>
inoremap <C-c> <C-v><C-c>
cnoremap <C-c> <C-v><C-c>

2

Ctrl+ cどこにも見えないので、与えられた答えは役に立たなかった。私がしていることは、SecureCRTショートカットを使用することです。つまり、ページからコピーする場合:

Ctrl+Ins

貼り付けの場合: Ctrl+ V2回(誰かが他の場所の答えで言っているように)。


あなたの親切な先生に感謝。<cc>を<c-ins>にマッピングすることで、この問題の特定のフレーバーを解決しました。
スティーブバーミューレン


1

短い答え-^ V ^ V(つまり、Ctrl-V Ctrl-V)

最初のCtrl-Vは「次のキーストロークパススルー」を実行します。2番目のCtrl-Vはテキストを貼り付けます。これは、ほとんどのテキストフィールドに対して行うことです。

複数行のテキストフィールドにviモードを使用する場合(noinsertmodeを設定)、pを使用して貼り付けることもできます-別のタブのURLをこのタグに貼り付ける場合は、そのタブに移動してyを使用し、次に戻るこのタブ。ブラウザの一番下のバーに「TEXTAREA」と表示され、pを押してURLに貼り付けることができます。


0

私は使用することをお勧めします

map <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

外部テキストエディタを開いた場合、FFウィンドウでの単純なCcで外部エディタが終了し、すべてが失われるためです。

BR

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.