【MIT Missing Semester L3】熟练掌握Vim操作

IEEE Access投稿全流程:从LaTeX模板到Overleaf实战(附避坑指南) 本文详细解析了向IEEE Access期刊投稿的完整流程,重点介绍了如何使用LaTeX模板在Overleaf平台上高效撰写和格式化论文。内容涵盖模板选择、作者信息填写、公式图表排版、参考文献管理(BibTeX)以及投稿前的最终检查清单,旨在帮助研究者,尤其是LaTeX新手,规避常见技术问题,顺利完成符合期刊严格要求的稿件提交。 阅读详情


lecture
当程序员显然很大一部分时间都在写代码,熟练掌握editor工具对提升效率帮助挺大的
Tips太长不看版:可以直接 vimtutor去跟着教程实践一遍

如何掌握新的editor

  • 看教程
  • 即使最开始有点慢也要坚持用这个editor进行各种编辑
  • 查找改进用法,如果有可能有更好用的方式,那很可能真的有
    一般1-2小时就可以学会基本用法,20小时后就和之前的editor一样熟练了,之后就可以显示出新editor的强大功能来节省时间了
    会有新的有意思的编辑器出现,学的越多越快!
    可以看Stack Overflow来看当前比价流行的editor

Vim特点

由于编程中很多时间是在读、来回移动和少量的编辑,而不是大段大段连续的写,因而vim分为不同的模式,插入文本和操作文本是不一样的模式。
vim不用鼠标,因为鼠标太慢了,也不用上下左右箭头,因为需要比较大的移动,因此熟练使用vim的话就会非常快

vim model

  • normal 浏览文件,做一些编辑处理
  • insert 插入文本
  • replace 替换文本
  • visual(plain line block) 选择文本段
  • command line 运行命令
    同样的key在不同的模式下有不同的作用,一般在左下角显示model,通常情况下大部分是在Normal(initial/default)和Insert下
    所有模式按ESC可以回到Normal模式下

在这里插入图片描述
因为会频繁的涌到ESC,所以可以把大写锁定key换成esc macOS solution 、windows solution

基本用法

插入文本:

按i进入insert mode

buffers,tabs,windows

vim可以打开很多文件,称为buffers,一个vim session有多个tabs,每个tabs有多个windows,每个windows展示一个Buffer。不像网页浏览器那样tbuffer和window之间是1对1的关系,vim中windows只负责展示数据。
一个Buffer可以在多个window中打开,一个 Window 在同一时间内只能展示一个 Buffer,一个 Buffer 可以同时被多个 Window 展示。这就意味着可以同时打开一个文件的不同部分。一个 Tab 上可以有多个 Window,不同 Tab 之间的 Window 互不影响。

官方解释这三者是:

A buffer is the in-memory text of a file.
A window is a viewport on a buffer.
A tab page is a collection of windows.

可以看下blog
打开多个window的时候,:q只会退出顶部的那个window, :qa全关

command-line

在normal node下按冒号可以进入命令模式。

  • :q quit (close window) 关闭top的tab(:qa会关掉各个打开的windows)
  • :w save (“write”) 保存
  • :wq save and quit 保存并关闭
  • :e {name of file} open file for editing 打开文件
  • :ls show open buffers 展示打开的文件
  • :sp拆成两个视图
  • :help {topic} 后面跟特定的key或者命令来查看具体的帮助
    • :help :w opens help for the :w command
    • :help w opens help for the w movement
    • 按F1也可以直接打开帮助界面,:q离开

移动选择等操作

Vim接口本身就可以看作是编程语言,按键本身就是命令,还可以组合。当这些变成肌肉记忆的时候就会格外的快

移动

在normal mode里

  • Basic movement: hjkl (left, down, up, right)左下上右移动(4j下移4次)
  • Words: w (next word移动到下一个单词), b (beginning of word移动到单词开头), e (end of word移动到单词末尾)
  • Lines按行移动: 0 (beginning of line), ^ (first non-blank character), $ (end of line)
  • Screen按屏移动: H (top of screen), M (middle of screen), L (bottom of screen)
  • Scroll滚动: Ctrl-u (up), Ctrl-d (down)
  • File: gg (beginning of file), G (end of file)
  • Ctrl+g会显示当前在第几行; 数字+G会回到第n行
  • Line numbers: :{number}<CR> or {number}G 比如3G (line {number})
  • Misc: % (corresponding item) 按%可以让光标跳到对应的当前括号对应的括号上{([
  • Find: f{character}, t{character}, F{character}, T{character}
    find/to forward/backward {character} on the current line
    , / ; for navigating matches 比如fo向下找到第一个字母o
  • Search: /{regex}, n /N for navigating matches /
    • 比如/range回车,会到range第一个字母处,按n到下一个匹配位置 ,N反向
    • ?代替/的话可以反向查找
  • .可以重复之前的编辑命令,比如第一个位置添加“end=’’”后,jj.会向下两行之后也加上“end="”。这样就不用重复打字了
  • Ctrl+o回到之前的位置,Ctrl+i向前移动
    在这里插入图片描述

选择

在normal mode下:
Visual: v
Visual Line: V
Visual Block: Ctrl-v
进入选择模式后可以移动进行选择
选择完了可以y进行复制,又回到normal mode下

edit

所有需要用到鼠标的地方都可以用组合key来进行

  • i插入,a光标后面append,A行末尾追加插入
  • o O在这行的下面或者上面插入
  • d{modtion}进行各种删除 dw删除单词直到下一个单词开始,de删到这个单词结束, d$删到这行结束,d0删到这行开头,dd删除整行,d命令总是需要和移动动作结合在一起用, dd完了在p可以直接复制刚刚删除的内容
  • c{motion}修改,相当于d{motion}+i,比如ce之后就可以直接输入修改后的单词,基本用法和d一致
  • x删除字符
  • s替换,相当于xi
  • r 替换,到想要替换的字母前按r然后按想要替换的那个目标字母,可以替换掉当前光标后的字母;大写R可以替换多个字符,按ECS退出替换
  • 在visual mode下,移动来选择,d删除,c修改
  • u undo , Ctrl+r redo,U撤回整行的操作
  • y copy 也是需要结合movement,比如yw复制当前行,yy复制当前行
  • p paste or 复制刚刚删除的内容
    还有非常多

计数

给定操作执行多次,数字+动作,比如

  • 3w move 3 words forward
  • 5j move 5 lines down
  • 7dw delete 7 words,7dw也可以,2dd可以连续删除两行

modifiers

可以用来改变操作的意思
比如i意味着内部,a意味着周围

  • ci( change the contents inside the current pair of parentheses改变小括号内的内容
  • ci[ change the contents inside the current pair of square brackets改变中括号内的内容
  • da' delete a single-quoted string, including the surrounding single quotes 删除单引号之间的内容,包括单引号
  • 这些都是可以组合改变的,像编程一样

配置vim

通过编辑~/.vimrc来配置
可以参考课程给出的配置,粘贴到文件里:link
可以多看看别人在github上分享出来的配置,明白到底配置了什么东西

创建文件夹~/.vim/pack/vendor/start/然后通过git clone来下载plugins可以拓展vim
推荐的几个vim插件:

甚至Web也可以配置成vim的一些用法,比如chrome的Vimium,也可以在jupyter notebook中配置

高级用法

搜索和替换

  • :s 替换 documentation

  • %s/foo/bar/g -->:%s/old/new/g

    • replace foo with bar globally in file
    • :%s/foo/bar/gc每次替换前都问一下
    • :s/foo/bar/g只换当前行,不加/g只换出现的第一个
  • 可以加行号:#,#s/old/new/g

  • %s/\[.*\](\(.*\))/\1/g

    • replace named Markdown links with plain URLs

多窗口

  • :sp / :vsp to split windows
  • 一个Buffer可以有多个views
  • Ctrl w Ctrl w在window之间跳

宏

  • q{character} to start recording a macro in register {character}
  • q to stop recording
  • @{character} replays the macro
  • Macro execution stops on error
  • {number}@{character} executes a macro {number} times
  • Macros can be recursive
  • Vim commands / macros
    • Gdd, ggdd delete first and last lines
    • Macro to format a single element (register e)
      • Go to line with <name>
      • qe^r"f>s": "<ESC>f<C"<ESC>q
    • Macro to format a person
      • Go to line with
      • qpS{j@eA,j@ejS},q
    • Macro to format a person and go to the next person
      • Go to line with
      • qq@pjq
    • Execute macro until end of file
      • 999@q
      • Manually remove last , and add [ and ] delimiters

其他

  • :!后可以加其他命令,比如:!ls回车,就像在shell中一样
  • :w xxx可以把当前文件另存为xxx文件
  • 部分保存,按v进入选择模式进行选择,然后:会看到在这里插入图片描述,接着在后面输入w xxx就可以部分保存到文件xxx中
  • 插入文件中的内容: :r FILENAME,还可以插入命令执行的结果,比如:r !ls
  • 配置搜索选项,一次搜索忽略大小写可以/something\c回车,设置一直忽略大小写可以:set ic,关闭则set noic,想要高亮历史搜索结果可以set hls is,关闭可以:nohlsearch,一边搜索一边高亮可以:set is。一般来说就是:set设置,:set no xxx关掉
  • 命令补全,Ctrl D+TAB

参考资料

  • vimtutor 装了vim之后可以直接在shell运行 vimtutor 查看官方教程
  • Vim Adventures is a game to learn Vim
  • Vim Tips Wiki
  • Vim Advent Calendar has various Vim tips
  • Vim Golf is code golf, but where the programming language is Vim’s UI
  • Vi/Vim Stack Exchange
  • Vim Screencasts
  • Practical Vim (book)

练习

1.完成vimtutor. Note: it looks best in a 80x24 (80 columns by 24 lines) terminal window. √
2.Download our basic vimrc and save it to ~/.vimrc. Read through the well-commented file (using Vim!), and observe how Vim looks and behaves slightly differently with the new config. √
3.Install and configure a plugin: ctrlp.vim.

【读书笔记】Verilog的亚稳态现象和跨时钟域处理方法 文章目录 一、亚稳态 (1)跨时钟域的亚稳态现象 (2)亚稳态的多径传输 二、跨时钟域处理 2.1 单bit信号跨时钟域处理 (1)单径两级触发器同步器 (2)相位控制 (3)多径与多级寄存器同步链 (4)组合逻辑信号的同步化 (5)快时钟域信号的同步化 2.2 多bit信号的跨时钟域处理 (1)异步FIFO (2)双口RAM......... 阅读详情

相关推荐

Fluent动网格+滑移网格+重叠网格对比介绍(以震荡水翼flapping foil为例)

初学fluent笔记,本文主要包含: Flapping foil在fluent内的几种实现方式 在哪设置动网格、滑移、重叠网格 flapping的UDF 示例 写在前面:Fluent在预览网格运动/提交计算之前,注意保存一个cas版本。 -------------------------Flapping foil 网格几种组合实现方式:---------------------- 直接重叠网格,overset, 需要建立两个几何part,part要重合。水翼局部区域(component),背景网格(ba

深海民工CFDer 2万+

Missing Semester 中文讲义及习题答案

MIT Missing Semester 中文讲义

weixin_45055622的博客 908

Halcon 3D点云处理实战:从PLY文件读取到曲面匹配的完整流程(附避坑指南)

本文详细介绍了Halcon在3D点云处理中的完整流程,从PLY文件读取到曲面匹配,特别强调了3D算子的应用技巧和避坑指南。通过实战案例和参数优化建议,帮助开发者高效处理工业视觉检测中的复杂点云数据,提升匹配精度和性能。

weixin_42535720的博客 278

vim编辑模式_Missing Semester (三):Editors(Vim)

这是MIT CSAIL推出的短课Missing Semester的第三课。关于课程整体的介绍参见第一篇。之前的课程:Missing Semester (一):The ShellMissing Semester (二):Shell Tools and Scripting课程原地址:The Missing Semester of Your CS Education​missing.csail.mit....

weixin_39926749的博客 836

华为ITR流程实战指南:从设计到落地的全流程解析(附完整方案下载)

本文深度解析华为ITR流程从设计到落地的全流程实战指南。ITR不仅是高效处理客户问题的“救火”系统,更是驱动产品改进、预防问题的企业“免疫系统”。文章详细拆解了流程设计的四步走策略、三层技术支持体系的组织保障、以闭环改进为核心的考核激励,并探讨了如何借鉴其精髓,优化自身问题管理,实现从被动响应到主动服务的跨越。

y2z3a4b5c的博客 378

gsplat在windows本地部署

3DGS的cuda提效和优化内存的版本gsplat,使得在有一定GPU计算能力的电脑上也能够尝尝3DGS的效果。我在2025年的开年之初尝试配置过gsplat,由于过程中遇到很多问题,最终还是有一些windows上字符编码的问题,没有跑通,最近看gsplat的github更新了3DGUT,优化了反射和二次折射,以及适用于非线性相机模型,如鱼眼相机等。在data目录下下载好了360_v2的数据,进入之后images文件夹是原始分辨率的图像,images_2是下采样系数为2的数据,以此类推。

yuleaf_csdn的博客 2370

java vimrc_vimrc: 终极 vim 配置, 克隆自: https://github.com/amix/vimrc

这个仓库克自 https://github.com/amix/vimrc放在 oschina 上来加速部署, 也方便再添加些功能.如何使用:git clone https://git.oschina.net/shrekuu/vimrc.git ~/.vim_runtimesh ~/.vim_runtime/install_awesome_vimrc.sh更多:这个版本直接加入了 ~/.vim_ru...

weixin_32974061的博客 906

L2tp环境搭建笔记- Openwrt平台

本文使用3台openwrt设备, 分别搭建L2TP服务和2个客户端, 进行端到端验证和局域网组网,并分析搭建过程中涉及的默认路由( defaultroute) 配置问题。

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 3389

6.NULL The missing Semester of your CS Education学习笔记

6.NULL The missing Semester of your CS Education shell ls(英文全拼:list files): 列出目录及文件名 cd(英文全拼:change directory):切换目录 pwd(英文全拼:print work directory):显示目前的目录 mkdir(英文全拼:make directory):创建一个新的目录 rmdir(英文全拼:remove directory):删除一个空的目录 cp(英文全拼:copy file): 复制文件或目

qq_20748731的博客 436

十九、帧间预测编码_5、skip模式和direct模式

帧间预测的几种特殊模式: P_Skip: 即COPY模式,在该模式下无运动矢量残差,无像素预测残差。重建时以MVP作为实际运动矢量,以预测像素块作为重建; B_Skip:同P_Skip类似的是该模式下同样无运动矢量残差,无像素预测残差。重建时,以Direct模式获取双向MV,以预测像素块作为重建; B_Direct:B_Direct模式分为B_Direct_8x8和B_Direct_16x16,分别表示整个宏块和一个子块按照B_Direct模式编码。该模式下,无运动矢量残差,有像素预测残差。重建时,以D.

叮咚的博客 2385

【GlobalMapper精品教程】027:路径剖面和和视线工具的使用

路径剖面视线工具允许您使用加载的高程数据集沿用户指定的路径获取垂直剖面。要定义生成3D路径剖面所遵循的路径,只需单击鼠标左键选择路径的点,然后石键单击以结束路径。出现一个带有剖面的对话框,允许您设置视线分析或优化端点。

智慧空间实验室 2048

[Shell Tools] - Editor (Vim)

[Shell Tools] - Editor (Vim)

Hairful的博客 314

芒果YOLOv8改进160:姿态估计Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

芒果YOLOv8改进159:OBB旋转检测头Head篇:即插即用|轻量化非对称多级压缩LOADH旋转检测头,原创改进适配YOLOv8高效检测头,检测头新颖改进,全网首发独一份

包括YOLOv5、YOLOv7、YOLOv8等模型改进 812

MIT Missing Semester —— CH02 Vim

以下为本人参加学习 MIT-Missing-Semester 课程的笔记记录,若有疏漏错误,望友好指正!

qq_73921758的博客 1001

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[note]MIT-the missing semester —— Vim学习笔记

始于1976年的Vi编辑器持续使用,使用编辑器超过20h,可以达到之前一样的开发效率,并且在以后的coding中愈发感受到它的魅力Vim是基于命令行当前最流行的编辑器有多个操作模式。

weixin_43720735的博客 2018

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Shell工具[MIT-Missing-Semester]

计算机教育中缺失的一课, 视频讲座. 第一课: Shell工具, 个人整理.

xc_biubiubiu的博客 867

<Shell第一集>MIT的《The Missing Semester Of Your CS Education》

<Shell第一集>MIT的《The Missing Semester Of Your CS Education》

ideal-cs-pku 1645

【MIT】Missing Semester 第二节课笔记

【MIT】Missing Semester 第二节课笔记(一)

yangmaoda的博客 990

Vim - MIT Missing Semester

【代码】Vim - MIT Missing Semester。

媛媛 297

MIT - The Missing Semester of Your CS Education 第3节Editors (Vim)课程笔记和习题解答

Vim 由一个位于~/.vimrc的文本配置文件(包含 Vim 脚本命令)。我们提供一个文档详细的基本设置,你可以用它当作你的初始设置。我们推荐使用这个设置因为它修复了一些 Vim 默认设置奇怪行为。在这儿下载我们的设置,然后将它保存成~/.vimrc花时间探索自定义选项是值得的。你可以参考其他人的在 GitHub 上共享的设置文件,比如,你的授课人的 Vim 设置 (AnishJon(usesneovim),Jose。

2201_75758106的博客 1027

MIT-Missing-Semester

MIT-Missing-Semester

m0_60472405的博客 876

MIT-Missing-Semester3: Editors (Vim)

Editors (Vim)

操作系统初学者的博客 279

MIT_Missing_Semester_Lecture_3_Notes

Vim Vim哲学 程序员应该花更多时间在阅读/编辑上,而不是写作代码上 Vim 是一个多模态 (modal) 编辑器:它对于插入文字和操纵文字有不同的模式 Vim 是可编程的,Vim 的接口本身也是一个程序语言:键入操作 (keystrokes) 是命令,这些命令也是可组合的 Vim 避免了使用鼠标和方向键 (arrow keys) 编辑模式 正常模式 (Normal):在文件中四处移动光标进行修改 插入模式 (Insert):插入文本 替换模式 (Replace):替换文本 可视化 (Visual) 模

charles2567的博客 77

如何快速掌握开发工具:成为10倍效率程序员的终极指南

你是否曾花费数小时配置开发环境?是否因为不熟悉命令行而效率低下?《The Missing Semester of Your CS Education》正是为解决这些问题而生——这门MIT的经典课程将填补计算机科学教育中的关键空白,教你掌握那些学校很少教授但日常开发中必不可少的工具技能。通过系统学习命令行、编辑器、版本控制和现代开发环境,你能显著提升编程效率,从普通开发者蜕变为高效的程序员。 ##

gitblog_00974的博客 1023

Phoenix 追踪基础:深入理解 OpenInference Traces、Spans 与属性体系

OpenInference 是一套基于 OpenTelemetry 的 AI/LLM 应用语义约定,Phoenix 正是借助这套约定来捕获、存储和分析 AI 应用的追踪数据。本文以 Phoenix 仓库中的追踪基础文档为核心,系统讲解 trace 与 span 的树形模型、上下文传播机制、span 生命周期、9 种 span kind 以及扁平化属性命名约定,并结合 Phoenix 服务端与 SD

gitblog_00378的博客 688

vim/neovim VS emacs主观感受

程序员圈子里非常经典的一句话:中文通常翻译为:Vim 是编辑器之神,Emacs 是神的编辑器。也有一种更贴切的表达:Vim 是神级编辑器,Emacs 是神仙用的编辑器。

lxyoucan的博客 231

DSH (DeepSeek Harness) Windows 升级安装指南20261107

注意:如果在普通窗口执行 nvm 提示找不到命令,或执行 nvm use 提示 Access is denied,请务必关闭当前窗口,重新打开一个管理员CMD 执行上述完整路径命令。找到 .credentials.yaml,将其重命名为 .credentials.yaml.bak(备份并使其失效)。Node.js Storage Location:可改到非系统盘(如 D:\dev\nvm,避免路径含空格或中文)。打开文件资源管理器,进入 C:\Users<你的用户名>.dsh\。

fengye207161的博客 194
上一篇: 【MIT Missing Semester 2】Shell Tools
下一篇: 【Missing Semester L4】linux下数据格式转换
BeforeEasy
博客等级 码龄10年 92粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值