文章目录
- 一、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
之所以快,关键在于 能够快速定位到要编辑的代码行
移动命令 能够和 编辑操作 命令 组合使用
行数移动:①屏幕移动:
②段落移动:vi中使用 空行 来区分段落。一段功能相关的代码会写在一起,之间没有空行;
括号切换:
()
、[]
、{}
;
%
可以实现在 成对的括号 之间快速切换。③标记:
在开发时,某一块代码需要稍后处理,可以先使用m
增加一个标记,这样可以在需要时快速地跳转回来 或者 执行其他编辑操作。标记名称可以是a~z
或A~Z
之间的任意一个字母。如果添加了标记的行被删除,标记同时被删除。如果在其它行添加了相同名称的标记,之前添加的标记也会被替换掉。选中文本:
首先要使用Visual
命令切换到 可视模式。vi
提供了三种可视模式,可以方便程序员选择:按
ESC
可以放弃选中,返回到
命令模式。可视模式下,可以和
移动命令连用。如
ggVG
可以选中所有内容。
3、编辑操作
删除、复制、粘贴、替换、缩排
①删除文本:如果使用
可视模式已经选中了一段文本,name无论使用
d
还是
x
,都可以删除选中的文本。如果想删除三行,可以输入
3dd
。
删除命令可以与
移动命令连用
②复制与粘贴
vi
中提供有一个
被复制文本的缓冲区复制命令会将选中的文字保存在缓冲区
删除命令删除的文字会被保存在缓冲区
在需要的位置,使用
粘贴命令可以将缓冲区的文字插入到光标所在的位置。
如果想复制两行,可以输入
2yy``。 命令
d
、
x
(删除命令)类似于图形界面的 **剪切**操作——
ctrl + x
命令
y
类似于图形界面的 **复制操作**——
ctrl + c
命令
p
类似于图形界面的 **粘贴操作**——
ctrl + v
vi
中的 **文本缓冲区同样只有一个**,如果后续做过 **复制、剪切**操作,之前缓冲区中的内容会被替换。 注意:
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