スポンサーリンク

Vim:半角と全角のペースト時の挙動の違い

Vimのペーストの挙動がなんかおかしいと思って調べてみた。

追記(2012/11/24)
この記事は正しくないので、viのペーストで困っている人はコメント欄の方を参照して下さい。

■半角文字列に、半角文字列をペーストした場合
abcd
カーソルが”b”の上にあり、バッファに”efgh”が格納されているとする。

pすると、”b”の後ろにペーストされる。
abefghcd
Pすると、”b”の前にペーストされる。
aefghbcd

■全角文字列に、全角文字列をペーストした場合
あいうえお
カーソルが”い”の上にあり、バッファに”かきくけこ”が格納されているとする。

pすると、下の行にペースとされる。
あいうえお
かきくけこ
Pすると、上の行にペーストされる。
かきくけこ
あいうえお

■全角文字列に、半角文字列をペーストした場合
あいうえお
カーソルが”い”の上にあり、バッファに”efgh”が格納されているとする。

pすると、”い”の後ろにペーストされる。
あいefghうえお
Pすると、”い”の前にペーストされる。
あefghいうえお

■半角文字列に、全角文字列をペーストした場合
abcd
カーソルが”b”の上にあり、バッファに”かきくけこ”が格納されているとする。

pすると、下の行にペースとされる。
abcd
かきくけこ
Pすると、上の行にペーストされる。
かきくけこ
abcd

■半角文字列に、半角、全角混合文字列をペーストした場合
abcd
カーソルが”b”の上にあり、バッファに”かefghけこ”が格納されているとする。

pすると、”b”の後ろにペーストされる。
abかefghけこcd
Pすると、”b”の前にペーストされる。
aかefghけこbcd

■全角文字列に、半角、全角混合文字列をペーストした場合
あいうえお
カーソルが”い”の上にあり、バッファに”efgh”が格納されているとする。

pすると、”い”の後ろにペーストされる。
あいefghうえお
Pすると、”い”の前にペーストされる。
あefghいうえお

■半角、全角混合文字列に、半角、全角混合文字列をペーストした場合
abあいcd
カーソルが”b”の上にあり、バッファに”かefghけこ”が格納されているとする。
pすると、”b”の後ろにペーストされる。
abかefghけこあいcd
Pすると、”b”の前にペーストされる。
aかefghけこbあいcd

「全角文字列に、全角文字列をペーストした場合」と■半角文字列に、全角文字列をペーストした場合が、他と挙動が異なる。
どうやったら、行を変えずにカーソルの前後に文字列を挿入することが出来るのだろう?
検索したが、引っかかるのはpとPの使い方のみで、知りたいことが見つからない。