一、作用

  1. Linux环境下一款功能强大、高度可定制的文本编辑工具、vim vi IMproved,在 vi 的基础上做了很多改进,如:增加了多级撤销、多窗口操作、崩溃后也可以恢复、增加了稳定性、关键字自动补全、上下文自动补全等功能

二、选项

vim的工作模式

6种工作模式。

  • 普通模式:使用vim打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作。
  • 插入模式:也可以叫做编辑模式,在普通模式下敲击 i 、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑。
  • 命令行模式:在普通模式下,先输入冒号:,接着输入命令,就可以通过配置命令对vim进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打开默认配置执行。
  • 可视化模式:在普通模式下敲击前盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作。
  • 替换模式:如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击R键就可以直接替换。
  • EX模式:类似于命令行模式,可以一次运行多个命令

    光标移动命令

    行移动:
    $: 将光标移动到当前行的行尾
    0: 将光标移动到当前行的行首
    ^: 将光标移动到当前行的第一个非空字符(行首和当前行非空字符不是一个位置)
    2|: 移到当前行的第2列
    fx: 将光标移动到当前行的第一个字符x上
    3fx: 将光标移动到航前行的第3个字符x上
    tx: 将光标移动到目标字符x的前一个字符上
    fx和tx可以通过;和,进行重复移动,一个是正向重复,一个是反向重复
    %: 用于符号间的移动,它会在一对()、[]、{}之间跳跃
    在屏幕中移动
    gg: 移动到文件开头

    文本插入

    a: 在当前光标的后面追加字符
    o: 在当前光标的下一行行首插入字符
    I: 在一行的开头添加文本
    A: 在一行的结尾处添加文本
    O: 在光标当前行的上一行插入文本
    s: 删除当前光标处的字符并进入到插入模式
    S: 删除光标所在处的行,并进入到插入模式 u: 撤销修改

    文本删除操作

    行删除
    dd: 删除当前光标处的一整行=D
    5dd: 删除从光标开始处的5行代码
    dgg: 删除从光标到文本开头
    dG: 删除从光标到文本结尾

    文本复制、剪切与粘贴

    y: 复制,p:粘贴
    yw: 复制一个单词
    y2w: 复制2个单词
    y$: 复制从当前光标到行结尾的所有单词
    y0: 复制从当前光标到行首的所有单词
    yy: 复制一整行
    2yy: 复制从当前光标所在行开始的2行
    复制文本块
    1.首先进入visual模式:v
    2.移动光标选择文本
    3.复制与粘贴的操作

    文本的查找与替换

    /string 正向查找
    ?string 反向查找
    设置高亮显示
    :set hls
    设置行号显示
    :set nu
    *按键将当前光标处的单词高亮显示,使用n浏览下一个查找高亮的结果
    :s/old/new 将当前行的第一个字符串old替换为new
    :s/old/new/g 将当前行的所有字符串old替换为new
    :90s/old/new/g 将指定行的所有字符串old替换为new
    :90,93s/old/new/g 将指定范围的行的所有字符串old替换为new
    :%s/old/new/g 将文本中所有的字符串old替换为new
    :%s/old/new/gc 依次替换每个字符串关键字
    :%s/^struct/int/g 将所有以struct开头的字符串替换为int

    撤销修改、重做与保存

    u: 撤销上一步的操作。
    Ctrl+r: 将原来的插销重做一遍
    :U 恢复一整行原来的面貌(文件打开时的文本状态)
    :q 若文件没有修改,直接退出
    :q! 文件已经被修改,放弃修改退出
    :wq 文件已经被修改,保存修改并退出
    :e! 放弃修改,重新回到文件打开时的状态

    三、实例

    ```shell vim /usr/local/nginx/conf/nginx.conf

    1 # 这个配置文件放nginx服务的基本配置 1 # 1.启动用户 2.cpu亲和力 3.err_log位置 4.pid位置 5.文件最大描述符 2 # 6.工作模式 7.http{}放置全局优化内容如:log格式 gzip压缩 开启子配置文件

:set nu :set nonu :2s/http/stat/g /http
:e! ```