Vim 全局命令 g

全局命令 :g 在 Vim 中有着意想不到强大的功能。当想要在整个文件中对于匹配的行或者不匹配行进行一些操作时,应该第一时间想到这个 :g 命令。 :[range]global[!]/{pattern}/{command} 简写可以写成 :[range]g/pattern/command [range] 指定文本范围,默认为整个文档 pattern 在范围 range 内的行如果匹配 pattern,则执行 command ! 表示取反,也就是不匹配的行,也可以使用 vglobal command 默认是打印文本 整个命 Read more ...

2017-10-29 Vim , Regex , Linux

kibana query 语法

Kibana 的查询语法基于 Lucene 的查询语法,他允许 boolean 值,通配符,过滤器等等操作。 字符串查询 通常一个查询会包含一个或者多个单词或者组合。一个简单的查询语句就是用引号包含的一组词,比如 “search demo”. 如果不包含双引号,Kibana 会单独的去匹配每一个词。 正则表达式查询 大部分正则表达式是允许匹配部分字符的,然而在 Lucene 中,正则表达式用来匹配整个字符串,比如 abcde 这个字符串 使用 ab.* 能够匹配 但是使用 abcd 是不能匹配的 正则表达式中,有一些保留字符 . Read more ...

2017-10-29 kibana , lucene

每天学习一个命令:代码搜索工具 ack-grep

ack 是一个代码搜索工具,作者 厌烦了 grep 复杂的语法,所以创造了 ack 来解决痛点。ack 使用 Perl 语言开发,使用友好,速度快。ack 在大量代码文件中的搜索效率极高。 安装 sudo apt-get install ack-grep 使用 文本搜索 默认情况下 ack-grep 会搜索当前目录下所有文件内容,只要包含关键字就会输出。 ack-grep keyword ack-grep -l keyword # 只显示文件名 ack-grep -i keyword # 忽略大小写 ack-grep -w Read more ...

2017-10-26 ack , linux , command

Nginx 反向代理 Google 配置

使用编译安装 Nginx,将 ngx_http_substitutions_filter_module 和 ngx_http_google_filter_module 两个模块编译进 Nginx。具体内容可以参考安装篇。 对于 Nginx 基本设置可以参考 配置篇 . 这篇主要演示 Nginx 作为一个反向代理服务器的基本设置。 Nginx 反向代理最重要的一个配置就是 proxy_pass ,该配置接受一个参数, URL ,也就是 Nginx 转发的目的地。Nginx 会自动将请求的 URI 替换为 proxy_pass 配置的 URI。 lo Read more ...

2017-10-25 linux , nginx , web , proxy , google

Nginx 配置详解

Nginx 的相关介绍及安装可以参考之前的一篇文章 Nginx 相关的配置, Nginx 中的配置有两种分类,一种为单纯的指令 (directive),另一种为上下文配置块 (configuration context)。 指令 (directive),包含名称和参数名,以分号结束,比如 gzip on; 上下文通常声明一个作用域,比如 server 块 server { listen 80; } 在上下文中使用相同的指令时需要小心,一般子级上下文中的指令会覆盖父级中定义的值。 全局块 Nginx 的全局配置是影响整个 WEB Read more ...

2017-10-23 nginx , web , server , linux , proxy , web-server , apache

Git commit 中使用 gpg 签名提交

Ubuntu 下,GnuPG 2.0 的支持都在 gnupg2 这个 packages 下,通过下面命令安装: sudo apt-get install gnupg2 GitHub 要求使用 GnuPG 2.1 及以后的版本。 Mac 下安装使用 在 Mac 下需要安装: brew install gnupg brew link --overwrite gnupg brew install pinentry-mac # 密码输入管理器 然后在 shell 配置 (.bashrc 或 ~/.zshrc) 中添加 export GPG_TTY= Read more ...

2017-10-20 github , git , gpg , linux

升级 Spring MVC 3.2.x 到 4.x 注意事项

把 Spring 版本从 3.2.x 升级到了4.x ,这里记录一下。 新特性 Java 8 Support, 从 4.0 开始支持 Java 8,可以使用 lambda 表达式,等等 Java 8 的特性 Groovy DSL 新增 @RestController 注解,这样就不需要每个方法都使用 @ResponseBody 了。 更多内容可以查看: https://docs.spring.io/spring/docs/4.3.x/spring-framework-reference/htmlsingle/#spring-whats-new Read more ...

2017-10-19 Spring , Java , Web

Linux 安装 nodejs

nodejs 安装其实非常简单,大部分情况下 Debian/Ubuntu 下只要使用包管理直接安装 sudo apt-get install nodejs sudo apt-get install npm 即可。 脚本安装 可是今天网络环境太差,不是 npm package not found 就是 update 半天不动。 官网 提供的安装方式 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs 也是网 Read more ...

2017-10-18 linux , nodejs , npm , js , javascript

使用 mutt 在 Bash 中发送邮件及附件

在编写定时备份脚本时遇到一个需求,就是在 Bash 脚本中发送带附件的邮件。于是找到了 mutt。 Mutt 是一个命令行的邮件客户端,Mutt 能够轻松地在命令行发送和读取邮件。 Mutt 支持 POP 和 IMAP 协议。 尽管 Mutt 是基于命令的,但也同样有一个友好的界面。 如果不使用界面,使用 Mutt 命令发邮件也非常方便,只需要一条命令即可发送或者批量发送邮件。 功能说明 E-mail 管理程序。 语法 mutt [-hnpRvxz][-a 文件][-b 地址][-c 地址][-f 邮件文件][-F 配置文件][-H 邮件草稿] Read more ...

2017-10-17 linux , email , mutt

Podcast 频道推荐

Podcast 作为一种特殊的借助声音传播的媒体,有着特定的适用场景和范围。对于我来说每当我需要放空我自己,而又需要使用眼睛和手的时候,比如长时间走路,开车,再比如乘坐地铁等等情况下都会不自觉的打开一集播客。对于固定时间的上下班时间会听固定时长差不多在 1h 左右的内容,而其他时刻根据不同的时长可能会有短到 10 分钟,或者长 30 分钟的内容。 拿播客跟传统电台广播相比,播客的制作可能会更加精良,主题更加集中,信息密度更大一些,大部分往往是针对某一个话题进行介绍或者讨论。 推荐使用通用性客户端订阅收听,比如 Google Podcasts,或者 P Read more ...


最近文章

  • Novita AI 面向 AI 开发者的 GPU 云平台 在如今 AI 时代,个人开发者和企业都想要高效,经济,且容易部署的 AI 模型,尤其是 DeepSeek 横空出世之后使得个人在部署使用私有 AI 模型方面变得异常简单,但问题随之出现,普通人的电脑无法带动 DeepSeek 发布的更消耗内存更消耗计算能力的模型,普通用户也很难去给自己的每台电脑都配上英伟达 4090,更不用说去管理 GPU 集群,而普通开发者如果想要将自己的模型部署到云服务上也非常棘手,而这就是今天我要介绍的 Novita.AI 要解决的问题。
  • Zig 语言编写的开源终端 Ghostty 在 Linux 上我使用 [[Guake]],到后来换成 macOS 之后使用 Kitty,直到前段时间更换成 Warp,但是没想到这几天又发现一款不错的终端 Ghostty。没查不知道,但是一查之后才发现 Ghostty 背后的作者的故事是多么精彩,并且 Ghostty 使用的 Zig 语言也是我第一次听说。
  • 关于在 Docker 容器中如何优雅关闭 Java 应用的记录 这两天遇到一个和 Docker 运行相关的问题,我们使用 Azure App Service 来运行服务,但是每次重启服务的时候,发现不会出发 Javalin 的 stop,感觉 Java 进程没有接受到 Docker 容器停机的信号,然后就被系统杀死了,所以就这个问题,仔细地研究了一下 Docker 运行以及如何优雅地关闭 Docker 容器中的 Java 进程。
  • IBKR 使用教程系列之共同基金 ETF Replicator 这两天在 IBKR 上买了一点按月分红的 ETF,然后在邮箱中就收到了 IBKR 发过来的建议邮件,说 IB 还提供了一个共同基金的工具可以来寻找类似表现,但是费用更低的其他 ETF,这就是一款 ETF 发掘工具。
  • Google Stitch:AI 驱动的 UI 设计工具让创意快速成为现实 在昨天 2025 年的 Google I/O 大会上 Google 一口气发布了超多的 AI 工具集,其中包括了一款叫做 Stitch 的 AI 工具,它可以快速帮助设计师和开发者将 UI 设计理念变成可实际使用的设计稿,生成设计稿之后可以直接导入到 Figma,或者直接导出成前端代码。所以本文就具体来介绍一下 Stitch。