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

  • 相关阅读:
    Javascript FP-ramdajs
    微信小程序开发
    SPA for HTML5
    One Liners to Impress Your Friends
    Sass (Syntactically Awesome StyleSheets)
    iOS App Icon Template 5.0
    React Native Life Cycle and Communication
    Meteor framework
    RESTful Mongodb
    Server-sent Events
  • 原文地址:https://www.cnblogs.com/duzhuan/p/13772721.html
Copyright © 2011-2022 走看看