Vim 编辑器 - 基础入门

目录

一、Vim 编辑器介绍

二、Vim 编辑器的 6 种基本模式

三、常用模式切换

四、Vim 基本操作

01、进入 Vim / 打开文件

02、输入文本

03、移动光标

04、删除文本

05、重复命令

06、复制 / 剪切 / 粘贴

07、可视模式

08、替换文本

09、撤销

10、保存文档

11、退出 vim

12、缩进

13、调整文本位置

14、查找

15、多文件编辑

16、恢复文件

17、视窗操作

18、文档加密

19、在 vim 执行外部命令

20、帮助系统

21、功能设定


一、Vim 编辑器介绍

       在了解 Vim 之前先要认识 Vi ——Vi 是一款诞生于20世纪70年代的文本编辑器,是 Unix 和 Linux 操作系统中最经典的一个编辑器。

       而 Vim 就是从 Vi 发展出来的一个文本编辑器Vim 功能强大、高度可定制,在 Vi 的基础上改进和增加了很多特性。

       我们平时用的编辑器如Word,通常是 "图形化界面 + 鼠标 + 键盘" 的编辑器,使用灵活且功能齐全,可以调整字体、改变大小和颜色、进行文字排版等等。但 ViVim 只是一个纯文本编辑器,工作在字符模式下,不需要图形界面和鼠标

       Vi 虽然没有Word之类的图形界面编辑器那样操作简单,但在系统管理、服务器管理字符界面中,拥有图形界面编辑器无法比拟的优势。Vim 编辑器也在程序员中被广泛使用,和 Emacs 并列为类Unix系统用户最喜欢的文本编辑器。

  • 简单来说,Vim 就是一个不需要鼠标的编辑器,全键盘操作,大大提高工作效率。(不过前提是能熟练使用)

二、Vim 编辑器的 6 种基本模式

1、普通模式(Normal mode)

       Vim 启动后默认为普通模式。普通模式下可以复制行、删除行等操作,但不能进行文本输入,也就是说 Vim 打开后并不能直接输入文本,需要先转换到插入模式才行。(像Word这样的编辑器打开默认就是插入模式,可以直接开始输入)

2、插入模式(Insert mode)

       插入模式下按键会向文本缓存中插入文本,也就是说可以进行输入了。

3、命令行模式(Command line mode)

       命令行模式下可以输入对应的命令,如保存、查找文本等等。命令执行之后,Vim 会返回命令行模式之前的模式。

4、可视模式(Visual mode)

       可视模式与普通模式相似。可视模式下可以选择并高亮一段文本区域。高亮区域可以是字符、行或者是一块文本。可视模式下执行的命令会执行到选择的高亮区域上。

  • 简单来说,就是可视模式下可以选择一段目标文本进行相关操作,就像按住鼠标左键选择一段文本,就能对这段文本进行相关操作。

5、选择模式(Select mode)

       选择模式和无模式编辑器的行为比较相似(Windows 标准文本控件的方式)。选择模式中可以用鼠标或光标键高亮选择文本。在选择后输入任何字符,这个字符就会替换选择的区域,并进入插入模式。

6、Ex 模式(Ex mode)

       Ex 模式和命令行模式相似,在使用 :visual 命令离开 Ex 模式前,可以一次执行多条命令。

  • 以上所有模式常用的只有 3 种:普通模式、插入模式、命令行模式

三、常用模式切换

Vim 编辑器 - 基础入门_第1张图片

四、Vim 基本操作

01、进入 Vim / 打开文件

① 在终端输入以下指令,直接打开 vim 编辑器,但不会打开任何文件。

vim

进入 vim 后,切换命令行模式,输入以下指令,打开文件。

:e 

② 在终端输入指令时直接加上文件名,就能进入 vim 并打开该文件。(若该文件不存在,则自动创建一个新文件) 

vim 

例:vim 1.txt

02、输入文本

  • 普通模式下:
命令 说明
i (小写) 在当前光标处进行编辑
I(大写) 光标移至行首进行编辑
a 在当前光标后进行编辑
A 光标移至行末进行编辑
o 在当前行的后面插入一个新行进行输入
O 在当前行的前面插入一个新行进行输入
cw

删除从光标位置到行末的所有字符,并进入插入模式

03、移动光标

  • 普通模式下:
命令 说明
方向键 上下左右移动光标
h j k l 上下左右移动光标
w 移动到下一个单词(注意是单词而非字符)
b 移动到上一个单词
nG 光标跳转到第 n 行开头

04、删除文本

  • 普通模式下:
命令 说明
delete 删除光标所在的字符
X 删除光标所在的前一个字符
dw daw 删除 1 个单词(适合英文)
dnw 删除 n 个单词
d$ D 从光标开始删除至行尾
d^ 从光标开始删除至行首
dd 删除所在行(实际上是剪切)
ndd 从所在行开始向下删除 n 行
dG 从所在行开头向后删除到文档末尾
d1G 从所在行开头向前删除到文档开头

05、重复命令

  • 普通模式下:
命令 说明
. 重复执行上次命令
n 重复执行 n 次 command 命令

例:

10x   连续删除 10 个字符

3dd   连续删除 3 行

06、复制 / 剪切 / 粘贴

① 复制并粘贴

  • 普通模式下:
操作 命令 说明
复制 y 复制光标所在字符
yy 复制光标所在行
nyy 从光标所在行开始向下复制 n 行
y^ 从光标所在位置复制到行首
y$ 从光标所在位置复制到行尾

yw

复制 1 个单词
ynw 复制 n 个单词
yG 从所在行开头向下复制到文档末尾
y1G 从所在行开头向下复制到文档开头
剪切 dd 剪切光标所在行
粘贴 p 粘贴至光标后
P 粘贴至光标前
交换行 ddp 快速交换光标所在行与下面行

07、可视模式

  • 普通模式下:
命令 说明
v 字符选择模式(再次按下 v 则取消选取)
Shift + v 选择模式(再次按下 Shift + v 则取消选取)
Ctrl + v 区域选择模式(再次按下 Ctrl + v 则取消选取)

  • 可视模式下:
命令 说明
d 删除选取区域内容
y 复制选取区域内容

08、替换文本

  • 普通模式下:
命令 说明
r<待替换字母> 光标所在字母替换为指定字母
R 从光标所在字母开始连续替换(按 Esc 退出)
cc 替换光标所在行(即删除整行),并进入插入模式
cw 替换 1 个单词(即删除 1 个单词),并进入插入模式
C 替换从光标开始到行末(即删除),并进入插入模式
~ 切换光标所在字母大小写

09、撤销

  • 普通模式下:
命令 说明
u 撤销 1 次操作
nu 撤销 n 次操作
U 撤销所在行的所有操作
Ctrl + r redo,撤销 undo 操作

10、保存文档

  • 命令行模式下:
命令 说明
:w 保存文件
:w 将文档另存为其它文件名
:w <文件路径> 另存为
:saveas <文件路径> 另存为

11、退出 vim

  • 命令行模式下:
命令 说明
:q 退出
:q! 强制退出(不保存
:wq :x 保存并退出
:wq! 保存并强制退出

  • 普通模式下:

shift + zz 保存并退出。

12、缩进

① 快速缩进

  • 普通模式下:
命令 说明
>> 整行向右缩进
<< 整行向左回退

② 修改缩进和回退的字符数 - shiftwidth

  • 命令行模式下:
命令 说明
:set shiftwidth? 获取目前的 shiftwidth 设定值
:set shiftwidth=10 修改 shiftwidth 值为 10 个字符

13、调整文本位置

  • 命令行模式下:
命令 说明
:ce 光标所在行文本居中
:ri 光标所在行文本靠右
:le 光标所在行文本靠左

14、查找

① 快速查找

  • 普通模式下:
命令 说明
f<待查找字符> 查找光标后第一个目标字符(行内查找)
/<待查找字符串> + 回车(如:/abc) 查找目标字符串
?<待查找字符串> + 回车(如:?abc) 查找目标字符串
n 继续查找下一个目标字符串
N 继续查找上一个目标字符串

  • 命令行模式下:
命令 说明
:noh 取消查找

② 高级查找

  • 普通模式下:
命令 说明
\* 查找光标处所在单词
\# 查找光标处所在单词
g\* 同 \* ,但只需部分符合单词
g\# 同 \# ,但只需部分符合单词
n 继续查找下一个目标字符串
N 继续查找上一个目标字符串

15、多文件编辑

① 进入 vim 时直接打开多个文件

在终端输入以下命令,同时打开 1.txt 和 2.txt。(默认进入第一个文件编辑界面)

vim 1.txt 2.txt

② 切换文件

当前在 1.txt 文件,如果需要切换文件,命令行模式下输入:

命令 说明
:n 切换到 2.txt 文件
:n! 强制切换(之前的文件不会保存
:N 切换到 1.txt 文件
:N! 强制切换(之前的文件不会保存
:e 3.txt 打开新文件 3.txt
:e# 回到前一个文件
:ls 列出当前编辑过的文档
:b 2.txt 直接进入 2.txt 进行编辑
:bd 2.txt 删除以前编辑过的列表中的文件项目
:e! 4.txt 打开新文件 4.txt,放弃正在编辑的文件
:f 显示正在编辑的文件名
:f new.txt 修改正在编辑的文件名为 new.txt

16、恢复文件

       如果文档未保存意外退出,可以通过交换文件恢复(swp、swn、swm…)

       vim 在编辑的时候会自动在当前文件目录下生成一个交换文件,通常为 .swp 格式。(交换文件的更新和对应文件的更新不是实时的)

例如:1.txt 文件意外关闭

① 进入 vim

② 进入命令行模式,输入以下命令恢复文件:

:recover 1.txt

17、视窗操作

       vim 可以在一个界面里打开多个窗口进行编辑,这些编辑窗口称为 vim 的视窗

  • 命令行模式下:
命令 说明
:new 打开一个新的视窗
:sp 1.txt 打开一个新的水平分屏视窗编辑 1.txt
:vsp 1.txt 打开一个新的垂直分屏视窗编辑 1.txt

  • 普通模式下:
命令 说明
Ctrl + w + s 将当前窗口分割成两个水平的窗口
Ctrl + w + v 将当前窗口分割成两个垂直的窗口
Ctrl + w + o 打开一个视窗并且隐藏之前的所有视窗
Ctrl + w + j 移至下面视窗
Ctrl + w + k 移至上面视窗
Ctrl + w + h 移至左面视窗
Ctrl + w + l 移至右面视窗
Ctrl + w + J 将当前视窗移至下面
Ctrl + w + K 将当前视窗移至上面
Ctrl + w + H 将当前视窗移至左面
Ctrl + w + L 将当前视窗移至右面
Ctrl + w + - 减小视窗的高度
Ctrl + w + + 增大视窗的高度
…… ……

18、文档加密

在终端输入以下命令创建加密文档。输入密码、确认密码,这样下次打开这个文档时就需要输入密码了。

vim -x file

19、在 vim 执行外部命令

在 vim 的命令行模式下输入 ! 即可执行外部的 shell 命令。

命令 说明
:!ls 显示当前目录下的内容
:rm filename 删除名为 filename 的文件
…… ……

20、帮助系统

  • 普通模式下:
命令 说明
F1 打开 vim 预设的帮助文档

  • 命令行模式下:
命令 说明
:h shiftwidth 打开名为 shiftwidth 的帮助文档
:ver 显示版本以及参数

21、功能设定

       在编辑文件的时候可以进行功能设定。但退出 vim 后设定值不会保存,下次打开会恢复默认。如果想要永久保存配置数据,可以修改 vim 配置文件 vimrc

① 获取当前的设定值

  • 命令行模式下:
命令 说明
:set :se 显示所有修改过的配置
:set all 显示所有的设定值
:set 显示 option 的设定值
:set nooption 取消当前的设定值

② set 功能说明

  • 命令行模式下:
命令 说明
:set autoindent set ai 设置自动缩进
:set autowrite 或 set aw 设置自动存档,默认关闭
:set background=dark 或 light 设置背景风格
:set backup 或 set bk 设置自动备份,默认关闭
:set cindent 或 set cin 设置 C 语言风格缩进
:set nu 显示行数

你可能感兴趣的:(Linux,vim,编辑器,linux)