vi基本操作

摘要:
一vi的操作模式vi提供两种操作模式:输入模式和指令模式。如果指定的文件为新文件,则提示:“Newfile”,否则显示该文件的当前内容。$viewfilename以只读方式打开文件filename三指令模式3.1进入输入模式a在当前游标之后输入A在当前行之末输入i在当前游标之前输入I在当前行之首输入o在当前行之下新增一行,并在新增行输入O在当前行之上新增一行,并在新增行输入输入结束后,按Esc键退出输入模式。

一 vi的操作模式
vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。

vi基本操作第1张在输入模式下,按Esc键切换到指令模式下。
vi基本操作第1张在指令模式下,按输入指令(i、a、o等)进入输入模式。

二 进入vi

vi基本操作第1张$vifilename

直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。

vi基本操作第1张$viewfilename

以只读方式打开文件filename
三 指令模式
3.1 进入输入模式

a在当前游标之后输入
A在当前行之末输入
i在当前游标之前输入
I在当前行之首输入
o在当前行之下新增一行,并在新增行输入
O在当前行之上新增一行,并在新增行输入
vi基本操作第1张输入结束后,按Esc键退出输入模式

3.2 游标移动

h向左移动一个字元
l向右移动一个字元
j向下移动一个字元
k向上移动一个字元
b左移一个单词,至词首
w右移一个单词,至词尾
0
移到当前行行首
$移到当前行行尾
+移至下一行的行首
-移至上一行的行首
H移至视窗的第一行
M移至视窗的中间一行
L移至视窗的最后一行
G移至该文件的最后一行
nG移至该文档的第n行
n+下移n行
n-上移n行

3.3 视窗移动

<Ctrl>+f视窗下卷一页
<Ctrl>+b视窗上卷一页
<Ctrl>+d视窗下卷半页
vi基本操作第1张<Ctrl>+u视窗上卷半页
<Ctrl>+e视窗下卷一行
<Ctrl>+y视窗上卷一行

3.4 删除操作

x删除游标所在字元
X删除游标前一字元
dw从游标当前位置开始向后删除一个单词
db从游标当前位置开始向前删除一个单词
d0从行首删除至当前游标位置
d$从游标当前位置删除至行尾
dd删除游标所在行
D同d$

3.5 修改操作

s修改游标所在字元,修改完成后按Esc键结束
S修改整行内容,修改完成后按Esc键结束
r替换当前游标所在字元
R进入替换状态,直至按Esc键结束
cw修改一个单词(从游标位置至词尾)
cb修改一个单词(从词首至游标位置)
cc修改整行内容,完成后按Esc键结束,同S
c0修改行首至游标位置的内容
c$修改游标位置至行尾的内容
~游标所在字元大小写切换

3.6 指令重复
在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有:

nx删除n个字元
ndd删除n行
ns修改n个字元

3.7 取消前一动作(Undo)

u撤消上一指令的结果

3.8 查找字符串

/字符串从当前游标向后查找该字符串
?字符串从当前游标向前查找该字符串
n从当前游标向后查找下一个字符串
N从当前游标向前查找下一个字符串

3.9 查看编辑状况

<Ctrl>+g显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改

四 保存与退出

:w保存,但不退出
:wq保存并退出
:x同:wq
:q退出,如果当前文件没有保存,禁止退出
:q!不保存退出
:wfile1将内容保存至文件file1中,注意:此时编辑的仍为原文件
:w!file1将内容覆盖保存至文件file1中,如文件file1存在,:wfile1将禁止执行

五 环境设置

:set显示已设置的环境状况
:setall显示所有的环境设置选项
:setnu显示行号
:setnonu不显示行号
:setts
=n设置Tab键的长度为n

六 执行指令
以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替。

:10,20d删除第10行至第20行的内容
:10d删除第10行的内容
:%d删除全部内容
:
10,
20co30将第10行至第20行的内容复制到第30行之后
:
10,
20mo30将第10行至第20行的内容移动到第30行之后
:
1,
$s/old/new将第1行至最后一行中的old替换成new
:
1,
$s/^/new将第1行至最后一行的内容前面插入new
:
10将游标移至第10行

七 重复指令

.重复上一条指令

八 切换到shell状态

:sh切换到shell状态,exit返回

免责声明:文章转载自《vi基本操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle笔记(1)19c databse安装mysql事件调度器功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用Python操作MySQL数据库

前言 在工作中,我们需要经常对数据库进行操作,比如 Oracle、MySQL、SQL Sever 等,今天我们就学习如何利用Python来操作 MySQL 数据库。 本人环境:Python 3.7.0 、MySQL 5.7 安装第三方库 使用Python来操作MySQL,需要用到 PyMySQL 这个第三方库,具体安装如下: pip install PyM...

vim相关命令单独记载

1. 无敌的可扩展性 1.1 可扩展性给了软件强大的生命 曾几何时,Windows用户对软件的可扩展性没有概念,他们只能对他们使用的软件进行非常有限的定制。扩展软件的权利保留在软件开发者手中。软件的使用者如果想要新的功能和特性,只能等待软件的升级。有能力的用户等不及了,为了添加自己想要的功能,从0开始写了一款新的软件。就这样,新的功能意味着新的软件,Wi...

ResultSet用法集锦 (转)

转:http://soft-development.iteye.com/blog/1420323 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等.      结果集读取数据的方法主要是getXXX(),他的参数可以是整型表...

SQL Server使用游标或临时表遍历数据

方法一:使用游标(此方法适用所有情况,对标结构没有特殊要求。) declare @ProductName nvarchar(50) declare pcurr cursor for select ProductName fromProducts open pcurr fetch next frompcurr into @ProductName wh...

Redis之Stream

【Stream简介】Redis5.0增加了一种新的数据结构:Stream,它是一个支持多播的可持久化消息队列。Stream的结构是一个链表,将所有的消息都串起来,每个消息都有一个唯一的ID和对应的内容。消息是持久化的,Redis重启后,内容还在。和其它的结构一样,结构上的不同,都是value不同,key都是字符串形式的。key就是Stream这个结构的名称...

游标(cursor)--显式游标&amp;amp;隐式游标、游标四个属性、循环遍历

https://blog.csdn.net/qq_36743482/article/details/79354036 1.1 cursor是什么cursor是光标,游标的意思。比如我们的鼠标的光标就是cursor。那么在数据库中cursor是什么呢?当运行DML(select,update,insert,delete)语句时,ORACLE会在内存中为其分配...