我还没有在stackoverflow上看过这个问题,这是我在vim中最大的痛点:
你们如何在文件中导航?我发现自己使用hjkl太多,或者过于重复,我希望在这方面做得更好。当你在大型显示器上时,这很令人沮丧。
我安装了EasyMotion - 到目前为止它对我有好处 - 我只是想知道是否有更好的东西......
谢谢!
答案 0 :(得分:20)
我喜欢cheatsheet of Ted Naleid。它就像一个十字线,因此您可以轻松找到水平和垂直运动。把它放在显示器旁边的墙上,你很快就会发现新的动作。
我最近喜欢的动作是:
答案 1 :(得分:9)
我使用b
和w
分别在一行上左右移动。对于向上和向下,我分别使用Ctrl+u
和Ctrl+d
。 IMO Ctrl+u
和Ctrl+d
优于Ctrl+b
和Ctrl+f
,因为它们一次滚动半窗口,因此您不会丢失上下文。
到目前为止,我还没有真正使用任何插件在vim中移动。
忘了提及另外两个重要的击键,$
和^
分别移到行尾和行的开头。
答案 2 :(得分:7)
几个移动命令:
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
以供参考。
答案 3 :(得分:3)
这取决于你想要如何移动,但一般来说,
A
会让您在行尾的插入模式下I
开头o
在O
以上并且更有力,使用/<thing you want to jump to>
进行搜索非常方便。在函数格式化的c文件中
int
funcname()
/^funcname
将跳转到函数的开头。还有更多,但这对于vim的新手来说是一个良好的开端。
答案 4 :(得分:3)
大多数情况下,我使用以下(按频率顺序):
大多数所有这些都可以在命令之前使用计数进行扩充。
答案 5 :(得分: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
我从来不需要任何其他东西。
答案 6 :(得分:1)
我在一般启蒙方面并没有多少添加,但我使用(根据我使用它们的次数排名):
w and b
向右和向左移动一个单词。
/ and ?
在底部或顶部搜索单词或图案。
G and gg
跳到缓冲区的底部和顶部。
<C-f> and <C-b>
跳转到下一个和上一个屏幕。
* and #
跳转到光标下单词的下一个和上一个出现。
f and F
在字符向右或向左跳转。
t and T
向右或向左跳跃角色。
何!和
$ and ^
也很多,跳到一行的结尾和开头。
答案 7 :(得分:0)
阅读http://www.viemu.com/a-why-vi-vim.html并运行vimtutor,同时:help motion.txt将非常有用。我建议始终保持正常模式 - 如上文所述。一般来说,学习vim是学钢琴 - 你必须多练习。