• Linux学习 vim编辑器


    二 、 vim三种模式

      vim中存在三种模式:命令模式、编辑模式(输入模式)、末行模式(尾行模式)。

    命令模式:在该模式下不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、粘贴等)【打开文件之后默认进入的模式】

    编辑模式:在该模式下可以对文件的内容进行编辑

    末行模式:可以在末行输入命令对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)

    vim打开文件的方式:

    #vim 文件路径 作用:打开指定的文件

    #vim +数字 文件路径  作用:打开指定文件,并将光标移动到指定行

    #vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个文件

    重点:先复制出一个/etc/passwd文件,复制到当前价目录下(千万不要在etc目录下改!!)

    退出方式:输入:q 按下回车即可

    三 、命令模式

    注:该模式是打开文件第一个看到的第一个模式

    1、光标移动

    (1)移动到行首:按键shift+6或 ^(T字母上面的6,不要按小键盘上的6)

     (2)移动到行尾:按键shift+4 或$(R字母左上角的4)

    (3)光标移动到首行:按键gg

    (4)光标移动到末行:按键G

    (5)翻屏:向上Ctrl+b(back)或pgup

                        向下Ctrl+f(forward)或pgdn

    2、复制操作

    (1)复制光标所在行

           按键:yy

           粘贴:在想要张贴的地方按下p键

    (2)以光标所在行为准(包含当前行),向下复制指定的行数

    按键:数字yy

    粘贴:按下p键

    (3)可视化复制

    按键:ctrl+v,进入可是块,然后按下方向键来复制所需的区块,按下yy进行复制,最后按下p键粘贴

    3、剪切/删除

    (1)剪切/删除光标所在行 

    按键:dd  (删除之后下一行上移)

    注意:dd严格意义上是剪切命令,但是如果剪切了不粘贴就是删除的效果

    (2)剪切/删除   光标所在行为准(包含当前行),向下删除/剪切指定的行

    按键:数字dd  (删除之后下一行上移)

    (3)剪切/删除光标所在的当前行,但是删除之后下一行不上移

    按键:D

    (4)撤销/恢复

    撤销:输入 :u(不属于命令模式)或者u(undo)

    恢复:ctrl+r  恢复(取消)之前的撤销操作

    5 拓展1:光标的快速移动

    (1)快速将光标移动到指定的行数

    按键:数字G

    (2)以当前光标为准向上/向下移动n行

    按键:数字 上,数字下

    (3)以当前光标为准向左/向右移动n字符

    按键:数字 左,数字左

    (4)末行模式下的快速移动方式:移动到指定的行

    按键:输入英文“:”,其后输入行数数字,按下回车

    四、各个模式间的切换

    五、末行模式

    进入方式:由命令模式进入,按下“:”或者“/”(表示查找)即可进入

    退出方式:

           a.按下esc

           b, 按两下esc

          c.   删除末行全部字符

    (1)保存操作(write)

        输入:  “:w”     保存文件

        输入: “:w  路径”   另存为

    (2)退出(quit)

        输入:“:q”  退出文件

    (3)保存并退出

         输入: “:wq”   保存并退出

    (4)强制(!)(不保存退出)

          输入:“:q!”   表示强制退出,刚才做的修改操作不做保存

    (5)调用外部命令(了解)

    输入:“:!外部命令”

    例如::!ls -la /

    (6)搜索/查找

    输入:“/关键词”

    例如:在passwd文件中搜索“sbin”关键词

    在搜索结果中切换上/下一个结果:N/n

    如果需要取消高亮,则需要输入:“nohl”[no high light]

    (7)替换

       :s/搜索的关键词/新的内容        替换光标所在的第一处符合条件的内容

       :s/搜索的关键词/新的内容/g       替换光标所在的所有符合条件的内容

       :%s/搜索的关键词/新的内容           替换整个文档中每行第一个符合条件的内容

       :%s/搜索的关键词/新的内容/g       替换整个文档符合条件的内容

      

       %表示整个文件

     g表示全局(global)

    (8)显示行号

         输入:“:set nu”[number]

         取消显示:“:set nonu”

    (9) 拓展2:使用vim同时打开多个文件,在末行模式下进行切换文件

        查看当前已经打开的文件名称输入:“:files”

            输出之后,在%a的位置有2种显示可能

             %a:a=active,表示当前正在打开的文件;

             #:表示上一个打开为文件

       切换文件的方式:

            a.如果需要指定切换文件的名称,则可以输入:“open 已经打开的文件名”

            b.可以通过其他命令来切换上一个文件/下一个文件

                              输入:“:bn”    切换到下一个文件(back next)

                             输入:“:bp”     切换到上一个文件(back previous)

    六 编辑模式

       

        重点看前2个进入方式:i(insert),a(after)

        退出方式:按下esc键

    七 实用功能

    1.代码着色

    如何控制着色显示与否?(末行模式)

        显示:":syntax on"

        关闭显示:“:syntax off”

    2.vim中计算器的使用

    当在编辑文件的时候突然需要计算器去计算一些公式,则此时需要用计算器,但是需要退出,vim自身集成了一个简易的计算器

    a.进入编辑模式

    b.按下按键“ctrl+R” 然后输入“=”,此时光标跳到最后一行

    c.输入需要计算的内容,按下回车

     八  拓展3

    1、vim的配置(重点)

    vim是一款编辑器,编辑器也是有配置文件的。

      vim配置有三种情况:

          a.在文件打开的时候在末行模式下输入的配置(临时的)

          b.个人的配置文件(~/.vimrc 如果没有可以自行新建)

         c.全局配置文件(vim自带,/etc/vimrc)

    (1)新建好个人配置文件之后进入编辑

    (2)在配置文件中进行配置       比如显示行号:set nu

    配置好之后,vim打开文件就会永远显示行号

    问题:如果某个配置项,在个人配置文件与全局配置文件产生冲突的时候,应该以谁为准?

     测试步骤:在两个配置文件中,针对同一个配置项设置不同的值

                      (1)先在全局的配置文件中设置不显示行号,在个人的配置文件中设置显示行号,观察结果。

                    最后显示行号,说明以个人为准

                       (2)先在全局中配置显示行号,在个人中设置不显示行号,观察结果。

                  最后不显示行号,说明以个人为准

                 结论:如果针对同一个配置项,个人配置文件中存在,则以个人配置文件为准,如果个人配置文件中不存在这一项,则以全局配置文件为准。

    2、异常退出

    在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的结果,称为异常退出:

    解决办法:将交换文件(编辑过程中产生的临时文件)删除掉即可

    #rm -f .passwd.swp

    3.别名机制

    作用:相当于创建一些属于自己的自定义命令

    例如:在Windows下有cls命令,在Linux下可能因为没有这个命令而不习惯清屏。现在可以通过别名机制来解决这个问题,可以自己创造出cls命令

    别名机制依靠一个别名映射文件:~/.bashrc

    注意:如果想新的命令生效,必须重新登录当前用户

     4.退出方式

    回顾:之前vim中退出编辑的文件可以使用“:q”或者“:wq”

    除了上面语法外,vim还支持另外的保存退出方法:“:x”.

       说明:

      (1)“:x”在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出

      (2)如果文件没有被修改,但是使用wq进行退出的话,则文件修改时间会被更新;

    但是如果文件没有被修改,使用x进行退出的话,则文件修改时间不会被更新;

    主要是会混淆用户对修改时间的认定。

          因此,建议以后使用“:x”来进行对文件保存退出。

            但是:不要使用X(大写:表示对文件进行加密操作)

  • 相关阅读:
    Matlab中将数据保存为txt或dat格式四种方案
    jeecg项目能启动显示登录页面,但是登录失败,报如下错误
    回转体CAD模型的厚度测量
    安装 PostgreSQL 时出错:Warning:Problem running post-install step
    TensorFlow 张量变换
    RNNCell、LSTMCell、tf.nn.static_rnn、tf.nn.static_bidirectional_rnn和tf.nn.bidirectional_dynamic_rnn
    layers.MaxPooling1D
    tf.squeeze
    tf.layers.Conv1D,1维卷积层
    tf.keras.layers.TimeDistributed,将一个layer应用到sample的每个时序步
  • 原文地址:https://www.cnblogs.com/liaohong123/p/9839377.html
Copyright © 2020-2023  润新知