8.Linux 文件编辑

1|0一.vim编辑器

1|11.vi与vim的简介

  • 什么是 vi ?
可以理解为windows下面的文本编辑器,比如记事本,比如word文档 vi编辑器通常被简称为vi,而vi又是visual editor的简称 它在Linux上的地位就像Edit程序在DOS上一样 它可以执行输出、 删除、查找、替换、块操作等众多文本操作 而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的 vi编辑器并不是一个排版程序,它不像Word或wPs那样可以对字体、格式、段落等其他属性进行编排 它只是一个文本编辑程序, 没有菜单,只有命令,且命令繁多
  • 为什么要用 vi / vim ?
1.修改配置文件 2.编写脚本文件
  • vi 与 vim 的区别
1.vi 不会高亮显示语法 2.vim 会高亮显示语法 ✅ 3.其他功能相同,取决于个人习惯 4.vi 是默认安装好的, vim 需要 yum install -y vim 进行安装

1|22.vi编辑器的三种模式

1|33.命令模式

命令行模式:在编辑模式下按下Esc键返回命令行模式 vi的默认模式, 在这一模式中,所有的输入被解释成vi命令 可以执行修改、复制、移动、粘贴和删除正文等命令 也可以进行移动光标、搜索字符串和退出vi的操作等

1|0🏆光标移动

gg #移至文件行首 G #移至文件行尾 ngg / nG #N代表数字,配合使用移动到第 n 行 ------------------ 数字0 #移至行首 $ #移至行尾 ------------------ 5 ➡ (方向键) #向右移动5个位置 ⬆ ➡ ⬇ ⬅ #其他方向同理 ------------------ H #光标移至屏幕的首行行首 M #光标移至屏幕中间行行首 L #光标移至屏幕最后行行尾

1|0🏆删除(剪切), 复制, 粘贴

dd #删除 / 剪切, 配合p/P使用 8dd #删除 / 剪切8行 (都是当前光标所在位置) ------------------- yy #复制 10yy #复制 10 行 ------------------- p #粘贴到当前光标所在行的下面 100p #粘贴100行 P(大写) #粘贴到当前光标所在行的上面(用法相同)

1|0🏆复原和重做

u #撤销上一次操作(复原) Ctrl + r #返回撤销上一次操作(重做)

1|0🏆保存及退出

#针对于有可写权限文件 ZZ #保存退出 (没有修改的话直接退出) Ctrl + z #直接退出,不保存修改

1|0🏆查找

/[需要查找的字符] #"N"上一个, "n"下一个 /song #vim 会高亮显示, vi 不会 :/song #效果相同

1|0🏆翻页

⛅滚动半屏 Ctrl + u #向下滚动 Ctrl + d #向上滚动 ⛅滚动一页 Ctrl + f #向下滚动 Ctrl + b #向上滚动

1|44.末行模式 (扩展模式)

扩展/末行模式:输入冒号":" 在一些UNIX系统上也叫最后一行模式 在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等 要进入最后一行模式,需要在命令行模式中输入冒号":" 冒号这一操作将把光标移到屏幕的最后一行。

1|0🏆文件保存和退出

"!" 只是提供给管理员使用的功能 :w #保存当前的状态 :w! #强制保存 :q #退出 :q! #强制退出 :wq #保存退出 :wq! #强制保存退出 :x #保存退出 :x! #强制保存退出

1|0🏆文件常用设置

:number #跳转到对应的行号 :set nu #显示行号 :set nonu #取消显示行号 --------------------- :set ic #匹配时不分大小写 :set noic #取消 --------------------- :set ai #脚本缩进 :set noai #取消缩进 --------------------- ⛅以上都是临时配置,退出文件失效 vi /etc/vimrc #将以上设置写入配置文件末尾可永久配置

1|0🏆查找

:/xxx #查找"xxx" "N"上一个, "n"下一个 /xxx #效果相同

1|0🏆文件内容替换

"%"代表所有行 ⛅"///"代表分隔符, 也可以是其他种:"@@@", "###"都可以 ⛅"g"代表的是从行首到行尾(左到右) ⛅"/原/新/"分隔符里面前一个是"原字符", 后一个是"新字符" :% s/song/SONG/g #将文件所有行"song"替换成"SONG" :2,5 s/song/SONG/g #将 2 到 5 行的"song"替换成"SONG" :5,$ s/song/SONG/g #将 5 到 末尾行的"song"替换成"SONG" :2 s/song/SONG/g #只将第二行的"song"替换成"SONG" :% s/^aaa/bbb/g #只匹配以"aaa"开头的行 :% s/aaa$/bbb/g #只匹配以"aaa"结尾的行 :% s/^aaa$/bbb/g #只匹配以"aaa"的行,也就是"aaa"这一个单词 ⛅在"g" 的后面加一个"i"代表不区分大小写的替换":$ s/ccc/vvv/gi"

1|0🏆文件内容另存和写入

:3,5 w /root/a.txt #将文件的 3 到 5 行写入"/root"中保存为"a.txt" :r /home/b.txt #将"/home"下的"b.txt"写入当前文件

1|55.编辑模式

编辑/插入模式:输入a、i、o之一 在编辑模式中,可以往一个文件中输入正文 在这一模式下,输入的每一个字符都被 vi 编辑器解释为输入的正文 使用Esc键返回命令行模式 "a" #进入插入模式并在光标之后进行添加 "i" #进入插入模式并在光标之前进行插入 "o" #进入插入模式并在当前(光标所在)行之下开启新的一行 "I" #进入编辑模式,并且光标会跳转至本行的头部 "A" #进入编辑模式,将光标移动至本行的尾部 "O " #进入编辑模式,并在当前光标上添加一行空白内容

1|66.可视块模式

🐼批量去注释 前提:注释的行需要整齐排列 1、在命令模式,按"ctrl+v" 2、上下键选中#号 3、按下"dd"删除 🐼批量加注释 前提:注释的行需要整齐排列 1、先将光标移动到首行的开头位置 2、在命令模式,按"ctrl+v" 3、上下键选中第一列 4、"shift+i",然后输入# 5、连续按两下"ESC"

1|77.vim 的扩展使用方法

1|0🏆环境变量临时生效与永久生效

就是上面扩展模式提到的 :number #跳转到对应的行号 :set nu #显示行号 :set nonu #取消显示行号 --------------------- :set ic #匹配时不分大小写 :set noic #取消 --------------------- :set ai #脚本缩进 :set noai #取消缩进 --------------------- ⛅以上都是临时配置,退出文件失效 vi /etc/vimrc #将以上设置写入配置文件末尾可永久配置

1|0🏆同时编辑多个文件

"o"上下排版显示 ⛅"O"左右排版显示 ⛅"Ctrl + ww"进行文件切换 # vim -o a.txt b.txt # vim -O a.txt b.txt

1|0🏆对比多个文件内容

"o"上下排版显示 ⛅"O"左右排版显示 ⛅"Ctrl + ww"进行文件切换 ⛅"vimdiff"高亮显示不同之处 # vimdiff -o a.txt b.txt # vimdiff -O a.txt b.txt

"diff"显示不同之处 # diff a.txt b.txt

1|0🏆patch实验

⛅就是将 1,2(有先后顺序) 两个文件对比 ⛅拿到以 2(2在后面为主) 为准对比的结果 ⛅通过命令 # patch [1这个文件] [以2为主的对比文件] ⛅运行命令后 [1这个文件] == [2这个文件]

patch用法详解:https://www.runoob.com/linux/linux-comm-patch.html

1|0🏆文件非正常退出

  • vim执行过程

如果"ctrl+z"挂起或强制退出终端没关闭vim后 重新连接服务器会报错 vim会有一个" . [文件名] . swp"这个隐藏文件的存在 解决方法: 1.# rm -rf .[文件名].swp 2.# vim -r [文件名].txt #使用"-r"选项恢复后再删除

 


__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/articles/14409645.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(56)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示