从何而来
很久以来,我一直用vim写程序,不过我不太喜欢折腾,不会在vim里装一些花里胡哨的插件,一是不想那么装逼,实际就是懒得花时间去配置,二是我喜欢简洁,原生的vim已经够强大了,装那些插件还会影响vim的运行速度。
今天写代码的时候,觉得每次写完代码然后再退出vim到shell环境去编译代码,这个过程很不优雅。于是想到了之前用的tmux,二者一搭配,简直完美。
左边是编辑器,右边侧边栏用于查看文件,最下面用于编译代码。vim搭配tmux简直太方便了!对于我们这些经常在服务器上写代码的人来说,在tmux中用vim编辑文件的另外一个好处就是,如果长时间离开电脑,电脑可能会自动睡眠,这时很可能会断网,远程的ssh连接就会断开,然后正在编辑的文件也会自动关闭。如果用tmux的话,就不会有这个烦恼,使用tmux a
很快就会找到之前的窗口。
我教你啊
上面这个效果很简洁,而且操作也很优雅,正是我想要的。怎么搞的呢?你想学啊,我教你!
一个原生vim,一个原生tmux,没事不要瞎搞,二者一组合,其实就很强大。首先打开一个tmux窗口,我们就命名为tv_ide吧:
tmux new -s tv_ide
然后先横向分屏,使用ctrl + b + "
命令:
调整下方分屏的大小,使用ctrl + b + alt + ↓
命令,由于Mac系统中该快捷键被覆盖,所以我对该快捷键重新进行了映射,具体可以参考这篇文章:Tmux使用手册。
接着跳转到上面的分屏,使用ctrl + b + ↑
,再次分屏(纵向),使用ctrl + b + %
命令,调整右侧(左侧也可,看个人习惯)屏大小即可,这样我们的TV IDE就完成了!
最后可以做一些简单的修饰,比如我将下侧的终端提示符改成“Build Window: ”,右侧的终端提示符改成“File Explorer: ”:
export PS1="Build Window: " # 在下侧窗口中运行
export PS1="File Explorer: " # 在右侧窗口中运行
效果如下:
如何使用
打开与关闭
你可能说每次写代码都这样操作也挺繁琐的。其实并不是,只要远程的服务器不关闭,TV IDE可以永远驻留在服务器上,每次只要用tmux attach进去就可以:
tmux a -t tv_ide
当然,退出的时候要detach,使用ctrl + b + d
命令。
划重点:
# 退出TV IDE
ctrl + b + d
# 打开TV IDE
tmux a -t tv_ide
移动
在tmux中切换窗格很方便,只要使用快捷键ctrl +b + 方向键
即可,而且比你用鼠标快的多了。另外,如果想在tmux中滚动屏幕也很容易,只需要使用快捷键ctrl + b + [
进入复制模式,然后使用上下方向键即可滚动。如果你嫌这样滚动比较慢,那么可以使用pagedown或者pageup(Mac系统可以使用fn+方向键)。
总结
下面我对上面用到的命令做一个简单的总结:
tmux命令
- 创建一个新的tmux session
tmux new -s <session name>
- 断开连接tmux session
ctrl+b+d
- 关闭/退出tmux session
exit # 在session/window中使用exit命令退出
tmux kill-session -t <session name> # 关闭tmux session
tmux kill-window -t <window name> # 关闭tmux window,和上面的命令没啥区别
tmux kill-server # 关闭tmux服务器,会关闭所有的session
- 重新连接tmux session
tmux a -t <session name>
- 查看所有tmux session
tmux ls
tmux list-session
参考资料
- 超级全的Tmux使用指南:http://louiszhai.github.io/2017/09/30/tmux/