我想知道我是否能够在 Vim 中做到这一点:
示例代码:
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
现在假设我只想拉出一些行并将它们放在另一个文件中。假设我想拉出这些行:
block 1:
require 'abstract_controller/collector'
require 'active_support/core_ext/hash/reverse_merge'
require 'active_support/core_ext/array/extract_options'
block 2:
module ActionMailer #:nodoc:
class Collector
include AbstractController::Collector
attr_reader :responses
def initialize(context, &block)
@context = context
@responses = []
@default_render = block
end
block 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
这些线不形成连续的线组,它们是分开的。因此,为了实现我想要的,我必须分 3 步拉出这些 block ,我觉得这很烦人。因为我必须拉动,切换缓冲区,放置,切换缓冲区,拉动,切换缓冲区,放置......等等......
那么,有没有办法更有效地做到这一点(一步)?
最佳答案
在附加模式下使用寄存器:
"ay
"Ay
(注意大写字母)"Ay
"ap
你喜欢寄存器? This answer is more in-depth .
关于vim - 在 Vim 中选择不相交的代码块进行拉取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8084512/