VIM超快速导航

Hel*_*nda 83 navigation vim

我唯一想念使用其他编辑器的是用鼠标找到我的位置.我可以用眼睛看到文件上的特定区域,并用鼠标移动并点击一下我就在那里.随着VIM,我必须jjjjjkkkkkjjjjhhhhh ...几乎在那里哦,我错过了3个字符的垃圾,lll.

我正在学习做标记,我找到了一个很棒的书签插件,我可以创建标记并将其销毁<f3>并导航到它们,遗憾的是,当文件关闭时,标记会被遗忘.

你们如何超级导航文件?我知道我也可以做5j7k4j5h等等,但必须有一个插件可以读取我的眼睛并把光标放在我真正需要的地方..

我也学会了使用/%来搜索特定术语.它确实有帮助,但所有匹配的字符都在文档中突出显示.

rom*_*inl 156

试试吧$ vimtutor,它会教你开始时需要知道的一切.

hjkl 是冰山顶端的尖端,很少使用,至少在我的情况下.

wWEe并且BbgegE所有允许逐字移动:

  • we继续前进,WE考虑空白和标点符号

    " here the * marks the default location of the cursor
    " and each letter shows where you jump when you hit the key.
    
    Latin: Lorem ipsum dolor sit amet.
                       *   e   e    e
                       *   E   E     E
    *    w w     w     w     w   w   w
    *      W     W     W     W   W   W
    
    Run Code Online (Sandbox Code Playgroud)
  • b并向ge后退,BgE考虑空白和标点符号

    Latin: Lorem ipsum dolor sit amet.
    b    b b     b     *
    B      B     B     *
         ge    ge    ge*
        ge
         gE    gE    gE*
    
    Run Code Online (Sandbox Code Playgroud)

fFtT用于到达当前行上的特定字符,;,用于重复该运动,在相同的方向;和相反的方向上,:

/? 用于从当前光标位置跳转到第一次出现的模式:

0$ 用于跳转到该行的第一个和最后一个字符.

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
    0                  *                                     $
Run Code Online (Sandbox Code Playgroud)

^g_ 用于跳转到该行的第一个和最后一个可打印字符.

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
                ^      *                         g_
Run Code Online (Sandbox Code Playgroud)

单个和组合()[]{}用于按代码块逐段或逐段或代码块移动.

<C-b><C-f>用于向前和向后滚动屏幕.

<C-u><C-d>用于向后和向前滚动半屏.

H,M并将L光标分别移动到视口的顶部,中间,底部.

zt,zz并将zb光标下的线分别移动到视口的顶部,中间,底部.

等等.

:help motion.txt 会打击你的想法.

  • 我通常不这样做,但这个评论只是告诉你这是一个很好的答案! (12认同)
  • 好吧,这仍然没有真正回答 OP 关于“如何像使用鼠标一样跳转到他看到的一行”的问题。我知道并一直使用您提到的所有键绑定。但是在跳远距离时仍然不如指向鼠标效率高。 (3认同)
  • 由于某种原因,我以前从未使用过 H、M 或 L,很棒的提示! (2认同)

Vin*_*ent 25

除了vim的动作命令,我发现一个名为EasyMotion的vim插件对于导航非常有用,如果你熟悉vimperator或pentadactyl,EasyMotion只需将提示模式带回vim.是一个动画演示,是视频教程.希望它对你有所帮助.

  • EasyMotion的作者到底如何在演示中获得这个超级棒的状态线? (2认同)

Gre*_*ill 18

有很多方法可以在vim中移动,这是它真正强大的领域之一.我使用{}不少,这上下移动,以在该方向上的下一空行.%适用于来回移动到匹配的支架(任何类型).W然后B用"单词"向前和向后移动.

可能值得回顾一下Vim手册的移动部分.

  • 可能还值得一提的是分别使用Ctl + U和Ctl + D进行向上和向下翻页. (4认同)

rgc*_*gcb 10

vim有鼠标支持!尝试一下(在你的.vimrc中):

set mouse=a
Run Code Online (Sandbox Code Playgroud)

旁注:作为屏幕用户,我发现我也需要

set ttymouse=xterm2
Run Code Online (Sandbox Code Playgroud)

为此工作.

  • 很高兴知道,但是我仍然会继续寻找完美的快速导航而无需使用鼠标. (3认同)

Siw*_*申思维 8

我个人更喜欢使用:

"/<chars><enter>" to quickly move to somewhere   ( extremely fast! trust me! )
":<number>" to go to some line, 
"ctrl + f/b" to forward/back
"g;" to move to the last editing place.
"w/b" to move by word
"jklh" to move your cursor to the exact position
Run Code Online (Sandbox Code Playgroud)


mMo*_*ntu 5

使用选项relativenumber:help relativenumber-包含在Vim 7.3中),您可以使用a [count]k[count]j移动到达您的眼睛下方的行,您可以ftweb通过@romainl所解释的移动使当前行移动。


pen*_*sky 5

除此之外{}()<number>cb<number>cB<number>cW%,我用这样的导航技术:

  • ciwdiwciWdiW)。等快速编辑/删除光标下的单词(包括非空格字符)
  • ci(ci"ca(ca")等来快速编辑括号,引号(包括括号,引号)。同样适用于d
  • 用CAPITAL字母标记可以在全局(跨文件)和持久(在缓冲区关闭时)设置它们。例如,mA将创建A可通过'A命令使用的全局标记(或`A尊重列)。
  • gf 快速进入光标下的文件
  • ftFT)移至char的右(左)字符之前(用于;重复)。这些对于dc命令特别有用(用于.重复)。
  • ^]移至标签并^T移回。

还有许多其他移动方式:)

请查看此以获取更多信息:http : //www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/

PS对于Rails用户,有一个非常有用的rails-vim插件,您可能也想查看一下。


小智 5

我只有这个图!

\n
\xe2\x96\xbc/\xe2\x96\xb6 Cursor   \xe2\x96\xbd/\xe2\x96\xb7 Target\n
Run Code Online (Sandbox Code Playgroud)\n
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 0      \n\xe2\x94\x82  \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ^      $ \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 Fo     fe \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90    \xe2\x94\x82\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x82\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 To     te \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\xe2\x94\x82    \xe2\x94\x82\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x82\xe2\x94\x82 \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ge     w \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90    \xe2\x94\x82\xe2\x94\x82    \xe2\x94\x82\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x82\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80 b      e \xe2\x94\x80\xe2\x94\x90 \xe2\x94\x82    \xe2\x94\x82\xe2\x94\x82    \xe2\x94\x82 \n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x82\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82  \xe2\x94\x8ch      l\xe2\x94\x90 \xe2\x94\x82 \xe2\x94\x82    \xe2\x94\x82\xe2\x94\x82    \xe2\x94\x82\n\xe2\x96\xbd  \xe2\x96\xbd  \xe2\x96\xbd\xe2\x96\xbd \xe2\x96\xbd \xe2\x96\xbd  \xe2\x96\xbd\xe2\x96\xbc      \xe2\x96\xbc\xe2\x96\xbd \xe2\x96\xbd \xe2\x96\xbd    \xe2\x96\xbd\xe2\x96\xbd    \xe2\x96\xbd\n   echo "A cheatsheet from quickref.me"\n
Run Code Online (Sandbox Code Playgroud)\n
                 - SCREEN 1 START\n   \xe2\x94\x8c\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x96\xb7 #!/usr/bin/python\n   \xe2\x94\x82 \xe2\x94\x82     \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x96\xb7     \n   \xe2\x94\x82 \xe2\x94\x82     \xe2\x94\x82     print("Hello")\n   \xe2\x94\x82 \xe2\x94\x82     { } \xe2\x96\xb6 print("Vim")\n   \xe2\x94\x82 \xe2\x94\x82       \xe2\x94\x82   print("!")\n   \xe2\x94\x82 \xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x96\xb7    \n   \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x96\xb7 print("Welcome")\nG gg H M L k j \xe2\x96\xb6 print("to")\n\xe2\x94\x82        \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x96\xb7 print("quickref.me")\n\xe2\x94\x82        \xe2\x94\x82       print("/vim")\n\xe2\x94\x82        \xe2\x94\x82     \n\xe2\x94\x82        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x96\xb7 \n\xe2\x94\x82                - SCREEN 1 END\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x96\xb7 print("SCREEN 2")\n
Run Code Online (Sandbox Code Playgroud)\n