08 Linux文件编辑

511次阅读
没有评论

共计 3100 个字符,预计需要花费 8 分钟才能阅读完成。

一.vim 编辑器

1.vivim 的简介

  • 什么是 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 进行安装

2.vi 编辑器的三种模式

08 Linux 文件编辑

3. 命令模式

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

🏆光标移动

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

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

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

🏆复原和重做

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

🏆保存及退出

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

🏆查找

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

08 Linux 文件编辑

🏆翻页

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

4. 末行模式 (扩展模式)

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

🏆文件保存和退出

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

🏆文件常用设置

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

🏆查找

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

🏆文件内容替换

⛅"%" 代表所有行
⛅"///" 代表分隔符, 也可以是其他种:"@@@", "###" 都可以
⛅"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"

🏆文件内容另存和写入

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

5. 编辑模式

编辑 / 插入模式: 输入 a、i、o 之一
在编辑模式中,可以往一个文件中输入正文
在这一模式下,输入的每一个字符都被 vi 编辑器解释为输入的正文
使用 Esc 键返回命令行模式
"a"          #进入插入模式并在光标之后进行添加
"i"          #进入插入模式并在光标之前进行插入
"o"          #进入插入模式并在当前 (光标所在) 行之下开启新的一行

"I"          #进入编辑模式,并且光标会跳转至本行的头部
"A"          #进入编辑模式,将光标移动至本行的尾部
"O "         #进入编辑模式,并在当前光标上添加一行空白内容

6. 可视块模式

🐼批量去注释
    前提:注释的行需要整齐排列
        1、在命令模式,按 "ctrl+v"
        2、上下键选中 #号
        3、按下 "dd" 删除

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

7.vim 的扩展使用方法

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

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

🏆同时编辑多个文件

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

🏆对比多个文件内容

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

08 Linux 文件编辑

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

08 Linux 文件编辑

🏆path 实验

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

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

08 Linux 文件编辑

🏆文件非正常退出

  • vim 执行过程

08 Linux 文件编辑

如果 "ctrl+z" 挂起或强制退出终端没关闭 vim 后
重新连接服务器会报错
vim 会有一个 " . [文件名] . swp" 这个隐藏文件的存在
解决方法: 
    1.# rm -rf .[文件名].swp
    2.# vim -r [文件名].txt    #使用 "-r" 选项恢复后再删除
正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计3100字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)