• vim的问题 - [开源之旅]

    2010年12月11日

    这二键在之前一直很正常,就是用了tmux后才发现出了问题,按下时不会跳到行的开头(结尾)而是把字母的大小写颠倒……这问题困扰了我也有一段时间了,之前总以为是tmux的问题,所以找来找去也找不到解决的办法,刚才灵机一动,心想,或许是vim本身的问题,结果一找就找到了解决的办法。

    在.vimrc中添加:

    cmap <Esc>[7~ <Home>
    cmap <Esc>[8~ <End>
    nmap <Esc>[7~ <Home>
    nmap <Esc>[8~ <End>
    imap <Esc>[7~ <Home>
    imap <Esc>[8~ <End>

    这六行键位绑定即可完美解决此问题。

  • 在用上了tmux后那musca的手动分割就变得没那么重要了(因为tmux可以分屏),我现在更需要带有tag功能的wm,是dynamic tiling还是manual tiling也没所谓了,选来选去,最后选择了曾经就心仪过的极其小巧的dwm……

    弄了一个早上,算是把基本的设置都弄好了……估计下星期(因为要回学校上课)就能正式投入使用了。

  • 改动了不少细节,顺便秀秀tmux。

  • 具体的介绍就免了,我只在这说说一个困扰了我许久的问题,就是如何实现像screen那样执行screen -R(tmux相应的命令是tmux attach)时如果没有可attach的会话(session)就新建一个新的会话而不只是报告没有已运行的会话(no sessions)。

    经过我一番的查阅相关资料,发现tmux的作者在设计时并没有这样的考虑,不能简单地用tmux加上对应的命令实现,但我还是通过搜索找到了达人们的解决办法,就是执行:"if tmux has; then tmux attach; else tmux new; fi"(可简略为"if tmux has; then tmux a; else tmux; fi")(本文结尾处有更简单的实现)。

    如果想在启动rxvt的同时启动tmux并实现以上所提到的功能(我就是这样用的),只需把命令改为"if tmux has; then urxvtc -e tmux attach; else urxvtc -e tmux new; fi"即可。

    另外,再说说tmux相当于screen的优势吧。最重要的一点就是tmux支持纵向及横向的窗口分割,而screen只支持一个方向的,就因为这点我就毫不犹豫地选择了tmux,另外,tmux相对screen来说要轻量一点,资源占用也少点(听说而已)。

    反正,tmux是个好东西……(为啥我现在才用上它呢?)

    补注:后来发现使用"tmux attach || tmux new"即可。