zoukankan      html  css  js  c++  java
  • 【vim编辑器】文本编辑器vim

    在Linux系统中一切皆文件。配置一个服务就是在修改其配置文件的参数

    一、Vim编辑器

      vim是我们在Linux系统中常用的文件编辑命令,也可以使用其简写vi。其边际模式有三种:命令模式,输入模式,行末模式,。每个模式分别支持不同的操作命令。

      命令模式:控制光标移动,可对文本进行复制、粘贴、删除、查找等工作。

        输入模式:录入文本。

      行末模式:保存或退出文档,及设置编辑环境。

      每次进入命令模式,需切换到输入模式才能进行编辑。编辑完之后需要按ESC退回命令模式,从命令模式输入:进入行末模式进行文档的保存或退出操作

     二、常用命令

    2.1 vim常命令

    命令 作用
    dd 删除(剪切)光标所在整行
    ndd 删除(剪切)从光标处指定n行
     yy  复制光标所在整行
     nyy  复制光标所在n行
    p 将删除dd或复制yy的数据粘贴到光标后面
     n  搜索时,按n健定位到下一个搜索条件的地方
     N   搜索时,按N健定位到上一个搜索条件的地方
     u  撤销上一次的修改

    2.2 命令模式命令

    光标移动
    命令 作用
    i,I

    i:定位光标所在处输入

    I:定位光标所在行的第一个非空格符处开始输入(如果第一行前有空格弧自动定位到没有空格的字符处)

    a,A

    a:定位光标所在行的第二个字符所在处输入

    A:定位光标所在行末尾输入

    o,O

    o:定位光标所在行的下一行输入(即光标所在行后面一行)

    O:定位光标所在行的上一行输入(即光标所在行前面一行)

    r,R

    r:取代光标所在处的字符一次

    R:会一直取代光标所在处的字符。按ESC键退出

    h 或 左方向键

    光标向左移动一个字符(如果想进行多次移动,可以使用nh或n方向键)

    j 或 下方向键

    光标向下移动一行

    k 或 上方向键

    光标向上移动一行

    l 或 右方向键

    光标向右移动一个字符

    H

    光标移动到屏幕最上行的第一个字符处

    M

    光标移动到屏幕中间的第一个字符处

    L

    光标移动到屏幕最下行的第一个字符处

    [Ctrl] + f

    向下移动一页,相当于PgDown

    [Ctrl] +b 向上移动一页,相当于Pgup
    [Ctrl] +d 向下移动半页
    [Ctrl] +u 向上移动半页
     0 或 Home键  光标移动到该行最前面
    shift+$或End键 光标移动到该行最后面
    n<space> 光标移动到该行的n个字符处
    n<Enter> 光标向下移动到n行
    G 光标移动到文件最后一行
    nG 光标移动等到文件n行。可配合:set nu 一起使用
    gg 光标移动到第一行。相当于1G
    搜索替换
    /keyword 向光标之下查找名称为keywork的字符串。与n、N连用,向下向上搜索
    ?keyword 向光标之上查找字符串。这时使用n、N,是向上向下搜索
    :n1,n2s/word1/word2/g

    匹配n1行到n2行之间的word1全局替换为word2

    :1,$s/word1/word2/g或 :%s/word1/word2/g 匹配第一行到最后一行的word1,并替换为word2
     :1,$s/word1/word2/gc或 :%s/word1/word2/gc
     匹配第一行到最后一行的word1,并替换为word2。在替换之前提示字符给用户确认(confirm)是否替换
    删除、复制、粘贴
    x,X 表示删除一个字符。x向后删除,X向前删除
    nx,nX 表示删除n个字符。nx向后删除n个字符,nX向前删除n个字符
    dd 删除光标所在行
    D 删除光标所在行
    ndd 删除光标所在行的n行
    d1G 删除光标所在行的所有数据。相当于dd
    dG 删除光标所在行到最后一行的数据。G定位到最后一行
    d$ 删除光标所在处到最后一个字符。
    d0 删除光标所在处到最前面的一个字符
    yy 复制光标所在行
    nyy 复制光标所在n行
    y1G 复制光标所在行到第一行所有数据
    yG 复制光标所在行到最后一行所有数据
    y0 复制光标所在行的字符到行首的所有数据
    y$ 复制光标所在行的字符到行尾的所有数据
    p,P 粘贴。p将复制的内容粘贴到下一行,P将复制的内容粘贴到上一行
    J 将光标所在行与下一行数据结合成一行
    c 重复删除多行。向下删除10行(10cj)
    u 撤销前一个动作
    ctrl + r 重做上一个动作
      小数点。重复前一个动作。比如复制,按 . 就是重复复制。

     2.3 行末模式命令

    命令 作用
    :w 保存
    :q 退出
    :q! 强制退出(放弃对文档内容的修改)
    :wq 保存退出
    :wq! 强制保存退出
    :x 在文件没修改情况下表示直接退出,等价于:q。修改情况下表示保存退出,等价于:wq。
    :w [filename] 将文件保存为另一个文件
    :n1,n2 w [filename]

    将n1,n2的内容保存为另一个文件

    :r [filename] 将另一个文件读入到目前编辑的文件中。会在游标下显示
    :nr !command 在n行下读取命令所执行的结果。:4r !hostname
    :n! command 用命令执行的结果替换第n行的内容。4! hostname
    :set nu 显示行号(永久设置echo "set number" >> /etc/vimrc)
    :set nonu 不显示行号
    :set list 查看控制符
    :noh 取消高亮显示
    :命令 执行命令(搜索,替换等)
    :整数 跳转到该行
    :! command

    在编辑器中可以暂时离开vi,执行command显示结果。

    如:“:! ls /usr/local”即在vi中能看到ls运行的结果

    注意:多窗口打开文件问题:

      会产生一个交换文件“.文件名.swp”。下边会有对应的操作(0表示只读,E表示直接编辑,R表示恢复,Q表示退出,A表示中止)

    2.4 可视化模式

       可以通过v或V进入可视化模式。退出可视化模式按两下ESC即可.

    命令  参数  
    v 进入字符可视化模式(即按v之后,上下键选择时是按字符选择)。以字符为单位
    V 进入行可视化模式(及按V之后,上下键选择时是按行选择)。以行为单位
    ctrl+v 进入可视化模式,块选择
    :> 缩进。向后缩进
    :< 缩进。向前缩进
    y 复制
    d 删除
       

     PS:光标所在位置会反选白

    1)字符模式  v

      字符模式可以高亮显示段落中的一个句子或句子中的一个短语,然后,可以使用任何 Vim 编辑命令删除、复制、更改/修改可视化模式识别的文本。

    实例:

    移动句子


       首先按v进入可视化字符模式,使用箭头选中需要移动的行,可以使用w或$高亮显示。然后按d删除。如果箱撤销操作按u。将光标移动到新的位置,按p粘贴。


     改变一个短语


       首先将光标定位到修改的字符处,选中要修改的字符,按c键进入插入模式,输入要替换的字符,按ESC,保存即可

     


     2)行模式 V

      使用可视化行模式将 Ansible 任务移动到该剧本文件中的其他位置。

    实例:

    操作多行文本


      首先按V或shift+v进入行模式。使用方向键选择文本。按d删除,移动到新的位置。按p粘贴。如果要复制,按y即可


     多行缩进


       进入行模式,选中需要缩进的行,在底部输入">"缩进所有选中的行;"<"减少所有选中行的缩进。

      


     可视化模式参考网址:https://linux.cn/article-10589-1.html

    2.5 批量添加或删除多行注释

    添加:

    1)进入vi编辑器,按ctrl+v进入块可视化模式(VISUAL BLOCK)

     2)移动光标向上移或下移,选中多行的开头。

     3)选择完毕按大写 I ,进入”INSERT”模式。输入要插入的注释符,然后按两下ESC即可

    PS:上面这个方法在我服务器上没有尝试出来。我使用的是替换语句 

    :起始行号,结束行号s/^/注释符/g(注意冒号)

    删除:

    同样ctrl+v,将光标移动到到删除的行,然后按d即可

     :起始行号,结束行号s/^注释符//g(注意冒号)

    编辑jar或zip文件:

    # 打开jar
    [root@localhost lib]# vim test.jar
    # 搜索需要编辑的文件
    /filename
    # 搜索到之后会定位到刚刚搜索的文件名,回车,就会进入文件
    # 按i即可编辑,编辑之后保存退出即可

     

  • 相关阅读:
    数据共享之死锁
    响应式菜单制作
    工作日志2014-07-01
    Thinkphp 无法使用-&gt;order() 排序的两种解决的方法!
    C#
    HDU1232 畅通project 并查集
    Cocos2d-x优化中图片优化
    1.3.4 设计并发友好的应用程序
    UIView的层介绍
    《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)
  • 原文地址:https://www.cnblogs.com/HeiDi-BoKe/p/11727424.html
Copyright © 2011-2022 走看看