I am using cscope to get familiar with all the keywords used in socket programming. I went to the directory with c files. I used cscope. and then I searched for AF_INET. I got this :
#define AF_FILE PF_FILE
#define AF_INET PF_INET
#define AF_AX25 PF_AX25
This was a full page. I only published part of it. Now I want to know from where this PF_INET is coming? what command I should use. I have seen a guy to double click on PF_INEt and using some command to find it. I don't know what the command is? Kindly help me in this.
The second thing is when i quit the page with :q command. I come to this page :
Global definition: AF_INET
File Line
0 socket.h 119 #define AF_INET PF_INET
Find this C symbol:
Find this global definition:
Find functions called by this function:
Find functions calling this function:
Find this text string:
Change this text string:
Find this egrep pattern:
Find this file:
Find files #including this file:
here the cursor is blinking at 0. If I want to search again something, how I will do?
How to navigate from here. I tried to google it but unable to understand anything from the tutoials. Please help me in this regard as I am complete noob to linux operating system and c programming. Thanks in advance.
I agree that cscope documentation is not very clear.
Use tab to move to the interactive part. Type your symbol name in “find this C symbol” or “Find this egrep pattern” and validate pressing RETURN.
If you want to call it from vim, type :help if_cscop.txt
; hoping it helps!
:cscope add your_cscope_database
:cscope find s [your_symbol]
This will make a new quickfix list. use :cn
and :cp
to navigate, :cnf
and :cpf
to navigate from file to file in the results, and :colder
and :cnewer
to restore previous quickfix lists.
To exit from cscope interactive prompt, type Ctrl-d
. If you just want to rebuild cscope's database, and not invoke cscope's interactive prompt, pass it the -b option. I usually invoke cscope as cscope -bcqR
.
As for jumping around in vim using cscope, it really depends on your vim config.
Most probably, jump to tag (Ctrl-]
) will use cscope first, then ctags (see :help cst
and :help csto
). Use Ctrl-T
to go back.
There are some useful mappings for cscope that you can find by typing :help cscope-suggestions
in vim. After adding those mappings to your .vimrc, you will be able to jump to symbols using Ctrl-_ s
, the calling function using Ctrl-_ c
, etc...
You can access vim's cscope documentation by typing :help cscope
.
I mostly use the following. These are very basic to understand the cscope.
- "cscope -R"
Then you get options.
- Press down arrow. Then you will move to your required option. Type whatever you want at the respective option.
- From the search result. Use arrows(Up and down) then Press "enter key" to see the detailed file.
- ":q" to exit from the file.
- Press "Tab key" to come to the cscope options.
- "ctrl + d" to exit from the cscope.
Brief tutorial for beginners: http://cscope.sourceforge.net/cscope_vim_tutorial.html