在android DDMS LOG上搜索可能吗?

时间:2011-08-24 07:04:32

标签: android logging ddms

使用一些更类似于(CTRL + F)的简单方法在DDMS Log中搜索。 我知道通过LOG_TAG过滤以及在文本文档中复制粘贴的其他简单方法来执行CTRL + F.

1 个答案:

答案 0 :(得分:0)

如果您正在谈论 Eclipse ,则不存在此类搜索工具。

这是我探索日志的方法。

adb shell输出重命名为日志文件。

adb logcat > device.log

然后用vim探索logfile。唯一的问题是vim不会在更改时自动重新加载文件。所以我调整了vim filtering script以在每次搜索时重新加载文件,只需在搜索执行前添加edit!行(第8行)。

" Gather search hits, and display in a new scratch buffer.
function! Gather(pattern)
  if !empty(a:pattern)
    let save_cursor = getpos(".")
    let orig_ft = &ft
    " append search hits to results list
    let results = []
    edit!
    execute "g/" . a:pattern . "/call add(results, getline('.'))"
    call setpos('.', save_cursor)
    if !empty(results)
      " put list in new scratch buffer
      new
      setlocal buftype=nofile bufhidden=hide noswapfile
      execute "setlocal filetype=".orig_ft
      call append(1, results)
      1d  " delete initial blank line
    endif
  endif
endfunction

" Delete the current buffer if it is a scratch buffer (any changes are lost).
function! CloseScratch()
  if &buftype == "nofile" && &bufhidden == "hide" && !&swapfile
    " this is a scratch buffer
    bdelete
    return 1
  endif
  return 0
endfunction

nnoremap <silent> <Leader>f :call Gather(input("Search for: "))<CR>
nnoremap <silent> <Leader>F :call Gather(@/)<CR>
nnoremap <silent> <Esc> :call CloseScratch()<CR>

现在使用\ f of \ F进行搜索时,缓冲区会自动重新加载。检查脚本的vikia page以获取更多信息。