Vim 本身有很多快捷键,vimrc 也可以配置很多快捷键,当然 Vim 也支持将不同的键映射到不同的键或者命令上。
最常见的键映射就是
nmap
vmap
imap
分别对应着修改普通模式 (Normal) ,选择模式 (Visual),和插入模式 (Insert) 下的键映射。
对于这几种模式,可以参考 Vim 模式
Map 命令
其实对于 map 命令的种类远不止于此
noremap 非递归映射 non-recursive
nmap
vmap
imap
cmap 在命令模式下生效
递归映射的意
Read more ...
全局命令 :g 在 Vim 中有着意想不到强大的功能。当想要在整个文件中对于匹配的行或者不匹配行进行一些操作时,应该第一时间想到这个 :g 命令。
:[range]global[!]/{pattern}/{command}
简写可以写成
:[range]g/pattern/command
[range] 指定文本范围,默认为整个文档
pattern 在范围 range 内的行如果匹配 pattern,则执行 command
! 表示取反,也就是不匹配的行,也可以使用 vglobal
command 默认是打印文本
整个命
Read more ...
Kibana 的查询语法基于 Lucene 的查询语法,他允许 boolean 值,通配符,过滤器等等操作。
字符串查询
通常一个查询会包含一个或者多个单词或者组合。一个简单的查询语句就是用引号包含的一组词,比如 “search demo”.
如果不包含双引号,Kibana 会单独的去匹配每一个词。
正则表达式查询
大部分正则表达式是允许匹配部分字符的,然而在 Lucene 中,正则表达式用来匹配整个字符串,比如 abcde 这个字符串
使用 ab.* 能够匹配
但是使用 abcd 是不能匹配的
正则表达式中,有一些保留字符
.
Read more ...
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 ...
使用编译安装 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 ...
Nginx 的相关介绍及安装可以参考之前的一篇文章
Nginx 相关的配置, Nginx 中的配置有两种分类,一种为单纯的指令 (directive),另一种为上下文配置块 (configuration context)。
指令 (directive),包含名称和参数名,以分号结束,比如
gzip on;
上下文通常声明一个作用域,比如 server 块
server {
listen 80;
}
在上下文中使用相同的指令时需要小心,一般子级上下文中的指令会覆盖父级中定义的值。
全局块
Nginx 的全局配置是影响整个 WEB
Read more ...
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 ...
把 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 ...
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 ...
在编写定时备份脚本时遇到一个需求,就是在 Bash 脚本中发送带附件的邮件。于是找到了 mutt。
Mutt 是一个命令行的邮件客户端,Mutt 能够轻松地在命令行发送和读取邮件。 Mutt 支持 POP 和 IMAP 协议。 尽管 Mutt 是基于命令的,但也同样有一个友好的界面。
如果不使用界面,使用 Mutt 命令发邮件也非常方便,只需要一条命令即可发送或者批量发送邮件。
功能说明
E-mail 管理程序。
语法
mutt [-hnpRvxz][-a 文件][-b 地址][-c 地址][-f 邮件文件][-F 配置文件][-H 邮件草稿]
Read more ...