这是基于 Vim + Tmux
快速定制的一个针对 REPL
类编程语言的超轻量级开发环境, 不须要任何 GUI
, 运行于纯粹的文本界面, 因此响应速度很快, 并且对于系统的要求很低, 在一些内存有限的旧电脑上也能够流畅地运行.html
本来的目标是搭建一个能够流畅运行于 Raspberry Pi 2
的超轻量级 Common Lisp
调试开发环境, 用户能够经过 SSH
登陆到树莓派上进行不受限制的开发, 最大限度地利用树莓派的硬件计算能力, 而不须要启动任何类型的 视窗
.git
后来发现本集成环境能够支持任何一种拥有 REPL
机制的编程语言, 如 Clojure
, Racket
, Schema
以及 Lua
等多种语言.github
环境需求: 须要安装好 vim
和 tmux
.spring
技能要求: 须要使用者熟悉基本的 vi
操做, 熟悉通常的 tmux
操做.编程
Emacs
下的 Slime
相比快捷键支持的调试命令比较少利用了 tmux
能够在在不一样窗口|面板间传输|接收数据的能力windows
须要为 vim
按顺序依次安装以下插件:socket
必需安装:编程语言
pathogen rainbow-parentheses vim-slime布局
可选安装:
pathogen
:首先为 vim
安装 pathogen
插件, 有了它能够超级简单地安装设置其余插件.
分别创建 ~/.vim/bundle, ~/.vim/autoload 目录
cd ~/.vim mkdir bundle mkdir autoload
把 pathogen.vim 文件下载到 autoload 目录下
cd ~/.vim/autoload wget https://tpo.pe/pathogen.vim
rainbow-parentheses
和 vim-slime
:进入 ~/.vim/bundle/
目录, 克隆 rainbow-parentheses
和 vim-slime
便可, 剩余的 pathogen
会自动为你安装:
cd ~/.vim/bundle/ git clone https://github.com/kien/rainbow_parentheses.vim git clone https://github.com/jpalardy/vim-slime
vim-clojure-static
跟上面的步骤同样:
cd ~/.vim/bundle/ git clone https://github.com/guns/vim-clojure-static
接下来要对上述插件进行配置, 下面会详细介绍如何配置.
须要分别对 vim
和 tmux
进行配置, 主要是修改位于 ~/
目录下的 .vimrc
和 .tmux.conf
这两个文件.
下面是配置好的文件, 把你原来的这两个文件作一个备份, 而后把这两个文件直接克隆到你的 ~/
目录下.
execute pathogen#infect() syntax on syntax enable set number set autoindent filetype plugin indent on “ vim-slime options “ Clojure options. let g:slime_target = "tmux" let g:slime_paste_file = "$HOME/.slime_paste" “ rainbow_parentheses options autocmd Syntax clojure RainbowParenthesesLoadRound autocmd BufEnter *.clj RainbowParenthesesToggle autocmd BufLeave *.clj RainbowParenthesesToggle let g:rbpt_colorpairs = [ \ ['magenta', 'purple1'], \ ['cyan', 'magenta1'], \ ['green', 'slateblue1'], \ ['yellow', 'cyan1'], \ ['red', 'springgreen1'], \ ['magenta', 'green1'], \ ['cyan', 'greenyellow'], \ ['green', 'yellow1'], \ ['yellow', 'orange1'], \ ] let g:rbpt_max =9 “ vim-clojure-static options let g:clojure_syntax_keywords = { \ 'clojureMacro': ["defproject", "defcustom"], \ 'clojureFunc': ["string/join", "string/replace"] \ }
# ############################################################## # Global settings. # # Switch the prefix to Ctrl-a since Ctrl-b interferes with Vim. # set -g prefix C-a # unbind C-b # Change the default input delay in order to improve Vim # performance. set -sg escape-time 1 # Number windows and panes starting at 1 so that we can jump to # them easier. # 设置 tmux 窗口序号从 1 开始, 设置 tmux 面板序号从 1 开始 set -g base-index 1 set -g pane-base-index 1 # vi mode. set -g mode-keys vi set -g status-keys vi # 256-color mode. set -g default-terminal "screen-256color" # ############################################################## # Key bindings. # # Reload .tmux.conf with "r". # 修改 tmux 配置后加载新配置文件的快捷键为: Ctrl-b r bind r source-file ~/.tmux.conf \; display "Reloaded!" # Split windows with a more visual set of characters. bind | split-window -h bind - split-window -v # Select panes with vi-style movement commands. # 使用 h j k l 选择面板, 也能够用上下左右箭头来选择 # 具体快捷键为: Ctrl-b h -> 左边面板 bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # Resize panes with vi-style movement commands. # 调整面板大小 # 具体快捷键为: bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5
假设咱们准备试验 Common Lisp
开发环境, 具体的实现是 CLISP
.
tmux
, 在当前窗口建立两个面板(pane
), 快捷键为: C-b c
, 也就是: Ctrl-b c
;vi
编辑一个名为 test.lisp
的文件;REPL
, 例如: clisp
.补充: C-b q
能够查看当前窗口全部面板的编号
如今就能够进行 Common Lisp
代码调试了, 光标放在代码编辑区(切换面板的快捷键为 C-b o
), 输入一段代码,以下:
(+ 123 245)
光标保持在括号内, 进入 vi
命令模式, 输入快捷键 C-c C-c
, 首次执行此命令, 会要求设定目标, 提示输入内容以下:
tmux socket name: default `回车` tmux target pane: `:2.2`
:2
表示 2 号窗口, .2
表示2号窗口的第2个面板
这样就会把表达式 (+ 123 245)
发送到 2 号面板的 REPL
, 立刻就会被求值
默认的快捷键绑定:
C-c C-c 把编辑区光标所在处的代码段落发送到 REPL 区 C-c v 从新设定发送目标, 须要按照提示输入:
提示信息以下:
tmux socket name: default 回车
tmux target pane: :2.2
":" 单独输入一个冒号表示当前窗口,当前面板, 这是合理的默认值; ":i" 冒号跟一个数字 i 表示第 i 个窗口, 当前面板; ":i.j" 冒号 数字i 小数点 数字 j 表示第 i 个窗口,第 j 个面板; "h:i.j" 若是前面再加一个 h, h 表示
tmux
的h
号会话,h
多是会话名,也多是数字, 后面的含义不变.
vim
的快捷键(命令状态下输入):C-f 和 C-b
向后或向前翻页 C-p 和 C-n
vi
自带的简单自动补全
tmux
的快捷键:C-b r
修改 .tmux.conf
文件后快速加载 C-b 数字
跳转到数字对应窗口 C-b 空格键
调整窗口的面板布局 C-b |
或 C-b "
新建面板跟当前面板左右分布(水平分布) C-b -
或 C-b %
新建面板跟当前面板上下分布(垂直分布)
本项目参考了以下文档: