≡菜单

8 Essential Vim编辑器导航基础

本文由SathiyaMoorthy撰写。

本文是正在进行中的一部分 Vi / Vim提示和技巧 系列。导航是文本编辑的重要组成部分。为了提高生产力,您应该注意编辑器中所有可能的导航快捷方式。在本文中,让我们回顾以下8个Vi / Vim导航选项。

  1. 线导航
  2. 屏幕导航
  3. 文字导航
  4. 特殊导航
  5. 段落导航
  6. 搜索导航
  7. 代码导航
  8. 从命令行导航

1. Vim行导航

以下是可以逐行完成的四个导航。

  • k – navigate upwards
  • j – navigate downwards
  • l – navigate right side
  • h – navigate left side


通过在VIM中使用重复因子,我们可以执行N次此操作。例如,当您想要
下移10行,然后键入“ 10j”。

在一行中,如果要导航到其他位置,则有其他4个选项。

  • 0 –转到当前行的开头。
  • ^ –转到该行的第一个非空白字符。
  • $ –转到当前行的末尾。
  • g_ –转到该行的最后一个非空白字符。

2. Vim屏幕导航

以下是与屏幕上显示的文本有关的三种导航。

  • H –转到当前屏幕的第一行。
  • M –转到当前屏幕的中间行。
  • L –转到当前屏幕的最后一行。
  • Ctrl + F–向前跳一个全屏。
  • Ctrl + b–向后跳一全屏
  • Ctrl + D–向前跳(向下)半屏
  • Ctrl + U–跳回上半屏

3. Vim特殊导航

您可能要在文件中进行一些特殊的导航,这些导航是:

  • N% –转到文件的第N个百分比行。
  • NG –转到文件的第N行。
  • G –转到文件末尾。
  • `” –最后关闭文件时,转到您在“普通模式”下的位置。
  • `^ –最后关闭文件时,转到插入模式的位置。
  • g –转到文件的开头。

4. Vim Word导航

您可能需要对单词进行一些导航,例如:

  • e –转到当前单词的末尾。
  • E –转到当前单词的末尾。
  • b –转到前一个字。
  • B –转到上一个(之前)的单词。
  • w –转到下一个单词。
  • W –转到下一个单词。


字– 字consists of a sequence of non-blank characters, separated with white space.
字– 字consists of a sequence of letters, digits and underscores.

Example to show the difference between 字and word

  • 192.168.1.1– single WORD
  • 192.168.1.1– seven words.

5. Vim段落导航

  • { –转到当前段落的开头。通过反复按{移至上一个段落的开头。
  • } –转到当前段落的末尾。一次又一次按},再一次移至下一段。

6. Vim搜索导航

  • /一世 –搜索一种模式,它将带您进入下一次出现的模式。
  • ?一世 –搜索一个模式,将您带到上一个出现的模式。
  • * – Go to the next occurrence of the current 字under the cursor.
  • # – Go to the previous occurrence of the current 字under the cursor.

7. Vim代码导航

% –转到匹配的花括号或代码中的括号。

8.从命令行导航Vim

Vim + N文件名:打开文件后,转到文件的第N行。

vim +10 /etc/passwd


Vim + / pattern文件名:转到特定的模式’文件内的s行,从第一个出现。在下面的示例中,它将打开README文件并跳转到单词的第一个出现位置“install”.

vim +/install README


Vim +?patten文件名:转到特定模式’文件内的s行,从最后开始的第一个出现。在下面的示例中,它将打开README文件并跳转到单词的最后一个出现“bug”.

vim +?bug README

推荐读物

Vim 101骇客,作者:Ramesh Natarajan。我是命令行迷。因此,我自然很喜欢Vi和Vim编辑器。几年前,当我在Linux上编写大量C代码时,我常常阅读所有可用的Vim编辑器技巧和窍门。根据我的Vim编辑器经验,我’已编写了Vim 101 Hacks电子书,其中包含有关各种Vim高级功能的101个实用示例,这些将​​使您在Vim编辑器中快速高效地工作。即使您已经使用Vi和Vim编辑器已有数年,并且没有阅读过这本书,也请您帮个忙并阅读这本书。 Vim编辑器的功能会让您惊讶。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 13 评论… 加一 }

  • 维默 2009年3月11日,晚上10:06

    如果没有vim像Emacs一样好或坏,使用标记进行导航就非常重要。可以在字母m后面加上任何其他字母m进行标记。用于标记的小写字母在文件范围内,而用于标记的大写字母在文件范围内。要跳转到标记,请使用`a或‘a,我更喜欢`a,因为它可以将我带到我离开商标的确切位置。要查看标记的位置,请在ed模式下使用:marks。

    标记导航的总体步骤是;
    使用ma将标记放在一行上,然后转到其他地方进行编辑,然后使用`a跳回
    假设我在某个文件中,我使用mA标记了标记,然后转到同一缓冲区中的其他文件,然后使用`A跳回去,这真是太酷了,我只用两次击键就可以跳回到上一个文件。

    最后,在没有ctags的情况下,ctags对于代码导航也非常重要。vim与Eclipse一样糟糕,请使用Ctrl-]跳转到函数定义,并使用Ctrl-t从标签栈中恢复。

    干杯,

  • 维默 2009年3月11日,晚上10:08

    抱歉,忘记了Ctrl-O和Ctrl-I,请尝试

  • 野蛮人奥南 2009年3月12日,上午1:29

    另一行导航命令:
    N| – go to column N

  • 肯·詹宁斯 2009年3月12日,上午4:52

    2. Vim屏幕导航

    。 。 。

    * Ctrl + F–向前跳一个全屏。

    * Ctrl + b–向后跳一全屏

    * Ctrl + D–向前跳(向下)半屏

    * Ctrl + U–跳回上半屏

    3. Vim特殊导航

    。 。 。

    * G–转到文件的开头。

    杂项

    * Ctrl + g–在屏幕底部的状态行中报告光标在文件中的位置。

  • 山姆 2009年3月12日,上午6:44

    好的我’我使用vim已有一段时间了,我以为我知道大多数愚蠢的小捷径。

    很酷。我以前的屏幕快捷方式’注意,某些特殊的导航快捷方式是新的。感谢您的帖子。

  • 萨提亚·莫西(SathiyaMoorthy) 2009年4月1日,上午11:36

    @vimer

    感谢您的评论,也感谢您对MARKS的简短介绍,对此我们有详细的文章 如何在Vi和Vim编辑器中添加书签

  • 拉梅什 2009年4月2日,上午12:18

    @Ken,

    非常感谢您的输入。一世’已经添加了您的快捷方式’ve建议这篇文章。

  • 本杰·费舍尔 2009年7月2日,上午9:46

    在代码导航下,您提到了用于匹配括号和括号的旧的%键。通过启用matchit插件和filetype插件,您可以获得一个完整的额外功能。简单来说:

    :runtime宏/matchit.vim
    :filetype插件在

    现在,打开一个HTML文件(例如),将光标放在标签上(尖括号内而不是尖括号内),然后按%跳到结束标签。有关详细信息,

    :help matchit-install
    :help:文件类型插件

  • 帕万·库玛·辛格 2009年12月1日,下午12:38

    不错的帖子,它确实可以帮助初学者空手。

  • Bellszhu 2012年3月10日,上午8:42

    g –转到文件的开头。

    应该是gg….

  • 菲利普·佩特林科(Philippe Petrinko) 2012年7月12日,上午3:40

    嗨Ramesh,
    感谢您在此站点上所做的所有工作,并感谢您对本主题的关注。

    顺便说一句,“bellszhu” seems to be right,
    [转到文件的开头]是:
    gg
    1G
    1gg

    但不是一个简单的g

    — Philippe,
    法国凡尔赛

  • ish 2013年7月26日,上午2:42

    优秀的文章。经过仔细调查和分类。我非常喜欢它,因为它具有清晰的学习和记忆结构!

  • 2014年3月20日,下午2:37

    G; =进行您之前的更改。
    g,=进行下一个更改(向后移动,vim可以’还不能告诉未来)。

    老实说,生活改变了关键的束缚。

    CTRL + O和CTRL + I相似,但是它们在跳转与更改之间来回发送。

    更多:
    :h变更清单
    :h跳转列表

发表评论