vim命令

Ctrl+c 结束正在运行的程序 Ctrl+d 结束输入或退出shell Ctrl+s 暂停屏幕输出【锁住终端】 Ctrl+q 恢复屏幕输出【解锁终端】 Ctrl+l 清屏,【是字母L的小写】等同于Clear Ctrl+a 切换到命令行开始 Ctrl+e 切换到命令行末尾 Ctrl+u 清除剪切光标之前的内容 Ctrl+k 清除剪切光标及光标之后的内容 Ctrl+y 在光标处粘贴剪切的内容 Ctrl+r 查找历史命令【输入关键字,就能调出以前执行过的命令】 Ctrl+t 调换光标所在处与其之前字符位置,并把光标移到下个字符 Ctrl+x+u 撤销操作 Ctrl+z 转入后台运行【用户退出时,停止。】 一、移动光标 1、左移h、右移l、下移j、上移k 2、向下翻页ctrl + f,向上翻页ctrl + b 3、向下翻半页ctrl + d,向上翻半页ctrl + u 4、移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^ 5、移动光标到下一个句子 ),移动光标到上一个句子( 6、移动到段首{,移动到段尾} 7、移动到下一个词w,移动到上一个词b 8、移动到文档开始gg,移动到文档结束G 9、移动到匹配的{}.().[]处% 10、跳到第n行 ngg 或 nG 或 :n 11、移动光标到屏幕顶端H,移动到屏幕中间M,移动到底部L 12、读取当前字符,并移动到本屏幕内下一次出现的地方 […]

Java 8函数式接口Function、Consumer、Predicate、Supplier

基础索引:https://docs.oracle.com/javase/8/docs/api/ 主要内容: 1: 自定义函数式接口 2: 函数式编程 3: 常用函数式接口 3.1 Supplier 你要作为一个供应者,自己生产数据 3,2 Consumer 你要作为一个消费者,利用已经准备数据 3.3 Function 输入一个或者两个不同或者相同的值转为另一个值 3.4 Predicate 输入一个或者两个不同或者相同的值总是输出boolean 3.5 UnaryOperator 输入一个值转换为相同值输出 3.6 BinaryOperator 输入两个相同类型的值 转为相同类型的值输出 主要语法: () -> 代表了 lambda的一个表达式 单行代码无需写return (无论函数式接口有没有返回值),花括号 多行代码必须写花括号,有返回值的一定要写返回值 单行代码且有参数的情况下可以不写 () 如 s->System.out.println(s) (T t)中的参数类型可写可不写 1: 函数式接口 1.1 概念 函数式接口在java中是指:有且仅有一个抽象方法的接口 函数式接口,即适用于函数式编程场景的接口。而java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。 备注:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实底层的实现原理仍然是迭代器,这便是“语法糖”。从应用层面来讲,Java中的Lambda可以被当做是匿名内部类的“语法糖”,但是二者在原理上是不同的。 1.2 格式 接口中只能存在一个抽象方法 修饰符 interface 接口名称{   […]

正则表达式

转;https://github.com/dunwu/javacore/blob/master/docs/advanced/java-regex.md 暂时只明白最基础的部分 一、正则简介 正则表达式是什么?有什么用? **正则表达式(Regular Expression)是一种文本规则,可以用来校验、查找、替换与规则匹配的文本。 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但是它的规则实在很繁琐,而且理解起来也颇为蛋疼,容易让人望而生畏。 如何学习正则 刚接触正则时,我看了一堆正则的语义说明,但是仍然不明所以。后来,我多接触一些正则的应用实例,渐渐有了感觉,再结合语义说明,终有领悟。我觉得正则表达式和武侠修练武功差不多,应该先练招式,再练心法。如果一开始就直接看正则的规则,保证你会懵逼。当你熟悉基本招式(正则基本使用案例)后,也该修炼修炼心法(正则语法)了。真正的高手不能只靠死记硬背那么几招把式。就像张三丰教张无忌太极拳一样,领悟心法,融会贯通,少侠你就可以无招胜有招,成为传说中的绝世高手。 以上闲话可归纳为一句:学习正则应该从实例去理解规则。 二、招式篇 JDK 中的java.util.regex包提供了对正则表达式的支持。 java.util.regex有三个核心类: Pattern 类:Pattern是一个正则表达式的编译表示。 Matcher 类:Matcher是对输入字符串进行解释和匹配操作的引擎。 PatternSyntaxException:PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。 ***注:***需要格外注意一点,在 Java 中使用反斜杠”\”时必须写成 “\\”。所以本文的代码出现形如String regex = “\\$\\{.*?\\}” 其实就是”\$\{.*?\}”,不要以为是画风不对哦。 Pattern 类 Pattern类没有公共构造方法。要创建一个Pattern对象,你必须首先调用其静态方法compile,加载正则规则字符串,然后返回一个 Pattern 对象。 与Pattern类一样,Matcher类也没有公共构造方法。你需要调用Pattern对象的matcher方法来获得一个Matcher对象。 案例:Pattern 和 Matcher 的初始化 Pattern p = Pattern.compile(regex); Matcher m = p.matcher(content); Matcher 类 Matcher类可以说是java.util.regex核心类中的必杀技! Matcher类有三板斧(三类功能): 校验 查找 替换 下面我们来领略一下这三块的功能。 校验文本是否与正则规则匹配 为了检查文本是否与正则规则匹配,Matcher 提供了以下几个返回值为boolean的方法。 […]

CentOS相关

CentOS8重启网络nmcli c reload 不立即生效  nmcli c up ens33立即生效 Redis相关: 端口 6379 redis启动 cd /usr/local/bin  ./redis-server /etc/redis.conf 连接redis  ./redis-cli -h 192.168.120.110 -p 6379 -a redis Keepalived相关: systemctl start keepalived  启动keepalived Nginx相关: systemctl enable nginx.service设置nginx开机自启动 systemctl disable nginx.service 停止nginx开机自启动 ./nginx -s reload重新加载配置 内核升级: yum -y update rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm yum –disablerepo=”*” –enablerepo=”elrepo-kernel” […]

lWoHvYe 无悔,专一