zoukankan      html  css  js  c++  java
  • 🍖Linux文件编辑

    一.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编辑器的三种模式

    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             #效果相同
    

    翻页

    ⛅滚动半屏
    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
    

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

    patch实验

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

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

    文件非正常退出

    • vim执行过程

    如果"ctrl+z"挂起或强制退出终端没关闭vim后
    重新连接服务器会报错
    vim会有一个" . [文件名] . swp"这个隐藏文件的存在
    解决方法: 
    	1.# rm -rf .[文件名].swp
    	2.# vim -r [文件名].txt    #使用"-r"选项恢复后再删除
    
  • 相关阅读:
    assert出问题了?
    UIWebView 禁止检测链接弹出UIActionSheet
    UIWebView 禁止检测链接弹出UIActionSheet
    Linux命令行下常用svn命令
    Linux命令行下常用svn命令
    续上文,Unity3D面试ABC
    续上文,Unity3D面试ABC
    部署 H3C CAS E0306
    部署 H3C CAS E0306
    H3C CAS 介绍 & 基本概念
  • 原文地址:https://www.cnblogs.com/songhaixing/p/13860527.html
Copyright © 2011-2022 走看看