[oeasy]python017_万行代码之梦_vim环境_复制粘贴

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
云原生网关 MSE Higress,422元/月
函数计算FC,每月15万CU 3个月
简介: 在这个教程中,作者分享了如何在 Vim 编辑器中快速创建和操作大量代码行。首先,通过 `yy` 复制一行,然后使用 `p` 粘贴来增加代码行数。通过反复粘贴,可以迅速生成多行代码。为了加快操作,可以用 `9999p` 来一次性粘贴9999行。接着,介绍了撤销(`u`)和重做(`ctrl+r`)的操作,以及删除整篇文档的快捷方式。最后,作者提到虽然可以生成一万行代码,但并不建议这样做,因为可能会导致程序崩溃,并提醒大家适度编程。

继续运行 🥋 回忆上次内容

  • 上次 保存运行一条龙
  • :w|!python3 %


  • 我想 再多输出 几行
  • 增加一下 代码量
  • 可以吗?🤔


添加图片注释,不超过 140 字(可选)

代码量

  • 在正常模式(Normal Mode)下
  • 并非 插入模式 或 底行命令模式 下
  • 先yy复制当前行


  • p一下
  • 就paste 出一行


  • 再p一下
  • 又多 paste 出一行


添加图片注释,不超过 140 字(可选)

  • 照这个方式
  • 一直按着p 连发下去
  • paste 出百八十行
  • 不成问题


  • 可以paste 出一万行吗?

万行代码

  • 其实行代码
  • 有个 快速方法
  • 可以按下9999


  • 如图所示
  • 在红框处 显示当前命令为 9999


添加图片注释,不超过 140 字(可选)

  • 此时 再按下p
  • 代表paste 9999次
  • 什么 效果 呢??


  • 真的可以 一万行 吗?

代码一万行

  • 方向键h j k l可以 移动光标位置

添加图片注释,不超过 140 字(可选)

  • 这样 一行行移动
  • 还是 有点慢啊 ⌛️


添加图片注释,不超过 140 字(可选)

  • 想要加速

快速翻页

  • ctrl + f
  • 向前翻页
  • f 意味着forward


  • ctrl + b
  • 向后翻页
  • b 意味着backward


添加图片注释,不超过 140 字(可选)

  • 可以观察到红框中的
  • 行号
  • 高度百分比


  • 还是 很慢 ⌛️

一步到位

  • 大写G
  • 跳转到 最后1行


添加图片注释,不超过 140 字(可选)

  • 可以 跳转 回到第一行 吗? 🤔

反复横跳

  • gg
  • 跳转回到 第1行
  • 重新开始


  • 大写G
  • 跳转到 最后1行


  • 反复横跳

<h1 style="font-size:200px">😜</h1>

  • 真是一万行啊~~!
  • 赶紧截个图 留下证据
  • 哈哈哈!!!


  • 真的写了 一万行代码 啦!!!!

历史

  • 代码量 早期是
  • 程序员的kpi


  • 软件公司 最早 使用代码量
  • 计算 程序员的工作量


  • 这导致
  • 工作量 上去了
  • 但 通篇 全是 废代码
  • 是 💩山 的来源


添加图片注释,不超过 140 字(可选)

  • 所以现在 除了 工作量
  • 还要求 缺陷率
  • 衡量 工作量


  • 这万行代码 运行吗?

运行

  • 保存并运行

添加图片注释,不超过 140 字(可选)

  • 回车之后

添加图片注释,不超过 140 字(可选)

  • 真的输出了 好多行
  • 往上翻 都翻不到头
  • 这证据 一定也好好留住


  • 还能回到 最初2行
  • 那个 朴实的年代 吗?


撤销

  • 按一下 u
  • 撤销一步
  • u 代表undo
  • 代表着撤销


  • 反复 按u
  • 多次 撤销


添加图片注释,不超过 140 字(可选)

  • 粘贴出来的 9999行
  • 被撤销了
  • 没了


  • 回到了
  • 最初的状态


  • 可以 反过来
  • 取消撤销 吗?


重做

  • 多 撤销了 的话
  • ctrl+r可以重做


  • r代表
  • redo 重做
  • 取消 撤销操作


添加图片注释,不超过 140 字(可选)

  • 这两个操作
  • undo 取消 和 redo 重做
  • 互为 逆操作
  • 可以 反复横跳


  • 如果 想要
  • 删除代码 呢?


删除代码

  • 首先观察 光标所在的位置
  • 状态行 显示 第几行 第几列


添加图片注释,不超过 140 字(可选)

  • dgg
  • 从当前行
  • 删除到第一行


  • dG
  • 从当前行
  • 删除到 最后一行


  • 想要一把 都删除呢?
  • 先undo 撤销删除


全篇清零

  • ggdG
  • gg
  • 跳转到第一行
  • 当前光标 第一行


  • dG
  • 从当前行(第一行)
  • 删除到 最后一行



添加图片注释,不超过 140 字(可选)

  • 可以 全部 清空

反向清零

  • Gddg
  • gg
  • 跳转到最后一行
  • 当前光标 最后一行


  • dG
  • 从当前行(第一行)
  • 删除到 最后一行



添加图片注释,不超过 140 字(可选)

  • 也可以 全部 清空

撤销删除

  • undo 撤销 到最初只有三行的状态
  • 99999999
  • 键入 8个9


添加图片注释,不超过 140 字(可选)

  • 把这行粘贴上亿次会如何呢?

添加图片注释,不超过 140 字(可选)

  • 整个程序崩溃了
  • 说明万事皆有度😳

尝试再次打开 vi oeasy.py

  • 会出现E325

添加图片注释,不超过 140 字(可选)

  • 可以进行编辑或者恢复

总结

  • 这次从 2行代码 进化到了 万行代码

命令

作用

yy

复制光标所在行代码 到剪贴板

p

粘贴 剪贴板中的内容

9999p

将剪贴板中的代码粘贴9999次

  • 保存运行一条龙
  • :w|!python3 %


  • 真的实现了万行代码梦
  • 是真·圆梦
  • 没撒谎的 那种


  • 甚至可以看到 截图证据
  • 曾经 发过状态的
  • 看看我做的这个...
  • 一万行代码啊😂



命令

作用

gg

第一行

G

最后一行

123G

第123行

  • 圆梦之后
  • 多少有点空虚😣


  • 可以看看
  • 别人的程序
  • 都是是怎么写的吗?🤔



相关文章
|
16天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80
|
23天前
|
人工智能 C语言 Python
[oeasy]python051_什么样的变量名能用_标识符_identifier
本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。
112 69
|
25天前
|
Python
[oeasy]python050_如何删除变量_del_delete_variable
本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
111 68
|
5天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
27 14
|
1天前
|
Python
探索Python虚拟环境:virtualenv、venv与pipenv比较
在Python开发中,有效的环境管理至关重要。virtualenv、venv和pipenv是常用的虚拟环境管理工具。virtualenv支持Python 2.7+和3.3+,可创建独立环境;venv为Python 3.3+内置库,简单轻量但功能有限;pipenv则结合了包管理和虚拟环境管理,生成Pipfile.lock确保依赖确定性和安全性,推荐作为首选工具。
|
5天前
|
机器学习/深度学习 Rust 算法
Python环境管理的新选择:UV和Pixi,高性能Python环境管理方案
近期Python生态系统在包管理领域发生了重要变化,Anaconda调整商业许可证政策,促使社区寻找更开放的解决方案。本文介绍两款新一代Python包管理工具:UV和Pixi。UV用Rust编写,提供高性能依赖解析和项目级环境管理;Pixi基于Conda生态系统,支持conda-forge和PyPI包管理。两者分别适用于高性能需求和深度学习项目,为开发者提供了更多选择。
24 2
|
14天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
29 9
|
22天前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
24 5
|
27天前
|
Shell Python
[oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
本文介绍了Python中`locals()`函数的使用方法及其在调试中的作用。通过回顾变量赋值、连等赋值、解包赋值等内容,文章详细解释了如何利用`locals()`函数查看当前作用域内的本地变量,并探讨了变量声明前后以及导入模块对本地变量的影响。最后,文章还涉及了一些与“local”相关的英语词汇,如`locate`、`allocate`等,帮助读者更好地理解“本地”概念在编程及日常生活中的应用。
34 9
|
30天前
|
Python 容器
[oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment _
本文介绍了Python中变量赋值的不同方式,包括使用字面量和另一个变量进行赋值。通过`id()`函数展示了变量在内存中的唯一地址,并探讨了变量、模块、函数及类类型的地址特性。文章还讲解了连等赋值和解包赋值的概念,以及如何查看已声明的变量。最后总结了所有对象(如变量、模块、函数、类)都有其类型且在内存中有唯一的引用地址,构成了Python系统的基石。
29 5