리눅스 커널에서 심볼 정의를 찾으려면 cscope/ctags와 함께 gvim/vim을 사용하고 있습니다. 소스 코드가 크다. 예를 들어 "태그 장치"명령으로 구조 장치를 검색하려고 할 때 vim은 백회를 제안합니다. 왜냐하면 그것은 device라는 이름의 전역 변수와 구조체의 member를 제안 할 것이기 때문입니다. 어쨌든 이것을 향상시킬 수 있습니까? vim/cscope/tag에 구조체 정의 만 보이게 할 수 있습니까?vim/cscope를 사용하여 리눅스 커널에서 심볼 정의 찾기
답변
이미 알고 계신 것 같습니다. 나는 cscope의 정력 명령으로 범위를 좁힐
:cs f e struct device {
cscope의 정력의 사용이 내 의견에 직접 관련되지 않을 수 있습니다
cscope commands:
add : Add a new database (Usage: add file|dir [pre-path] [flags])
find : Query for a pattern (Usage: find c|d|e|f|g|i|s|t name)
c: Find functions calling this function
d: Find functions called by this function
e: Find this egrep pattern
f: Find this file
g: Find this definition
i: Find files #including this file
s: Find this C symbol
t: Find assignments to
help : Show this message (Usage: help)
kill : Kill a connection (Usage: kill #)
reset: Reinit all connections (Usage: reset)
show : Show connections (Usage: show)
답변을 게시 해 주셔서 감사합니다. 외부 사이트에 대한 링크를 게시하는 대신, 해당 사이트가 더 이상 제공되지 않을 경우에 대비하여 링크/기사의 본질을 답변에 포함시킬 수 있습니까? – Deanna
예,하지만 공간을 고려해야합니다 ... 때로는 방법을 사용합니다. cscopequickfix 변수에 g- 옵션을 추가하여 (cscopequickfix = + g 설정) 빠른 수정 창에 검색 결과를 표시 한 다음 CSF ...를 입력하고 빠른 창에서 구조 정의를 찾거나 내가 원한다면. – Neo
어떤 공간을 언급하고 있습니까? – Drad
명령을 참조하십시오. 나는 cscope를 사용했지만 lxr이 더 convinent 한 것을 알았다. 그래서 나는 cscope 대신 lxr을 사용할 것을 제안 할 것이다. http://lxr.free-electrons.com/에서 웹 기반 lxr을 사용해보고 느낌을 얻으실 수 있습니다. –
vim에서 손을 멀리 떨어 뜨리고 싶다면 일식이 훨씬 강력 할 것입니다. – Neo
나는 이클립스와 리눅스 커널이 좋은 조합이 될지 모르겠다. –