当前位置: 首页 > news >正文

vi vim 笔记心得2209010344

vi vim 笔记心得2209010344

vi vim 笔记心得2209010344

  • vi vim 笔记心得2209010344
  • vi vim 的多种工作模式
    • 进入某种模式
      •  进入一般模式(不可见命令模式)
      •  进入底部单行命令行模式(可见命令模式)
      •  进入文字输入插入模式 INSERT模式
      •  进入文字输入覆盖模式 REPLACE模式
      •  进入可视化选取模式
    • 复制 , 剪切 , 粘贴 , 删除
      •  复制
      •  剪切(删除)
      •  删除,然后进入文字插入模式
      •  可视化选择复制或剪切
      •  粘贴
      • 撤销重做
    • 查找替换
      •  查找
      •  替换
        •    限制在可视的选定区域进行替换
    • 保存退出
    • 行号
    • 其它
    • 一些技巧
      • 移到末尾,并且进入文本录入模式 `GA` `SHIFT+ga`
      • 在最后一行下方新增一行 (光标换行,文字不换行) `GO` `SHIFT+go`
      • 光标快速移动
        • 首行尾行
        • 行首行尾
        • 新增行, 并进入文字录入模式
    • vi vim 键盘命令图

vi vim 的多种工作模式

  1. 一般模式,刚进入vi的模式, esc模式,我觉得可叫快捷键模式(按键模式), 按esc的模式
  2. 文本输入模式(a , A , i , I , o , O , s , S ,C进入插入模式 R进入覆盖模式)
  3. 底部命令行模式(冒号:开头,/开头,?开头)
  4. 连续字符串选择可视模式(v)
  5. 块选择可是模式(ctrl+v)

进入某种模式

 进入一般模式(不可见命令模式)

  1. 刚打开 vi 时就在一般模式
  2. 在文本输入模式按键盘ESC
  3. 在底部命令行回车, 或者 连按两次ESC

 进入底部单行命令行模式(可见命令模式)

  1. 冒号:开头的命令
  2. 斜杠/开头的命令
  3. 问号?开头的命令

 进入文字输入插入模式 INSERT模式

i 光标前插入
a 光标后插入
I 光标移到本行第一个字符后开始插入
O 光标上方插入一行
o 光标下方插入一行
S 删除本行
s 删除光标字符
C 删除光标到行尾
c 小c操作语法类似dy , 作用是删除, 如同d, 只是执行后会进入文字输入插入模式
3chc3h光标前三字符   3clc3l光标及后两字符
cc 本行   c0行首到光标   c^本行第一个字符到光标   c$光标到行尾
3ccc3c 本行和下两行
R进入覆盖模式,然后按键盘insert按键

 进入文字输入覆盖模式 REPLACE模式

在插入模式下按insert按键
R 直接进入覆盖模式 (小写r接字符只替换光标处一个字符,替换后依旧在一般模式)

 进入可视化选取模式

先将光标移动到想要的开始点
然后

  1. v进入连续字符串选择模式
  2. ctrl+v进入块选择模式

用上下左右选取
在这里插入图片描述
在这里插入图片描述




复制 , 剪切 , 粘贴 , 删除

复制主要用y   剪切主要用d   删除主要用c   粘贴主要用p

 复制

3yhy3h光标前三字符   3yly3l光标及后两字符
yy 本行   y0行首到光标   y^本行第一个字符到光标   y$光标到行尾
3yyy3y 本行和下两行
yw 光标 至 空格后出现字符

 剪切(删除)

剪切的d语法如同复制的y语法
3dhd3h光标前三字符   3dld3l光标及后两字符
dd 本行   d0行首到光标   d^本行第一个字符到光标   d$光标到行尾
3ddd3d 本行和下两行

x 剪切光标字符
X 剪切光标前一个字符

 删除,然后进入文字插入模式

C 光标到行末
3chc3h光标前三字符   3clc3l光标及后两字符
cc 本行   c0行首到光标   c^本行第一个字符到光标   c$光标到行尾
3ccc3c 本行和下两行

 可视化选择复制或剪切

先将鼠标移到想要的开始位置,然后按v
然后就可以通过 上下左右 像鼠标按住左键那样选择
选好区域后按y复制,按d剪切

 粘贴

p 粘贴到光标后
P 粘贴到光标前



撤销重做

u撤销
ctrl+r 重做


查找替换

 查找

支持正则表达式
/pattern 向下查找pattern的匹配
?pattern 向上
n 下一个
N 上一个

 替换

:s/a/b 本行第一个a变b
:s/a/b/g 本行所有a变b
:%s/a/b 所有行第一个a变b
:%s/a/b/g 所有行所有a变b , 整个文档的a变b

   限制在可视的选定区域进行替换

用光标确定起始点, 然后v进入连续字符串选择, 或ctrl+v进入块选择
按冒号: , 底部出现 :'<,'>
:'<,'>后追加s/pattern/content/g 变成 :'<,'>s/pattern/conten/g
回车就能将pattern匹配到的内容替换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



保存退出

:w----------------保存

:q----------------退出

:q! --------------强制退出

:wqZZ-------保存退出

:wq!------------ 强制保存退出


行号

:set nu 显示行号 :set nonu 关闭行号



其它

. 重复上一个动作 (点)
n空格键 光标移到n个字符后
n回车键 光标下移n行



一些技巧

移到末尾,并且进入文本录入模式 GA SHIFT+ga

在一般模式(刚进入的模式,esc模式)

  1. Gshift+g 到最后一行
  2. 然后 A shift+a 到本行末尾 并且进入文本录入模式

在最后一行下方新增一行 (光标换行,文字不换行) GO SHIFT+go

在一般模式(刚进入的模式,esc模式)

  1. Gshift+g 到最后一行
  2. 然后 小写o 在该行下方新增一行

光标快速移动

首行尾行

到最后行是在 esc模式下 键盘大写时按G键 或 小写时按shift+g
到第一行是按两次小写g gg 或者 输入:0:1

  • gg:0:1 --------首行
  • G ----------------------尾行
    888G888gg:888 到第888行或尾行

H屏首   M屏中   L屏尾

行首行尾

  • Ashift+a 移动到行尾,并进入文本录入模式
  • $ 移动到行末尾
  • 0 移动到行首 (零)
  • ^ 移动到本行第一个字符

新增行, 并进入文字录入模式

  • 在当前行下方新增一行并进入编辑模式, 用 o 小写
  • 在当前行上方新增一行并进入编辑模式, 用 O 大写




vi vim 键盘命令图

在这里插入图片描述

相关文章:

  • 忘记电脑密码的解决方法——使用pe工具重置电脑密码
  • 如何避免死锁呢?
  • Fedora36启用root,并且root直接通过ssh远程连接 2209010539
  • Slipped Conditions
  • 嵌套管程锁死
  • 图解LeetCode——1475. 商品折扣后的最终价格(难度:简单)
  • Java中的锁详解说明
  • GPIO相关介绍
  • 软件工程、软件生命周期、软件定义阶段、需求的层次/特征、概要设计、详细设计
  • 台式机电源更换笔记
  • 从文件资源管理器中隐藏文件
  • # Maven错误Error executing Maven
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (2020)Java后端开发----(面试题和笔试题)
  • lt;JVM调优gt;为什么内存过大?
  • Google 是如何开发 Web 框架的
  • angular2开源库收集
  • Centos6.8 使用rpm安装mysql5.7
  • java8 Stream Pipelines 浅析
  • Javascripit类型转换比较那点事儿,双等号(==)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 浮动相关
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十五)使用Nexus创建Maven私服
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (轉)JSON.stringify 语法实例讲解
  • ./configure,make,make install的作用(转)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET Micro Framework 4.2 beta 源码探析
  • .net refrector
  • .NET 反射的使用
  • .net专家(张羿专栏)
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [ajaxupload] - 上传文件同时附件参数值
  • [Avalon] Avalon中的Conditional Formatting.
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C++]STL之map
  • [C++]命名空间等——喵喵要吃C嘎嘎
  • [C++核心编程](四):类和对象——封装
  • [go] 迭代器模式
  • [HTML]Web前端开发技术28(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [java刷算法]牛客—剑指offer链表有环的入口、反转链表、合并排序链表
  • [LeetCode]-283. 移动零-1089. 复写零
  • [NOIP2018 PJ T4]对称二叉树
  • [OCR]Python 3 下的文字识别CnOCR
  • [one_demo_6]逆置整数
  • [Oracle]4--查询操作