繁体   English   中英

在vim中移动的首选方式(普通模式)

[英]Preferred way to move around in vim (normal mode)

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

你们如何在文件中导航? 我发现自己使用hjkl太多,或者过于重复,我希望在这方面做得更好。 当你在一台大型显示器上时,这很令人沮丧。

我安装了EasyMotion - 到目前为止它对我有好处 - 我只是想知道是否有更好的东西......

谢谢!

我喜欢Ted Naleid的备忘单 它就像一个十字线,因此您可以轻松找到水平和垂直运动。 把它放在显示器旁边的墙上,你很快就会拿起新的动作。

我最近喜欢的动作是:

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

我用bw分别在一行上左右移动。 对于向上和向下,我分别使用Ctrl+uCtrl+d IMO Ctrl+uCtrl+d优于Ctrl+bCtrl+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 { } / ? ^ $ # * ` ' | % 

学习它们,加上所有以[ like [{在编辑C风格的代码时非常有用...

请参阅:help index.txt以供参考。

这取决于你想要如何移动,但一般来说,

  • A使您在行尾处插入模式
  • I在一开始
  • o在下面插入一行
  • O以上

更有力的是,使用/<thing you want to jump to>进行搜索非常方便。 在ac文件中格式化函数

int
funcname()

/^funcname会跳转到函数的开头。 还有更多,但这对于一个刚接触vim的人来说是一个良好的开端。

大多数情况下,我使用以下(按频率顺序):

  • ' R转到标记位置( `太偏离基线键盘使用太多)
  • / 搜索 | 向前搜索 |向后搜索
  • n | N next | previous in search
  • H | L | M顶部|底部|显示中间
  • G转到文件末尾
  • 1G转到第1行
  • {向后退一个'段落'(通常是一个代码块)
  • }向前走一个“段落”

大多数所有这些都可以在命令之前使用计数进行扩充。

简单文档:
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

我从来不需要任何其他东西。

我并没有真正看到在一般启蒙方面添加太多东西但是我使用(根据我使用它们的次数排名):

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是学习钢琴 - 你必须多练习。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM