2021SC@SDUSC
vi与vim
vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于Windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。
vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;因为程序简单,编辑速度相当快速。vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。
vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。
我们为什么要学习vim
Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:
(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在。
(2)很多软件的编辑接口都会主动调用vi。
(3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。
(4)程序简单,编辑速度快。
实验十一:vim 的使用
1.实验目的
1)了解 vim 的基本原理
2)熟练掌握 vim 的基本使用方法
2.实验内容
了解并掌握 vim 的使用。
3.实验环境
树莓派 4B,系统为 Ubuntu 21.10 系统 。实验的编程环境为 Terminal 终端程序
4.实验步骤
一、vim介绍
vim编辑器的三种模式:一般模式、编辑模式和命令行模式。
在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。按下Esc键可以回到一般模式。在一般模式中输 入:、/、?三个中的任意一个可以将光标移到最下面的一行。在这个模式中可以提供查找数据的操作,而读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。需要注意的是,编辑模式与命令行模式之间是不能互相切换的。
二、vim按键
“一般模式”的常用按键:
“一般模式”的常用按键 | 按键含义 |
---|---|
h | 向左 |
J | 向下 |
K | 向上 |
l | 向右 |
20h | 向左20个字符 |
20j | 向下20行 |
20k | 向上20行 |
20l | 向右20个字符 |
Page Up | 向上翻页 |
Page Down | 向下翻页 |
Home | 光标移到当前行的最左端 |
End | 光标移到当前航的最右端 |
n [空格] | 光标向右移动n个字符 |
N[Enter] | 光标向下N行 |
G | 光标移到最后一行 |
nG | 光标移动到第n行 |
gg或1G | 光标移动到第一行 |
/word | 向下查找word |
?word | 向上查找word |
n | 如果是/word后使用,则表示向下继续查找; 如果是?word后使用,则表示向上继续查找; |
N | 如果是/word后使用,则表示向上继续查找; 如果是?word后使用,则表示向下继续查找; |
:n,m/old/new/g | 从第n行到第m行中,将old替换为new |
:n,$s/old/new/g | 从第n行到最后一行中,将old替换为new |
u | 类似windows中的CTRL+Z,前一步 |
x | 向后删除一个字符 |
X | 向前删除一个字符 |
3x | 向后删除3个字符 |
3X | 向前删除3个字符 |
dd | 删除当前行 |
3dd | 删除当前行开始的3行 |
yy | 复制当前行 |
3yy | 复制当前行开始的3行 |
p | 黏贴到当前光标的下一行 |
P | 黏贴到当前光标的上一行 |
CTRL+r | 重做前一个操作 |
“命令行模式”的常用按键:
“命令行模式”的常用按键 | 按键含义 |
---|---|
:w | 保存 |
:q | 退出vim |
:wq | 保存并退出 |
:wq! | (在可以转换权限的情况下)强制保存并退出 |
:q! | 直接退出不保存 |
:w filename | 另存为filename |
:n,m w filename | 将第n行到第m行另存为filename |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:! command | 暂时离开vim,并执行command,执行完后再进入vim |
:r filename | 将filename文件的数据读入当前文件 |
:set all | 显示当前vim的环境配置 |
三、vim记录及默认配置文件
/etc/vimrc文件为全局vim配置文件:
1.如果我们用ljw账户使用vim后,在/home/ljw就会出现.viminfo文件,此文件用来作为vim的日志,记录用户使用vim打开了什么文件,做了什么操作。 2.如果ljw账户想要配置vim的默认环境,则可以在/home/ljw创建.vimrc,并且配置一些特征,比如显示行号,语法检查等。
一般使用如下配置:
set hlsearch set backspace=2 set autoindent set nu set ruler set showmode set bg=dark syntax on
四、vim的功能
(1)块选择:
这个功能可以让我们复制一个矩形区域的内容,十分方便。
v:字符选择,会将光标经过的地方反白选择;
V:行选择;
Ctrl+v:块选择;
y:复制反白的地方;
d:删除反白的地方。
(2)多文件编辑
我们在两个或多个文件之间复制粘贴内容时,这个功能会让我们方便很多。
使用命令vim name1 name2 name3...(各个文件名之间用空格隔开)可以同时打开多个文件。
:n:编辑下一个文件;
:N:编辑上一个文件;
:files:列出目前vim打开的所有文件。
(3)多窗口功能
可以在一个窗口中打开多个文件。
输入命令:sp{filename}便可以实现这个功能。如果想要在新窗口启动另外一个文件,则加入文件名。如果省略文件名,则打开的是同一个文件。
一个界面能够显示多个文件内容:
TXT:
(1):sp:打开当前文件; (2):sp filename:打开filename文件; (3)CTRL+w+↓:光标切换到下一个窗口; (4)CTRL+w+↑:光标切换到上一个窗口; (5):q:关闭光标所在的窗口;