首页 > 其他分享 >vi编辑器

vi编辑器

时间:2024-04-02 15:59:31浏览次数:20  
标签:set vi 模式 命令 编辑器 输入 跳转 光标

文章目录


一、vi编辑器

Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。

linux中常见的 文本 还有 nano gedit

使用 Vi 文本编辑器的原因有很多:

  • 几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
  • Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计接口。

vi与vim之间的区别

vim是vi的升级版

基本格式:
vim 选项 文件
vim 文件名不存在 是新建
vim 文件名存在 是修改
系统最小化安装vim命令:
yum install vim -y
常用选项:

  • +# 打开文件后,让光标处于第#行的行首,+默认行尾
  • ! 打开上一次的文件

二、三种常见模式

1.命令模式:进入时默认的模式 光标的移动,复制,删除,粘贴
2.编辑模式/输入模式:在命令模式 按i键可以进入输入模式,编辑我的文件
3.末行模式:保存,查找替换,设置默认的参数等
在这里插入图片描述
另外两种模式:
替换模式:r替换一次,R一直替换
可视化模式:按v进入,按字符来选择文本

三、命令模式

命令含义
数字+G跳转到数字行
G最后一行
gg第一行
w单词间跳转
5w跳过5个单词
y复制
yy复制一行
yw复制一个单词
10yy复制10行
P(大写)在光标下一行粘贴
p(小写)在光标上一行粘贴
u撤回操作
U(大写)取消之前所有操作
Ctrl+r取消撤回
dd剪切
10dd剪切10行
dw剪切一个单词
zz保存退出
^跳转到行首(跳转到有字母的行首)
0跳转到行首(跳转到真正的行首)
$跳转到行尾
end跳转到行尾
x剪切一个字符
10x剪切10个字符
~转换大小写
J(大写)删除当前行后的换行符
r只替换光标所在处的一个字符
/字符向下查找
?字符向上查找
set list显示隐藏字符

重点:G、yy、dd、p、u命令

四、输入模式

输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。
切换到输入模式

快捷键功能描述
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I行首插入命令
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a在当前光标所在位置之后插入随后输入的文本
A行尾插入命令

五、末行模式
末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

快捷键功能效果
:q退出不保存
:q!强制退出不保存
:w保存
:w 新文件名另存为新文件:
:wq :zz :x保存并退出(一般建议用wq)
:e 其他文件名(如果已修改需要加e!)打开新文件进行编辑
:r 其他文件名在当前文件中读入其他文件内容
!命令执行命令
:r!命令读入命令
# d删除 第#行
#,# d删除#到#行
#,# y复制三到6 行
:set nu 或:set nonu加行号 不显示行号
:set cul (:set nocul )光标所在行有下划线(取消)
no hl取消高亮
:set ai对齐 回车后和上一行对齐
:set all 可以看所有的一些帮助可以看所有的一些帮助
set key=password加密码
set key=空白取消密码
set tabstop=4 (set ts=4)tab 一次为四个空格
.!命令 (who,date )将date命令插入当前行注意会覆盖当前行

末行模式下的查找替换
通式:
范围 s /旧字符(可以用正则表达式)/新字符(不可以用正则表达式,换上去的字符要确定)/修饰符
s ///标准格式(还可以用@@@ 或###隔开)
范围:

命令功能效果
不写默认处理光标所在行
%全文
$最后一行
$-1倒数第二行
n第几行
. ,10当前行到第十行
3,103到10行
.当前行

修饰符:

命令功能效果
g全行替换
i忽略大小写
c类似于ok每次替换之前询问

例子:
把所有开头的#号去掉
% s/^#//
在所有行开头加上#号
% s/^/#/

标签:set,vi,模式,命令,编辑器,输入,跳转,光标
From: https://blog.csdn.net/xiaogengtongxu/article/details/137256395

相关文章

  • 13.5k star, 免费开源 Markdown 编辑器
    13.5kstar,免费开源Markdown编辑器分类 开源分享项目名:Editor.md--Markdown编辑器Github开源地址: https://github.com/pandao/editor.md在线测试地址: Editor.md-开源在线Markdown编辑器完整实例: HTMLPreview(markdowntohtml)-Editor.mdexamples......
  • 论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection
    文章目录RangeDet:InDefenseofRangeViewforLiDAR-based3DObjectDetection问题笛卡尔坐标结构图Meta-KernelConvolutionRangeDet:InDefenseofRangeViewforLiDAR-based3DObjectDetection论文:https://arxiv.org/pdf/2103.10039.pdf代码:https://......
  • BSL: Understanding and Improving Softmax Loss for Recommendation
    目录概符号说明SoftmaxlossBilateralSoftmaxloss(BSL)代码WuJ.,ChenJ.,WuJ.,ShiW.,ZhangJ.andWangX.BSL:UnderstandingandImprovingSoftmaxLossforRecommendation.ICDE,2024.概作者'发现'在协同过滤中,Softmaxloss会比BCE/BPR损失效果好很多,......
  • Android TV Recyclerview长按或连续按键,焦点丢失(或者焦点跳跃)
    原因分析RecyclerView设置适配器后,将数据填充进去,并不会将所有item的view都创建出来,一般只会创建一个屏幕的Item,当长按或者快速按下键时,Recyclerview来不及创建即将获取焦点的view,导致焦点丢失解决方法有两种思路:(1)控制按键速度 这里有两种具体实现策略:一种是记录......
  • pytorch | torchvision.transforms.CenterCrop
    torchvision.transforms.CenterCrop==>从图像中心裁剪图片transforms.CenterCroptorchvision.transforms.CenterCrop(size)功能:从图像中心裁剪图片size:所需裁剪的图片尺寸transforms.CenterCrop(196)的效果如下:(也可以写成transforms.CenterCrop((196,196)))如果裁剪......
  • WPF实现树形表格控件(TreeListView)
    前言本文将探讨如何利用WPF框架实现树形表格控件,该控件不仅能够有效地展示复杂的层级数据,还能够提供丰富的个性化定制选项。我们将介绍如何使用WPF提供的控件、模板、布局、数据绑定等技术来构建这样一个树形表格。一、运行效果1.1默认样式1.2自定义样式二、代码实现......
  • Supervisor 安装与使用
    一、Supervisor介绍Supervisor是一个用Python编写的进程管理工具,它可以用于监控和控制类UNIX操作系统上的多个进程。它是一个客户端/服务器系统,其中Supervisor的服务器端称为supervisord,负责启动管理的子进程、响应客户端命令、重启崩溃或退出的子进程、记录子进程的st......
  • 详解ExecutorService 和 Executors
    代码示例:ExecutorService表⽰⼀个线程池实例.Executors是⼀个⼯⼚类,能够创建出⼏种不同⻛格的线程池.ExecutorService的submit⽅法能够向线程池中提交若⼲个任务.ExecutorServicepool=Executors.newFixedThreadPool(10);pool.submit(newRunnable(){......
  • Linux命令+VIM编辑
    ls命令ls:显示当前文件夹下的所有文件ls -l:长格式显示ls -a:显示隐藏文件 包括  . ..ls -A:显示隐藏文件 不包括 . ..ls -d:只显示当前目录的属性ls -R:递归显示所有ls  -t:以时间顺序显示ls -r:倒序显示(图中配合时间显示)du命......
  • 洛谷 P9907 [COCI 2023/2024 #1] Mostovi 题解
    题目分析首先可以确定的是需要枚举断边,所以我们希望两次枚举之间能有些关联。不难想到类树形DP的套路,建DFS树,只不过这题除了讨论和父亲之间的边,还要考虑返租边。以下钦定以\(1\)为树根。树边先从简单的树边开始考虑。考虑不经过\(u\)和\(u\)的父亲\(v\),对答案是否产......