第86篇 Vim编辑器基础——终端下改代码的基本生存技能
面试翻车现场去年校招有个同学技术面表现不错代码能力扎实。最后我问了个问题你在服务器上需要快速改一行代码没有图形界面你怎么办他说用nano。我说如果服务器没装nano呢他说那就……装一个我说服务器上已经有vim了你用不用他说不太会。其实不需要精通vim但基本的打开文件、编辑、保存退出这些操作你得会。SSH到机器人上改个配置文件、修个bugvim是最常见的选择。不会的话你连最基本的操作都做不了。Vim的三种模式Vim最让人困惑的就是模式。刚打开vim你处于普通模式Normal Mode。在这个模式下你敲的字母不是输入文字而是命令。按i进入插入模式Insert Mode这时候才能正常打字。按Esc回到普通模式。还有命令行模式在普通模式下按:进入可以输入保存、退出等命令。三种模式的切换普通模式 → 按 i → 插入模式 插入模式 → 按 Esc → 普通模式 普通模式 → 按 : → 命令行模式 命令行模式 → 按 Enter → 普通模式新手最常犯的错误在普通模式下打字发现屏幕上一堆乱码。因为你把命令当文字输入了。按Esc确保回到普通模式再按u撤销刚才的误操作。基本操作打开、编辑、保存vim filename.cpp # 打开文件不存在会创建进入后按i进入插入模式开始编辑编辑完按Esc回到普通模式输入:wq保存并退出write quit输入:q!不保存强制退出输入:w只保存不退出这几个命令记住你就能应付最基本的编辑需求了。光标移动在普通模式下移动光标不需要鼠标h ← 左移 j ↓ 下移 k ↑ 上移 l → 右移为什么要用hjkl而不是方向键因为Vim设计年代键盘没有方向键而且hjkl的位置让你的手不用离开主键盘区。当然方向键也能用只是效率低一些。更快的移动方式w 跳到下一个单词开头 b 跳到上一个单词开头 0 跳到行首 $ 跳到行尾 gg 跳到文件开头 G 跳到文件末尾 42G 跳到第42行面试的时候如果让你用vim改代码知道gg和G能省很多时间。删除和复制普通模式下的删除x 删除当前字符 dd 删除当前行 3dd 删除当前及下面两行共3行 dG 从当前行删除到文件末尾复制和粘贴yy 复制当前行 3yy 复制当前及下面两行 p 粘贴到光标下方 P 粘贴到光标上方还有个实用的操作d加移动命令。比如dw删除一个单词d$删除从光标到行尾dG删除到文件末尾。c命令类似但删除后自动进入插入模式cw改一个单词cc改整行。可视模式除了普通模式和插入模式还有一个可视模式Visual Mode用来选择文本。按v进入字符可视模式移动光标选择文字。按V进入行模式整行选择。按Ctrlv进入块模式可以选一个矩形区域。块模式特别有用。比如你想在10行代码前面都加个//注释把光标移到第一行按Ctrlv向下移动10行再按I大写i输入// 按Esc。所有选中行前面都会加上注释。选完之后按d删除按y复制按c修改——和普通模式一样。查找和替换在普通模式下按/然后输入关键词向后搜索/robot # 搜索robot n # 跳到下一个匹配 N # 跳到上一个匹配按?向前搜索。替换命令在命令行模式下:%s/old/new/g # 全文替换old为new :%s/old/new/gc # 全文替换每个都确认 :10,20s/old/new/g # 只替换第10到20行这个在改代码的时候特别有用。比如你要把项目里所有的RobotNode改成RobotNodeV2打开文件后一条替换命令搞定。和机器人开发的关系SSH到机器人上调试经常需要快速改配置文件。比如改ROS2的launch文件里的参数、改udev规则、改网络配置。这些操作用vim最快——不需要把文件下载到本地、改完再传回去。另一个场景是看日志。用vim打开一个大日志文件按G跳到末尾看最新的输出按/ERROR搜索错误信息。比cat整个文件高效得多。还有crash排查。机器人程序core dump了你用gdb加载core文件需要查看崩溃位置的源码。这时候vim 行号 文件名可以直接跳到那一行vim 142 main.cpp # 打开文件并跳到第142行Vim的基础配置Vim默认配置很简陋。创建一个~/.vimrc文件set number 显示行号 set relativenumber 相对行号 set cursorline 高亮当前行 set syntax on 语法高亮 set tabstop 4 Tab宽度4空格 set shiftwidth 4 缩进宽度4 set expandtab Tab转空格 set hlsearch 搜索高亮 set incsearch 实时搜索 set encodingutf-8 UTF-8编码 set fileformatunix Unix换行符这个配置能解决大部分基本需求。把fileformatunix加上很重要——Windows换行符\r\n在Linux上会导致脚本执行失败这个坑在面试中也有人踩过。面试常见考点vim和nano有什么区别——vim功能强大但学习曲线陡nano简单直观但功能有限。服务器运维和开发一般用vim偶尔改个简单文件用nano也行。vim怎么撤销和重做——普通模式下u撤销Ctrlr重做。这个和大多数软件的Ctrlz不一样面试有人答错过。vim怎么处理大文件——vim打开大文件会慢因为它要加载整个文件。可以用vim -u NONE跳过配置加速或者用less只看不动。如果非要编辑split或vsplit分屏操作可以避免反复滚动。如何在vim中同时编辑多个文件——用:split水平分屏:vsplit垂直分屏Ctrlw加方向键在窗口间切换。这个在下一篇会详细讲。Vim vs nano vs emacs怎么选很多新手纠结到底学哪个编辑器。简单说nano适合偶尔改一行配置上手零门槛但功能有限。vim适合日常开发学习曲线陡但一旦掌握效率很高。emacs功能最强大但学习成本也最高而且不是所有服务器都装了。在机器人开发领域vim是最实用的选择。原因很简单几乎所有Linux发行版都预装了vimSSH到任何机器上都能用。而且vim的模态编辑理念影响了很多工具——VS Code的Vim插件、JetBrains的Vim emulation都是基于同一套键位。一个实战建议把vimtutor跑完之后强迫自己用vim完成接下来一周的所有文件编辑。包括改配置文件、写代码、看日志。一开始会很慢但一周后你会发现速度已经超过了鼠标操作。坚持两周基本操作就会形成肌肉记忆。Vim在实际开发中的应用很多工程师觉得Vim学习曲线陡峭但在服务器环境下编辑配置文件时Vim几乎是唯一选择。一个实用的学习路径是先掌握基本的i/o/ESC/:wq/:q!再学搜索替换:%s/old/new/g然后学多文件编辑:sp/:vsp。不需要成为Vim大师能改个配置文件就够了。面试时说日常用VS Code但服务器上会用Vim这就够了。给你的建议不需要精通vim但基本的操作必须熟练。我的建议是花一个下午跟着vimtutor练一遍。这是vim自带的教程在终端输入vimtutor就能开始大概30分钟就能过完。日常开发中遇到小修改就用vim。不要每次都打开VS Code——SSH到机器人上改个参数vim三十秒搞定VS Code要等半天加载。面试的时候有些公司会让你在终端里写代码特别是一些做嵌入式或机器人的公司。会vim至少不会让你卡在这个环节。你不需要用它写整个项目但能快速改几行代码、查看文件这就够了。很多人学vim学不下去是因为想一次掌握所有命令。别这样。先记住i/Esc/:wq这三个能打开能改能保存就行。剩下的用到的时候再查慢慢就熟了。上一篇第85篇 Linux网络配置——IP/DNS/防火墙和机器人联网调试下一篇预告第87篇 Vim进阶——多文件编辑、宏录制和效率提升技巧

相关新闻

《异步爬虫进阶:使用aiohttp提升爬取效率10倍》

《异步爬虫进阶:使用aiohttp提升爬取效率10倍》

如果你写过爬虫,一定经历过这样的场景:明明只需要抓取1000个网页,程序却跑了整整半个小时;CPU占用率不到10%,网络带宽也远未跑满,可进度条就是慢吞吞地往前挪。问题出在哪里?答案很简单——你的…

2026/8/19 21:57:23 阅读更多 →
基于Arduino与TCS34725的颜色识别器:从传感器原理到实践应用

基于Arduino与TCS34725的颜色识别器:从传感器原理到实践应用

1. 项目概述:从“看见”到“识别”的跨越 几年前,我在一个自动化分拣的现场看到过一个场景:传送带上的零件五颜六色,而机械臂却能精准地抓取特定颜色的零件放入对应的料框。当时我就在想,这种“颜色识别”的能力&#…

2026/8/19 21:56:22 阅读更多 →
springboot小区物业管理小程序---附源码45555

springboot小区物业管理小程序---附源码45555

源码获取 私信联系我即可~ 大家点赞、收藏、关注、评论啦 精彩专栏推荐订阅:在下方专栏👇🏻 👇🏻 精彩专栏 推荐订阅👇🏻 Java精品项目案例【2000套】 Java精品项目案例【2000套】https://blog…

2026/8/19 21:56:22 阅读更多 →

最新新闻

网页视频总是下载不下来?免费的浏览器资源嗅探工具猫抓,让网络收藏一步到位

网页视频总是下载不下来?免费的浏览器资源嗅探工具猫抓,让网络收藏一步到位

网页视频总是下载不下来?免费的浏览器资源嗅探工具猫抓,让网络收藏一步到位 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch …

2026/8/21 1:48:31 阅读更多 →
LangGraph实战:构建多智能体协作系统的图计算工作流

LangGraph实战:构建多智能体协作系统的图计算工作流

在构建复杂AI应用时,你是否遇到过这样的困境:单个大模型能力有限,难以处理多步骤、多角色的任务流;用LangChain编排的链条一旦复杂就难以调试和维护;想要实现智能体间的状态共享与循环决策,却不知从何下手&…

2026/8/21 1:48:31 阅读更多 →
VS Code 免费 AI 编程助手 Cline 配置指南:本地化部署与问题排查

VS Code 免费 AI 编程助手 Cline 配置指南:本地化部署与问题排查

在 VS Code 中集成 AI 编程助手已经成为提升开发效率的标配,但无论是 GitHub Copilot 还是 Cursor,其付费门槛和网络限制常常让开发者望而却步。如果你正在寻找一个免费、开源、功能强大且能灵活对接多种大语言模型的本地化方案,那么 Cline 是…

2026/8/21 1:48:31 阅读更多 →
流媒体下载完整实战:6 步从零玩转 N_m3u8DL-RE,把“只能在线看“的视频存进硬盘

流媒体下载完整实战:6 步从零玩转 N_m3u8DL-RE,把“只能在线看“的视频存进硬盘

流媒体下载完整实战:6 步从零玩转 N_m3u8DL-RE,把"只能在线看"的视频存进硬盘 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://git…

2026/8/21 1:48:31 阅读更多 →
Spring Boot+Vue服装库存管理系统:毕业设计实战与部署指南

Spring Boot+Vue服装库存管理系统:毕业设计实战与部署指南

这次我们来看一个面向计算机专业毕业设计的实用项目:服装库存管理系统。对于正在寻找毕设选题、需要完整可运行源码、并希望快速理解 Spring Boot 和 Vue 技术栈如何落地的同学来说,这是一个非常直接的选择。项目本身不涉及复杂的 AI 模型或显卡算力&…

2026/8/21 1:48:31 阅读更多 →
PCB设计DFM实战指南:避免生产返工,提升一次成功率

PCB设计DFM实战指南:避免生产返工,提升一次成功率

你是不是也遇到过这种情况:PCB设计文件发给工厂,等了一周收到回复——“设计不符合生产要求,请修改”。然后就是一连串的沟通:线宽太细、孔距太近、阻焊开窗有问题……来回折腾,项目进度严重拖延。这背后的问题&#x…

2026/8/21 1:47:31 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/19 11:55:18 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/20 6:11:08 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →