zoukankan      html  css  js  c++  java
  • 文本编辑_Vim&Vi

    一、Vim、Vi文本编辑器

    1️⃣:vi: Visual Interface,文本编辑器

    2️⃣:文本:ASCII, Unicode

    3️⃣:VIM - Vi IMproved

    二、Vim、vi的特点

    1️⃣:vi/vim是一种纯文本编辑器,它不像word可以排版,可以调整字体大小,可以改变字体等等,vi/vim只是一个文本编辑工具,它只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等

    2️⃣:vi是一个全屏幕的文本编辑器,在编辑文本时它将占据整个屏幕

    三、Vim、Vi的三种编辑模式

    1、基本模式

    1️⃣:命令模式

    2️⃣:编辑模式

    3️⃣:末行模式(内置的命令行接口)

    2、打开文件

    vim [OPTION]... filename...
        +#: 打开文件后,直接让光标处于第#行的行首
        +/pattern:打开文件后,直接让光标处于第一个被pattern匹配到的行的行首

    3、模式转换

    命令模式 --> 编辑模式
        i: insert, 在光标所在处输入;
        a: append, 在光标所在处后面输入;
        o: 在当前光标所在行的下方打开一个新行;
        I:在当前光标所在行的行首输入;
        A:在当前光标所在行的行尾输入;
        O:在当前光标所在行的上方打开一个新行;
    
    编辑模式 --> 命令模式
        :按ESC键(键盘最左上角)
    
    命令模式 --> 末行模式
        :(Shift+:)
    
    末行模式 --> 命令模式
        :按ESC键(键盘最左上角的)
    

    四、文件关闭

    关闭文件:在末行模式下
        :q 退出
        :q! 强制退出,丢弃做出的修改;
        :wq 保存退出
        :x 保存退出
        :w /PATH/TO/SOMEWHERE
        :r /PATH/TO/SOMEWHERE    
    

    五、光标移动

    光标跳转:在命令模式下
        字符间跳转:h, j, k, l
                h: 左
                j:下
                k:上
                l:右
    
        单词间跳转:
                w:下一个单词的词首
                e:当前或下一单词的词尾
                b:当前或前一个单词的词首
                #w:以当前光标为起点跳至第#个单词的词首
                #e:以当前光标为起点跳至第#个单词的词尾
                #b:以当前光标为起点跳至第#个单词的词首
    
        行内跳转
                ^: 跳转至行首的第一个非空白字符
                0: 跳转至行首
                $: 跳转至行尾
    
        行间跳转
                gg:直接跳转到第一行的行首
                G:直接跳转到最后一行的行尾
                #gg:直接跳转到第#行(向行首跳转)
                #G:直接跳转到第#行(向行尾跳转)
    
    翻屏
            ctrl+f:向下翻一屏
            ctrl+b:向上翻一屏  

    六、字符编辑  

    1、命令模式下字符编辑

    x: 删除光标处的字符
    #x: 删除光标处起始的#个字符
    
    xp: 交换光标所在处的字符及其后面字符的位置
    

    2、删除命令(d)

    d: 删除命令,可结合光标跳转字符,实现范围删除;
        dd: 删除光标所在的行
        #dd:删除包括当前光标所在行在内的#行(多行删除)
        
        d$: 删除到某一行的结尾 
        d^:删除到某一行的第一个字符位置(不包括空格或TAB字符)
        d0:删除到某一行的开始位置
    
        dw:删除当前光标所在单词的词首到该单词的结尾位置(删除某个单词,光标必须位于单词的词首)
        db:删除当前光标所在单词的词尾该单词的词首位置 (删除某个单词,光标必须位于单词的词尾)
        //在linux中单词是指一串字符,以空格隔开;另外有特殊字符也算是一个单词,例如:=
    
        dl:删除当前字符(与x命令功能相同)
    
    末行模式下d命令的使用
        语法:Startadd,Endadd(这里的StartADD与EndADD是指一个范围)
    示例
        1,5d:表示删除第1到第5行
    

    3、复制、粘贴命令(y、p、P)

    复制命令(y, yank)
        yy:复制行
        yw  复制一个单词
        y$  复制至行尾
        y^  复制至行首
        
        #yy: 复制多行
    
    粘贴命令(p、Pput, paste)
        p:小写p
            若删除或复制的为整行内容,则粘贴至光标所在行的下方
            若删除或复制的为非整行,则粘贴至光标所在字符的后面
        P:大写p
            若删除或复制的为整行内容,则粘贴至光标所在行的上方
            若删除或复制的为非整行,则粘贴至光标所在字符的前面
    

    4、替换命令

    替换命令:r
        r#:将当前光标的字符替换为#,这里的#可以是任何字符
        R:替换模式,替换多个字符
    

    5、范围表示方法

    .       光标所在当前行
    $       最后一行
    +#      光标所在行往后#行
    $-#     倒数第#行
    %       全文
    

    6、撤销编辑(u)

    u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
    #u:直接撤销此前的#次编辑操作
    ctrl+r:还原最近一次的撤销操作
    

    7、可视化模式

    可视化模式下可以对选取的内容进行编辑
        v:按字符选取内容
        V:按矩形块(行)选取内容
    

    8、拓展

    文本之间复制:在末行模式下
        :1,5write >> /root/test.txt   //将第1行至第5行复制到/root下的test.txt文件中
    或者
        先在file1文件的末行模式下复制:
            :1,5yy   (回车)
        然后退出去到另个文件file2中,直接在命令模式下按:p && P
    

    9、文本查找

    /pattern:从上往下查找匹配的内容
    ?pattern:从下往上查找匹配的内容
        n:从上往下查找匹配到的内容的下一条
        N:从下往上查找匹配到的内容的下一条
    

    10、查找并替换

    s: 在末行模式下完成查找替换操作
    
    语法:s/要查找的内容/替换为的内容/修饰符
            修饰符
                i: 忽略大小写
                g: 全局替换;默认情况下,每一行只替换第一次出现
                
    示例
        1,5 s/abc/def/g:表示把第一行到第五行的所有abc替换为def
    

    11、末行模式下显示或取消显示行号

    set nu(number):显示行号
    set nonu(number):取消显示行号
    

     12、取消文本搜索关键字高亮显示

    在末行模式下
        :set nohlsearch (set nohlsearch :取消高亮显示、取消高亮搜索)
     //这样取消关键字高亮显示之后,退出文本编辑,再次进入的话,之前最后一次搜索的关键字任然会高亮显示
     //如果在不退出文本编辑的前提下,取消第一次关键字高亮显示,之后继续搜索其他关键字则不会高亮显示;退出文本之后,再次进入就会高亮显示
    
        :nohlsearch      &&       :noh(nohl)推荐使用这个命令
     //这样输入取消高亮之后,退出文本之后,再次进入,之前搜索的关键词就不会高亮显示;
     //但是在没有退出文本的前提下,取消第一次搜索关键词高亮显示,那么继续搜索其他的关键词还是会高亮显示
    
  • 相关阅读:
    jTopo——js库
    node.js
    php 入门笔记
    D3 入门笔记
    webpack笔记
    React.js
    Grunt等前端自动化构建工具
    vue3.0的新特性
    electron-builder 打包流程
    vue里面如何下载图片,如何下载文件
  • 原文地址:https://www.cnblogs.com/itwangqiang/p/13453761.html
Copyright © 2011-2022 走看看