首页 > 其他分享 >vi编辑器有几种模式?vi编辑器常用命令详解

vi编辑器有几种模式?vi编辑器常用命令详解

时间:2024-04-30 15:37:56浏览次数:18  
标签:字符 set vi 模式 命令 编辑器 常用命令 光标

vi/vim是工作在字符终端环境下的全屏幕编辑器,因为编辑界面相对比较简单,并没有为用户提供鼠标操作和菜单系统,而是通过按键命令实现相应的编辑和操作功能。在vi编辑界面中可以使用三种不同的工作模式。分别是命令模式(Command mode),编辑模式(Insert mode)和末行模式(Last line mode)。在不同的模式能够对文件进行的操作也是不同的。

 

命令模式

用户使用vi/vim命令默认是进入了命令模式,在命令模式下敲击键盘动作会被Vim识别为命令,而非输入字符。比如你想要编辑文本,启动vim进入命令模式后,按下i即可切换到编辑模式。

 

命令模式基本命令

:切换末行命令模式,在最底一行输入命令

↑ ↓ ← →    移动光标位置

 

行间跳转:

G    最后一行

gg   第一行

1G   第一行

10G   跳转到第十行

 

删除命令:

x 删除当前光标所在处的字符

d  删除,可结合光标跳转字符,实现范围删除

d$  删除到行尾

d^  删除到非空行首

d0  删除到行首

dw 下一个单词的词首

de  当前或下一个单词的词尾

db  当前或上一个单词的词首

 

复制命令:

yy  复制行

#yy  复制多行

 

粘贴命令:

p  缓冲区寸的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面

P  缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

 

行内:

^  跳转至行首的第一个非空白字符

0  跳转至行首

$  跳转至行尾

 

替换命令:

r  只替换光标所在处的一个字符

 

撤销更改:

u  撤销最近的修改,相当于Windows中的ctrl+z

#u  撤销之前多次更改

U  撤销光标落在这行后所有此行的更改

 

.  重复上一次操作

#.  重复上一次操作#次

 

~  转换大小写

 

编辑模式

在命令模式下按i就进入了编辑模式,进入编辑模式后可以在末行看到--INSERT--,在输入模式中,日常命令和按键有:

i   在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动

I   行首插入命令

o   在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本

O   在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本

a   在当前光标所在位置之后插入随后输入的文本

A   行尾插入命令

 

字符键+Shift       输入字符

Enter      换行

Backspace    删除光标前一个字符

Del      删除光标后一个字符

↑ ↓ ← →       在文本中移动光标

Home/End      移动光标到行首/行末

Page Up/Page Down      上/下翻页

Insert     切换光标为输入/替换模式,光标将变为竖线/下划线

Esc      退出输入模式,切换到命令模式

 

末行模式

在命令模式下按:就进入了末行模式,英文的冒号哦

末行模式可以输入单个或多个字符的命令,可用的命令非常多,常用的命令有如下:

:q   退出不保存

:w 保存文件

:wq   保存文件并退出

:w 新文件名   另存为新文件

:wq :zz :x   保存并退出

:q!    强制退出不保存

:e 其他文件名(如果已修改需要加e!)   打开新文件进行编辑

:r 其他文件名    在当前文件中读入其他文件内容

#    具体第#行,例如2表示第2行

#,#    左侧#表示起始行,右侧#表示结尾行

#,+#    左侧#表示起始行,加上右侧#表示行数,例如2,+3表示2-5行

.    当前行

$   最后一行

.,$-1   当前行到倒数第二行

%   全文,相当于1,$

 

查找并替换

格式: 范围  s/要查找的内容/替换的内容/g

 

说明:

要查找的内容:可使用基本正则表达式模式   

替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查

找到的整个内容

 

修饰符:

i #忽略大小写

g #全局替换,默认情况下,每一行只替换第一次出现

c #全局替换,每次替换前询问

 

查找替换中的分隔符/可替换为其它字符,如:#,@

范例:

s@/etc@/var@g

s#/boot#/#i

 

显示行号:set number,简写 set nu

取消显示:set nonumber, 简写 set nonu

 

自动缩进

启用:set autoindent,简写 set ai

禁用:set noai

 

加密:

启用: set key=要设置的密码

禁用: set key=       (什么都不写)

 

设置标尺

启用:set cursorline,简写 set cul

禁用:set nocursorline,简写set nocul

 

set帮助:set all

 

以上就是关于vi编辑器的分享,感谢您的阅读,服务器大本营助您成为更专业的服务器管理员!

标签:字符,set,vi,模式,命令,编辑器,常用命令,光标
From: https://www.cnblogs.com/cwff/p/18168088

相关文章

  • VirtualBox虚拟机与主机之间双向复制粘贴
    ref:https://learnku.com/articles/68553VirtualBox虚拟机与主机之间双向复制粘贴VM:VirtualBoxv7主机:Win10VMOS:Ubuntu22确保虚拟机系统没有运行,然后在虚拟机软件VirtualBox选择对应设置的虚拟机系统,然后右侧点击设置(Settings)。依次点击常规(General)–>高......
  • 我第一个开源AI小产品-video2blog即将正式发布
    前言首先它是为了解决我自己的个人问题。不管能不能帮到你,或者对于看到的你是否有点利用价值,也没太大的关系,最起码你可以来看看我开发小产品的整个过程。一段时间以来,我开始通过youtube平台来获取一些知识,或者打发早晚上下班坐地铁的时间。主要是我早晚通勤时间过长,差不多都是一......
  • WPF MVVM Datagrid Selected Multiple items via behavior interaction.trigger,event
    1.Install Microsoft.Xaml.Behaviors.WpffromNuget;2.Addbehaviorreferenceinxamlxmlns:behavior="http://schemas.microsoft.com/xaml/behaviors"3.Passmethodtomvvmviabehavior,interaction,trigger,eventname,TargetObject,MethodNameinxaml......
  • 信译Tinkeditor论新一代BS电子病历编辑器需要具备哪些能力
    笔者从事医疗信息化行业10多年,从事电子病历编辑器的编写工作10余年,对当前热门的B/S架构有一些心得发出来和大家讨论,笔者信译,讨论微信thinkeditor1。1. 是否需要结构化陈旧的自定义字符串格式,虽格式灵活,但需自己编写病历格式解析器,工作量大,容易出错,没有结构化,第三方无法提取数据......
  • k8s的Service详解
    一、Service基本了解Service存在的意义?引入Service主要是解决Pod的动态变化,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。若提供服务的容器应用是分布式,所以存在多个pod副本,而Pod副本......
  • yarn + vue3 + vite 创建项目
      yarncreatevite//通过yarn+vite创建项目填写的创建的项目名称,默认名称vite-project 选择框架,我们点击上下键,回车选择,我们这里选择vue 选择语言,我们点击上下键,回车选择,我们这里选择TypeScript,即ts,然后回车 创建成功,如下 按照提示,执行命令cdvite-pr......
  • DiviDuelo
    我们先模拟样例,会发现\(1\)是一个特别的数字,如果firstplayer拿到了\(1\)那么肯定就输了于是不难得出结论,如果\(n\)是一个完全平方数,那么firstplayer就G了那么考虑不是完全平方数,显然这里考虑gcd不是\(1\)非常困难,于是考虑secondplayer怎么样才能赢由于gcd要为\(1\),不难想到......
  • vimrc 配置
    "============VundleSettingStart============setshell=/bin/bashsett_Co=256setnocompatible"beiMproved,requiredsethiddensetfileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936settermencoding=utf-8setencoding=utf-8fi......
  • Qt-Model/View综合示例
    相关类简介Qt和Model/View模式相关的类比较多,但一般存在继承关系,按model(模型),view(视图),delegate(委托)划分为如下几种:类型类名简介父类modelQAbstractItemModel(抽象类)常用的Model的基类QObjectQStandardItemModel通用model可以实现以下任意类型......
  • Living-Dream 系列笔记 第55期
    状压dp空间优化技巧:滚动数组提前预处理出有效状态T1典题限时返场。上次讲的时候的代码用到了滚动数组,这次讲第二种优化。其实很简单,就是在dp前将所有状态枚举一遍,将同行冲突的判掉,合法的用\(st_i\)存储即可。方法很bf,但经试验可以发现一千多状态中仅有几十个......