• 文件编辑器vim


    VIM编辑器

    在Linux中一切皆文件,Linux一般自带的编辑器是vi,vim相当于vi的一个增强版,支持颜色显示,相比于vi增加了一些功能。默认vim没有安装,需要通过yum install -y vim安装。

    常用选项

    -o file1 file2... 同时编辑多个文件(上下排列)
    -O file1 file2... 同时编辑多个文件(左右排列)
    -p file1 file2... 同时编辑多个文件(每个文件一个标签)
    • 使用Ctrl+ww:切换不同的文件

    vim的三种模式

    命令模式:使用vim打开一个文件即进入命令模式

    快捷命令 功能
    h,j,k,l 对应左下上右键
    数字0 光标移到行首
    $ 光标移动到行尾
    x 删除/剪切光标所在字符
    dd 删除/剪切光标所在行
    ndd 删除/剪切n行,包括光标所在行
    yy 复制光标所在行
    nyy 复制n行,包括光标所在行
    p 将复制的内容粘贴到光标所在行的下一行
    P 将复制的内容粘贴到光标所在行的上一行
    np/nP 粘贴n次
    gg 光标移动到文件首行
    G 光标移动到文件尾行
    nG 光标移动到第n行
    H 光标移动到当前屏幕首行
    M 光标移动到当前屏幕中间行
    L 光标移动到当前屏幕尾行
    u 撤销
    Ctrl+r 撤销撤销
    Ctrl+v 可视块,常用来批量添加/删除注释
    • 批量删除注释,光标移动到要删除的多行注释首行的注释符号#上,按Ctrl+v,按下键选择要删除行的#号,按d删除。
    • 批量添加注释,光标移动到要添加的多行注释首行第一位上,按Ctrl+v,按下键选择要添加#号的行,按I(大写i)进入插入模式,输入#号,按两次ESC即可批量添加注释。

    末行模式:命令模式按:进入末行模式

    命令 功能
    w 保存
    q 不保存退出
    wq 保存并退出
    ! 表示强制
    set nu 显示行号
    set nonu 取消行号
    set ic 不区分大小写
    set ai 自动缩进
    set list 显示行结束符
    % s/regexp/new/ 将所有行的第一个regexp替换为new字符串
    % s/regexp/new/g 将所有行的所有regexp替换为new字符串
    n s/regexp/new/g 将第n行的所有regexp替换为new字符串
    m,n s/regexp/new/g 将m行至第n行的所有regexp替换为new字符串
    n,$ s/regexp/new/g 将第n行至尾行的所有regexp替换为new字符串
    n,m w /PATH/file_name 将第n至m行写入/PATH/file_name这个文件
    r /PATH/file_name 将/PATH/file_name文件内容写入光标下一行
    /字符串 查找字符串(高亮显示),按n(向下)/N(向上)移动光标

    上述显示行号与行结束符等设置是临时设置,若要永久生效要写入配置文件:

    作用域 文件路径
    全局生效 /etc/vimrc
    单用户生效 ~/.vimrc(默认不存在,需手动创建)

    vi工作流程图

    插入模式:

    • 命令模式按a,i,o进入插入模式,插入模式可输入字符编辑文件。

    vimdiff命令

    以vim的方式打开多个文件对比,高亮显示不同的区域。

    比较两个文件的差异

    diff file1 file2 # 比价file1和file2的不同,<表示左边文件的不同,>表示右边文件的不同
    

    给旧文件打补丁(update)

    # 首先创建补丁文件
    [chirou@duorou demo]$ diff -u f3.txt f4.txt > bak.patch
    [chirou@duorou demo]$ cat bak.patch 
    --- f3.txt	2020-10-22 20:05:19.613940026 +0800
    +++ f4.txt	2020-10-22 20:05:20.268935888 +0800
    @@ -1,3 +1,3 @@
    -this is f3.txt
    +this is f4.txt
     hahahaha
    -
    +hehehehe
    

    在数学上来说,diff类似于对两个集合的差运算,patch类似于对两个集合的和运算。diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。 patch能将diff文件运用于原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么这个过程相当于 |A –B| = C ,那么patch的过程就是B + C = A 或A - C = B(A + C = B或者B – C = A)。因此我们只要能得到A, B, C三个文件中的任何两个,就能用diff和patch这对工具生成另外一个文件。这就是diff和patch的妙处。

  • 相关阅读:
    luogu P2639 [USACO09OCT]Bessie的体重问题Bessie's We…
    1001. 害死人不偿命的(3n+1)猜想 (15)
    1003. 我要通过!(20)
    1002. 写出这个数 (20)
    《C语言程序设计(第四版)》阅读心得(一)
    1006. 换个格式输出整数 (15)
    背包问题之多重背包
    背包问题之完全背包
    背包问题之0-1背包
    动态规划例题
  • 原文地址:https://www.cnblogs.com/ChiRou/p/13865752.html
Copyright © 2020-2023  润新知