zoukankan      html  css  js  c++  java
  • Linux入门-04-vim的基本使用

    一、前言

    参考课程:

    vi和vim的三种常用模式:

    • 正常模式:以vim打开一个档案就直接进入一般模式。这个模式中可以【上下左右】按键来移动光标,可以【删除字符】或【删除整行】来处理档案内容,可以【复制、粘贴】来处理文件数据
    • 插入模式:按下i,I,o,O,a,A,r,R等一个字母后才会进入编辑模式,一般来说按i即可
    • 命令行模式:提供相关指令,完成读取、存盘、替换、离开vim、显示行号等操作

    image-20201005142210291

    要学习的操作:

    image-20201006090536215

    附上经典图:

    vim1



    二、编辑新文件

    这里用的是Xshell去连接Linux虚拟机,并且是在Xshell中操作:

    创建一个新文件:

    vim Hello.java
    

    现在就是一般模式

    image-20201005142245130

    i进入编辑模式并输入:

    public class Hello{
            
            public static void main(String[] args){
                    System.out.println("Hello,world");
            }
    }
    
    

    输入完毕后按Esc退出编辑模式,返回一般模式

    这时候输入:或者/,即冒号或反斜杠:

    image-20201005142627413

    现在就是命令模式,输入wq,表示写入(即保存)并退出。

    这时候就返回命令行了。

    image-20201005142732951

    输入ll,查看文件:

    image-20201005142755211

    这时候再输入vim Hello.java就是进入:

    image-20201005142833837

    如果没有改变,可以输入:q直接退出。

    如果有了修改,比如:

    image-20201005143720699

    这时候:q就不能退出:

    image-20201005143746687

    这时候就需要用:q!强制退出。



    三、复制当前行和删除当前行

    3.1 复制当前行并粘贴

    正常模式下,将光标移动到要复制的行上,再按yy(即连按两次y),就能将当前行复制到粘贴板上,这时候按p就可以在光标所在行下一行粘贴。

    例如,我加了一行:

    image-20201005145530268

    然后按yy复制,之后把光标移动到System.out.println()`这一行:

    image-20201005145658486

    这时候按p:

    image-20201005145716130


    3.2 删除当前行

    正常模式下,将光标移动到要删除的行上,再按dd(即连按两次d),就能将当前行删除:

    比如光标现在在这行:

    image-20201005145848561

    dd就可删除。

    输入:q!退出。


    3.3 多行操作

    当想操作多行的时候,比如复制多行,比如可以在正常模式下输入5yy,即复制5行(光标当前行+下面四行)。

    image-20201006090105410

    在最后一行p粘贴:

    image-20201006090137505

    光标在此位置5dd删除五行(光标所在行+下面四行):

    image-20201006090223151



    四、查找关键词

    命令模式下,输入/关键字就能查到该文件下的所有关键字。

    这时候按n就可以让光标跳到下一个找到的关键字的位置。

    如:

    image-20201005181344107

    命令模式下输入 ext,即next作为关键词:

    image-20201005181549250

    image-20201005181559685

    n可以让光标跳到下一个关键词的位置:

    image-20201005181634502

    image-20201005181643419



    五、设置行号

    命令模式下,输入set nu就可以增加行号,输入set nonu就可以取消设置行号。

    如:

    image-20201005181931233

    在命令模式下输入set nu:

    image-20201005181954595

    image-20201005182001794

    再在命令行模式下输入set nonu就可以取消行号。

    image-20201005182047504



    六、光标跳到首行/最末行

    正常模式下输入gg就可以使得跳到最首行,输入G(大写G,即shift+G或键盘大写模式下输入G)就可以使得光标跳到最末行:

    原本:

    image-20201005182449068

    输入G:

    image-20201006090357614

    输入gg:

    image-20201006090410311



    七、撤销操作

    正常模式下输入u就可以撤销上一步操作(包括编辑模式下的操作,比如输入了hello。)

    原本:

    image-20201006090850538

    i进入编辑模式输入hello:

    image-20201006090947001

    这时候按Esc退出编辑模式,进入正常模式,然后按u撤销输入:

    image-20201006091239209

    注意,如果是一直编辑模式,退出后直接按u,会将编辑模式输入的所有东西都撤销。



    八、光标移动到指定行

    输入一个数字,然后再G(shift+g或大写G),就可以让光标跳到输入的数字的行数

    我们打开行数比较多的文件:

    vim /etc/profile
    

    image-20201006092845032

    开启行数:

    :set nu
    

    让光标跳到30行,输入30:

    image-20201006093149167

    然后再shift+g或者G:

    image-20201006093221061

  • 相关阅读:
    1
    vim配置
    pyspark
    添加底部小火箭+目录
    00
    博客园代码高亮设置
    01. 枚举类型
    01. 授权问题
    Android Studio打包签名全过程
    linux 阿里云源地址
  • 原文地址:https://www.cnblogs.com/duzhuan/p/13772721.html
Copyright © 2011-2022 走看看