web-dev-qa-db-ja.com

vimで選択したテキストをシステムクリップボードにコピーします

私のvimはclipboard機能でコンパイルされていません。したがって、 Gilles で提案されているようにxselを使用して、コンテンツをコピーして貼り付けます。

現在の行を選択するには:.w !xsel -bを使用し、ドキュメント全体を選択するには:w !xsel -bを使用します。

しかし、時々、Vを使用して行われた複数行の選択をクリップボードに移動する必要があります。 xselを使用するにはどうすればよいですか?

注:Ctrl-Shift-cを試しましたが、機能しませんでした。とにかく、私はCtrlコンボの大ファンではありません。それは、私の指を壊してしまうからです。

3
user93868

ビジュアルモードでも基本的に同じことができます。エリアを選択したら、次を押します1

:'>,'> !tee >(xsel -b)

選択した領域の内容がクリアされないように、teeにパイプする必要があります。

1ここ から適応。

3
mjturner

:w !xsel -bと入力して、視覚的な選択をコピーします。視覚的選択がアクティブなときに:を押すと、視覚的選択を指定する範囲が挿入されるため、最終的に:'<,'>w !xsel -bが実行されます。

これにより、部分的または完全に選択されたすべての行がコピーされます。つまり、選択が開始された行と選択が終了した行が、選択されなかった部分も含めて完全に含まれます。選択範囲を正確にコピーする方法がわかりません。

もちろん、Vimが+clipboardオプションでコンパイルされている場合は、"+yを使用してください。

私は Vimがクリップボードをサポートしていないときに"+xselを使用する方法を探しました 、しかし私は完全に機能する答えを得られなかった、これはそうです非常に難しいことです。

これは非常に簡単であることがわかりました。「v」コマンドを使用して、必要なテキスト領域を強調表示します。すぐに「!」を押してくださいコマンドの後にコマンドが続きます。

したがって、シーケンスは「v」「!」です。

2