四、vi/vim编辑器

vi/vim

模式
命令模式
编辑模式
末行模式
home键 行首
end键 行尾
命令模式切换到编辑模式
a 当前字符后输入
A 当前行行尾输入
i 当前字符前输入
I 当前行行首输入
o 当前行下一行输入
O 当前行上一行输入
s 删除当前字符后输入
S 删除当前行后输入
u 撤销一步操作
ctrl+r 重做
yy 复制 p 粘贴(当前行下一行) P(当前行上一行)
100yy 复制100行
dd 剪切/删除
100dd 删除100行
^ 行首
$ 行尾
y^ 复制当前字符到行首(不包含当前字符)
d^ 删除当前字符到行首
y$ 复制当前字符到行尾 (包含当前字符)
d$ 删除当前字符到行尾
G 最后一行
gg 第一行
53G
ygg 复制当前行到首行
dgg 删除当前行到首行
yG 复制当前行到尾行
dG 删除当前行到尾行
末行模式 (shift+:)
:w
:w!

:wq
:wq!

:q
:q!

:e /root/aa.txt
:w /tmp/xx.txt
:2,5w /tmp/yy.txt
:e! 重新打开当前文件

功能设置
:set nu
:set nonu
:set list
:set nolist

制表符 8个空格
:set tabstop=16 全文件 制表符=16个空格长度
:set softtabstop=16 已有行制表符长度不变 新的行长度=16

设置自动缩进
:set autoindent
:set noautoindent

设置永久生效
配置文件: /etc/vimrc
查找
/ab n 下一个 N 上一个
?a

替换
😒/ab/XX/ 光标所在行 匹配到的第一个ab
:%s/ab/XX/g 所有行所有ab都替换 -g 全局 % 所有行
:2,5s/ab/XX/g 2-5行替换
:%s/ab/XX/gc c 交互式替换
:%s/ //g 替换掉所有的空格
:%s/^ *//g 替换掉所有开头的空格
:g/^$/d 删除空行
:g/^#/d 删除所有#号开头的行

可视化模式
v
选中
y 复制 d删除
可视化块模式
ctrl + v
选中
y复制 d删除
ctrl+v —> 选中注释列—>shift+i—->输入#—->ESC(两次)

多文件处理
[root@localhost ~]# vim aa.txt cc.txt tt.txt
:next 下一个文件
:prev 上一个
:first 第一个
:last 最后一个
ctrl+^ 两个文件之间切换(当前和 上次打开的)

多窗口
[root@localhost ~]# vimdiff aa.txt cc.txt tt.txt
ctrl+ w w 切换文件
退出 wqa qa!

[root@localhost ~]# vim -O aa.txt cc.txt tt.txt
[root@localhost ~]# vim -o aa.txt cc.txt tt.txt

加密
末行模式 X 保存退出

总结问题:
出现问题原因:

没有正常退出vim 在cache 找到 vim 搜索.swap 删除即可,这是在非正常退出留下的副本,如果在编辑的时候出问题导致编辑进度丢失可以用这个备份的文件恢复编辑进度
解决方法:
1.通过D命令删除交换文件
2.rm -rf .tt.txt.swp

Original: https://www.cnblogs.com/wang-yongxu/p/16426164.html
Author: Lyon-w
Title: 四、vi/vim编辑器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581989/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 小白上手Linux系统安装Tomcat教程

    1.准备阶段: 要有JDK环境,在安装好JDK后再配置tomcat,JDK安装详情在我博客中可以看到。 3.导入 进入到Xshell输入在自己的文件中(cd /home/lzh)好…

    Linux 2023年6月13日
    0108
  • IDEA maven项目导包报红线

    原因:没有导入maven包 最后有设置一次,以后就无需设置 1、问题 2、打开Setting 3、将下载好的maven包导入 配置一次,就不用每次都需要配置 1、如果在这个界面先关…

    Linux 2023年6月14日
    0114
  • C语言 四舍五入(学习转型练习)

    #define _CRT_SECURE_NO_WARNINGS #include void main() { double moeny = 0; scanf("%lf&q…

    Linux 2023年6月7日
    0100
  • 2021 — 冰与火之歌

    大半夜的睡不着,越发的想给 2021 年作个总结,一想更睡不着了,来唠叨下吧。 一拖再拖的婚礼。本来定在今年正月的婚礼,因为疫情,不敢办,村里也不让办;然后选在国庆吧,卧槽,封城了…

    Linux 2023年6月16日
    0124
  • [20220104]in list 几种写法性能测试.txt

    [20220104]in list 几种写法性能测试.txt –//以前写过几种in list的写法,从来没有测试过这几种方法的性能测试看看. 1.环境:SCOTT@b…

    Linux 2023年6月13日
    060
  • 关于博客园设置awescnb皮肤教程

    第一步:申请博客园 申请博客园,然后再申请js权限 第二步:设置博客园 页面定制勾选禁止模版使用css 页面定制css代码 .profile-menu{ display: none…

    Linux 2023年6月11日
    088
  • 常见题目

    这几天有朋友反映给小编说让多发点关于面试的文章,小编深知从事IT行业的难处,跳槽多,加班多,薪资不乐观,大多数朋友都想找新的工作,进入一个好的公司,今天小编就给大家带来了C语言面试…

    Linux 2023年6月13日
    097
  • 高等代数: 2 行列式

    2 行列式 1、n个不同的自然数的一个全排列称为一个n元排列。 2、顺序、逆序、逆序数:τ(abcd…)(读音:tao)、奇排列、偶排列、对换(a,b) 3、定理1:对…

    Linux 2023年6月8日
    0153
  • Nginx参数详解

    ​ 从配置文件到events之间的内容,主要会设置一些影响nginx服务器整体运行的配置命令。主要包括配置运行nginx服务器的用户(组)、允许生成的worker process数…

    Linux 2023年6月11日
    0102
  • SpringBoot-MVC自动配置原理

    MVC自动配置原理 5.1 官网阅读 在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。 只有把这…

    Linux 2023年6月14日
    0106
  • Django_渲染详解

    Django_render 模板语法 模板引擎是一种可以让开发者把服务端数据填充到html网页中完成渲染效果的技术。它实现了把前端代码和服务端代码分离的作用,让项目中的业务逻辑代码…

    Linux 2023年6月7日
    0138
  • MSSQL中Repalce函数处理长字符串时报异常的解决方案

    阅文时长 | 17.99分钟字数统计 | 28788.8字符主要内容 | 1、引言&背景 2、问题还原 3、解决方案 4、官方解释 5、声明与参考资料『MSSQL中Repa…

    Linux 2023年6月14日
    078
  • 前端Web实训项目-教务系统成绩查询

    通过暑期前半个月实训,我们选的方向是Web前端(虽然我想选Java全栈的),所以我们最终确立的主题是做一个网页。 这个项目是我们组四个人做的,因为技术水品都不咋样,所以有很多地方需…

    Linux 2023年6月7日
    0119
  • 【原创】Linux PCI驱动框架分析(一)

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    0124
  • 辗转相除法:(求最大公约数)

    辗转相除法:(最大公约数)又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除…

    Linux 2023年6月7日
    0120
  • iostream 未完

    声明控制从标准流读取和写入到标准流的对象。 通常是唯一需要从 C++ 程序执行输入和输出的标头。 #include <iostream></iostream&gt…

    Linux 2023年6月7日
    070
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球