這是基於 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 %
新建面板跟當前面板上下分佈(垂直分佈)
本項目參考了以下文檔: