Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
80
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@fukajun

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

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弱さを痛感している。

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
80
Help us understand the problem. What are the problem?