VIM - 问题: 简单变换
2024-10-08 10:20:23
1. 概述
- 学习 Java 反射的时候, 碰到的简单问题
- 手动可以处理, 但是真的很浪费时间
- 想熟悉一下工具的使用
2. 题目
源
Modifier.isAbstract(int modifiers);
Modifier.isFinal(int modifiers);
Modifier.isInterface(int modifiers);
Modifier.isNative(int modifiers);
Modifier.isPrivate(int modifiers);
Modifier.isProtected(int modifiers);
Modifier.isPublic(int modifiers);
Modifier.isStatic(int modifiers);
Modifier.isStrict(int modifiers);
Modifier.isSynchronized(int modifiers);
Modifier.isTransient(int modifiers);
Modifier.isVolatile(int modifiers);
目的
System.out.println("is abstract? " + Modifier.isAbstract(modifiers));
System.out.println("is final? " + Modifier.isFinal(modifiers));
System.out.println("is interface? " + Modifier.isInterface(modifiers));
System.out.println("is native? " + Modifier.isNative(modifiers));
System.out.println("is private? " + Modifier.isPrivate(modifiers));
System.out.println("is protected? " + Modifier.isProtected(modifiers));
System.out.println("is public? " + Modifier.isPublic(modifiers));
System.out.println("is static? " + Modifier.isStatic(modifiers));
System.out.println("is strict? " + Modifier.isStrict(modifiers));
System.out.println("is synchronized? " + Modifier.isSynchronized(modifiers));
System.out.println("is transient? " + Modifier.isTransient(modifiers));
System.out.println("is volatile? " + Modifier.isVolatile(modifiers));
3. 思路
- 手打
- vim 替换
4. 解决
- 概述
- 手打的思路, 暂时就不考虑了
1. 思路1
概述
- 第一个思路
思路
- Modifier.isAbstract(int modifiers);
- System.out.println("is ? " + Modifier.isAbstract(modifiers));
- 手打加上核心关键词
tip
- ex 表达式
步骤
:1,$ s/Modi/System.out.println("is ? " + /
:1, $ s/;/);/
- 手工补充上关键词
问题
- 步骤 1 和 2 能否合并
- 手工替换关键词, 是不是有点 low
2. 思路2
概述
- 尝试将 思路1 的 1, 2 步骤合而为1
步骤
:%s/^\(.*\);/System.out.println("is ?" + \1);/
- 手动添加 关键词
问题
- 合并完成了
- 使用了 ex 的 保留缓冲区
- 手工替换, 还是有点 low
- 合并完成了
3. 思路3
概述
- 尝试一个语句, 直接替换完成
步骤
:%s/\(M.*is\)\(.*\)\((.*)\);/System.out.println("is \2?" + \1\2\3);
- 手动调整 关键字 的大小写
问题
- 解决了关键字的填写问题
- 大小写问题, 暂时没有解决
4. 思路4
概述
- 改进 大小写
步骤
- 思路3
:%s/is \(.*\)?/is \l\1?/
5. 其他
问题
本质是一个列的变换
- 变换只需要依赖自身即可
- 这里确实说的有点不清楚
另一个例子
- 源
a
b
c windows
linux
others
- 目的
a. windows
b. linux
c. others
vim - ex, 算是个比较有用的东西, 值得学习一下
- ex 基本操作
- ex 多标签
- ex 全局搜索
- ex 脚本
后续思路
- sed
- awk
- 某些 模板 也可做到同样的功能
- 技能熟练度, 也是个大问题
最新文章
- 1.Linux常用命令
- 奇葩问题之ToolBar返回键失效
- unity3d 赛车游戏——复位点检测
- 第二章 Js函数
- tar命令: 对某目录文件打tar包时,排除指定的目录或文件
- jquery datepicker日期控件用法
- 【微信公众号】WeixinJSBridge.call('closeWindow')无效
- 2017年最重要的HTML5开发手册,传播正能量
- 使用setTimeout实现setInterval
- Ubuntu 自动选择最快的镜像源
- MySQL优化(2)--------常用优化
- 第一部分之简单字符串SDS(第二章)
- charles License
- coursera-斯坦福-机器学习-吴恩达-笔记week4
- Java中加密算法介绍及其实现
- nginx负载均衡二:配置
- collectd 检测cpu使用率
- 启明星会议室系统与Office365集成说明
- 数据库初始化以及制作为Windows服务
- Java 实例 - 队列(Queue)用法
热门文章
- ";换行";和";回车";的来历
- 502. IPO(最小堆+最大堆法 or 排序法)
- 324. 摆动排序 II(三路划分算法)
- 虚拟磁盘VHD文件压缩方法
- Goland安装与配置
- Win10镜像升级到其他版本
- 初步自学Java小结
- 2018-2019 ACM-ICPC, Asia East Continent Final L	 Eventual … Journey
- Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) B	 Box
- 【Python】字符串操作符