python | 基础学习(七)Linux——vi

一、vi与vim简介

vi(Visual interface),是Linux中最经典的 文本编辑器
核心设计思想是让程序员的手指 在 键盘的核心区域 就能 完成所有的编辑操作。

vi特点:

没有图形界面,功能强大
只能编辑文本 内容 ,不能对字体、段落进行排版
不支持鼠标操作
没有菜单,只有命令

在没有图形界面的环境下,要编辑文件,vi是最佳选择。在工作中,要对服务器上的文件进行 简单 的修改,可以使用ssh远程登录到服务器上,并且使用vi进行快速的编辑即可。需要修改的文件包括:源程序配置文件例如ssh的配置文件~/.ssh.config。每一个Linux的程序员,都应该学习一些vi的常用命令。

vim(vi improved):vim是从vi发展出来的一个文本编辑器,支持 代码补全、编译错误跳转 等方便编程的功能,被称为 编辑器之神,在程序员中广泛使用。在很多Linux发行版中,直接把vi做成vim的软连接。

二、打开和新建文件

在终端中输入:$ vi 文件名

如果文件已经存在,会直接打开该文件
如果文件不存在,会新建一个文件

在终端中输入:$ vi 文件名 +行数

即可打开一个文件,并定位到指定行。
注:如果只带+而不指定行号,会直接定位到文件末尾。

异常处理:发现交换文件“.xxx.py.swp”。
解决办法:终端中输入D删除交换文件。

三、vi的三种工作模式

1、命令模式

打开文件首先进入命令模式,这是使用vi的入口;
通过 命令 对文件进行常规的编辑操作:

命令
1、重复次数

先输入一个数字,再跟上一个命令,可以让命令 重读执行指定次数。

2、移动和选择

vi之所以快,关键在于 能够快速定位到要编辑的代码行
移动命令 能够和 编辑操作 命令 组合使用
行数移动

在这里插入图片描述

屏幕移动

在这里插入图片描述

段落移动:vi中使用 空行 来区分段落。一段功能相关的代码会写在一起,之间没有空行;

在这里插入图片描述

括号切换()[]{}

%可以实现在 成对的括号 之间快速切换。

标记

在开发时,某一块代码需要稍后处理,可以先使用m增加一个标记,这样可以在需要时快速地跳转回来 或者 执行其他编辑操作。
标记名称可以是a~zA~Z之间的任意一个字母。
如果添加了标记的行被删除,标记同时被删除。
如果在其它行添加了相同名称的标记,之前添加的标记也会被替换掉。
在这里插入图片描述

选中文本

首先要使用Visual命令切换到 可视模式
vi提供了三种可视模式,可以方便程序员选择:
在这里插入图片描述
ESC可以放弃选中,返回到 命令模式。可视模式下,可以和 移动命令 连用。如ggVG可以选中所有内容。

3、编辑操作

删除、复制、粘贴、替换、缩排
①删除文本:

如果使用 可视模式 已经选中了一段文本,name无论使用d还是x,都可以删除选中的文本。如果想删除三行,可以输入3dd
在这里插入图片描述
删除命令 可以与 移动命令 连用
在这里插入图片描述

②复制与粘贴

vi中提供有一个 被复制文本的缓冲区
复制 命令会将选中的文字保存在缓冲区
删除 命令删除的文字会被保存在缓冲区
在需要的位置,使用 粘贴 命令可以将缓冲区的文字插入到光标所在的位置。
在这里插入图片描述
如果想复制两行,可以输入2yy``。 命令dx(删除命令)类似于图形界面的 **剪切**操作——ctrl + x命令y类似于图形界面的 **复制操作**——ctrl + c命令p类似于图形界面的 **粘贴操作**——ctrl + vvi中的 **文本缓冲区同样只有一个**,如果后续做过 **复制、剪切**操作,之前缓冲区中的内容会被替换。 注意:vi中的 **文本缓冲区** 和系统的 **剪切板** 不是同一个,所以在其它软件中使用ctrl + c复制的内容,不能在vi中通过p`命令粘贴。可以在 编辑模式 下使用 鼠标右键粘贴

③替换

在这里插入图片描述
R命令可以进入 替换模式,替换完成后,按下ESC可以回到 命令模式
替换命令的作用就是不用进入 编辑模式,对文本进行 轻量级的修改

④缩排和重复执行

在这里插入图片描述
缩排命令 在开发程序时,统一增加代码的缩进比较有用。
一次性 在选中代码前增加4个空格,叫做 增加缩进
一次性 在选中代码前删除4个空格,叫做 减少缩进
可视模式 下,缩排命令通常只需要用一个><。在程序中,缩进 通常用来表示代码的归属关系。前面的空格越少,代码的级别越高;前面的空格越多,代码的级别越低。

4、撤销和重复
在这里插入图片描述

5、查找替换

①查找

在这里插入图片描述
查找到指定内容之后,使用next查找下一个出现位置:
n:查找下一个;N查找上一个。
如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可。

②单词快速匹配

在这里插入图片描述
在开发中,通过单词快速匹配,可以快速查看到这个单词在其它什么位置使用过。

6、编辑

在其它图形编辑器下,通过 快捷键 或者 鼠标 实现的操作,都在 命令模式 下面实现;
命令模式 输入 :切换到 末行模式

2、末行模式

vi的出口;

执行操作:

1、保存:w
2、退出:q(如果没有保存,直接输入q是不会退出的)、
3、保存并且退出:wq:x
4、不保存退出(强行退出):q!

w表示write,q表示quit;

5、查找并替换 命令格式::%s///gc

①全局替换
一次性 替换文件中 所有出现的旧文本:%s/旧文本/新文本/g
②可视域替换
先选中要替换的文字 范围:s/旧文本/新文本/g
③确认替换
:%s/旧文本/新文本/gc输入这行代码之后,系统会提供以下几个选项:
y-yes替换
n-no不替换
a-all替换所有
q-quit退出替换
l-last最后一个,并把光标移动到行首
^E向下滚屏
^Y向上滚屏
④插入命令:
在这里插入图片描述

6、另存::w 文件名:会生成新保存的文件。但是编辑窗口仍然是当前文件,并不会切换到“另存的文件”
7、新建::n 文件名
8、浏览文件::e.,会打开内置的文件浏览器,浏览当前目录下的文件

末行模式 输入 ESC切换到 命令模式
命令模式 输入 i切换到 编辑模式
可视块模式 输入 I(大写i)切换到 编辑模式

3、编辑模式

正常地编辑文字,通过移动代码

四、演练

1、编辑命令 与 数字 的连用

连续输出10个星号:**********
1、命令模式输入10,表示要重复10次
2、输入i进入 编辑模式
3、输入 想要输出的内容*
4、按ESC返回到 命令模式,返回之后vi就会把第2、3步的操作重复10次
注:如果不想重复,在进入命令模式前不要 输入数字

2、利用可视块 给多行代码增加注释

可视块 可以在垂直方向上选择代码
1、在 命令模式下,移动到要添加注释的第1行代码,按^数字0来到行首
2、按ctrl + v进入可视块 模式
3、使用j向下连续选中要添加的代码行
4、输入I(注意这里是I不是i)进入 编辑模式,并在 行首 输入注释符号#
5、按下ESC返回到 命令模式,返回之后vi会在之前选中的每一行代码前插入#

五、分屏命令

vi高级命令,可以同时 编辑和查看多个文件
1、横向增加分屏::sp [文件名]——split
2、纵向增加分屏::vsp [文件名]——vertical split
3、切换分屏窗口——都是基于ctrl w。如互换窗口:ctrl w r
①切换到下一个窗口:w——window
②互换窗口:r——reverse
③关闭当前窗口,但是不能关闭最后一个窗口:c——close
④退出当前窗口,如果是最后一个窗口,则关闭vi:q——quit
⑤关闭其他窗口:o——other

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值