ITPub博客

首页 > > > Vim实践与学习-05定位

Vim实践与学习-05定位

作者:vaqeteart 时间:2020-04-23 16:44:19 0 删除 编辑


# 定位到指定行n

输入: `nG` .

或输入: `ngg` .

或输入: `:n`

这里,n就是指定的行的行号.注意,有时候G=gg.

# 跳到屏幕顶部

输入: `H` .

这里,停在第一个非空字符上。加一个数字N,是指距窗口顶部的行数(如 `NH` 正数第N行)

# 跳到屏幕底部

输入: `L` .

这里,停在第一个非空字符上。加一个数字,是指距窗口底部的行数(如 `NL` 倒数第N行)

# 跳到屏幕中间

输入: `M` .

这里,停在第一个非空字符上。

# 跳到文件首

输入: `gg` .

# 跳到文件尾

输入: `G` .

# 光标移至句尾

输入: `)` .

# 光标移至句首

输入: `(` .

# 光标移至段落开头

输入: `}` .

# 光标移至段落结尾

输入: `{` .

# 跳到行末尾

输入: `$` .

# 跳到行首

输入: `^` .

或输入: `0` .

这里输入 `^` 是移动到首的第一个非空白字符。

# 向后跳到整文件最近距离的单词末尾

输入: `e` .

# 向前跳到整文件最近距离的单词首部

输入: `b` .

# 跳到整文件下个单词首部

输入: `w` .

# 行内移动

以下均可可以加上数字N前缀表示移动N次(如 `3fc` 表示执行 `fc` 3次。)

## 移动到光标右面第一个字符 `c` 的后面

输入: `fc` .

## 移动到光标右面第一个字符 `c` 的前面:

输入: `tc` .

## 移动到光标左面第一个字符 `c` 的前面

输入: `Fc` .

## 移动到光标左面第一个字符 `c` 的后面

输入: `Tc` .

## 重复前一次输入的 `f` , `t` , `F` , `T` 命令

输入: `;` .

例如刚才是 `fc` ,输入 `;` 相当于还是 `fc` 。

## 会反方向重复前一次输入的 `f` , `t` , `F` , `T` 命令

输入: =,= .

例如刚才是 `fc` ,输入 =,= 相当 `Fc` 。

# 在较长行内的移动

这里做一个小小的约定:较长的一行如果占据了屏幕的多行,那么这一行我们把它叫“长行”,屏幕上的一行叫做“屏幕行”。所以对于一个'长行'需要有多个'屏幕行'来显示。

## 在“长行”中移动到下一个“屏幕行”

输入: `gj` .

## 在“长行”中移动到上一个“屏幕行”

输入: `gk` .

## 在"长行"中移动到当前"屏幕行"首

输入: `g^` .

## 在"长行"中移动到当前"屏幕行"尾

输入: `g$` .

这里,如果一行超过了屏幕宽度,会显示在屏幕的多行,显示的虽然是多行,但是实际上还是一行,在输入上下移动的时候虽然是进入了上一行或者下一行,但是往往会呈现出在屏幕中一下跳过n行的样子。 `g$` , `g^` , `gj` , `gk` 在行超过长度时好用。 `j` , `k` 下上移动的是文本中的一行,当文本一行的长度超过屏幕的一行的时候, `j` , `k` 移动的时候在屏幕上可能是移动多行。这时候可以用 `gj` , `gk` 来移动屏幕的一行而不是文本的一行。 同理 `g^` 和 `g$` 是屏幕的行首行尾,而不是文本的行首行尾。

# 按百分比来跳转,跳转到文件50%处

输入: `50%` .

这里利用%实现按百分比来跳转,如果想跳到75%处,输入 `75%` 。

# 翻页

可以跟数字前缀N表示执行的倍数,翻页可以用[PageUP]/[PageDown].

## 向下翻页

输入: `C-f` .

## 向上翻页

输入: `C-b` .

## 向下翻半页

输入: `C-d` .

## 向上翻半页

输入: `C-u` .

# 相对于光标的翻页

效果是行向相应的方向滚动了,光标仍然在原来的行,好像是将这个文本拖动了一样.

## 光标所在行移动窗口的顶端

输入: `zt` .

## 光标所在行移动窗口的中间

输入: `zz` .

## 光标所在行移动窗口的底端

输入: `zb` .

## 将第n行滚至屏幕顶部

输入: `nzt` 。

## 将第n行滚至屏幕底部

输入: `nzb` 。

## 将第n行滚至屏幕中部

输入: `nzz` 。

# 设置书签

输入: `ma` .

这样,会在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。只能记录当前文件里的书签,退出vim后再次进入将不会保留这些书签, 书签只是当前文件中的一个位置,但是我实践一下发现,设置完了书签之后,保存文件,这样也把书签保存了。

# 到书签a处

输入: `` `a ``.

注意,这个不是单引号,它一般位于大部分键盘的 1 的左边。

# 到书签a所在的行

输入: ='a= .

这里用的是单引号,将跳到书签所在的行。

# 到上次编辑文件的地方

输入: `` `. ``.

这个命令很有用,而且你不用自己去标记它,注意这里输入的是反引号 `` ` `` ,精确到点。

# 到上次编辑文件所在行

输入: ='.=

注意这里是精确到行,输入的是引号 ='= 。

# 回到最后一次插入状态返回的位置

输入: ='^= .

或输入: `` `^ ``.

这里 ='.= 精确到行, `` `. `` 精确到点(行+列)。

# 查看当前所有书签的列表

输入: `:marks` .

# 搜索相关

## 搜索一个字符串

输入: `/string` 。

这里 `string` 就是将要被搜索的字符串,会自动跳到光标后面第一个 `string` 处。

## 在上次搜索的基础上向前搜索

输入: `N` 。

## 在上次搜索的基础上向后搜索

输入: `n` .

## 逆向搜索一个字符串

输入: `?string` 。

这里 `string` 就是将要被搜索的字符串,会自动跳到光标前面第一个 `string` 处。之后使用的 `:n` 和 `:N` 命令方向也会相反了。

## 列出查找的历史记录

输入: `q/` .

或输入: `q?` .

这会在vim窗口最下面打开一个新的窗口,列出你的查找历史记录可以选择。

## 向下完全匹配当前光标下单词

输入: `*` 。

之后也可以按 `n` 继续向下查找。

## 向上完全匹配当前光标下单词

输入: `#` 。

之后也可以按 `N` 继续向上查找。

## 向下匹配包含当前光标单词的字符串

输入: `g*` 。

## 向上匹配包含当前光标单词的字符串

输入: `g#` 。

# 跳到匹配的另一半括号

输入: `%` 。

这样可以查找配对的括号,即: )、]、}。

# 打开当前光标单词下的文件

输入: `gf` 。

这里,假设当前的光标在相应的文件名上面,例如 `main.c` 等等。

# 切换到上次打开文件

输入: `C-^` 。

这里,例如我们输入了 `gf` 进入某个文件,可以输入 `C-^` 来回到刚才的文件,这个命令只能在当前和上一个文件之间切换,不能后退多步。

# 后退到某个曾经浏览过的位置

输入: `C-o` .

流行的文本编辑器通常都有前进和后退的功能,可以在文件中曾经浏览过的位置之间来回移动。在vim中多次输入 `C-o` 可以执行后退。

# 前进到某个曾经浏览过的位置

输入: `C-i` .

或输入: `[Tab]` .

这样,如果执行过后退,在vim中多次输入 `C-o` 可以执行前进。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9525959/viewspace-3133725/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
软件开发者,擅长嵌入式Linux软件开发、Linux系统操作、时间管理、其它。

注册时间:2009-03-17

  • 博文量
    60
  • 访问量
    12562