在vim中(正常模式下)移动光标的首选方法

12

我在stackoverflow上没有看到这个问题,这是我在vim中遇到的最大痛点:

你们怎么在文件中导航?我发现自己经常过度使用hjkl键或重复使用,我想在这方面变得更好。当你在一个大屏幕上时,这非常令人沮丧。

我安装了EasyMotion插件-目前它对我来说很好用-我只想知道是否有更好的选择...

谢谢!

8个回答

24

我喜欢Ted Naleid的速查表。它就像一个准星,让你可以轻松找到水平和垂直移动。把它放在显示器旁边的墙上,你很快就能够在飞行中掌握新的移动。

我最近喜欢的移动方式有:

  • ()和{}可以让你在源代码中跳转函数
  • /和?+n/N只是搜索,你通常知道你想要去哪里
  • fx和tx-跳到或在下一个字符x之前 当然你可以做一个2fx来跳到第二次出现的x,就像你可以用所有的运动做到的一样
  • %移动到起始和结束括号之间

3
+1 这个速查表很聪明,易于理解且外观漂亮。 - romainl
很长一段时间,我把它保存在我的桌面上。 - skeept
对于2020年及以后的人来说,你仍然可以在archive.org上找到这个壁纸。 https://web.archive.org/web/20171028001200/www.naleid.com/2010/10/04/vim-movement-shortcuts-wallpaper.html - Raphaël Duchaîne

10

我在单行文本中使用bw向左和向右移动光标。对于上下移动,我分别使用Ctrl+uCtrl+d。我认为Ctrl+uCtrl+dCtrl+bCtrl+f更好,因为它们每次滚动半个窗口大小,这样就不会失去上下文。

到目前为止,我还没有真正使用任何vim插件来移动光标。

忘了提到另外两个重要的按键:$^,分别用于移动到行末和行首。


8

几个移动命令:

b B e E f F ge gE gj gk go G h H j k l L M n N t T w W { } / ? ^ $ # * ` ' | % 

学习它们,以及以[开头的所有命令,例如[{在编辑C风格代码时非常有用...

有关参考,请参见:help index.txt


5

我经常使用以下命令(按照使用频率排序):

  • 'R 跳转到标记的位置(` 键位偏离基线,不太容易使用)
  • /搜索词|?搜索词 向前|向后搜索
  • n|N 查找下一个|上一个匹配项
  • H|L|M 移动到屏幕顶部|底部|中间
  • G 移动到文件末尾
  • 1G 移动到第一行
  • { 向后移动一个“段落”(通常是代码块)
  • } 向前移动一个“段落”

大多数命令都可以在执行前加上数字进行重复操作。


4

这取决于您希望如何移动,但通常:

  • A将您置于行末进入插入模式
  • I则在行首
  • o在下方插入一行
  • O在上方插入一行

更有力的是,使用/<要跳转的内容>进行搜索非常方便。在一个格式化了函数的c文件中。

int
funcname()

/^funcname将跳到函数的开头。还有更多的命令,但对于刚接触vim的人来说,这应该是一个不错的开始。


2
简单的文档:
http://vim.wikia.com/wiki/Moving_around 常规移动:
hjkl /方向键 /上一页/下一页
%将在打开/结束括号之间切换
gg/G 移动到顶部/底部
折叠:
为了折叠大块的代码,您可以使用折叠。
http://vimdoc.sourceforge.net/htmldoc/fold.html 搜索:
要跳转到特定内容,请输入/searchstring(与set inc一起使用以在输入时跳转到匹配项)
*向前搜索相同的单词
#向后搜索
您还可以使用书签。
http://vim.wikia.com/wiki/Using_marks 我还使用ctags和跳转来查找跨多个文件的内容。
http://vimdoc.sourceforge.net/htmldoc/tagsrch.html 我从未需要其他任何东西。

1

就一般启蒙而言,我并没有太多可以补充的,但以下是我常用的编程语言(按使用频率排序):

w and b

向右或向左移动一个单词。

/ and ?

在文本中向下或向上搜索单词或模式。

G and gg

跳转到缓冲区的底部和顶部。

<C-f> and <C-b>

跳转到下一个和上一个屏幕。

* and #

跳转到光标下单词的下一个和上一个出现位置。

f and F

向右或向左跳到一个字符之前。

t and T

向右或向左跳跃到一个字符。

嗨!和

$ and ^

很多,太多了,可以跳到行末和行首。


0

阅读http://www.viemu.com/a-why-vi-vim.html并运行vimtutor,同时:help motion.txt也会很有用。我建议始终保持正常模式 - 如上文所述。通常,学习vim就像学习钢琴一样 - 你必须多加练习。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接