def run(self, edit, mode=None, character=None, count=1):
def f(view, s):
if mode == modes.VISUAL:
if s.a <= s.b:
if address.b < s.b:
return Region(s.a + 1, address.b)
else:
return Region(s.a, address.b)
else:
return Region(s.a + 1, address.b)
elif mode == modes.NORMAL:
return address
elif mode == modes.INTERNAL_NORMAL:
if s.a < address.a:
return Region(view.full_line(s.b).a, view.line(address.b).b)
return Region(view.full_line(s.b).b, view.line(address.b).a)
return s
state = self.state
address = state.marks.get_as_encoded_address(character)
if address is None:
return
if isinstance(address, str):
if not address.startswith('<command'):
self.view.window().open_file(address, ENCODED_POSITION)
else:
# We get a command in this form: <command _vi_double_quote>
self.view.run_command(address.split(' ')[1][:-1])
return
regions_transformer(self.view, f)
if not self.view.visible_region().intersects(address):
self.view.show_at_center(address)
评论列表
文章目录