VIM - 问题: 简单变换
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
- 某些 模板 也可做到同样的功能
- 技能熟练度, 也是个大问题
VIM - 问题: 简单变换的更多相关文章
- Linux中vim的简单配置
本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...
- Web前端开发实战6:CSS实现导航菜单结合二级下拉式菜单的简单变换
前面几篇博文都在讲导航菜单和二级下拉式菜单,事实上有非常多方法都能够实现的.详细的情况还要视情况而定. 在后面学习到jQuery框架之后,会有更丰富的动画效果.因为在学习Ajax和jQuery的初步阶 ...
- Apache 的搭建及vim的简单命令
一. vim 简单命令 pwd 当前路径 ls 当前路径所有目录 cd 目录地址 跳转到指定目录 /xxx 查找xxx x 删除当前字符 n 执行上一次查找 二.为什么使用apa ...
- 1. VIM 系列 - 简单入门,拾起兴趣
目录 1. 认识模式 1.1 正常模式 1.2 插入模式 1.3 命令模式 1.4 可视模式 2. 常用快捷键 1. 认识模式 vim 一共有四种模: 1. 正常模式 2. 插入模式 3. 命令模式 ...
- vim的简单使用
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...
- OpenCV常用基本处理函数(4)简单变换,阈值等
几何变换 缩放 img=cv2.imread('messi5.jpg') # 下面的 None 本应该是输出图像的尺寸,但是因为后边我们设置了缩放因子 # 因此这里为 None res=cv2.res ...
- vim 编辑器简单使用总结
http://blog.csdn.net/sharp_allen/article/details/27075133转载 说了这么多,其实还少一个和word,记事本一样的编辑器,在各个操作系统都有编辑器 ...
- VIM编辑器简单总结
第一讲小结 1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键. h (左移) j (下行) k (上行) l (右移) 2. ...
- Vim 常用简单命令
Vim中有三个模式,1.刚进入Vim画面的是命令模式,2. 在命令模式输入:进入末行模式, 3. 在命令模式输入 a或者i或者o进入编辑模式 在末行或者编辑模式中可以通过ESC回到命令模式 举例当前目 ...
随机推荐
- 题解【洛谷P3406】海底高铁
题面 比较基础的前缀和+差分. 注意开\(\text{long long}\) 直接上代码吧. #include <bits/stdc++.h> #define itn int #defi ...
- 2019牛客多校第八场A All-one Matrices 悬线法,单调栈待补
All-one Matrices 题意 对于一个n,m的01矩阵,问有多少个极大矩阵. 分析 对于悬线法来说,其过程就是枚举极大矩阵的过程,那如何计数呢?对于一个点来说,若其左右边界包含了上一个点的悬 ...
- linux 安装java jdk
1.检查一下系统中的jdk版本 [root@localhost software]# java -version 显示: openjdk version "1.8.0_102" O ...
- vue 报错碰到的一些问题及其规范
报错信息:Expected error to be handled(需要处理的错误) 这是因为回调函数里面的参数error没有运用到,所以可以不设置参数,或者在回调函数内console.log(err ...
- 《 Java 编程思想》CH07 复用类
复用代码是 Java 众多引人注目的功能之一. Java 可以通过创建类来复用代码,要在使用类的时候不破坏现有代码,有两种方式: 组合:在新的类中使用现有类的对象. 继承:按照现有类的类型来创建新类, ...
- 浏览器缓存信息(Autocomplete )
Autocomplete HTML Attribute Not Disabled for Password Field 漏洞详细Web系统被识别到支持自动完成功能,这样通过浏览器可以获取到敏感信息. ...
- Django | Unable to get repr for <class 'django.db.models.query.QuerySet'>
问题:在mysql中查询数据时,代码如下: skus = category.sku_set.filter(is_launched=True).order_by(sort_field) skus 取不到 ...
- Oracle tnsnames.ora
安装过ORACLE的都知道,oracle安装时需要进行配置,这个配置可以在客户端的企业管理器一步一步进行,或者直接拷贝一个tnsnames.ora文件到安装目录下(c:\app\Administrat ...
- Mybatis-对数据库的关联查询
由于MyBatis逆向工程生成的代码只能进行对单表的操作(功能已经很强大了),但是远远不能满足开发的需要,下面就简单讲解下MyBatis进行关联查询的简单案例. 一.一对一关联查询 1 ...
- vue -- v-model 表单绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...