回答:
この解決策はromainlの解決策から完全に発想を得ていますが(彼のおかげです)、複数の文字列で複数のバッファを開くことができます。
次の行を.zshrc
(または.bashrc
bash関数を定義する関連ファイルに)追加します
function mvim {
CMD="vim "
for string in "$@"
do
CMD=$CMD"-c \"enew | put='"$string"'\" "
done
CMD=$CMD"-c \"bufdo 1d\""
eval $CMD
}
.zshrc
ファイルを取得した後、次の関数を呼び出すことができます。
mvim "foo bar" "baz" "and quz"
これは、それぞれが1つの文字列を含む3つのバッファを持つvimインスタンスを開きます。
引数を指定しない場合、通常のvimインスタンスが開始されます。1つの引数が空の文字列の場合、空のバッファが作成されます。
編集私は理解できない理由で、各バッファーの先頭に空の行が作成されるので、行を追加したことに気付きました
CMD=$CMD"-c \"bufdo 1d\""
すべてのバッファでこの空の行を取り除くため。
私は最近、クリップボードのコンテンツをvimの新しいバッファーに入れる方法を探しました。私はそれをここで共有する価値があると思います:
vim -c "put! *"
更新:
これは、現在の行の前のput
レジスタからのテキストになります。*
!
レジスタは、ウィンドウでクリップボードを指します。*
+
Linux +
では、クリップボードのコンテンツがあり*
、選択したテキストが含まれています。
:help quotestar
と:help quoteplus
、このコマンドは動作しますなぜこれらのレジスタは理解して知らない人を助けるためにあなたの答えインチ また、GNU / Linux上の存在との間の差である*
と+
、Windows上で、彼らは同等であるが、。
vim < echo "test"
が成功しなかった。知らなかったvim -
!そして+
/-c
も役に立ちます。ありがとうございました。