要設置好這個開發環境,首先要準備幾樣東西:
- clojure 的 nREPL
- vim 8
在 vim 裡安裝合適的 plugin :
cd ~/.vim/bundle
git clone git://github.com/tpope/vim-fireplace.git
啟用方式:
- 在 clojure 的專案資料夾,開啟一個 shell ,啟動 nREPL。指令是 lein repl
- 在同一個資料夾,開啟另一個 shell ,啟動 vim 。如此一來, vim 的 fireplace plugin 就會自動與 nREPL 連接了。
文字檔不在 clojure 專案資料夾內時,fireplace 的啟用方式:
- 還是一樣啟動 nREPL。指令是 lein repl
- 如果文字檔並不是 clj 結尾。需要先讓 vim 知道它是 clojure 的 source code ,下指令
:set filetype=clojure - 連線到現在已經啟動的 nREP ,例如下指令
:Connect nrepl://127.0.0.1:41767
fireplace 的常用指令如下:
求值
求值
- 隨便選一個 expression 做 repl 移動游標到程式碼上,然後 :Eval 。快速鍵是 cpp
- 指定一段區間的程式碼做 repl :1,3Eval
- 啟動 Clojure Quasi-REPL cqq
- 只打開 Clojure 的 Quasi-REPL cqc
在 quickfix 視窗顯示 docstring 或是 source code
- 快捷鍵 K 。 對應 repl 的 (doc ) , 也可以用 :Doc
- 快捷鍵 [d 。 對應 repl 的 (source ), 也可以用 :Source
在文件裡穿梭
- 快捷鍵 [ ctrl + d 。 跳躍到符號定義的那一行,即使是定義在 jar 檔中。
- 快捷鍵 gf 。 語義是 go to file 。 對於 namespace 會產生作用。
重新載入程式碼
- 讓 REPL 重新載入現在的 namespace :Require
- 讓 REPL 重新載入現在的 namespace 及其使用的 namespace :Require!
啟動 ClojureScript :Piggieback [build-id] // 此處的 build-id 是 keyword 形式
啟動 ClojureScript 的 REPL 之後,要先
1. npx shadow-cljs watch app
2. 開啟 browser
啟動 ClojureScript 的 REPL 之後,要先
1. npx shadow-cljs watch app
2. 開啟 browser