文章目录

  • 一、vi与vim简介
  • 二、打开和新建文件
  • 三、vi的三种工作模式
  • 1、命令模式
  • 2、末行模式
  • 3、编辑模式
  • 四、演练
  • 1、编辑命令 与 数字 的连用
  • 2、利用可视块 给多行代码增加注释
  • 五、分屏命令


一、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之所以快,关键在于 能够快速定位到要编辑的代码行
移动命令 能够和 编辑操作 命令 组合使用
行数移动

python vim 提示 python中vim什么用_python vim 提示

屏幕移动

python vim 提示 python中vim什么用_linux_02

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

python vim 提示 python中vim什么用_linux_03

括号切换()[]{}

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

标记

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

python vim 提示 python中vim什么用_vim_04

选中文本

首先要使用Visual命令切换到 可视模式
vi提供了三种可视模式,可以方便程序员选择:

python vim 提示 python中vim什么用_python vim 提示_05


ESC

可以放弃选中,返回到

命令模式

。可视模式下,可以和

移动命令

连用。如

ggVG

可以选中所有内容。

3、编辑操作

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

如果使用

可视模式

已经选中了一段文本,name无论使用

d

还是

x

,都可以删除选中的文本。如果想删除三行,可以输入

3dd


python vim 提示 python中vim什么用_python vim 提示_06


删除命令

可以与

移动命令

连用


python vim 提示 python中vim什么用_命令模式_07

②复制与粘贴

vi

中提供有一个

被复制文本的缓冲区
复制

命令会将选中的文字保存在缓冲区


删除

命令删除的文字会被保存在缓冲区


在需要的位置,使用

粘贴

命令可以将缓冲区的文字插入到光标所在的位置。


python vim 提示 python中vim什么用_vim_08


如果想复制两行,可以输入

2yy``。 命令

d

x

(删除命令)类似于图形界面的 **剪切**操作——

ctrl + x

命令

y

类似于图形界面的 **复制操作**——

ctrl + c

命令

p

类似于图形界面的 **粘贴操作**——

ctrl + v


vi

中的 **文本缓冲区同样只有一个**,如果后续做过 **复制、剪切**操作,之前缓冲区中的内容会被替换。 注意:

vi

中的 **文本缓冲区** 和系统的 **剪切板** 不是同一个,所以在其它软件中使用

ctrl + c

复制的内容,不能在

vi

中通过

p`命令粘贴。可以在

编辑模式

下使用

鼠标右键粘贴

③替换

python vim 提示 python中vim什么用_linux_09


R

命令可以进入

替换模式

,替换完成后,按下

ESC

可以回到

命令模式


替换命令

的作用就是不用进入

编辑模式

,对文本进行

轻量级的修改

④缩排和重复执行

python vim 提示 python中vim什么用_命令模式_10


缩排命令

在开发程序时,

统一增加代码的缩进

比较有用。


一次性

在选中代码前增加4个空格

,叫做

增加缩进

一次性

在选中代码前删除4个空格

,叫做

减少缩进


可视模式

下,缩排命令通常只需要用一个

>

<

。在程序中,

缩进

通常用来表示代码的归属关系。前面的空格越少,代码的级别越高;前面的空格越多,代码的级别越低。

4、撤销和重复


python vim 提示 python中vim什么用_vim_11

5、查找替换

①查找

python vim 提示 python中vim什么用_命令模式_12


查找到指定内容之后,使用

next

查找下一个出现位置:


n

:查找下一个;

N

查找上一个。


如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可。

②单词快速匹配

python vim 提示 python中vim什么用_命令模式_13


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

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向上滚屏
④插入命令:

python vim 提示 python中vim什么用_命令模式_14

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