Vimer 的福音:Mac 下 Caps + hjkl 作为方向键

本人所用的键盘是 WASD VP3 61 Key 的 -- Poker 3 方案,可以不借助于软件直接键盘上设置为 Caps + hjkl 来作为方向键。Caps 跳线为 Fn, 并选择一个 Layer, 把原本 Fn + ijkl 的方向键组合键重新映射为 Fn + hjkl 即可。

办公室的 61 键的键盘借于朋友体验,所以又重新把 DAS 87 键摆了出来。由于习惯了 61 键的 Caps + hjkl 的方向键,在 87 键盘上每次按方向键时右手都要离开它的 Home Row,很是不爽。别说是 87 键,即便是有些键盘把方向键压缩在右 Shift 下方,都无法接受右手右下移去按方向键。

Caps 键没什么卵用(只会用 Caps 来输入大写字母的当我没说),却常年占据着黄金位置(左手掌无需移动就能按到),所以主意是如何把 Caps 另作他们,对于 Vimer 来说最理想的方向键是 Caps + hjkl。

Mac 下有个键盘映射的工具 Karabiner, 先前的版本 KeyRemap4MacBook 只支持到 Mac OS 10.8, 而 Karabiner 也只能支持 10.9 到 10.11。而我的 Mac 系统是 macOS Sierra 10.12, 有一个不完全特性的 Karabiner 叫做 Karabiner-Elements, 它不能像 KeyRemap4MacBook 和 Karabiner 那样支持直接组合键的映射。因此在 macOS Sierra 一直未能把方向键映射成某个功能键(如 Caps) + hjkl,不得不用物理方向键。

有两种方法把 Caps + hjkl 映射为方向键

阅读全文 >>

fish 2.2.0 (July 12, 2015) 支持 vi 模式

随着 Mac 下终端的使用日益增多,系统默认的 bash 已经满足不了需求了,于是有了更为强劲的 fishzsh,以及它们各自的强心剂 Oh-My-FishOh-My-Zsh. 我的选择是 Fish 和 Oh-My-Fish。

到目前为止,最新的 fish 2.2.0 于 2015 年 7 月 12 日发布,Release notes 如下 http://fishshell.com/release_notes.html,其中显著改变有:

  • Abbreviations: the new abbr command allows for interactively-expanded abbreviations, allowing quick access to frequently-used commands (#731).
  • Vi mode: run fish_vi_mode to switch fish into the key bindings and prompt familiar to users of the Vi editor (#65).
  • New inline and interactive pager, which will be familiar to users of zsh (#291).
  • Underlying architectural changes: the fishd universal variable server has been removed as it was a source of many bugs and security problems. Notably, old fish sessions will not be able to communicate universal variable changes with new fish sessions. For best results, restart all running instances of fish.
  • The web-based configuration tool has been redesigned, featuring a prompt theme chooser and other improvements.
  • New German, Brazilian Portuguese, and Chinese translations.

我对第二点比较感兴趣,即增加了 vi 模式,在 fish 下运行 fish_vi_mode 命令,或者在 ~/.config/fish/config.fish 中加上 fish_vi_mode 便自动进入 vi 模式。 阅读全文 >>

Mac OS X 下吾所倾爱的三个程序员编辑器

作为编程,讲救效率自然是用各种 IDE,诸如 Idea, Eclipse, NetBeans 等。但平时总也离不开一款趁手的纯文本编辑器,如阅读各种语言的代码,简单编辑。我就经常会用 Sublime 这类工具的列编辑功能,奇怪于为何 IDE 们鲜有提供列编辑的特性的。

在 Mac 下的 TextEdit 其实是一款富文本编辑器,且未给编程带来任何便利。根据本人从开始扑向 Mac OS X 平台起到现在,选择过三款程序编辑器,它们分别是 TextMate, Sublime 和 Atom,前两为付费的,最后一个是免费的。

1. TextMate

最早听说很多人喜欢用它写 Ruby 程序,也不知是不是真的. TextMate 以其卓越的 Bundle 们驰行于天下。只是最近几年来它却裹足不前了,似乎失去了前进的方向,一直稳定在 1.5.11 版本上,2.0 已经 alpha 很久了. 其间好像思考过开源,出现在了 GitHub 上 https://github.com/textmate/textmate,少有维护。 阅读全文 >>

Mac OS X 下安装使用 Docker

前注: 欢迎进到本页, 本篇写时较早, 而 Mac OS X 下 Docker 早不建议用 boot2docker 了, 取而代之的是 docker-machine. 请点击链接 Mac OS X 下安装使用 Docker (新) 查看最新安装过程与体验

云主机可以选择操作系统镜像快速创建主机,这比虚拟机更便捷了,我们本地也可以这么做了,因为有了 Docker 这个东西。它依赖于 LXC(Linux Container),能从网络上获得配置好的 Linux 镜像,非常容易在隔离的系统中运行自己的应用。也因为它的底层核心是个 LXC,所以在 Mac OS X 下需要在 VirtualBox 中跑一个精小的 LXC(这里是一个 Tiny Core Linux,完全在内存中运行,个头只约 24MB,启动时间小于 5 秒的 boot2docker) 虚拟机,构建在 VirtualBox 中。以后的通信过程就是 docker --> boot2docker --> container,端口或磁盘映射也是遵照这一关系。

理解了上面的关系,开始说说 Docker 安装过程

1. 安装 VirtualBox, 不多讲, 因要在它当中创建一个 boot2docker-vm 虚拟机

2. 安装 boot2docker

brew install boot2docker

你也可以手工安装 阅读全文 >>

Mac 下 You don't have permission to access /~{username}/ on this server

当你在 Mac OS X 下启用了 Web Sharing,其实就是 Apache2 服务, 到浏览器里访问 http://localhost/~{username} 时提示

Forbidden

You don't have permission to access /~{username}/ on this server.

{username} 代表当前系统用户名。

看到上面的问题,首先会想到的是目录下 /Users/{username}/Sites 下的文件权限问题,有可能,但我碰到的问题不是这样的。

而是需要在目录 /etc/apache2/users 创建一个文件 {username}.conf,如 Unmi.conf,甚至可以任意文件名,文件内容如下:

阅读全文 >>

Mac OS X 下给系统自带的字典安装词库

Mac 自带了 Dictionary, 你可以给它安装丰富的字典,中文的或各种其他领域和语言的。安装方法如下:

1. 下载 词典的转换程序 DictUnifier,并执行它

2. 下载 StarDict 词典.  目前可从 http://abloz.com/huzheng/stardict-dic/ 处选择您需要的词典

3. 下载完成之后, 把下载的压缩包直接拖到 DictUnifier 界面上转换.

4. 打开 Dictionary,在它的 Cmd + , 进入的 Preferences 配置界面中就可以选入新安装的字典

完工!

Mac 下包抓取(sniffer) 工具介绍

由于近期常工作于 Mac 环境下,对有些应用稍加深入点研究就免不了要用到网络包抓取工具来分析。早先在 Windows 环境用过老牌的 Sniffer Pro 和 Netxray,以及后来都用免费开源的 Packetyzer 和  Wireshark。偶尔还用过 Windows 服务版自带的网络监视器。

那 Mac 下有什么好用的抓包工具呢,试用了一下下面几个工具:

一. tcpdump 命令

因为它是 Unix 族的,所以首先想到的是 tcpdump 工具,确实 Mac 下也有这个命令,但用起来也太难了,全在命令行下,看起来不直观。

tcpdump 命令的使用可参考以下两个链接:

1. Mac OS X: How to capture a packet trace
2. A tcpdump Tutorial and Primer

二. Ethereal

图形界面的,跨多平台,功能也不错,不过基本你可以忽略它了,它自 2006 年以来就没再发展了,永远死守在 0.99 版了。它就是大我鼎鼎的 Wireshark  的前生。

三. Wireshark

轮到 Wireshark 的隆重出场了,作为 Ethereal 更名后的产品,它仍然是开源的且多平台通吃的。你只要在 Windows 上用过它的话,在 Mac 下的操作方式都一样的。 阅读全文 >>

强制退出Mac程序的六种方法

用电脑时间长了,难免会遇到程序卡住,风火轮狂转不停,没有任何相应等情况。可能是由于程序冲突、缓存不足或者一些bug等情况导致,这个时候我们就需要强制退出这个程序了,下面有六种在Mac系统中强制退出程序的方法,大家至少应该记住一两个。

1、使用键盘快捷键强制退出处于活跃状态的Mac程序快捷键:Command+Option+Shift+Esc这样按住一两秒钟,就可以强制退出当前程序了,算是最方便的一种方法。

2、打开强制退出程序窗口

使用快捷键:Command+Option+Esc

来打开“强制退出应用程序”的窗口,然后选中你需要退出的程序,再点右下方的“强制退出”即可。 阅读全文 >>

TextMate 通用快捷键

对于 Unix 族下的文本编辑器,VI 功能稍弱,Emacs 的能力是没得说,但学习曲线太陡峭了,于是簇拥到 TextMate 旗下。快捷键能让你大大的提 升使用的效率,它可以让你的手尽量少在键盘与鼠标之间飘来飘去。相比于 Windows 平台,Mac 更推崇使用快捷键来操作,搭配着大大的触摸板后,鼠标真的就有点多余了。

这里列出的所谓通用快捷键是不怎么涉及那些 Bundle 中的特定的快捷键而言的,还有些是系统通用的快捷方式也会提到

1. mate 命令:

mate .      以当前目录启动一个项目
mate a.txt b.txt *.csv  afolder afolder/bfolder  指定文件、通配符的方式,或目录来启动一下项目

阅读全文 >>

TextMate 编辑 HTML 使用的快捷键记录

本篇是介绍来自于 HTML Bundle 的快捷键

1. 产生 HTML 注释 <!-- -->,用 command+/,这与多数 IDE    产生注释的方式是一样的。而要产生多行的注释就用 option+command+/,如:

<!--
    
-->

如果选择文本后按 command+/ 或 option+command+/ 的效果分别是:

<!-- should get
multi-line comments -->

<!--
should get
multi-line comments
-->

⇥ 表示 tab 键,例如应用代码片断的时候,如输入 head,后 tab 键,有多个同名片断时,数字选择就得到完整的代码版断。

2. 插入 html 标签, ctrl+shift+<, 即 Insert Open/Close Tag

输入 html,然后按 ctrl+shift+<,  变为 <html></html>
输入 a id="abc",选择上 a id="abc",就变为 <a id="abc"></a>

3. 包裹上标签,ctol+shift+w,即 Wrap Selection in Open/Close Tag,效果是:

直接按 ctrl+shift+< 和 ctrl+shift+w,的效果是一样的,得到 <p></p>,改前面 p 为 head,就变成 <head></head>
输入 hello 并选择上 hello,然后 ctrl+shift+w 就得到 <p>hello</p>,改前面的  p 为 div,就变成 <div>hello</div> 阅读全文 >>