normal 命令指定是 Vim 下可以通过 normal 来指定执行 Normal 模式下的命令,以便于达到快速编辑大量文本的操作。
比如说要批量注释一批代码,需要在行前插入 #
替换:
:%s/^/#/g
visual block:
gg<Ctrl-v>I#<Esc>
注释第一行后用 dot command 重复执行每一行
.
我们可以用 normal 命令实现上述需求,步骤:
光标定位到首行,执行:
I#<Esc>
选中之后的所有行
jVG
然后执行
:'<,'>n
Read more ...
Vim 的设计哲学中有这样一句话:”if you write a thing once, it is okay. However if you’re writing it twice or more times, then you should find a better way to do it”.
Vim 的 Macro 就是用来解决重复的问题。在 Vim 寄存器的文章里面已经对 macro 有所涉及, macro 的操作都是以文本的方式存放在寄存器中。
简单使用
录制 macro,在普通模式下使用 q + [a-z] 26 个字母中的一个:
Read more ...
很早开始我就使用 haroopad ,同样是一款简洁,跨平台的 markdown 编辑器,而在 Linux 平台除非遇到特殊情况想要仔细预览效果,我也一般都只在 Vim 中直接以纯文本形式编辑 markdown。但是为什么要再来试用这样一个编辑器呢,一是我不止一次得看到别人推荐,二来也是好奇心作祟。
Typora 一如她官网 —- https://typora.io/ 的简洁。没有多余的元素,直接面向文本,好评。下面也不用介绍他的功能多少多少,这种一般直接看他的官方 feature 介绍,看使用帮助就行。下面就介绍几个比较让我开心的功能。
更加快捷的
Read more ...
Windows 上有 ipconfig ,Linux 上有一个类似的工具,就是 ifconfig (interfaces config)。ifconfig 工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。
慎重提示:下面的所有相关命令,在清除明白其含义之后再输入到终端,另外不要远程到服务器执行,下面的命令可能导致远程服务器网络配置异常
命令格式
ifconfig [device] [parameter]
命令功能:
ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
命令参
Read more ...
Headless 最早的时候在 PhantomJS 听说过这个概念,后来在 GitHub 各种项目中总有人不断提起这个概念,而最新看到的新闻便是 Chrome 开始支持 Headless,也正激起了我了解的欲望。
什么是 Headless Chrome
Headless Chrome 是一个没有前台界面,只在后台运行的浏览器。浏览器正常的所有解析,渲染都可以由其完成。而开发者可以通过 client 和这个浏览器建立连接,通过 Google 提供的 Chrome DevTools Protocol 协议 来进行交互。总的来说 Headless 浏览器提
Read more ...
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 ...