zoukankan      html  css  js  c++  java
  • linux之Vim使用

    一、Vim的介绍

    vim有三种模式:普通模式、编辑模式、命令模式

    普通模式:通过操作光标移动来对文本进行复制、粘贴、删除、剪贴、翻页等操作

    编辑模式:主要是对文本内容编辑和修改。

    命令模式:主要是进行保存、退出操作,还可以进行文件内容另存、读入、查找、替换、显示行号等操作

    二、Vim的使用

     1、普通模式

    # 1、光标移动
    h # 向左移动一个字符 l # 向右移动一个字符 k # 向上移动一个字符 j # 向下移动一个字符 ''' 在前面加个数字,则表示移动多少个字符 5j 向下移动5个字符 ''' n+空格(n是数字) #表示光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n H #光标移动到当前屏幕最顶行 M #光标移动到当前屏幕中间那一行 L #光标移动到当前屏幕的最底行 G #光标移动至文本末端 nG #光标移动到文本的第n行 gg #光标移动至文本顶端 Ngg #光标移动至当前文件内的N行,如3gg表示移动到第3行 $ #光标移动至当前光标所在行的尾部 ^或者0 #光标移动至当前光标所在行的首部 n+回车 #光标向下移动n行 #2、翻页 ctrl+f #往下翻页(行比较多) ctrl+b #往上翻页 ctrl+d #往上翻半页 ctrl+u #往下翻半页 #3.复制与粘贴 yy #复制当前光标所在的行 5yy #复制当前光标以及光标向下4行(也就是包括当前光标行的5行) y1G #复制光标所在行到文本第一行的所有数据 yG #复制光标所在行到文本最后一行的所有数据 p(小写) #粘贴至当前光标下一行 P(大写) #粘贴至当前光标上一行 #4.删除、剪贴、撤销 dd #删除当前光标所在的行 4dd #删除当前光标所在的行以及往下的3行 d1G #删除当前光标所在行到第一行的所有内容 dG #删除当前光标以后的所有行 D #删除当前光标及光标以后的内容 x #删除当前光标标记往后的字符 X #删除当前光标标记往前的字符 nx/nX(n为数字) #向后/向前删除n个字符 dd & p #剪贴、先删除dd(number dd),后粘贴p u #撤销上一次的操作 #5.查找和替换 r #替换当前光标标记的单个字符 R #进入REPLACE模式, 连续替换,ESC结束

     2、编辑模式

    i    #进入编辑模式,在当前光标字符前插入
    a   #进入编辑模式,将当前光标字符后插入
    o   #进入编辑模式,并在当前光标下添加一行空白内容
    O   #进入编辑模式,并在当前光标上添加一行空白内容
    I    #进入编辑模式,在光标的所在行的行首插入
    A   #进入编辑模式,在光标的所在行的行尾插入

    3、命令模式

    #1.文件保存与退出
    :w      保存当前状态
    :w!     强制保存当前状态
    :q      退出当前文档(文档必须保存才能退出)
    :q!     强制退出文档不会修改当前内容
    :wq     先保存,在退出
    :wq!    强制保存并退出
    :x      先保存,在退出
    ZZ      保存退出, shfit+zz
    :number 跳转至对应的行号
    :set nu 显示行号
    :set nonu 不显示行号
    
    #2.文件内容查找
    /string #需要搜索的内容(查找)
    n       #按搜索到的内容依次往下进行查找
    N       #按搜索到的内容依次往上进行查找
    /字符(如/world) #向光标之后 寻找字符串为world的字符串,按“n"继续搜后一个
    ?字符(如?world)#向光标之后 寻找字符串为world的字符串,按“n"继续搜前一个
    :%s/string//gn  #搜索string字符串,并返回结果个数以及行数
    '''
    区分大小写的设置
    # 这两条命令,只有vim没有重启,则一直生效,会影响其他命令结果
    :set ic   #不区分大小写
    :set noic #区分大小写
    # 这两条命令,执行才有有效,不影响其他命令执行
    /Cmysql  #区分大小写
    /cmysql  #不区分大小写
    '''
    
    #3.文件内容替换
    :1,5s#root#test#g   #用test替换1-5行中的root字符串
    :1,5s#root#test#    #将1-5行中第一个root字符串替换为test
    :%s#sbin#test#g     #将整个文本文件中sbin字符串替换为test
    :%s#sbin#test#gc    #替换内容时时提示是否需要替换
    
    #4.文件内容另存
    :w /root/test.txt  #将vim打开的文件的所有内容另存为/root/test.txt文件中
    
    #5.文件内容读入
    :r  /etc/hosts  #将/etc/hosts文件内容读入到当前光标下面
    :5r /etc/hosts  #指定插入/etc/hosts文件至当前文件的第五行下面

    4、视图模式(批量操作)

    ctr+v:  #进入视图模式,选中的是光标的位置
    shift+v:#进入视图模式,选中当前光标的整一行内容
    #1、批量添加注释
    ctr+v,选中多行注释符的位置,再按r输入“#”进行批量添加

    三、Vim的其他知识

    1、环境变量配置

    ~/.vimrc:个人环境变量

    /etc/vimrc:全局环境变量

    注意:个人环境变量优先级高于全局,也就是优先使用个人环境配置

    2、文件的高级操作

    (1)同时编辑多个文件

    vim -o file1 file2    #水平分割
    vim -O file1 file2   #垂直分割

    (2)相同文件之间差异对比

    diff file1 file2     #文件对比
    vimdiff file1 file2 #以vim方式打开两个文件对比,高亮显示不同的内容

     

     (3)因非正常关闭Vim引起的异常

    如:意外、强制退出终端、非正常退出(ctr+z)vim,再次打开该文件引起的错误,解决方法

    删除同文件名的.swp文件即可

    rm -f .filename.swap

  • 相关阅读:
    Matlab中transpose函数的使用
    Matlab中cell2mat的使用
    Matlab中find函数的使用
    Matlab中数组下标是logical,如何处理?
    Matlab中mat2cell的使用
    判断一棵树是否是另一棵树的子树
    链表中倒数第k个结点
    古德-图灵估计
    好书记录
    编程思路总结——递归
  • 原文地址:https://www.cnblogs.com/nq31/p/14245190.html
Copyright © 2011-2022 走看看