有没有办法在vi / vim中将光标移动到相对的行数?假设您要删除的代码块下有10行光标。如果您按相对顺序显示行号,那么最好有一个“跳转10行”命令,它将带您到那里。
或者最好显示绝对行号,然后转到xgg,其中x是行号?
Answers:
是的,当然有办法。j
和k
下移和上一行,所以10j
和10k
下降或上升十行。您可以在数字前面加上任何重复的动作。
您可能还想做set relativenumber
很多事情-通过打印相对于当前行的行号(而不是绝对数)来帮助您节省计数。
set relativenumber
和中添加以下内容,同时看到相对行号和绝对行号set number
。这将为相对行号提供光标所在行的绝对行号。
enter
(对于绝对行号,只需在前面加上冒号即可)。如果您习惯于j
和k
普通的键盘布局,可能并不太有用,但是作为箭头使用Colemak的用户,enter
比Colemak j
(QWERTYy
键)更容易触及
上下移动10行可能不适合您的任务以及其他选项。考虑其他动作:
Ctrlf,Ctrlb页面前进和后退。
},{向前和向后移动一段。
您可以在vimrc中编写规则以绑定10j
到键,例如J
,通过在vimrc文件中添加以下行来向下移动10行:
map <S-j> 10j
但是,您将覆盖有用的现有J
命令(合并两行)。为10j
/找到一个定位良好的未使用组合键10k
可能很困难,因此我建议使用我提到的现有动作。
您可能还想知道,您可以通过执行操作后退到看到的单词:?someword
然后通过执行操作
前进到您看到的单词/someword
。这些将比尝试上下移动10行然后将光标重新定位到确切位置要快。如果您无法想到所讨论行的简单搜索字符串,则始终可以按照您所说的(xgg
)转到行号。
我当时正忙于vim,并且注意到-将您向上和+向下移动,所以您可以:
10-
或者可以使用,k因为您最习惯了hjkl光标移动。
enter
其作用与+
在数字之后相同,并且在大多数时间更容易到达