在Linux系统中tmux 和 vim两个工具可以用来开发项目,很多人宁愿使用tmux 和 vim 也不用键盘和鼠标说明这两个工具有着独到之处 。本文就来介绍一下在Linux系统中把tmux和vim打造成IDE 。

很多人习惯于将终端工具与代码编辑器平铺在一起 。在 web 开发工作通常需要一个控制台用于输入 ad-hoc 命令,一个控制台操作数据库,以及一个控制台查看日志 。同时我的一些项目还会使用测试工具来对有修订的文件进行自动化测试,因此我也希望同时能看到这些测 试执行的状态 。
vim 提供了很多插件可以将上述功能集成在一起,但我更喜欢 vim/tmux 这个组合 。这是个可视化的操作工具 。
通用这种方式使用命令行工具,我们可以高效地打造一个轻量级、可定制化 IDE。我还发现在 tmux 的多个控制台窗格(pane)中输入 Unix 命令的方式很好用,因为这种方式可以很容易地将命令结合起来从而提供复杂的脚本化操作,而不需要臃肿的IDE工具 。
这种使用方法与使用传统的IDE的区别在于其提供的界面非常契合我当下的工作,且它仅受限于我所安装命令行工具以及脚本语言 。我可以按需创建 tmux 窗格(pane)以及 vim 分割(split)窗口,而不要开发什么模板 。尽管 Eclipse 和 Xocde 有提供一些以任务为中心( task-foruce) 的界面,我还是觉得这些有些碍事 。尤其是 Xcode,它所提供的快捷键感觉像是后面才补上去的,我还是得不停地使用鼠标进行操作 。
【在Linux系统中如何把tmux和vim打造成IDE】 支持任务间快速切换则是另一个优点 。我是一个自由职业者,通常一天中我需要在 3、4 个项目间进行切换 。在使用 tmux 之后,我可以先断开(detach)一个会话稍后再切回来继续,这使我能够专注于当前工作 。我觉得这个是控制台 vim 工具相比于 GUI vim 或是同时开一堆控制台工作而言的一个极大优势,因为 Eclipse 以及 Xcode 总是在关闭工程时尝试保存界面状态(不过最新的版本的 Xcode 在关闭工程貌似总是将我打开的分割窗口关闭掉) 。
为什么使用 hjkl 键
这种操作方式看起来可能很别扭,不过如果你能够熟练地盲打,vim 和 tmux (配置成 vim 键风格)可以很容易让手指远离鼠标而只保持在键盘主键区(home row)进行操作 。(译者注:home row 指的是键盘上的 “A、S、D、F、J、K、L、;” 这 8 个按键 。)
这正是 hjkl 键的秘密:对于哪些盲打正确率高的人而言 。对于那些不习惯使用这些按键的人,可以先慢慢尝试几天 。并先专注于打字的正确性,充分利用好你的十个手指 。
使用 hjkl 键的道理让我想起说服游戏初学者去使用 wasd 键而不使用方向键情况 。起初 wasd 的确会觉得不太直观,但这使得同时使用键盘以及鼠标操作变得更加容易 。当适应这种操作方式之后,其优点是显而易见的 。
配置提示
在 ~/.tmux.conf 文件中做如下的配置:
set-window-option -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
这个能让我在 tmux 中使用 vim 的快捷键 。
如果你正在努力掌握 vim 的快捷键,请在 vim 的编辑模式下关闭方向键,具体可以参考:Vim: Making those Arrow Keys Work With You。
如果你是个 vim 新手,这里值得一提的是 vim 支持 ctags 。同时还有 TagHighlight 插件可以在 pane 中动态地显示当前文件编辑缓存区的多个标签(tags),这是个类似于 IDE 的功能 。
Dotfiles文件
你的 IDE 配置文件是否能够在多台电脑间同步?
推荐阅读
- Linux系统中jenkins使用的简单介绍
- Linux利用Zabbix监控数据库系统的步骤
- 在Linux系统中挂载LVM分区的步骤
- Win8系统取消浏览器开机启动的方法
- Win8不能关机怎么办?
- 光遇跺脚先祖在哪里
- 分享3个最适合在家赚钱的副业 在家可做的兼职有哪些
- 起亚K5新款上市 起亚k5标配
- 酒店开房记录可在线查询 宾馆入住记录查询app
- 利用装备继承系统清除红字,比直接清除节省300万 DNF装备有红字怎么解除
