2009-10-13 14 views
10

私は主なテキストエディタとしてvim(実際にはウィンドウ上のgvim)を使用します。私のワークフローでは、さまざまな外部ソースとの間で文章をコピーする必要があるため、クリップボード= unnamedを使用してキーストロークを保存します(「* p」ではなくp)
外部ソースからテキストをコピーして貼りたいそれは2つの vimの別々の場所です。最初の1つ(v)をマークし、pを使用して貼り付けます。この時点では、元のバッファが失われ、2番目の場所に貼り付けることができません。名前のないバッファ、*バッファ、番号付きのバッファには存在しません。選択したものをペーストすると無名のバッファに "貼り付け"されます。
元の文字列を2か所に貼り付けるにはどうすればいいですか?つまり、バッファからの紛失を防ぐことができます。外部ソースからコピーして貼り付けます

ありがとう。

+0

shift + insert(インサートモードで) – nilon

答えて

6

これを試してみてください:

:vmap p "_xP 
  • vmapだけビジュアルモードで適用されるマッピングを行うことを意味します。
  • pは、マッピングを作成するためのキーです。
  • "_はブラックホールレジスタです。これは、レジスタに影響を与えずにテキストを削除したい場合に使用されます。
  • xPは、選択したテキストを削除し、結果のカーソル位置の前に貼り付けることを意味します。
0

Windowsでこれを行う方法がわかりません。 KDEでは、クリップボードには選択できる履歴がありますので、貼り付け、クリップボードから前の選択を選択して新しい場所に貼り付けることができます。

これは、1つの場所にしか置かないと意味があり、その入力を受け取り、必要な出力を作成するためのスクリプトを書くのが理にかなっているようです。あなたが達成しようとしていることについてもっと詳しく説明できますか?

:vmap <F5> "zxP 

これは、視覚的に選択したテキストを削除しますが、クリップボードには影響されないように、別のレジスタにそれを置く:

+0

私は別のアプリケーションから行をコピーし、vimの2か所に貼り付けようとしています。それが得られるほど簡単です。 – Mosh

+0

それはそれの仕組みです、はい。私はあなたが戻って、あなたが達成しようとしている仕事について考えるべきかどうかを尋ねています - 繰り返しのカットアンドペーストを伴わないよりよいアプローチがありますか? – retracile

+0

私は迷っています。 2つの場所、アイデアに貼り付けるために必要なテキストがありますか? – Mosh

1

あなたはあなたの痛みを緩和するためのマッピングを設定することができます。 <F5>をあなたに最も簡単なものに変更してください。

0

'guioptions'オプションの値を確認してください。 'a'フラグが設定されていないことを確認してください。また、 'clipboard'オプションをチェックして、 'unnamed'または 'autoselect'フラグが設定されていないことを確認します。

:set go-=a 
:set clipboard-=unnamed 
+0

ありがとうございますが、私はそれを正しく実装することはできません。もう一度、私の作業手順は外部プログラムにコピーされ、Vim上に置き換えられるテキストを貼り付けます。 Vimで別のビットのテキストをマークすると、コピーしたテキストを貼り付けることができません。 – Mosh

+0

私は自分のラップトップにVimをインストールして、最初の答えを確認したが、うまくいきませんでした。 –

1

あなたを誤解しているかどうかわかりませんが、あなたがやっていることを試してみましたが、+ドロップレジスタを使って問題はありません。

マイワークフロー:

  1. コピー文外部アプリケーションで(つまりブラウザ。)視覚的
  2. はvimの中の文章を選択し、「+ PまたはP(クリップボードを持つとそれを置き換えます=無名のセット)
  3. が視覚的に別の文を選択し、に置き換える「+ P

悲しいことに、2回目の貼り付け時に、+レジスタから明示的に貼り付ける必要があります。したがって、私は、pのためのマッピングをお勧めします/代わりに、クリップボードを使用してのP =無名の

nmap p "+p 

異なるレジスタの内容を見ることが

:registers 

を使用してみてください。

+0

答えていただきありがとうございます。私はWindowsマシンで作業していますので、:私は:レジスタをチェックすると、私はあなたの問題を引き起こしている "名前のない"フラグの存在を推測しています。私は+レジスタを持っていません。また、外部アプリケーションからコピーしたテキストもレジスタには入っていません(コピーしたテキストで上書きされる*レジスタでさえありません)。 – Mosh

関連する問題