Linux中vim基本用法介绍:快速删除1行、删除所有内容、分屏、字符替换、复制粘贴撤销
1. vim 高频编辑动作从删除一行到全文替换的完整操作清单刚接触 Linux 的开发者第一次打开 vim 大概率会经历同一个瞬间敲了几个字想删掉按了退格键没反应按了 Delete 也没反应最后只能 CtrlZ 逃出来。这不是你手笨而是 vim 的编辑逻辑和普通编辑器不一样——它默认处在命令模式键盘上的字母是「指令」而不是「文字」。vim 是什么它是 Linux 上几乎每台机器都预装的文本编辑器服务器上没有图形界面时改配置、写脚本、看日志基本都靠它。它能做什么删除单行、清空全文、分屏对照、批量替换字符、复制粘贴、撤销重做这些高频动作全部可以用键盘完成手不用离开主键区。适合谁适合刚上手 Linux、需要频繁登录服务器改文件的开发者也适合想摆脱鼠标、把编辑动作变成肌肉记忆的人。这篇内容不讲 vim 的历史也不堆砌全部命令只聚焦你每天真正会用到的几类动作删除一行、删除所有内容、分屏、字符替换、复制粘贴与撤销。我会给出可以直接复制的.vimrc配置片段也会在终端里逐条验证按键序列的实际效果最后整理成一份可以贴在显示器边上的操作清单。你跟着敲一遍基本就能脱离「打开 vim 就慌」的阶段。需要说明的是vim 的操作高度依赖当前所处模式。命令模式下按键是指令插入模式下按键才是输入文字。很多人删除失败根本原因是人还在插入模式却按了dd结果屏幕上多了两个字母 d。所以下面每个动作我都会先说明「先按 Esc 回到命令模式」再给按键序列。另外vim 的配置分临时和永久两种。临时配置在命令模式输入:set nu这类命令关闭文件就失效永久配置要写进配置文件。系统级配置在/etc/vimrc只影响所有用户用户级配置在~/.vimrc只影响当前用户推荐后者改坏了也不影响别人。下面第三节会给出完整的.vimrc片段。2. TaoToken 前置给 vim 配一个能对话的模型入口你可能会问讲 vim 为什么要提模型入口因为实际开发里改配置文件、写 shell 脚本、排查报错经常需要一边编辑一边查。比如你在 vim 里改一个 Nginx 配置不确定某个指令的写法切出去开浏览器查很打断节奏。这时候如果终端里能直接调模型对话效率会高很多。TaoToken 是一个模型调用入口官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。它的作用是让你用统一的 Base URL 和 Key调用不同模型适合放在终端工具链里做辅助。注意它不是编辑器也不替代 vim只是在你需要查语法、解释报错、生成配置片段时提供一个入口。前置准备分三步。第一步拿到 API Key。打开 https://taotoken.net/api-keys 登录后创建一个 Key复制保存。这个 Key 只显示一次丢了就重新建。第二步确认你要用的模型 ID。不同模型能力不同写代码和解释配置建议选代码能力强的。第三步把 Base URL 和 Key 配到你用的工具里。如果你用的是 Claude Code 这类终端编码工具配置方式是在项目或用户目录下建配置文件填入 Base URL、Key、Model ID 三件套。如果你用的是 Cline 这类编辑器插件在设置里找 MCP 或模型配置同样填这三项。如果你只是想临时问一句直接用模型对话页面 https://taotoken.net/models 就行不用装任何东西。这里要提醒一点不要把 Key 硬编码进脚本然后提交到 Git。正确做法是写进环境变量比如在~/.bashrc里加export TAOTOKEN_API_KEY你的Key然后source ~/.bashrc。这样脚本里用$TAOTOKEN_API_KEY引用不会泄露。配置好之后你在 vim 里遇到不确定的语法可以切到另一个终端窗口问一句或者用支持终端调用的工具直接问。重点是把「查资料」这个动作的成本降下来让你更愿意留在终端里干活。下面第三节开始进入 vim 本身的配置和操作。3. 可复制配置.vimrc 片段与删除/分屏/替换按键序列这一节是核心所有内容都可以直接复制使用。先给.vimrc配置片段再逐条给按键序列。3.1 用户级 .vimrc 配置片段在终端执行vim ~/.vimrc如果文件不存在会新建。把下面内容粘进去保存退出。注意路径是~/.vimrc不是/etc/vimrc这样只影响你自己。 显示行号方便定位和跳转 set nu 高亮当前行光标位置一眼可见 set cursorline 开启鼠标支持滚动和点击更顺手 set mousea 开启语法高亮 syntax on 设置缩进为 4 空格 set tabstop4 set shiftwidth4 set expandtab 搜索时忽略大小写但有大写时区分 set ignorecase set smartcase 显示匹配的括号 set showmatch 开启增量搜索边输边定位 set incsearch 关闭兼容模式启用 vim 增强功能 set nocompatible保存后重新打开文件行号、高亮、鼠标都应该生效。如果没生效检查是不是写到了/etc/vimrc但当前用户没权限或者文件名写成了.vimrc.txt。3.2 删除单行与删除所有内容先按Esc确保在命令模式。删除光标所在的一行dd删除光标所在行及下面一行共两行2dd删除从光标位置到行末d$删除从光标所在行到文件最后一行dG删除整个文件的全部内容保留空文件:%d这里%表示所有行d是删除。执行后文件变空但文件本身还在。如果你想连文件一起删那是rm的事不是 vim 的事。3.3 分屏操作同一个文件上下分屏Ctrlw s同一个文件左右分屏Ctrlw v关闭光标所在的分屏Ctrlw c在分屏之间移动光标Ctrlw 方向键编辑另一个文件并分屏比如当前在编辑a.conf想同时打开b.conf:sp b.conf:sp是上下分屏打开:vsp b.conf是左右分屏打开。分屏后光标在哪个窗口操作就作用于哪个文件这点要记牢。3.4 字符替换替换全文的某个字符串比如把123换成fairy:%s/123/fairy/g只替换第 1 到第 3 行的hello为sue:1,3s/hello/sue/g替换当前行的第一个匹配:s/old/new/替换当前行所有匹配:s/old/new/g注意%s表示所有行g表示每行所有列。如果没有g只替换每行第一次出现的位置。这个区别在批量改配置时很关键改错了可能只改了一半。3.5 复制粘贴与撤销复制当前行yy复制当前行及下面两行共三行3yy粘贴p粘贴两次2p撤销上一步u恢复撤销也就是重做Ctrlr复制一个单词yw复制三个单词y3w剪切当前行剪切后进入插入模式需要按Esc再粘贴cc剪切三个单词c3w这里有个坑c系列命令剪切后会直接进插入模式很多人以为剪切完就能p结果粘贴出来的是刚输入的内容。正确做法是剪切后按Esc回到命令模式再按p。4. 验证请求在终端逐条确认删除、分屏、替换、撤销效果光看命令不够得实际敲一遍。下面用一个测试文件走完整流程。4.1 准备测试文件vim test.txt按i进入插入模式输入下面内容line1 hello 123 line2 hello 123 line3 hello 123 line4 world 456 line5 world 456按Esc回到命令模式输入:wq保存退出。然后重新打开vim test.txt4.2 验证删除单行光标停在第 1 行按dd。第 1 行消失原来的第 2 行变成第 1 行。按u撤销第 1 行恢复。再按Ctrlr第 1 行又消失。这说明删除和撤销都正常。4.3 验证删除所有内容按:%d整个文件变空。按u撤销内容全部恢复。注意如果此时你按:wq保存文件就真的空了。所以删除全文后要么撤销要么确认后再保存。4.4 验证分屏按Ctrlw v屏幕左右分成两个窗口显示同一个文件。在左边窗口按dd删一行右边窗口同步变化因为它们是同一个文件的两个视图。按Ctrlw c关闭当前窗口回到单窗口。4.5 验证字符替换按:%s/123/fairy/g回车。所有123变成fairy。按u撤销。再按:1,3s/hello/sue/g回车。前 3 行的hello变成sue第 4、5 行不变。这个对比能帮你理解行范围替换。4.6 验证复制粘贴与撤销光标停在第 1 行按yy复制按p粘贴到下一行。按2p再粘贴两次。按u逐次撤销。按Ctrlr逐次恢复。整个过程行号会实时变化注意观察。4.7 验证可视化模式批量操作按Ctrlv进入可视化块模式用方向键选中前 3 行的第一列按大写I输入#按Esc。前 3 行行首都会加上#。这是批量注释的常用手法。按u撤销。走完这一遍你应该对每个动作的效果有直观感受了。建议把测试文件留着隔天再敲一遍形成肌肉记忆。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth 报错对照这一节整理实际使用中容易遇到的报错尤其是把模型入口接进终端工具时的问题。vim 本身的报错相对简单但配置和调用环节容易卡住。5.1 vim 相关常见问题按dd没反应屏幕上多了字母 d。原因是你还在插入模式。解决先按Esc再按dd。:wq保存时报E45: readonly option is set。原因是文件只读或者你没有写权限。解决用:wq!强制保存或者用sudo vim 文件名重新打开。注意只读文件必须是当前用户的文件或者你是 root。分屏后不知道怎么切换。记住Ctrlw加方向键或者Ctrlw加w循环切换。替换命令没生效。检查是不是漏了g或者行范围写错。:s/old/new/只替换当前行第一个:s/old/new/g替换当前行全部:%s/old/new/g替换全文。5.2 模型入口接入常见报错如果你把 TaoToken 接进终端工具可能遇到下面几类报错。401 Unauthorized。原因是 Key 不对或没带上。检查TAOTOKEN_API_KEY环境变量是否生效执行echo $TAOTOKEN_API_KEY看有没有输出。如果为空重新source ~/.bashrc。另外确认 Base URL 是https://taotoken.net/api不要多加斜杠或路径。local proxy failed或连接失败。原因是网络环境或地址写错。检查 Base URL 是否完整确认没有拼写错误。如果你在公司网络确认出口策略允许访问。reading choices相关报错通常是返回结构不符合工具预期。检查 Model ID 是否填对不同模型返回格式可能有差异。确认你填的模型 ID 和工具要求的字段一致。OAuth报错。如果你用的是 Claude Code 这类工具它可能默认走 OAuth 登录。改用 API Key 方式时需要在配置里明确指定 Base URL、Key、Model ID 三件套不要混用登录态。配置文件里通常长这样{ base_url: https://taotoken.net/api, api_key: 你的Key, model: 你的ModelID }如果你用的是 Codex 的auth.json字段名可能是api_key和base_url具体以工具文档为准。核心是三件套齐全Base URL、Key、Model ID。缺一个就会报错。5.3 配置不生效的排查顺序先确认改的是~/.vimrc还是/etc/vimrc。再确认有没有语法错误比如少引号、多空格。然后确认有没有重新打开文件。最后确认当前用户对配置文件有读权限。按这个顺序查基本能定位。6. 语义一致 CTA把 vim 操作清单和模型入口用起来vim 的操作说到底就是几组按键但真正形成效率靠的是反复敲和整理自己的清单。我建议你把本文第三节的按键序列抄一份贴在工位或者存成vim-cheatsheet.md每次忘了就翻一下。删除用dd和:%d分屏用Ctrlw v和Ctrlw s替换用:%s/old/new/g复制粘贴用yy和p撤销用u和Ctrlr这几组覆盖了日常八成场景。如果你在改配置或写脚本时需要查语法、解释报错可以用模型入口辅助。拿 Key 去 https://taotoken.net/api-keys 接入文档看 https://taotoken.net/doc 临时问一句用 https://taotoken.net/models 。长期在终端里做编码和 Agent 任务可以了解 Coding Planhttps://taotoken.net/coding-plan 。Claude Code 相关配置参考 https://taotoken.net/claude-code 。最后留一个实用技巧在.vimrc里加一行set clipboardunnamedplus可以让 vim 的复制粘贴和系统剪贴板打通具体是否生效取决于你的 vim 是否编译了 clipboard 支持。可以先试不行就删掉。另一个技巧是:set paste粘贴外部代码前先开这个避免自动缩进把格式搞乱粘完再:set nopaste。这两个小设置在实际改配置时能省不少事。