Missing Semester 计算机教育中缺失的一课 Lecture 03 Development Environment and Tools

前言

感觉这节课实用性太强了,都没啥好写的()

一、Vim

vim 打开 vim 编辑器后,此时处于 vim 的普通模式。在普通模式下,此时支持用若干不同的键位进行移动、选择和编辑文本。这里最方便的就是省去了手在键盘和鼠标之间切换的时间,只要能熟练用好键位。

首先,在普通模式下,j 是向下移动光标,k 是向上,l 是向右,h 是向左。除此之外,w 是每次向后移动到下一个单词的开头,b 是往前移动到上一个单词的开头,e 是往后移动到下一个单词的结尾。0 是跳到当前行的开头,$ 是跳到当前行的结尾。H 是跳到当前屏幕的顶部,M 是跳到当前屏幕的中间,L 是跳到屏幕的底部。Ctrl u 是向上滚动,Ctrl d 是向下滚动。gg 是跳到文件开头,G 是跳到文件结尾。% 是跳到当前行的下一个括号,之后再按就是在这个括号间来回跳。f 可以去到当前行下一个给定字符的位置,t 可以去到当前行下一个给定字符的前面,大写的两字符代表上一个。u 是撤销操作,Ctrl r 是恢复操作。在此基础上,数字加键位是执行几次操作。

之后,在按下 : 后,会进入 vim 的命令行模式,此时按下对应行号可以去到对应行。q 是直接退出,wq 是保存并退出,q! 是强制退出。在按下 / 后,也可以进入命令行模式。此时可以跳到给定字符串的下一个位置。

在按下 v 后,会进入 vim 的可视模式,此时按移动键就可以选中一段文本。按 V 是可视行模式,此时可以一次选中一整行。Ctrl v 可以进入可视块模式,此时可以一次选中一块矩形区域。在选中后,y 是复制选中内容,p 是粘贴,普通模式下 yy 是复制一整行。

在按下 i 后,会进入 vim 的插入模式,此时就可以正常输入文本了。这个好说,重点是在普通模式下的编辑命令。在普通模式下,o 是在当前行下方插入新行,然后进入插入模式,O 是向上插入。同样在普通模式下,d 后面跟移动键是删除指定文本,比如 d w 是删除这个单词,d j 是删除当前行和下一行。除此之外,c 是修改操作,之后跟 i 表示内部,再跟 ( 就可以直接删除当前括号内的所有内容,然后进入插入模式。x 是删除当前字符,s 是删除并进入插入模式,S 是删除整行并进入插入模式。a 是在当前字符后进入插入模式,A 是在当前行末后进入插入模式。

二、Code Intelligence

Code Intelligence 可以翻译为“代码智能”,普通的文本编辑器是没法做到分析代码的,而具备代码智能的编辑器可以识别变量、分析语法或者检查依赖。

Language Server 可以翻译为“语言服务器”,其是一个独立运行的程序,用于理解某种编程语言。其可以通过 Language Server Protocol,即 LSP、语言服务器协议和编辑器和语言服务器之间通信,可以解析代码、查找定义与引用、返回补全结果和导入头文件等。

三、AI-powered development

常规的补全功能只能补全变量名和可用的方法等已经存在的信息,而 Autocomplete 可以根据代码的上下文,通过 ai 预测你接下来想写的东西。在使用的时候,最好写出完全的函数名和注释,这样不仅方便人类阅读,也方便 ai 根据内容预测接下来需要实现的功能。

Autocomplete 只支持从当前光标后开始要写什么,Inline Chat 可以在选中部分内容后,通过行内对话告诉 ai 要对所选内容进行哪些修改。

Coding Agents 比 Inline Chat 更进一步,可以直接告诉 agent 需要做的任务,其可以自己读取文件、修改文件和运行代码。当然,虽然其功能更强大,但潜在的风险也更高,所以一般在使用 agent 之前需要先 git commit 一下,然后在 agent 生成后再用 git diff 查看发生变化的地方,再决定要不要保留。

总结

这些概念就没啥用了,主要还是在平常的使用。

END

posted @ 2026-07-21 21:21  WBluuue  阅读(24)  评论(0)    收藏  举报