有没有办法在vi / vim中将光标移动相对数量的行?假设您在要删除的代码块下面有10行光标。如果您的行号以相对顺序显示,那么最好有一个“跳10行向上命令”,这将带您到那里。
或许最好显示绝对行号并转到xgg,其中x是行号?
答案 0 :(得分:94)
j
和k
向下移动一行,因此10j
和10k
向下移动十行。您可以通过在其前面加上一个数字来重复任何动作。
如果你做了很多事情,你可能还想要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 光标移动。