终端环境之tmux

今天继续介绍我的终端环境,tmux。

tmux 是一个优秀的终端复用软件,类似 GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。简单来说,tmux是一个multiplexers,他可以让你同时运行多个终端,在多个终端之间切换。

##why tmux?
用一个工具的第一问自然还是为什么要用。其实当时使用tmux的原因很简单。工作中经常需要长时间的编译。在想要回家时编译还没结束,可以在计算机休眠的情况下继续编译。简单的寻觅一番之后,就发现了tmux。而且远超预期,就一直用了下来。

其他让我非常喜欢的功能有:

Read More

Share Comments

我在用的mac软件(2)-终端环境之zsh和z(*nix都适用)

继续上篇介绍我的终端环境。这篇介绍zsh和z,其实这不局限于os x,在所有的*nix系统中都是可用的。

zsh

zsh作为bash的替代品,自然很多人要问:why zsh?
Zsh Workshop 有个长长的功能列表,用来回答这个问题。这里讲下我选择zsh的原因,当然,也是介绍zsh强大的功能。

  1. 兼容bash。这使得切换到zsh没有任何成本。
  2. OS X默认的bash版本实在是太老了啊……
  3. 拼写纠正。你总会不小心打错命令。这时,zsh会进行自动拼写纠正,如图:
  4. 更强大的补全。

    Read More

Share Comments

我在用的mac软件(1)--终端环境之iTerm2

之前一直有朋友要我分享下在用的mac软件,今天有空就来写一下,可能不止于软件,会有一些配置或者工具,或者叫环境更合适。有些可能一句话带过,有些会详细介绍。也不分类了,想到哪个就写出来。如果已经写的足够长了,就会分几篇来写。

###iTerm2+zsh+tmux的终端环境

#####iTerm2

其实现在os x的terminal已经做的很好了,但是iTerm2的功能依然要更强大一些。简述下优点和常用功能:

  • 开源免费。

  • 兼容性比默认Terminal更好。

    • 对于经常要远程使用的情况下,默认的Terminal在使用vi时经常出现不兼容的问题,而iTerm2在这方面显然做的更好。
  • 快捷键丰富。

    • ⌘ + 数字: 切换标签页。 ⌘ + 方向键 按方向切换标签页。
    • ⌘ + enter: 切换全屏

      Read More

Share Comments

记录遇到的零碎问题

日常开发过程中总会遇到各种各样奇怪的问题。相信大家都会有这样的体会:如果有人也遇到过这个问题,并分享了解决过程,自己就会很开心。如果这个问题没人分享过,那恐怕就要费劲一番周折了。这里记录那些各种小的莫名的琐碎的问题。方便自己查阅,也方便他人。会有大致分类,也会不定期更新。

vim

  • 在使用了session的情况下,neocomplete对于session中加载的文件无法正常使用。原因是其completefunc为空。解决办法是在session加载之前,执行vimrcneocomplete#initialize()。(在vimrc中加入execute neocomplete#initialize()即可)

    Read More

Share Comments

详解JavaScript中的this

JavaScript中的this总是让人迷惑,应该是js众所周知的坑之一。
个人也觉得js中的this不是一个好的设计,由于this晚绑定的特性,它可以是全局对象,当前对象,或者…有人甚至因为坑大而不用this。

其实如果完全掌握了this的工作原理,自然就不会走进这些坑。来看下以下这些情况中的this分别会指向什么:

Read More

Share Comments

web app指南之构建html5离线应用

创建运行在手机上的web app时,鉴于手机用户的网络情况,我们需要考虑到用户离线使用的情况。

html5支持构建离线应用程序。使用它的本地缓存机制可以将应用所需的资源文件都缓存到本地,从而实现应用的离线使用。首先要说明的是,本地缓存和传动的浏览器网页缓存是不同的,网页缓存基于网页,也就是缓存一个网页的内容,而不是整个app。同时网页缓存并不可靠,我们不知道我们的app中哪个页面已经缓存,该页面的哪些资源已经缓存,而本地缓存对于缓存内容是完全可控的。

Read More

Share Comments