2011-11-10 37 views
5

Tôi tự hỏi nếu tôi có thể làm điều này trong Vim: MãChọn khối rời nhau của mã trong Vim cho giật

mẫu:

require 'abstract_controller/collector' 
require 'active_support/core_ext/hash/reverse_merge' 
require 'active_support/core_ext/array/extract_options' 
require 'IDONTWANTTHISLINETOBEINCLUDEDINMYYANKREGISTER' 
require 'IDONTWANTTHISLINETOBEINCLUDEDINMYYANKREGISTER' 

    module ActionMailer #:nodoc: 
     class Collector 
     include AbstractController::Collector 
     attr_reader :responses 

     def initialize(context, &block) 
      @context = context 
      @responses = [] 
      @default_render = block 
     end 

     def any(*args, &block) 
      options = args.extract_options! 
      raise "You have to supply at least one format" if args.empty? 
      args.each { |type| send(type, options.dup, &block) } 
     end 
     alias :all :any 

     def custom(mime, options={}) 
      options.reverse_merge!(:content_type => mime.to_s) 
      @context.freeze_formats([mime.to_sym]) 
      options[:body] = block_given? ? yield : @default_render.call 
      @responses << options 
     end 
     end 
    end 

Bây giờ giả sử tôi muốn yank chỉ một số dòng và đặt chúng trong một tệp khác. Giả sử tôi muốn yank những khối dòng:

Chunk 1:

require 'abstract_controller/collector' 
require 'active_support/core_ext/hash/reverse_merge' 
require 'active_support/core_ext/array/extract_options' 

Chunk 2:

module ActionMailer #:nodoc: 
     class Collector 
     include AbstractController::Collector 
     attr_reader :responses 

     def initialize(context, &block) 
      @context = context 
      @responses = [] 
      @default_render = block 
     end 

Chunk 3:

 def custom(mime, options={}) 
      options.reverse_merge!(:content_type => mime.to_s) 
      @context.freeze_formats([mime.to_sym]) 
      options[:body] = block_given? ? yield : @default_render.call 
      @responses << options 
     end 
     end 
    end 

Những dòng không tạo một nhóm đường liên tục, chúng được tách ra. Vì vậy, để đạt được những gì tôi muốn tôi phải yank các khối trong 3 bước, mà tôi thấy khá khó chịu. Bởi vì tôi phải giật, chuyển đổi bộ đệm, đặt, chuyển đổi bộ đệm, yank, chuyển đổi bộ đệm, đặt ... như vậy ...

Vì vậy, có cách nào để làm điều này hiệu quả hơn (trong một bước)?

Trả lời

13

Sử dụng một thanh ghi trong chế độ append:

  • Nhìn bề ngoài chọn ba dòng đầu tiên, "ay
  • Nhìn bề ngoài chọn 10 dòng tiếp theo, "Ay (chú ý chữ hoa)
  • Nhìn bề ngoài chọn đoạn 3, "Ay
  • Chuyển đến bộ đệm khác, "ap

Bạn thích đăng ký? This answer is more in-depth.

+0

Tuyệt vời! Cảm ơn! – flyer88

Các vấn đề liên quan