11 :call cursor(0, len(getline('.'))/2) — 短暂的 source 4 如果将其映射,这将非常有用,例如::nnoremap gm:call cursor(0,len(getline('。'))/ 2)<cr> — Heptite 2010年 3 virtcol('$')/ 2就足够了。 — 卢克·赫米特 @Luc Hermitte:很好,但是当涉及到硬标签时,并不是最好的行为。 — 短暂 这就是为什么我使用virtcol而不是col的原因。:)。但是确实我们应该使用| 而不是cursor()。顺便说一句,len()不会给出任何更好的结果。此外,len还会为多字节字符带来其他麻烦。 — 卢克·赫米特
8 键入即可gm完成操作,但它会按屏幕行移动(请参阅参考资料:help gm)。为了使它与文本行一起使用,可以重新映射此命令: map gm :call cursor(0, virtcol('$')/2)<CR> — 若明 source gm似乎将光标移动到屏幕的中间,但是如果我的文本行短于屏幕的长度,则不会将我带到屏幕的中间。抱歉,无法澄清。 — teggy 2010年 @teggy:我明白了。我修改了解决方案以将gm重新映射到文本行的中间。如您所见,它结合了ephemient和Luc Hermitte的解决方案。 — JooMing 2010年 正如ephemient指出的那样,硬tarb仍然存在问题,因为cursor()会将它们视为一个字符。而且,它也不适合多字节字符。 — 卢克·赫米特
1 这是我找到的最佳解决方案。完全跳到该行的中间不是很实际。移至中间后,您很可能仍需要将光标移动几个位置。如果您可以跳到特定角色怎么办?许多人只是搜索角色,然后按“下一个”直到找到它。太慢了 Easy-motion插件提供了更好的解决方案。 <leader><leader>s然后,我最喜欢的是您要跳转到的角色。Easy Motion将所有匹配项替换为不同的字母,供您选择。请参阅教程。它是改变生活的插件... — 山姆·鲁伯蒂 source