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