前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim 学习笔记(二)—— 基本导航命令

vim 学习笔记(二)—— 基本导航命令

作者头像
为为为什么
发布2022-08-05 10:44:54
1.1K0
发布2022-08-05 10:44:54
举报
文章被收录于专栏:又见苍岚

课程链接:https://www.bilibili.com/video/BV1Cb411u7L9?p=7 本节课介绍基本的文本导航命令。

导航命令

命令模式下:

移动光标
  • j: 下移一行
  • k: 上移一行
  • l: 右移一列
  • h: 左移一列
  • Ctrl+f: 下翻页
  • Ctrl+f: 上翻页
单词切换
  • w: 下一个单词,分辨标点
  • W: 下一个单词,只识别空格
  • b: 上一个单词,分辨标点
  • B: 上一个单词,只识别空格
光标复位
  • z - Enter: 将光标所在位置复位至中上部
行间切换
  • 0: 光标移至行首
  • ^: 光标移至行内第一个单词
  • $: 光标移至行尾
  • num - gg: 移动至num行第一个单词
  • num - G: 移动至num行第一个单词
  • :num - Enter: 移动至num行第一个单词
  • :$ - Enter: 移动至num行第一个单词
  • gg: 返回文件首部第一个单词
  • G: 到文件最末行第一个单词
工作状态
  • Ctrl+g: 显示文件名 工作状态 当前行数
  • g - Ctrl+g: 显示当前行列详细信息
  • :set ruler: 开启标尺信息

开启标尺后,Ctrl+g不再显示重复信息

  • :set noruler: 关闭标尺信息
  • :set ruler!: 对当前ruler设置取反(如果关闭则打开,如果打开则关闭)

快捷键汇总

滚动整页或半页

导航键

描述

CTRL+F

向下滚动整页

CTRL+B

向上滚动整页

CTRL+D

向下滚动半页

CTRL+U

向上滚动半页

CTRL+E

向下滚动一行

CTRL+Y

向上滚动一行

字的导航

导航键

描述

w

移动到下一个word的开始处

W

移动到下一个WORD的开始处

e

移动到当前word的末尾

E

移动到当前WORD的末尾

b

移动到前一个word的开始处

B

移动到前一个WORD的开始处

word和WORD的区别

word由一系列的字符、数字和下划线构成,而WORD是由非空白符组成的字符串,有空格分开。例如image[0].x = 192.15,那么这个有很多的word组成,而只有三个WORD组成,分别为:image[0].x、=和192.15。

一行中的几个光标特殊位置

导航键

描述

0

跳转至当前行的开始

$

跳转至当前行的结束

^

跳转至当前行开始的第一个非空字符

g_

跳转至当前行最后一个非空的字符

段落、章节、语句的跳转

导航键

描述

{

移动至当前段落的开始

}

移动至下一段落的开始

[[

移动至当前章节的开始

]]

移动至下一章节的开始

(

移动至当前语句的开始

)

移动至下一语句的开始

好好体会段落、章节和语句的含义。其中段落比较使用,可以从一个子函数中来回的跳转。章节:大跳转。语句:空白行分割。

屏幕导航

导航键

描述

H

移到屏幕顶端的行-home

M

移到屏幕中央的行-middle

L

移到屏幕底端的行-last

nH

移到屏幕顶端往下的第n行

nL

移到屏幕底端网上的第n行

使用当前行重绘屏幕

导航键

描述

z然后ENTER

将光标行移到屏幕顶端并滚动屏幕

z.

将光标行移到屏幕中心并滚动屏幕

z-

将光标行移到屏幕底端并滚动屏幕

200z然后ENTER

会把第200行移到屏幕顶端

快速跳转至文件首尾

导航键

描述

:0

跳转至文件头-方法1

gg

跳转至文件头-方法2

1G

跳转至文件头-方法3

😒

跳转至文件尾-方法1

G

跳转至文件尾-方法2

跳转至文件的第N个字符、N%

导航键

描述

50%

跳转至文件的50%处,即文件中间

75%

跳转至文件的75%处,即3/4处

100l

跳转至从当前位置开始计算的第100个字符

100

跳转至从当前字符开始计算的第100个空格处,与上述100l含义相同

:goto 25

移动至从文件开始处的第25个字符

25 |

移动到当前行的第25个字符

显示当前行数

命令

描述

:set number:set nu

显示行数

:set nonumber:set nonu

不显示行数

:set numberwidth=10

行数显示默认宽度为4个字符,我们可以通过该命令来设为10个字符。

跳转至特定行

导航键

描述

:50

跳转至50行-方法1

50gg

跳转至50行-方法2

50G

跳转至50行-方法3

源码导航

下面的几个对与经常写程序源码的或者写shell脚本的系统管理员比较有用。

导航键

描述

%

跳转至匹配对,可以是()、{}或者[]

[(

跳转至前一个没有匹配的(

[)

跳转至前一个没有匹配的)

[{

跳转至前一个没有匹配的{

[}

跳转至前一个没有匹配的}

在插入状态移动光标

在常规状态下,我们可以通过w和W来在word中移动光标,但是一旦进入了插入模式,就不能使用这两个导航键了,但是我们也不需要退出插入模式,然后在使用w导航,我们可以使用SHIFT+方向键来快速移动。

使用CTRL+O和CTRL+L跳转

Vim会保存我们在其中的所有导航操作到一个列表,我们可以使用:jumps来查看该列表,同时可以使用下述导航键来进行跳转。

CTRL+O

跳转至前一个记录点

CTRL+L

跳转至后一个记录点

5CTRL+O

跳转至当前记录点的前5个

5CTRL+L

跳转至当前记录点的后5个

在很长的一行中导航

我们知道一般终端的每一行都会有个字数限制,如果一行的字符数超过了这个限制,就会自动跳转到下一行,比如实际的一行可能你看起来是5、6行的样子,那么这个时候你如果使用j、k那么就有种跳转了N行的假象。在这种情况下,如果在视觉情况下,跳转到下一行(其实是同一行),使用下述导航键。

导航键

描述

gj

视觉中的下一行

gk

视觉中的上一行

g^

当前视觉行的行首

g$

当前视觉行的行尾

gm

当前视觉行的中间

Vim命令行导航

在我们使用vim打开文件的时候,就可以按照自己的需要跳转到指定的位置。

命令行

描述

vim +143

打开文件filename,并跳转到143行

vim +/search-term

打开文件filename,并跳转到从文件头开始的第一个符合条件的位置

vim +?search-term

打开文件filename,并跳转到从文件尾开始的第一个符合条件的位置

vim –t TAG

跳转到一个特定的TAG

使用标记创建本地书签

有两种书签,本地书签和全局书签,区别在于本地使用小写字母,全局使用大写字母。

书签命令

描述

ma

在光标位置创建书签a

`a

跳转到书签a的精确位置

‘a

跳转到书签a所在行的行首

创建全局书签

将ma改为mA就可以创建全局书签A。

这个主要用在当我们打开多个文件的时候,创建全局书签可以方便的在各个文件中跳转。

显示所有的书签

可以使用命令:marks来显示所有的书签。我们会发现不过什么时候打开所有书签,都会有’, ”,[ ,]和.。这几个都是默认的书签,有特殊的含义。

默认书签

描述

`”

退出前最后编辑的位置

`[

上次修改或者复制的第一个字符

`]

上次修改或者复制的最后一个字符

`<

上次visual区域的第一行

`>

上次visual区域的最后一行

`.

最后一次修改的位置

`^

最后一次插入模式停止的位置

还可以使用:marks a来显示所有关于书签a的详细信息。

使用ctags来有效地在源码中跳转
  1. 当然使用之前,需要先行安装ctags包;
  2. 在源码文件夹中,使用ctags *.c来生成一个文件名为tags的信息tags文件;
  3. 然后vim main.c 后,输入:ta main就可以直接跳转到mian定义处,
  4. 也可以使用CTRL+]来跳转到函数的定义处,使用它CTRL+T返回到原文件;
  5. 还可以使用它:ta *然后按tab来便利需要查询的函数;

Vim命令

描述

:ts

显示所有的tag表

:tn

跳转到列表中的下一个tag

:tp

跳转到列表中的前一个tag

:tf

跳转到列表中的第一个tag

:tl

跳转到列表中的最后一个tag

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年7月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导航命令
    • 移动光标
      • 单词切换
        • 光标复位
          • 行间切换
            • 工作状态
            • 快捷键汇总
              • 滚动整页或半页
                • 字的导航
                  • word和WORD的区别
                • 一行中的几个光标特殊位置
                  • 段落、章节、语句的跳转
                    • 屏幕导航
                      • 使用当前行重绘屏幕
                        • 快速跳转至文件首尾
                          • 跳转至文件的第N个字符、N%
                            • 显示当前行数
                              • 跳转至特定行
                                • 源码导航
                                  • 在插入状态移动光标
                                • 使用CTRL+O和CTRL+L跳转
                                  • 在很长的一行中导航
                                    • Vim命令行导航
                                      • 使用标记创建本地书签
                                        • 创建全局书签
                                          • 显示所有的书签
                                            • 使用ctags来有效地在源码中跳转
                                            • 参考资料
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档