在Vim中垂直(有效)移动


27

当我想(水平)到达Vim中某个单词的某个部分时,只需按w,b,f或t(某些东西)即可。有垂直的方法吗?例如,我想要到达某个字或某行的字母,该字或某行的字母位于我当前所在行的下方或上方。

PS:不使用:(行号)

Answers:


29

HM并将L光标分别移至屏幕的顶部,中间和底部。随后,您可以单击zz以将屏幕居中于光标所在的行。


5
zb和zt分别在屏幕底部和顶部移动屏幕
Jani Hartikainen 2010年

11
  • 您可以使用向上/向下箭头移动一行
  • 您可以输入数字,然后使用向上/向下箭头向上/向下移动那么多行
  • g跳转到文档的第一行
  • 大写G字母跳到文档的最后一行
  • 等等

还有各种各样的其他方式,vim在这方面非常灵活。我建议先获取基本命令的vim备忘单,然后在有时间的时候浏览有关该主题的vim文档。

链接到一份备忘单:备忘

也:

  • /+ 字符串 + (Enter)搜索从光标向前到文档末尾的下一个字符串
  • ? -执行相同的操作,但是从光标向后指向文档的开头


6

我通过搜索想去的唯一字符串来跳来跳去。在Vim中,可以使用以下方法执行此操作:

/搜索字符串

输入搜索内容后,通常通常使用n和N向前和向后滚动。

我还使用Ctrl-F和Ctrl-B滚动来快速浏览代码。但是我经常使用搜索技巧。有时,使用n和N进行搜索时可能会迷失方向。Ctrl-G是确定方向的一个好命令,它会在Vim屏幕的底部打印出类似以下内容:

“ script.pl” 328行的219行--66%-列19-23


为<CTRL> -F和<CTRL> -B +1,尽管我倾向于“作弊”并几乎经常使用<PgUp>和<PgDown>!
technomaologic

4

尝试::he motion.txt和:he上下运动

它列出了所有可能的动作




2

如前所述,H,M,L(以高,中,低表示)小写hjkl是左,下,上,右的典型控制台游戏命令,在vi中也是如此(如果启用,j,k在gmail中起作用)键命令)


1

<Ctrl>+D - 下

<Ctrl>+U -向上


那是半页滚动。对于全页面滚动使用<c-f><c-b>
Al.G.

1

除了常规的垂直运动外,我还使用/programming/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines的修改版本。我通常使用箭头键移动,而不是使用hjkl(在找到Vim之前是其他编辑的长期用户,即使在Vim独家使用5年以上之后,也习惯于使用arrow / Home / end / PgUp / PgDn进行切换)。

function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")

通过按住Ctrl键,我可以直观地开始/结束或向上/向下显示行。至少对我来说,这比其他方法更有效。

差点忘了:我需要修改.Xdefaults才能使其在特定urxvt中正常工作,但这可能是一个离题的问题(在Google上提供答案)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.