All posts tagged Terminal

Terminal.app echo breaks after ctrl-c

基本的症状和 这里描述的问题 如出一辙,我也是 tail -f log/development.log 后出的问题,同道中人啊,提问者自己提供了两种解决方法(自问自答?):

$ stty echo

上面这个确实work,cool!

$ irb

货真价实的rubist,还想的出来这样的解决办法,不错不错,我也试了下,很遗憾在我这并不work…

底下的评论以及种种迹象表面这并不是mac自带的老版本bash的bug,而是一个bash-completion的bug,所以另外一个很make sense的solution就是更新bash-completion,我个人比较prefer这个solution,当然你也可以用macports安装最新版本的bash替换系统自带的bash,喜欢折腾的尽管上。

$ sudo port -v selfupdate
$ sudo port install bash-completion

verify一下,active的是1.3的bash-completion就算大功告成了。

$ port installed | grep bash-comp
  bash-completion @1.1_6
  bash-completion @1.2_0
  bash-completion @1.3_0 (active)

Terminal.app use option as meta key

最近经常要在psql里输入很长很长很长很长的sql…要问有多长?答:很长,join多的都可以把hash-join temporary file搞到 “no space left on device” 的长…… ,然后蛋疼的case就是你写到很长的时候突然想修改句子中间的某个部分,注意是中间,不是开头也不是结尾,而你的光标还在行末朝你一闪一闪的…

你恨不得那时用鼠标能够点一下,但是很可惜这里是terminal,鼠标单击基本处于屏蔽状态;光标一个一个左移那是在考验你的毅力和忍耐力,你要时刻保持警惕不然就会漂移过头(一般此时容易睡着,所以那时我就很淡定的喝几口水,等光标移到后一般就可以去续杯了……);后来想到可以一个一个word的移啊,怎么这么傻… 由于bash默认是emacs的key binding,查了一下往前和往后移一个word的shortcut key是Meta-f和Meta-b,查这些花了1分钟不到,但是接下来2个多小时我一直在找这个Meta key…… 后来终于总算被我一个一个这么排列组合试出来了…… 做梦也没想到竟然是ESC… 可以想象一下同时按esc和b来往后移一个word的那种发自内心的不协调。

不过,最后还是顺利解决了(不然就没有标题,亦没有此文了),Terminal.app提供了一个选项帮助用户map option (就是alt) 到meta key,esc虽然还是meta,但显然我们更喜欢用大拇指去按alt (编者注:只要玩warcraft的人都知道用大拇指去按alt查看生命值那是多么重要的操作,哈哈)

最后附图一张,以作纪念: