管道操作符和xargs的区别

之前一直没有理解shell中管道操作符和xargs的区别,为什么有一些命令要用可以直接用管道操作符链接,为什么一些需要加个xargs,最近翻了一些文档之后,终于理解

官方定义

最好的解释永远来自于官方文档,正所谓真传一句话,假传万卷书.

管道操作符

A pipeline is a sequence of one or more commands separated by one of the control operators ‘|’ or ‘|&’.
The output of each command in the pipeline is connected via a pipe to the input of the next command. That is, each command reads the previous command’s output. This connection is performed before any redirections specified by command1.

简单来说就是,管道操作符连接一系列命令,前面的标准输出作为后面的标准输入

Read more

手把手教你开发一个neovim插件

项目结构与插件路径

插件路径

这里差不多也是废话,理论上来说,vim的插件可以在任何位置,插件的方式也可以是各种形式,不过为了这里面还是有一些潜规则的.
首先就是插件的路径,一般来说,neovim会默认加载一些路径,可以在neovim中执行echo &rtp(rtp:runtime path)来查看默认的加载路径有哪些,不过由于我们是
自己开发的插件,就暂时不要放在这些路径里面了,避免启动时报错,假设我现在放在了~/temp/neovim/lua/lowb这个目录下进行开发lowb插件,然后在启动neovim的时候使用nvim --cmd "set rtp+=~/temp/neovim"启动就可以加载lowb插件了,
插件名就是lua路径下的文件夹名,如果你的插件比较简单,可以不用新建一个文件夹,直接搞一个lowb.lua就可以加载了,不过按照约定一般是有一个文件夹的,方便发布,供其他人使用

Read more

使用asdf管理你的sdk

asdf是一个语言版本管理器.

现在假设在使用asdf的情况下,如果有两个项目ab,分别使用jdk-8jdk-17,那么管理的流程就是如下的

  1. 安装对应的jdk:asdf install java openjdk-8, asdf install java openjdk-17
  2. 分别进入ab两个目录,执行asdf local java openjdk-8,asdf local java openjdk-17

这个时候,当你在命令行进入对应的项目,你执行java -version就会对应不同的jdk版本

而且安装的jdk统一的都在~/.asdf.plugins/java目录下

Read more

终端下常用快捷键汇总

说明

其实大部分都是emacs的快捷键,终端也可以切换为vim模式,快捷键就会有变化

C : Ctrl
A : ALT

Read more
vscode更好用的vim插件

vscode更好用的vim插件

更好用的vim插件

之前在 vscode中使用的 vim插件一直是vim,但是这个插件有一个让我非常苦恼的问题,
就是这个插件没有neovim中的flash插件,它默认的快速移动插件是easymotion,个人觉得,easymotion这个插件的已送快捷键方式实在是太不方便,举个简单的例子:
他的prefix是要按两下leader按键,而flash插件就十分的方便,按下s然后输入词就可以快速搜索,这点就是很舒服的地方,下面两个图

Read more

idea下配置vim模式

安装

首先你要有一个 java第一 IDE:intellij idea
然后打开插件市场,下一个idea vimrc 安装上

配置.ideavimrc

Read more

java byte array 转String在转回byte array不相等

背景

最近在搞微软的NBFS协议,这个协议实际上也是基于WebService,只不过对xml进行了压缩,按照他自己的编码规则进行压缩
网上搜罗一圈后发现有个大佬写好的burpNBFS插件WCF-Binary-SOAP-Plug-In
这个插件会将传入的经过base64编码的xml转换成NBFS协议的base64编码的字符串

测试那边要使用jmeter对这个NBFS接口性能测试
基本思路:

  • 新建http request输入原始的xml
  • 搞一个PreProcessor,调用大佬写的NBFS.exe获取压缩后的XMLbase64编码的字符串

PreProcessor 代码如下

Read more

macos下,实现vim切换模式自动切换输入法

macos下,实现vim切换模式自动切换输入法

作为一个重度vim模式使用用户,切换模式输入法不自动切换一直是一个蛋疼的问题,目前主要解决方案就是使用im-select,在对应使用的应用里面设置im-select的路径
但是这种方式有一个问题就是如果应用不支持,就不会自动切换

另一种方式就是使用rime输入法,但是对于我来说配置成本太高,不划算.

经过我的研究,发现karabiner可以实现在任意应用中使用vim,按下对应的模式切换键实现自动切换输入法.

安装karabiner

karabiner是mac下一个按键功能映射的软件,可以自己定义json文件实现许多复杂的功能的映射

brew安装

Read more

hexo push后自动部署github pages

hexo有几种部署方式,一种是本地编译后,直接push public路径下的静态文件,一种是通过cli方式,向仓库提交source下的的markdown文件,触发action.实现自动部署

本文主要说明后一种方式.

Read more