这是我自己csdn博客上的整理,拿出来给大家分享一下。

一、大范围的移动:

* 当游标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;

当游标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处;

(/) 移动到 前/后 句 的开始;

{/} 跳转到 当前/下一个 段落 的开始。

g_ 到本行最后一个不是 blank 字元的位置。

fa 到下一个为 a 的字元处,你也可以fs到下一个为s的字元。

t, 到逗号前的第一个字元。逗号可以变成其它字元。

3fa 在当前行查找第三个出现的 a。

F/T 和 f 和 t 一样,只不过是相反方向;

gg 将游标定位到文件第一行起始位置;

G 将游标定位到文件最后一行起始位置;

NG或Ngg 将游标定位到第 N 行的起始位置。

在屏幕中找到需要的 一页 时,可以用下面的命令快速移动游标:

H 将游标移到屏幕上的起始行(或最上行);

M 将游标移到屏幕中间;

L 将游标移到屏幕最后一行。

同样需要注意字母的大小写。H 和 L 命令还可以加数字。如 2H 表示将游标移到屏幕的第2行,3L 表示将游标移到屏幕的倒数第3行。

当将游标移到所要的行是,行内移动 游标可以用下面的命令来实现:

w 右移游标到下一个字的开头;

e 右移游标到一个字的末尾;

b 左移游标到前一个字的开头;

0 数字0,左移游标到本行的开始;

$ 右移游标,到本行的末尾;

^ 移动游标,到本行的第一个非空字元。

二、搜索匹配

和许多先进的编辑器一样,Vim 提供了强大的字元串搜索功能。要查找文件中指定字或短语出现的位置,可以用Vim直接进行搜索,而不必以手工方式进行。搜索方法是:键入字元 / ,后面跟以要搜索的字元串,然后按回车键。编辑程序执行正向搜索(即朝文件末尾方向),并在找到指定字元串后,将游标停到该字元串的开头;键入 n 命令可以继续执行搜索,找出这一字元串下次出现的位置。用字元 ? 取代 / ,可以实现反向搜索(朝文件开头方向)。例如:

/str1 正向搜索字元串 str1;

n 继续搜索,找出 str1 字元串下次出现的位置;

N 继续搜索,找出 str1 字元串上一次出现的位置;

str2 反向搜索字元串 str2 。

三、替换和删除

Vim常规的删除命令是 d、 x (前者删除 行 ,后者删除 字元 ),结合Vim的其他特性可以实现基础的删除功能。将游标定位于文件内指定位置后,可以用其他字元来替换游标所指向的字元,或从当前游标位置删除一个或多个字元或一行、多行。例如:

rc 用 c 替换游标所指向的当前字元;

nrc 用 c 替换游标所指向的前 n 个字元;

5rA 用 A 替换游标所指向的前 5 个字元;

x 删除游标所指向的当前字元;

nx 删除游标所指向的前 n 个字元;

3x 删除游标所指向的前 3 个字元;

dw 删除游标右侧的字;

ndw 删除游标右侧的 n 个字;

3dw 删除游标右侧的 3 个字;

db 删除游标左侧的字;

ndb 删除游标左侧的 n 个字;

5db 删除游标左侧的 5 个字;

dd 删除游标所在行,并去除空隙;

ndd 删除(剪切) n 行内容,并去除空隙;

3dd 删除(剪切) 3 行内容,并去除空隙;

其他常用的删除命令有:

d$ 从当前游标起删除字元直到行的结束;

d0 从当前游标起删除字元直到行的开始;

J 删除本行的回车符(CR),并和下一行合并。

四、字元串搜索

在 编辑模式 讲过字元串的搜索,此处的 命令模式 也可以进行字元串搜索,给出一个字元串,可以通过搜索该字元串到达指定行。如果希望进行正向搜索,将待搜索的字元串置于两个/ 之间;如果希望反向搜索,则将字元串放在两个 ? 之间。例如:

:/str/ 正向搜索,将游标移到下一个包含字元串 str 的行

:?str? 反向搜索,将游标移到上一个包含字元串 str 的行

:/str/w file 正向搜索,并将第一个包含字元串 str 的行写入 file 文件

:/str1/,/str2/w file 正向搜索,并将包含字元串 str1 的行至包含字元串 str2 的行写

五、正文替换

利用 :s 命令可以实现字元串的替换。具体的用法包括:

:%s/str1/str2/ 用字元串 str2 替换行中首次出现的字元串 str1

:s/str1/str2/g 用字元串 str2 替换行中所有出现的字元串 str1

:.,$ s/str1/str2/g 用字元串 str2 替换正文当前行到末尾所有出现的字元串 str1

:1,$ s/str1/str2/g 用字元串 str2 替换正文中所有出现的字元串 str1

:g/str1/s//str2/g 功能同上

:m,ns/str1/str2/g 将从m行到n行的str1替换成str2

六、分屏

普通的Vim模式,打开一个Vim程序只能查看一个文件,如果想同时查看多个文件,就需要用到Vim分屏与标签页功能。

Vim的分屏,主要有两种方式:上下分屏(水平分屏)和左右分屏(垂直分屏),在命令模式分别敲入以下命令即可:

:split(可用缩写 :sp) 上下分屏;

:vsplit(可用缩写 :vsp) 左右分屏。

另外,也可以在终端里启动vim时就开启分屏操作:

vim -On file1 file2... 打开 file1 和 file2 ,垂直分屏

vim -on file1 file2... 打开 file1 和 file2 ,水平分屏

理论上,一个Vim窗口,可以分为多个Vim屏幕,切换屏幕需要用键盘快捷键,命令分别有:

Ctrl+w+h 切换到当前分屏的左边一屏;

Ctrl+w+l 切换到当前分屏的右边一屏;

Ctrl+w+j 切换到当前分屏的下方一屏;

Ctrl+w+k 切换到当前分屏的上方一屏。

即键盘上的h,j,k,l 四个Vim专用方向键,配合Ctrl键和w键(window的缩写),就能跳转到目标分屏。另外,也可以直接按 Ctrl+w+w 来跳转分屏,不过跳转方向则是在当前Vim窗口所有分屏中,按照逆时针方向跳转。

下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用 [Ctrl+W <] 或是 [Ctrl+W>] ,但这可能需要最新的版本才支持。

Ctrl+W = 让所有的屏都有一样的高度;

Ctrl+W + 增加高度;

Ctrl+W - 减少高度。

七、标签页

Vim的标签(Tab)页,类似浏览器的标签页,一个标签页打开一个Vim的窗口,一个Vim的窗口可以支持N个分屏。

在Vim中新建一个标签的命令是:

:tabnew

如果要在新建标签页的同时打开一个文件,则可以在命令后面直接附带文件路径:

:tabnew filename

Vim中的每个标签页有一个唯一的数字序号,第一个标签页的序号是0,从左向右依次加一。关于标签页有一系列操作命令,简介如下:

:tN[ext] 跳转到上一个匹配的标签

:tabN[ext] 跳到上一个标签页

:tabc[lose] 关闭当前标签页

:tabdo 为每个标签页执行命令

:tabe[dit] 在新标签页里编辑文件

:tabf[ind] 寻找 "path" 里的文件,在新标签页里编辑之

:tabfir[st] 转到第一个标签页

:tabl[ast] 转到最后一个标签页

:tabm[ove] N 把标签页移到序号为N位置

:tabnew [filename] 在新标签页里编辑文件

:tabn[ext] 转到下一个标签页

:tabo[nly] 关闭所有除了当前标签页以外的所有标签页

:tabp[revious] 转到前一个标签页

:tabr[ewind] 转到第一个标签页


推荐阅读:
相关文章