我启用了自动换行功能,并且倾向于使用很长的行。但是在一个实际上有4行高的带有"w"的行中移动是很麻烦的。我一直使用/来跳转到我要查找的单词,但是这似乎有点过头了。关于如何在一条线内更快地移动,有什么提示吗?谢谢你,B先生
j7dteeu81#
$
0
^
w
b
6w
f
t
2f.
(
)
set tw=72
J
gj
gk
如果您对正在编辑的数据类型发表评论,我们可能会更方便地提出建议。
gcxthw6b2#
我认为你可以从gk和gj中受益,而不仅仅是k和j。还可以查看'virtualedit'中的一些选项,这些选项允许您在“void”区域中移动光标,而无需将光标移动到下一个最佳物理字符。你可能想(暂时)
'virtualedit'
nnoremap <buffer> k gk nnoremap <buffer> j gj
忽略<buffer>部分,以便全局应用。
<buffer>
fcg9iug33#
您可以使用(和)按句子导航;它只查找.,但这会非常有用,特别是当你不喜欢这个句子并想修改它时:(c)将跳转到当前句子的开头,然后更改整个句子。您还可以使用带有计数修饰符的w和e来移动单词。3w将一次移动三个单词。您也可以使用f和F向前或向后搜索特定字符。如果您要查找单词quite或syzygy,这比the更有用。:)
.
(c)
e
3w
F
quite
syzygy
the
sqyvllje4#
我的首选策略是使用f、F和t、T来定位字符。这一系列动作超级强大的原因是你可以利用;和,动作,这样你就不必计算字符相对于光标的位置。但是只需一步一步地通过它们(对`` '".等非常有用)假设我们有一条线:
T
;
,
'
"
reallyLongObjectName.longMethod().prettyPrettyLongMethod().burp();
如果我们需要跳转到,比方说,从行首开始的第三个点,我们可以使用3f.或f.;;访问两个点并停留在第三个点。虽然;,风格可以使用更多的击键,但我发现它总体上更敏捷,更有趣。
3f.
f.;;
d5vmydt95#
如果您选择走重新Map这些的路线:
nnoremap k gk nnoremap j gj
以下是一些类似的例子:
nnoremap 0 g0 nnoremap $ g$ nnoremap ^ g^
af7jpaap6#
我最近开始使用一个插件,我发现它非常适合在一行(或整个文件)中快速移动。该插件的名称是PreciseJump,您可以在here中找到它。当你使用这个插件时,它定义了Map_f和_F。如果你键入_f后接x,它将突出显示所有x字符,并将临时替换为其他字符,你可以按下这些字符跳转到该位置。请查看脚本页面的说明。
iaqfqrcu7#
您还可以使用WB进行移动,它将跳到下一个空格:)G移动到文档末尾
W
B
G
4nkexdtk8#
请注意,使用“g”后面跟着向上或向下箭头确实工作得很好,但如果你有很长的行和快速移动,你可能会错误地输入“gg”,并结束了在文本的顶部...!(撤销不会带你回来,AFAIK有没有一键按下的方式回到你在哪里。我经历过太多次了。我所做的是,我建议你,修改(或创建)你的“~/.vimrc”,并添加这两行:
map <C-Up> g<Up> map <C-Down> g<Down>
这将把你的向上控制和向下控制Map到移动命令上。将使错误输入“gg”成为不可能的,并且与向左控制和向右控制完全一致,可以在长的线上移动。如果添加这另外两行,则可以在插入模式下使用相同的命令(!)
imap <C-Up> <C-[> g<Up> i imap <C-Down> <C-[> g<Down> i
(VIM太棒了!)格雷格·若
8条答案
按热度按时间j7dteeu81#
$
、0
和^
移动到线条端点,然后使用w
和b
。此外,向w
和b
添加数字参数可以加快该过程,因此使用6w
而不仅仅是w
可以让您到达需要的位置。f
和t
来移动到单个字符也会有所帮助。(我通常使用标点符号。例如,如果我有四个句子在一长行上,2f.
将移动到第二个句子的末尾)(
和)
键是浏览整个句子的另一种方法。set tw=72
[or 80])可以简化编辑。您可以随时在以后使用J
将它们连接起来。gj
和gk
来上下移动一个显示的行。这样,你就可以把你的一个换行行当作多个换行行。如果您对正在编辑的数据类型发表评论,我们可能会更方便地提出建议。
gcxthw6b2#
我认为你可以从gk和gj中受益,而不仅仅是k和j。
还可以查看
'virtualedit'
中的一些选项,这些选项允许您在“void”区域中移动光标,而无需将光标移动到下一个最佳物理字符。你可能想(暂时)
忽略
<buffer>
部分,以便全局应用。fcg9iug33#
您可以使用
(
和)
按句子导航;它只查找.
,但这会非常有用,特别是当你不喜欢这个句子并想修改它时:(c)
将跳转到当前句子的开头,然后更改整个句子。您还可以使用带有计数修饰符的
w
和e
来移动单词。3w
将一次移动三个单词。您也可以使用
f
和F
向前或向后搜索特定字符。如果您要查找单词quite
或syzygy
,这比the
更有用。:)sqyvllje4#
我的首选策略是使用
f
、F
和t
、T
来定位字符。这一系列动作超级强大的原因是你可以利用;
和,
动作,这样你就不必计算字符相对于光标的位置。但是只需一步一步地通过它们(对``'
"
.
等非常有用)假设我们有一条线:
如果我们需要跳转到,比方说,从行首开始的第三个点,我们可以使用
3f.
或f.;;
访问两个点并停留在第三个点。虽然
;
,
风格可以使用更多的击键,但我发现它总体上更敏捷,更有趣。d5vmydt95#
如果您选择走重新Map这些的路线:
以下是一些类似的例子:
af7jpaap6#
我最近开始使用一个插件,我发现它非常适合在一行(或整个文件)中快速移动。
该插件的名称是PreciseJump,您可以在here中找到它。
当你使用这个插件时,它定义了Map_f和_F。
如果你键入_f后接x,它将突出显示所有x字符,并将临时替换为其他字符,你可以按下这些字符跳转到该位置。请查看脚本页面的说明。
iaqfqrcu7#
您还可以使用
W
B
进行移动,它将跳到下一个空格:)G
移动到文档末尾4nkexdtk8#
请注意,使用“g”后面跟着向上或向下箭头确实工作得很好,但如果你有很长的行和快速移动,你可能会错误地输入“gg”,并结束了在文本的顶部...!(撤销不会带你回来,AFAIK有没有一键按下的方式回到你在哪里。
我经历过太多次了。
我所做的是,我建议你,修改(或创建)你的“~/.vimrc”,并添加这两行:
这将把你的向上控制和向下控制Map到移动命令上。将使错误输入“gg”成为不可能的,并且与向左控制和向右控制完全一致,可以在长的线上移动。
如果添加这另外两行,则可以在插入模式下使用相同的命令(!)
(VIM太棒了!)
格雷格·若