我启用了自动换行,并且通常会有很长的行。 但是在实际上有4行高度的“w”内移动比较麻烦。 我一直使用/跳转到我要查找的单词,但这似乎有些过头了。
有没有关于如何更快地在行内移动的提示?
谢谢,
MrB
我启用了自动换行,并且通常会有很长的行。 但是在实际上有4行高度的“w”内移动比较麻烦。 我一直使用/跳转到我要查找的单词,但这似乎有些过头了。
有没有关于如何更快地在行内移动的提示?
谢谢,
MrB
$
,0
和^
来移动到行端点,然后再使用w
和b
。此外,在w
和b
中添加数字参数可以加快进程,因此使用6w
而不是仅使用w
可以将您带到所需位置。f
和t
移动到单个字符也会有所帮助。(我通常在标点符号中使用此功能。例如,如果我在一行上有四个句子,则2f.
将转到第二个句子的末尾)(
和)
键是导航整个句子的另一种选择。set tw=72
[或80])可以使编辑更简单。您始终可以使用J
将它们连接起来。gj
和gk
向上和向下移动一个显示行。这样,您可以将您的一个换行行视为多个行。如果您评论正在编辑的数据类型,那么我们可能更容易提出建议。
我认为你可以从 gk 和 gj 中受益,而不仅仅是 k 和 j。
此外,查看 'virtualedit'
以获取一些选项,使您可以在"虚空"区域中通过光标移动,而无需将光标切换到下一个最佳物理字符。
您可能想要(暂时)
nnoremap <buffer> k gk
nnoremap <buffer> j gj
如果要全局应用,请省略 <buffer>
部分。
(
和)
来按句子导航;它只是查找.
,但这可能非常有帮助,特别是如果你不喜欢这个句子并想要更改它:(c)
将跳转到当前句子的开头,然后更改整个句子。w
和e
,带有计数修饰符,以移动单词。 3w
每次会移动三个单词。f
和F
向前和向后搜索特定字符。如果你正在寻找单词quite
或syzygy
,那么这将非常有用,而不是the
。 :)我在处理长行文本时,常用的策略是使用 f
F
和 t
T
定位到目标字符。这一系列动作的优秀之处在于你可以利用 ;
和 ,
动作来遍历它们(对于定位
'
"
.
等特殊字符非常有用),而不必计算字符相对于光标的位置。
假设我们有一行文本:
reallyLongObjectName.longMethod().prettyPrettyLongMethod().burp();
3f.
或f.;;
,它们会访问两个点并着陆在第三个点。虽然;
,
样式需要更多按键,但我发现它总体上更灵活、更有趣。nnoremap k gk
nnoremap j gj
这里还有几个相关的内容:
nnoremap 0 g0
nnoremap $ g$
nnoremap ^ g^
map <C-Up> g<Up>
map <C-Down> g<Down>
这将把控制键向上和向下映射到移动命令。这样,打错“gg”就不可能了,并且与控制键左右移动长行的操作完全一致。
如果您添加这另外两行,您可以在插入模式下使用相同的命令(!)
imap <C-Up> <C-[> g<Up> i
imap <C-Down> <C-[> g<Down> i
ctrl+o
返回到先前的位置。 - Nathan majicvr.com:marks
来查看位置,然后按 'd
跳转到标记 d。 - Nathan majicvr.comW
和 B
来移动,它们会跳到下一个空格 :)
G
可以移动到文档的末尾
gj
和gk
也可以用相应的箭头来完成,即g<箭头向上>
和g<箭头向下>
。非常感谢! - alexmg
技巧是通用的。g0
将把您移动到显示行的开头,而g$
将把您移动到显示行的结尾。 - chessofnerd(
和)
导航句子的提示。当您将 L 或 R shift 键映射到相应的括号时,它可以完美地发挥作用。 - Mallory-Erik