Ubuntu复习笔记-vi编辑器


简介

命令模式

可通过键盘输入指令,控制光标移动,删除字符,字母或行等。

插入模式

可以进行文字编辑。

底线模式

进行文字编辑的辅助功能,如替换,搜索,保存等。

img

使用vi打开文件后默认是命令模式,按下:进入底线模式,可以输入一些命令进行文本操作。

编辑多个文件:

vi后输入多个文件名,每个文件名之间用空格分隔,就可以编辑多个文件。

可以在命令模式下输入先保存:w,再输入:n继续打卡下一个文件。

若想编辑之前的文件,输入:N即可回到之前的文件。

:rew可以直接回到第一个文件。

:q或:q!是不存盘的退出。

而:wq和:wq!是存盘的退出。

还可以在命令模式下输入:w + 另一文件名称将文件另存。

还可以指定行号进行另存,:n,m write + 文件名。

:n,m w! + 文件名可以进行文件覆盖。

追加内容可以使用:n,m w >> 文件名,将n至m行的内容追加至新文件中。

在命令模式下输入u即可撤销对文件内容的修改操作。

移动光标

在命令模式可以对光标进行移动。

可以按小键盘的\(↑、↓、←、→\)。也可以按字母键\(l、j、h、k\)

\(l\)表示光标向右移动,\(j\)表示光标向下移动,\(k\)表示光标向上移动,\(h\)表示光标向左移动。

\(w\)将光标移动到下一个单词的开头,\(b\)将光标向前移动一个单词,\(e\)将光标移动到单词的词尾。

一行内移动,\(f+\)字母,移动到下一个指定的字母。任意数字键+\(|\),将光标移动到数字键的字符位置。

\(\$\)将光标移动到行尾,\(\text{^}\)移动到行尾。

数字+\(G\)移动到对应行首,:任意数字移动到数字对应行的行首,\(:\$\)移动到文件最后一行行尾。

\(-\)将光标向上移动一行,\(+\)将光标向下移动一行。

\(M\)将光标移动至当前屏幕中间,\(L\)将光标移动至当前屏幕的下方,\(H\)将光标移动到屏幕上方。

\(Ctrl+D\)向下移动半屏文字内容,\(Ctrl+U\)向上移动半屏文字内容,\(Ctrl+F\)向下移动下一屏文字内容,\(Ctrl+B\)向上移动上一屏文字内容。

文本添加

\(i\)左侧插入文本,\(a\)右侧插入文本。

\(O\)上方插入文本,\(o\)下方插入文本。

\(I\)在行首插入文本,\(L\)在行尾插入文本。

文本查找和替换

向前查找,在命令模式输入\(/\)+查找文本。\(n\)\(/\)+查找文本继续向前查找所需字符串。

向后查找,在命令模式输入\(/\)+查找文本。若继续往后查找可以输入\(N\)\(?a\)

文本复制、剪切于复制

\(y\)复制,\(p\)粘贴,\(x\)剪切。

字符 单词
复制 yl yw yy
剪切 x dw dd
粘贴 p p p

文本删除与撤销

x删除单个字符,数字+x删除若干个字符。

\(dw\)删除一个单词,数字+\(dw\)删除若干个单词。

\(dd\)删除单行,数字+\(dd\)删除多行,\(n,md\)删除\([n,m]\)之间的行。

更改vi配置

显示和设置行号

在命令模式下输入

:set number

关闭行号

:set nonumber
:set autoindent/:set noautoindent

是否设置自动缩进。

:set showmode/:set noshowmode

是否显示当前编辑状态

:set ignorecase/:set noignorecase

是否忽略大小写

高级功能

命令映射:

设置命令映射,将一条或多条命令与单个键联系。

: map # 指令

命令缩写:

: ab 名称名称 指令