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

时间:2011-02-06 23:49:32

标签: vim vi

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

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

3 个答案:

答案 0 :(得分:94)

是的,当然有办法。 jk向下移动一行,因此10j10k向下移动十行。您可以通过在其前面加上一个数字来重复任何动作。

如果你做了很多事情,你可能还想要set relativenumber - 它可以通过打印相对于当前行的行号来节省数量,而不是绝对数字。

答案 1 :(得分:44)

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

Ctrl f Ctrl b 页面向前和向后。

} {前进后退一段。

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

但是你要覆盖有用的现有J命令(加入两行)。为10j / 10k找到定位良好的未使用的组合键可能很困难,因此我建议使用我提到的现有动作。

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

答案 2 :(得分:10)

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

10-

或者您可以使用 k ,因为您很可能习惯 h j k l 光标移动。