我在stackoverflow上没有看到这个问题,这是我在vim中遇到的最大痛点:
你们怎么在文件中导航?我发现自己经常过度使用hjkl键或重复使用,我想在这方面变得更好。当你在一个大屏幕上时,这非常令人沮丧。
我安装了EasyMotion插件-目前它对我来说很好用-我只想知道是否有更好的选择...
谢谢!
我在stackoverflow上没有看到这个问题,这是我在vim中遇到的最大痛点:
你们怎么在文件中导航?我发现自己经常过度使用hjkl键或重复使用,我想在这方面变得更好。当你在一个大屏幕上时,这非常令人沮丧。
我安装了EasyMotion插件-目前它对我来说很好用-我只想知道是否有更好的选择...
谢谢!
我喜欢Ted Naleid的速查表。它就像一个准星,让你可以轻松找到水平和垂直移动。把它放在显示器旁边的墙上,你很快就能够在飞行中掌握新的移动。
我最近喜欢的移动方式有:
我在单行文本中使用b
和w
向左和向右移动光标。对于上下移动,我分别使用Ctrl+u
和Ctrl+d
。我认为Ctrl+u
和Ctrl+d
比Ctrl+b
和Ctrl+f
更好,因为它们每次滚动半个窗口大小,这样就不会失去上下文。
到目前为止,我还没有真正使用任何vim插件来移动光标。
忘了提到另外两个重要的按键:$
和^
,分别用于移动到行末和行首。
几个移动命令:
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
。
我经常使用以下命令(按照使用频率排序):
大多数命令都可以在执行前加上数字进行重复操作。
这取决于您希望如何移动,但通常:
A
将您置于行末进入插入模式I
则在行首o
在下方插入一行O
在上方插入一行更有力的是,使用/<要跳转的内容>
进行搜索非常方便。在一个格式化了函数的c文件中。
int
funcname()
/^funcname
将跳到函数的开头。还有更多的命令,但对于刚接触vim的人来说,这应该是一个不错的开始。
%
将在打开/结束括号之间切换/searchstring
(与set inc
一起使用以在输入时跳转到匹配项)*
向前搜索相同的单词#
向后搜索就一般启蒙而言,我并没有太多可以补充的,但以下是我常用的编程语言(按使用频率排序):
w and b
向右或向左移动一个单词。
/ and ?
在文本中向下或向上搜索单词或模式。
G and gg
跳转到缓冲区的底部和顶部。
<C-f> and <C-b>
跳转到下一个和上一个屏幕。
* and #
跳转到光标下单词的下一个和上一个出现位置。
f and F
向右或向左跳到一个字符之前。
t and T
向右或向左跳跃到一个字符。
嗨!和
$ and ^
很多,太多了,可以跳到行末和行首。
阅读http://www.viemu.com/a-why-vi-vim.html并运行vimtutor,同时:help motion.txt也会很有用。我建议始终保持正常模式 - 如上文所述。通常,学习vim就像学习钢琴一样 - 你必须多加练习。