You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在vim中仅对全大写行的单词执行首字母大写转换

Vim批量处理全大写行操作方法

你直接在打开目标文件后的普通模式下执行如下命令即可:

:g/^[^a-z]\+$/s/\<\(\u\)\(\u*\)\>/\u\1\L\2/g

命令拆解说明

  • 开头的:g是Vim的全局匹配命令,只会对命中匹配规则的行执行后续操作
  • /^[^a-z]\+$/ 是行匹配规则:匹配整行没有任何小写英文字母的行,也就是你要的全大写行,数字、英文标点、空格不会干扰匹配
  • 后半段是替换逻辑:
    • 匹配规则\<\(\u\)\(\u*\)\> 会捕获每个完整单词的首字母和剩余字母
    • 替换规则\u\1\L\2 会保留首字母大写,把剩余字母全部转为小写
    • 末尾的g代表对行内所有单词生效,不会只修改行内第一个单词

如果你担心误改,可以在命令末尾加c参数,改成如下形式,每次替换前都会弹出确认提示,核对没问题再批量处理:

:g/^[^a-z]\+$/s/\<\(\u\)\(\u*\)\>/\u\1\L\2/gc

处理完成后输入:w即可保存修改。

内容的提问来源于stack exchange,提问作者nino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:57:04