zoukankan      html  css  js  c++  java
  • Vim 基本命令入门

    _ _20180628165722
    最近在学习 Linux,前面的基础知识学习了一下,进入了 Vim 的学习环节。感觉这个编辑器还是可以的,有特色,鼠标都不用,蛮炫酷。对于基本
    的使用来讲还是很方便的。下面是一些我的学习笔记,大致就是一些常用的命令吧。这个博客就是使用 Vim 写的一个 Markdown 文档,就当是给自己练练手,加深学习的印象了。

    Vim 基本概念

    Vim 是从 vi 发展而来的一个功能强大、高度可定制的文本编辑器,是一款开源的软件。Vim 的基本功能模式如下图:

    Vim 工作模式图

    由图可知,Vim 基本包括三种工作模式:命令模式、插入模式和编辑模式。在终端中通过 vi 命令即可使用 Vim 打开对应文件,从而进入命令模式,此时输入的任何文本信息都会被当做命令,回车即可执行输入的这些命令。要想编辑文本信息,需要进入编辑模式,此时输入命令 aoi都可以进入插入模式。其中,a 代表在当前光标位置的后方插入,o 代表在当前光标的下面一行插入,i 代表在当前光标位置的前面插入。此外,AOI也可以进入插入模式,但是它们意义与其小写模式正好相反。A 代表在行尾插入,O 代表在当前光标位置的上面一行插入,I 代表在行首开始插入。进入插入模式之后,按“ESC”键即可退出插入模式,回到命令模式。

    常用命令

    插入命令

    命令含义
    a 在光标当前所在位置的后面开始插入
    A 在光标所在行行尾开始插入
    i 在光标当前所在位置的前面开始插入
    I 在光标所在行行首开始插入
    o 在光标所在行的下一行开始插入
    O 在光标所在行的上一行开始插入

    定位命令

    命令含义
    :set nu 设置行号
    :set nonu 取消行号
    gg 跳转到第一行
    G 跳转到最后一行
    nG 跳转到第n行
    :n 跳转到第n行
    $ 跳转到行尾
    0 跳转到行首

    其中,值得注意的是,命令 :n 与命令 nG 具有同样的功能,从字面上看,:n 更容易记住,所以我一般使用 :n命令。
    具体使用方法:

    :100
    

    在命令模式下,输入上方的命令,回车就回跳转到第一百行。

    这些常用的跳转命令最好记住。

    删除命令

    命令含义
    x 将光标所在处的字符进行剪切(删除)
    nx 将光标之后的n的字符进行剪切(删除)
    dd 将光标所在行进行剪切(删除)
    ndd 将光标所在行之后的n行进行剪切(删除)
    dG 将光标所在行到文章末尾进行剪切(删除)
    D 将光标所在处到行尾进行剪切(删除)
    :n1,n2d 将n1到n2行内容进行剪切(删除)

    常用的是 xnxdd 和 ndd

    复制和粘贴

    命令含义
    yy 复制当前行
    nyy 复制当前行以下的n行
    dd 剪切当前行
    ndd 剪切当前行之后的n行
    p 粘贴在当前光标所在行下
    P 粘贴在当前光标所在行上

    替换和撤销命令

    命令含义
    r 取代光标所在处的字符
    R 进入替换模式,类似于 Windows 中的 insert
    u 撤销上一次操作

    注意点:

    • r 只替换当前光标所在处的字符,命令模式下按 r 然后按新的字符。
    • R 进入替换模式,按 ESC 才能退出。

    搜索和搜索替换命令

    命令含义
    /string 搜索指定字符串,如果要忽略大小写,先输入命令 :set ic
    n 搜索指定字符串的下一个位置
    :%s/old/new/g 全文替换指定字符串
    :n1,n2s/old/new/g 在指定范围内替换指定字符串

    注意点:

    • %s代表全文搜索。
    • n1,n2s代表在n1行到n2行范围内搜索。
    • g代表不会确认是否替换,如果最后是c的话,就回挨个询问是否替换。

    保存和退出命令

    命令含义
    :w 保存修改
    :w new_filename 另存为指定文件
    :wq 保存修改并退出
    ZZ 保存修改并退出的快捷键
    :q! 不保存修改强制退出
    :wq! 保存修改并强制退出

    其它使用技巧

    命令含义
    :r 文件名 将指定文件的内容导入到光标所在位置
    :r !命令 将命令运行结果导入到光标所在位置
    :map 快捷键 触发命令 自定义快捷键
    :ab old new 在编辑时自动替换一些字符

    注意点:

    • :r !命令 是一个很好用的命令,比如:r !date可以把当前日期时间快速导入到当前光标位置。
    • :map 快捷键 触发命令用于自定义快捷键,在命令模式下,输入“:map ”然后输入“Ctrl+V+P”,会出现“^P”,代表快捷键为“Ctrl+P”。最后一部分触发命令是指按下快捷键后,触发的命令,比如“I#”,这代表快捷方式触发的命令为“I#”,然后按下“ESC”键。含义即为在行首添加“#”井号,快速注释。
    • 连续行注释:n1,n2s/^/#/g,代表将指定范围内的行首替换为“#”井号。其中,“^”代表行首。
    • :ab是编辑时快速替换命令,当你自定义替换字符串后,当你在编辑模式下输入要替换的字符串时,空格或者回车后,这个就字符串就回立即被你定义的新字符串替换掉,很方便。

    小问题记录

    • 习惯了Ctrl+S保存修改,在 Vim 中也喜欢按,结果按了之后就出问题了,无法输入了。解决方法就是按Ctrl+Q,退出锁屏模式。
    • 编辑模式下按Ctrl+Z不是撤销更改,撤销更改应该进入命令模式,按u。编辑模式下按Ctrl+Z是强制将进程加入后台运行,会生成一个“.swap”交换文件。要正常编辑,可以手动删除交换文件,由于交互文件是隐藏文件,所以需要按ls -a查看。

    总结

    以上只是一些基本的 Vim 命令,学会使用这些命令还是能够大大地增强学习乐趣。另外要想学好 Vim,最好每个命令都自己试一试,亲身体验过后,还是觉得它非常方便的。

  • 相关阅读:
    搜索引擎的排序技术
    搜索引擎的检索模型-查询与文档的相关度计算
    搜索引擎网页排序算法
    IntelliJ IDEA全局内容搜索和替换
    Java8 利用Lambda处理List集合循环给另外一个List赋值过滤处理
    Java时间串获取(格式:yyyyMMddHHmmss)
    Java int转string 长度不足左补0
    float:浮点型double:双精度实型decimal:数字型单精度浮点数(Single)双精度浮点数(double)
    java 集合框架 Java集合&List的实现
    CSRF 攻击的应对之道
  • 原文地址:https://www.cnblogs.com/DM428/p/9242369.html
Copyright © 2011-2022 走看看