iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0

再次附上這次的repo

今天開始來動手玩玩看Calva啦

首先我們先開個專案https://clojure.org/guides/deps_and_cli

在這邊我就使用deps.edn,裡面會有個cheatsheet.md,其中在慢慢更新我們日後會用到的一些命令

今天主要分享Calva常用的快捷鍵,以及整合repl

首先就是開啟Calva jack-in(F1->calva jack-in)

之後選擇deps.edn

https://ithelp.ithome.com.tw/upload/images/20230908/20103600oMY5uXflTH.jpg

然後就會出現了兩個視窗

https://ithelp.ithome.com.tw/upload/images/20230908/20103600IXfGGQSA1R.jpg

數字2是我們的repl啦

然後他預設會進入一個叫做user的namespace(在clojure裡,所有的東西都是用ns來區分)

我們就可以直接執行user裡面的程式

現在來試試看REPL以及常用的各種evaluate

(defn date-str
  []
  (t/format
    (t/with-zone (t/formatter "yyyy-MM-dd") (t/zone-id))
    (t/instant)))
   ___
    ↑

https://ithelp.ithome.com.tw/upload/images/20230908/20103600YxmTTO0Z6Z.jpg

首先,我的cursor在上面箭頭處,這很重要!!!

然後我們會看到右邊有三個結果

分別是

  • #object[java.time.Instant 0x7e687e17 "2023-09-08T10:01:32.304649Z"]
    這個是使用 Evaluate current form
    執行現在這個括弧的東西,所以就是(t/instant),可以想像就是new一個object
  • "2023-09-08"
    這個是使用 Evaluate current closing form
    執行最近的括弧,也就是(t/format (t/with-zone (t/formatter "yyyy-MM-dd") (t/zone-id)) (t/instant)),有點長,但就是把time這個object給format
  • #'user/date-str
    這個是使用 Evaluate top level form
    執行全部的form,也就是defn的東西,所以當我們執行這個就會把記憶體理的date-str給換掉

還有一個沒有寫到的東西,就是load/evaluate current file,把整份檔案都執行並載入記憶體

另外還有一個

Calva: Expand Selection (Ctrl+W)(這個跟預設shortcut binding的切換專案會衝突,但習慣就好)

他會一路幫你把"單位"往外選擇!!

所以搭配昨天的快速定義,這邊最常用的組合技就是

先Ctrl+W選起來->然後Evaluate current form->快速定義

這樣省下滿多選取複製的時間

所以這幾個常用的方法,都可以把快捷鍵記起來,打combo就很順了~


上一篇
[Day 4] 超效率之Snippets 必學技巧
下一篇
[Day 6] 實踐是檢驗真理的唯一標準
系列文
使用 Clojure 當個 Full-stack 開發者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言