沒穿方服

封存

顯示╱隱藏內文

寫個 script 在 shell 透過 rhino.jar 跑 fulljslint.js,在 Vim 也寫個 function 呼叫它,於是可以用 quickfix window 除錯。

就像有個超級不吝指教的真人陪你寫程式

  • 在 Windows 上沒用。
  • 不使用 jslint.vim。 雖然跨系統、放 jslintrc 設定檔等作法很棒,但是 1) 即時檢查和 highlight 標錯的顯示方式都不是我要的,甚至有點惱人。 2) 想試試直接用大師寫的 fulljslint.js,在 Vim 以外的地方可能也較好整合。
  • 不使用 javaScriptLint.vim,因為 JavaScript Lint 不是 JSLint 啊,跟這主題無關。
  • 使用 Rhino 當 JavaScript engine,因為最好裝。
    不過它的 JavaScript 版本只實作到 1.7(Firefox 2 的程度)所以像 JSON 就不能直接吃,要多 include 個 JSON2.js
  • 具體用到的檔案:
    • ~/bin/jslint (唯一實際被叫的指令,內容主要是 java -cp rhino.jar …)
    • ~/scripts/fulljslint.js (即 Douglas Crockford 的 fulljslint.js)
    • ~/scripts/jslint.js (由官網的 rhino.js(現已移除)修改而來,連接 fulljslint 和 rhino)
    • ~/scripts/json2.js
    • ~/scripts/rhino.jar
  • 修改錯誤訊息的格式,改成跟 closure compiler 相似,就不必再調 Vim 的 errorformat。
  • 目前 JSLint 用的預設 option 直接寫在呼叫 fulljslint.js 用的 script(jslint.js)裡。
  • 在 shell 中呼叫的指令是 jslint file.js '{"extraOptionKey":value}'。 extraOption 可以用來蓋掉預設選項。
  • 在 Vim 中呼叫的指令是 :JSLint

取得檔案

工作滿一年

  • 還經常冒出剛找到工作的爽爽心情
    • 回家在公車上會忍不住偷笑。(不過可以搭公車的這間倒了……)
    • 從洗手間走回辦公室也莫名地樂。
    • 應該是同事都很夢幻的緣故。
  • 剛開始還覺得上班跟自己在家做的事差不多,就是有錢拿
    • 久了技術有進步,不過作品都不能表達自己,這麼說也就沒什麼了不起的事。
    • 所以不上班也可能更好。
  • 某些場合還是會發現自己的缺點
    • 以前發現的、不能改的就當作人格特質,所以年紀到了就不該有新的缺點才是。
    • 這時發現技術不能解決的問題就毀了。

此外未滿七個月就拿不到失業救濟金這回事,也是難得的爛經驗。

左邊會顯示 mark 位置

在沒有規則的位置間移動

雖然 ``ga 等跳轉指令有不少,但是要跳到沒特殊意義的位置——例如「剛剛有看到,不過具體看到什麼完全沒印象」——這種情形除了 mark 應該也沒有更好的解了。

於是用 mamb、……放了幾個 mark,結果更難用:

  1. 視覺上看不見哪兒有 mark,所以不知道某 mark 的位置,比方 `b 會跳到哪裡去。
    事實上按了 ` 之後,就會卡在不知道要按哪個字母。
  2. 不知道哪些 mark 已經用過,例如下 md 的時候要擔心會不會蓋掉舊的。
    事實上按了 m 之後,就會卡在不知道要按哪個字母。

ShowMarks plugin

ShowMarks 會利用 sign column(在行號左邊的一欄,預設不會有)顯示 mark 的位置。雖然是很老的 plugin,不過先進替代品從缺,功能也冇問題,就用吧。

唯一不滿是用了 CursorHold autocmd 在閒置時自動開啟(如果開啟檔案後,突然畫面左邊冒出一條 bar,就是這功能),所以 fork 一份 bootleq/ShowMarks,加上 let g:showmarks_auto_toggle=0 即關閉它。

wokmarks.vim plugin

wokmarks.vim 提供不必記憶 mark 名稱(例:a-z)的操作。指令會變成 Prev、Next、Set、Toggle、Kill 這樣的感覺;另外設置 mark、在 mark 間移動時也會在狀態列顯示訊息。

具體設定

gist: 738007 - [vimrc] ShowMarks and wokmarks.vim- GitHub

完成後,看到有感覺的行就按 mm 放標記(sign column 會自動開啟),覺得這行沒用就按 mm 取消標記,想瀏覽標過的地方就按 mjmk 前後移動。若新開的檔案沒有顯示任何標記,就按 momt 顯示。

限制

因為使用 Vim 本身的 mark,所以 mark 總數有限(a-zA-Z,其中大寫的又不適合單一檔案使用)。

如果真的需要 26 個以上,也有一些 plugin 會另行記錄標記資訊,不過「不用 Vim 的 mark」是否比較好,就要考慮一下了。