1. 概述

  1. 学习 Java 反射的时候, 碰到的简单问题
  2. 手动可以处理, 但是真的很浪费时间
  3. 想熟悉一下工具的使用

2. 题目

  1. 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);
  2. 目的

    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. 思路

  1. 手打
  2. vim 替换

4. 解决

  1. 概述

    1. 手打的思路, 暂时就不考虑了

1. 思路1

  1. 概述

    1. 第一个思路
  2. 思路

    1. Modifier.isAbstract(int modifiers);
    2. System.out.println("is ? " + Modifier.isAbstract(modifiers));
    3. 手打加上核心关键词
  3. tip

    1. ex 表达式
  4. 步骤

    1. :1,$ s/Modi/System.out.println("is ? " + /
    2. :1, $ s/;/);/
    3. 手工补充上关键词
  5. 问题

    1. 步骤 1 和 2 能否合并
    2. 手工替换关键词, 是不是有点 low

2. 思路2

  1. 概述

    1. 尝试将 思路1 的 1, 2 步骤合而为1
  2. 步骤

    1. :%s/^\(.*\);/System.out.println("is ?" + \1);/
    2. 手动添加 关键词
  3. 问题

    1. 合并完成了

      1. 使用了 ex 的 保留缓冲区
    2. 手工替换, 还是有点 low

3. 思路3

  1. 概述

    1. 尝试一个语句, 直接替换完成
  2. 步骤

    1. :%s/\(M.*is\)\(.*\)\((.*)\);/System.out.println("is \2?" + \1\2\3);
    2. 手动调整 关键字 的大小写
  3. 问题

    1. 解决了关键字的填写问题
    2. 大小写问题, 暂时没有解决

4. 思路4

  1. 概述

    1. 改进 大小写
  2. 步骤

    1. 思路3
    2. :%s/is \(.*\)?/is \l\1?/

5. 其他

  1. 问题

    1. 本质是一个列的变换

      1. 变换只需要依赖自身即可
      2. 这里确实说的有点不清楚
    2. 另一个例子

      a
      b
      c windows
      linux
      others
      1. 目的
      a. windows
      b. linux
      c. others
  2. vim - ex, 算是个比较有用的东西, 值得学习一下

    1. ex 基本操作
    2. ex 多标签
    3. ex 全局搜索
    4. ex 脚本
  3. 后续思路

    1. sed
    2. awk
    3. 某些 模板 也可做到同样的功能
    4. 技能熟练度, 也是个大问题

VIM - 问题: 简单变换的更多相关文章

  1. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

  2. Web前端开发实战6:CSS实现导航菜单结合二级下拉式菜单的简单变换

    前面几篇博文都在讲导航菜单和二级下拉式菜单,事实上有非常多方法都能够实现的.详细的情况还要视情况而定. 在后面学习到jQuery框架之后,会有更丰富的动画效果.因为在学习Ajax和jQuery的初步阶 ...

  3. Apache 的搭建及vim的简单命令

    一. vim 简单命令 pwd     当前路径 ls    当前路径所有目录 cd  目录地址   跳转到指定目录 /xxx  查找xxx x 删除当前字符 n 执行上一次查找 二.为什么使用apa ...

  4. 1. VIM 系列 - 简单入门,拾起兴趣

    目录 1. 认识模式 1.1 正常模式 1.2 插入模式 1.3 命令模式 1.4 可视模式 2. 常用快捷键 1. 认识模式 vim 一共有四种模: 1. 正常模式 2. 插入模式 3. 命令模式 ...

  5. vim的简单使用

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...

  6. OpenCV常用基本处理函数(4)简单变换,阈值等

    几何变换 缩放 img=cv2.imread('messi5.jpg') # 下面的 None 本应该是输出图像的尺寸,但是因为后边我们设置了缩放因子 # 因此这里为 None res=cv2.res ...

  7. vim 编辑器简单使用总结

    http://blog.csdn.net/sharp_allen/article/details/27075133转载 说了这么多,其实还少一个和word,记事本一样的编辑器,在各个操作系统都有编辑器 ...

  8. VIM编辑器简单总结

    第一讲小结  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键.         h (左移)       j (下行)       k (上行)     l (右移)  2. ...

  9. Vim 常用简单命令

    Vim中有三个模式,1.刚进入Vim画面的是命令模式,2. 在命令模式输入:进入末行模式, 3. 在命令模式输入 a或者i或者o进入编辑模式 在末行或者编辑模式中可以通过ESC回到命令模式 举例当前目 ...

随机推荐

  1. 查看Sql Server库中某张表的结构

    --快速查看表结构(比较全面的) SELECT CASE WHEN col.colorder = THEN obj.name ELSE '' END AS 表名, col.colorder AS 序号 ...

  2. jsp中引用的jstl 和fmt标签-详解

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  3. oracle三个网络配置文件(listener.ora、tnsname.ora、sqlnet.ora)的作用

    oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下. 1.  sqlne ...

  4. jsp中连接数据库及实现增删改查

    导入jdbc工具包 <%@page import="asp.engine.util.PageHelper"%><%@ page import="asp. ...

  5. 可持久化0-1 Trie 简介

    Trie树是字符串问题中应用极为广泛的一种数据结构,可以拓展出AC自动机.后缀字典树等实用数据结构. 然而在此我们考虑0-1 Trie的应用,即在序列最大异或问题中的应用. 这里的异或是指按位异或.按 ...

  6. 显示当前目录命令 - pwd

    1) 命令名称:pwd 2) 英文原意:print working directory 3) 命令所在路径:/bin/pwd 4) 执行权限:所有用户 5) 功能描述:显示当前目录 6) 语法: pw ...

  7. 中国城市区号脚本-mysql

    中国城市区号 300个. SET NAMES utf8mb4; ; DROP TABLE IF EXISTS `citycode`; CREATE TABLE `citycode` ( `codeId ...

  8. 调用系统计算器n次

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void main1(){ int n ...

  9. ubuntu---yolo报错darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.

    装好darknet后,直接测试的时候,报错: darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.解决办法是打开yolov3.cfg ...

  10. Apache Kafka(十二)Log Cleanup 策略

    Log Cleanup 策略 在Kafka中,存在数据过期的机制,称为data expire.如何处理过期数据是根据指定的policy(策略)决定的,而处理过期数据的行为,即为log cleanup. ...