从vi/vim中的当前位置移动光标x行

71 vi vim

有没有办法在vi/vim中将光标移动相对数量的行?假设您在要删除的代码块下面有10行光标.如果您的行号以相对顺序显示,那么拥有一个"跳10行向上命令"将会带您到那里.

或者最好显示绝对行号并转到xgg,其中x是行号?

Cas*_*bel 106

是的,当然有办法.jk下移和上一行,所以10j10k下降或上升十行.你可以在它前面放一个数字来重复任何动作.

您可能还想要,set relativenumber如果这是您做了很多事情 - 它将通过打印相对于当前行的行号而不是绝对数量来帮助您节省数量.

  • 从 Vim 7.4 开始,可以通过将以下内容添加到 .vimrc `set relativenumber` 和 `set number` 来同时查看相对行号和绝对行号。这将为您的光标所在的行提供带有绝对行号的相对行号。 (2认同)
  • 您还可以通过简单地键入数字,然后键入`enter'(对于绝对行号,只需在其前面加上一个冒号)就可以向下移动多行。如果您习惯使用`j`和`k`以及普通的键盘布局,那可能并没有太大帮助,但是作为使用箭头的Colemak用户,`enter'比Colemak`j`更容易到达。 QWERTY`y`键) (2认同)

Olh*_*sky 46

上下移动10行可能不适合您的任务以及其他选项.考虑其他动作:

Ctrlf,Ctrlb页面前进和后退.

},{前进和后退一段.

您可以在vimrc中编写规则以绑定10j到一个键,比如J通过将以下行添加到vimrc文件来向下移动10行: map <S-j> 10j

但是,您将覆盖有用的现有J命令(连接两行).为10j/ 找到一个定位良好的未使用的键组合10k可能很困难,所以我建议使用我提到的现有动作.

您可能还想知道您可以向后移动到您所看到的单词: ?someword并转发到您通过执行查看的单词/someword.这些比尝试向上/向下移动10行然后将光标重新定位到确切位置要快.如果你不能想到有问题的行的简单搜索字符串,你可以随时转到你所说的(xgg)行号.


Cil*_*lan 11

我正在弄乱vim,我注意到-你向上+移动并让你失望,所以你可以:

10-
Run Code Online (Sandbox Code Playgroud)

或者你可以使用,k因为你很可能习惯hjk l光标移动.

  • 为了向前移动,`enter`在数字后与`+`的作用相同,并且在大多数时间更容易达到 (3认同)