在虚拟机里用Vim,真正拉开效率差距的不是背下几百条命令,而是把模式切换、批量替换、宏录制、配置文件这四件事练成肌肉记忆。 下面按实际使用场景拆开讲,每条都能直接在终端里验证。
先分清模式,Vim语句才有落脚点
很多人第一次在虚拟机里打开Vim,敲键盘没反应,就是卡在模式上,Vim的语句本质是“在哪个模式下按什么键”,模式不清,技巧越多越乱。
五种模式与进入路径
- 普通模式:启动后的默认状态,移动、删除、复制、跳转都在这里完成。
- 插入模式:按
i光标前插入,a光标后插入,o下方新开一行,O上方新开一行。 - 可视模式:
v按字符选择,V按行选择,Ctrl+v按块选择。 - 命令行模式:按 进入,用于保存、替换、配置。
- 替换模式:按
R进入,连续覆盖输入,按Esc退出。
从插入模式回到普通模式,统一按 Esc,虚拟机里如果终端把 Esc 映射得很慢,可以在 ~/.vimrc 里加 set timeoutlen=200,减少等待感。
一套顺手的组合动作
gg跳到文件首行,G跳到末行,50G跳到第50行。0到行首,^到首个非空白字符, 到行尾。w按词前跳,b按词后跳,f{字符}在当前行定位到指定字符。- 在括号之间来回跳, 和 按段落跳。
这些语句单看普通,组合起来就快:ggdG 清空整个文件,ggyG 全选复制,d} 删到段落末尾,业内专家指出,Vim的学习曲线主要集中在前两周的模式适应期,过了这个阶段,编辑效率的提升会明显快于普通编辑器。
虚拟机中Vim和vi有什么区别,这决定你该用哪套命令
在CentOS、Ubuntu的虚拟机里,系统自带的 vi 往往是 vim 的软链接,但行为不一定相同,用 vi --version 和 vim --version 看输出,最直接。
| 对比项 | vi | Vim |
|---|---|---|
| 多级撤销 | 通常只有一级 | 支持多级撤销与撤销树 |
| 语法高亮 | 基本没有 | 支持,需开启 |
| 分屏编辑 | 不支持或有限 | 支持 sp、vsp |
| 插件与脚本 | 几乎不可扩展 | 支持插件和 Vim9 脚本 |
| 配置文件 | 基本无 | ~/.vimrc、/etc/vim/vimrc |
如果虚拟机里确实是精简版 vi,u 按一次就回到上一步,再按无效;换成 vim 后,u 可以连续撤销,Ctrl+r 重做,g- 和 g+ 还能在撤销树里前后穿梭,行业共识认为,日常开发优先安装 vim 完整版,vi 更适合应急维护。
Vim编辑器怎么删除整行和撤销操作,高频场景逐个拆
这是新手搜索最多的两个动作,放在一起讲更清楚。
删除整行与批量删除
dd删除当前行,3dd删除当前行及往下两行,共三行。dG从当前行删到文件末尾,dgg从当前行删到文件开头。g/关键字/d删除所有含该关键字的行,适合清理日志里的噪声行。v/关键字/d反过来,删除所有不含关键字的行。D删除光标到行尾的内容,保留空行。
在虚拟机里改配置文件时,dd 配合 p 是最稳的移动行办法:dd 剪切当前行,光标移到目标位置,p 粘贴到下一行,P 粘贴到上一行。
撤销、重做与撤销过头
u撤销一步,连续按可连续回退。Ctrl+r重做,撤销过头时用它拉回来。U撤销当前行的所有修改,只对当前行生效。earlier 5m回到5分钟前的文件状态,later 5m再往前推。undolist查看撤销分支,适合误操作后定位。
改完记得w 保存,q 退出,wq 保存并退出,q! 放弃修改强制退出,虚拟机里误按 Ctrl+z 把Vim挂到后台,用 fg 拉回前台即可。
把重复劳动交给语句:替换、宏与块操作
全局替换的边界处理
%s/旧内容/新内容/g全文替换。%s/旧内容/新内容/gc每处替换前确认,按y替换、n跳过。s/旧内容/新内容/g只替换当前行。%s#/usr/local#/opt#g用 代替 作分隔符,处理路径时不用转义。%s/\s\+$//e清除行尾多余空白,e表示找不到匹配也不报错。
替换范围还能用可视模式圈定:Ctrl+v 选中列块,按 会自动补上 '<,'>,再输入 s/旧/新/g 只作用于选中区域。
宏录制:一次操作,批量复现
- 普通模式按
qa,开始录制到寄存器a。 - 执行一串操作,
I#行首加注释、j下移一行。 - 按
q结束录制。 @a执行一次,10@a连续执行十次, 重复上一次宏。
宏特别适合虚拟机里批量改 hosts 文件、批量给配置项加注释这类机械活,录之前先想清楚动作顺序,录错就重录,比手工改几十行省时间。
块选择与列编辑
Ctrl+v 进入块选择,I 在选中块前插入,输入内容后按 Esc,所有行同时生效;A 在块后追加;d 删除块,c 替换块,给一批配置行统一加前缀,这是最快的路径。
Vim配置文件在哪里修改,虚拟机环境有一处容易踩的坑
个人配置写在 ~/.vimrc,没有就新建;系统级配置在 /etc/vim/vimrc 或 /etc/vim/vimrc.local,改完执行 source ~/.vimrc 立即生效,不用重启终端。
虚拟机里最常踩的坑是粘贴代码缩进层层叠加,原因是终端把粘贴内容当成逐字符输入,触发了自动缩进,解决办法是在插入模式前执行 set paste,粘贴完再 set nopaste,更省事的做法是直接在 ~/.vimrc 里加一行 set mouse=a,配合虚拟机增强工具或终端自身的粘贴快捷键。
一份够用的起步配置:
set number显示行号set tabstop=4、set shiftwidth=4、set expandtab统一缩进为4空格set hlsearch高亮搜索结果,set incsearch边输入边定位set ignorecase搭配set smartcase,全小写忽略大小写,含大写则精确匹配syntax on开启语法高亮set paste按需手动切换,不建议长期开启
注意 set paste 长期开启会关掉自动缩进和补全,改完代码记得关掉。
Linux服务器Vim常用命令速查:跳转、分屏与文件切换
- 分屏:
sp 文件名水平分屏,vsp 文件名垂直分屏,Ctrl+w加h/j/k/l在窗口间移动,Ctrl+w q关闭当前窗口。 - 多文件:
e 文件名打开文件,ls列出缓冲区,bnext和bprev前后切换,bd关闭当前缓冲区。 - 标记跳转:
ma在当前位置打标记a,'a跳回该行,`a跳回精确位置,marks查看所有标记。 - 跳转历史:
Ctrl+o回到上一个位置,Ctrl+i前进,jumps查看跳转列表。 - 快速定位:
vimgrep /关键字/g /.conf在多个文件里搜索,cnext和cprev在结果间跳。
这套命令在通过 SSH 连接虚拟机的场景里尤其顺手,不需要额外装插件就能完成大部分文件定位工作。
两个虚拟机专属细节
- 无权限保存系统文件:用普通用户打开
/etc/下的文件,改完发现存不了,执行w !sudo tee %,输入密码即可写入,不用退出重开。 - 大文件卡顿:打开几百MB的日志时,先
set lazyredraw和set noswapfile,减少重绘和交换文件写入,滚动会顺很多。
Vim编辑器实用技巧Q&A
Vim编辑器免费吗,企业环境能直接使用吗
Vim采用与GPL兼容的开源许可证,个人和企业都可以免费使用,没有按座位收费的版本,也不存在功能阉割的试用版,软件本身鼓励使用者自愿向乌干达的儿童援助项目捐款,但捐款不影响使用权限,企业在内网虚拟机和服务器上批量部署,只需要遵守许可证中关于分发和修改的条款即可。
虚拟机里Vim粘贴代码缩进全乱,最快的处理办法是什么
在普通模式执行 set paste 进入粘贴模式,再按 i 进入插入模式粘贴,完成后 set nopaste 退出,如果使用的是支持剪贴板共享的虚拟机工具,直接 Ctrl+Shift+V 往往比 set paste 更省事,终端里 "+p 依赖Vim编译时带 +clipboard 特性,用 vim --version | grep clipboard 能看到是否支持, 号表示可用, 号表示不可用。
Vim编辑器实用技巧里,哪些语句值得优先练熟
优先练四组:模式切换的 i、a、o、Esc;移动的 gg、G、w、b、f;编辑的 dd、yy、p、u、Ctrl+r;搜索替换的 和 %s/旧/新/gc,这四组覆盖了日常编辑的绝大多数动作,其余技巧都可以在这四组稳定之后再逐步叠加。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/927338.html


评论列表(1条)
读了这篇文章,我深有感触。作者对替换的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!