zoukankan      html  css  js  c++  java
  • 【05】Vim&Vi:编辑器之神

    vi简介

    • vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、
      替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。
    • Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
    • vi没有菜单,只有命令,且命令繁多。

    Vi有三种基本工作模式

    • 命令模式
    • 文本输入模式
    • 末行模式
    命令模式:

    用户刚刚启动 vi/vim,便进入了命令模式。

    此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

    • 常用的命令:
      • i 切换到输入模式【编辑模式】,以输入字符。

    若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

    命令模式只有一些最基本的命令,因此仍要依靠末行模式输入更多命令。

    文本输入模式【编辑模式】

    在命令模式下按下【i】就进入了输入模式。

    • 在输入模式中,可以使用以下按键:
      • 字符按键以及Shift组合,输入字符
      • ENTER,回车键,换行
      • BACK SPACE,退格键,删除光标前一个字符
      • 方向键,在文本中移动光标
      • HOME/END,移动光标到行首/行尾
      • Page Up/Page Down,上/下翻页
      • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
      • ESC,退出输入模式,切换到命令模式
      • 其实这个模式你可以任意输入,就像windows下的输入
    末行模式【命令行模式】
    • 在命令模式下按下:(英文冒号)就进入了末行模式。
    • 末行模式可以输入单个或多个字符的命令,可用的命令非常多。
    • 在末行模式中,基本的命令有(已经省略了冒号):
      • q 退出程序
      • q! 强制退出,不保存
      • w 保存文件
      • wq 保存退出
      • wq! 强制保存退出

    按ESC键可随时退出末行模式。

    vim示意图

    vim基础操作

    代码补完、编译及错误跳转等方便编程的功能特别丰富

    1.1 进入插入模式:

    按键|说明
    ---|---
    i| 插入光标前一个字符
    I| 插入行首
    a| 插入光标后一个字符
    A| 插入行未
    o| 向下新开一行,插入行首
    O| 向上新开一行,插入行首
    

    1.2 进入末行模式
    在命令模式下,用户按“:”键即可进入末行模式

    • 退出

      按键 作用
      :q 退出
      :q! 退出并不保存
      :w 保存
      :qw 退出并保存
      :x 退出并保存
    • 查找命令:

      按键 作用
      / str查找
      n 下一个
      N 上一个
    • 替换命令:

    把abc全部替换成123
    末行模式下,将当前文件中的所有abc替换成123。如果不使用g,则只会替换每一行的第一个abc
    
    :%s/abc/123/g
    
    末行模式下,将第一行至第10行之间的abc替换成123
    :1, 10s/abc/123/g
    

    vim里执行 shell 下命令:

    末行模式里输入!,后面跟命令

    • 进入命令模式:

      • ESC:从插入模式或末行模式进入命令模式
    • 移动光标

      按键 作用
      h 左移
      j 下移
      k 上移
      l 右移
      M 光标移动到当前屏幕的中间行
      L 光标移动到当前屏幕最后一行行首
      gg 光标移动文件开头
      G 光标移动到文件末尾
      nG 移动到指定行,n是行号G
      w 向后一次移动一个字
      b 向前一次移动一个字
      { 按段移动,上移
      } 按段移动,下移
      Ctr-d 向下翻半屏
      Ctr-u 向上翻半屏
      Ctr-f 向下翻一屏
      Ctr-b 向上翻一屏
    • 撤销命令:

      按键 作用
      u 一步一步撤销
      Ctr-r 反撤销
    • 删除命令:

      按键 作用
      x 删除光标后一个字符,相当于 Del
      X 删除光标前一个字符,相当于 Backspace
      dd 删除光标所在行,dd n 删除指定的行数
      D 删除光标后本行所有内容,包含光标所在字符
      d0 删除光标前本行所有内容,不包含光标所在字符
      dw 删除光标开始位置的字,包含光标所在字符
      de 删除光标所在位置到本单词末尾
      dE 删除光标所在位置到本单词末尾包括标点符号
      db 删除光标所在位置到前面单词
      dB 删除光标所在位置到前面单词包括标点符号
      d$ 删除光标所在位置到本行末尾
    • 复制粘贴:

      按键 作用
      yy 复制当前光标所在行,yy n 复制 n 行
      p 在光标所在位置向下新开辟一行,粘贴
    • 替换操作:

      按键 作用
      r 替换当前字符
      R 替换当前行光标后的字符
    • 文本行移动:

      按键 作用

      |文本行右移
      << |文本行左移

    • 重复命令:

      按键 作用
      . 重复上一次操作的命令
    • 可视模式:

      按键 作用
      v 按字符移动,选中文本
      V 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动

  • 相关阅读:
    【缓存】缓存穿透、缓存并发、热点缓存解决方案
    【缓存】redis缓存设计
    【AOP】Spring AOP 和 AspectJ
    disruptor
    Spring Boot application starters
    【日志】log4j2 yml
    PHP中间件--ICE
    docker 简单入门(一)
    redis、memcache和mongodb各自的优缺点是什么
    MYSQL三大范式
  • 原文地址:https://www.cnblogs.com/sjkzy/p/14981482.html
Copyright © 2011-2022 走看看