這個我絕對hold不住了,以前一直想在vim裏面爲android項目打斷點。不過最後只能作到輸出用於打斷點的命令,而沒法和jdb結合起來運行。不過昨天無聊去stackoverflow上問了一下以後,竟然找到了解決辦法。這個世界太美好了!java
如今的缺陷是沒法debug inner class,等何時蛋疼了再寫個正則匹配下內部類。不過如今這種程度應該能解決不少問題了。android
下面上渣代碼,請盡情噴。shell
vim script:vim
function! DebugContacts() let ori_str = expand("%:r") let start_index = matchend(ori_str, "src\.") let debug_path = strpart(ori_str, start_index, strlen(ori_str)) let debug_path = substitute(debug_path, "/", ".", "g") let debug_path .= ":".line(".") echo expand(debug_path) exec "!echo stop at ".debug_path exec "!{ echo "." stop at \"".debug_path."\"; cat; } | debug_contacts" endf noremap <leader>dd :call DebugContacts()<cr>
debug_contacts是寫在shell腳本里面的tcp
function debug_contacts() { local pid=$(adb shell ps | grep android.process.acore | awk '{print $1}') adb forward tcp:7777 jdwp:$pid jdb -attach 7777 -sourcepath $CONTACTS/src }
大概是這樣子了,我先爽去了。debug