Help us understand the problem. What is going on with this article?

vimの連続コピペできない問題

More than 5 years have passed since last update.

vimの連続コピペできない問題

概要

コピーしておいた文字列を任意の単語や文章の代わりにペーストしたい

このヒドイ文章のtypoを、修正したい

def hoge
  text = "A long time ago in a galaxy far far away"
  puts test1    # => puts text
  puts xtex2   # => puts text
  extt3_array = twxt4.split(" ") # => text_array = text.split(" ")
  puts txet5.gsub(" ", "¥n")       # =>  puts txet.gsub(" ", "¥n") 
end

textをヤンクして、txet xtex extt twxtの箇所にペーストしてやれば良い。
こういうとき、最初のtestをvisualモードで選択してペーストして、次のtxetも同様にペーストしようとすると思います。

問題

visualモードで選択したあとに、ヤンクした文字をペーストするとその置き換えた文字がヤンクされてしまい2回目同じようにしようとすると、前回置き換えた文字がペーストされてしまう。

このザマだよ!

def hoge
  text = "A long time ago in a galaxy far far away"
  puts text    # ココは直せてる
  puts test1   # => puts text
  xtex2_array = extt3.split(" ") # => text_array = text.split(" ")
  puts twxt4.gsub(" ", "¥n")       # =>  puts txet.gsub(" ", "¥n") 
end

解決策

visualモードで置き換えたい文字を選択した後、「p」でペーストするかわりに

「"0p」

でペーストする(0のレジスターを使用する)

でもめんどくさいじゃないですか〜

そこでこの設定

vnoremap <silent> <C-p> "0p<CR>

これで Ctrl-p で連続して貼り付けれるようになったぁ

まとめ

  • visualモードで選択して「Ctrl-p」で貼り付けれるようになったぁ。
  • 何回やっても同じ内容をペーストできるようになった。
  • コードを書く効率があがったぁー

ながらく探し求めていた方法が、0番のレジスターを使い、それに対してキーマッピングするだけで解決するとは思ってもなかったので自分のvim弱さを痛感している。

fukajun
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした