The goal of this project is to maintain a common/unified space where people interested in improving ctags can work together. This guide is primarily intended for. The ctags utility shall be provided on systems that support the the Software Development Utilities option, and either or both of the C- Language Development . Contribute to SublimeText/CTags development by creating an account on GitHub . Alternatively, the plugin can be installed manually using one of the following.
|Published (Last):||13 May 2006|
|PDF File Size:||1.84 Mb|
|ePub File Size:||3.1 Mb|
|Price:||Free* [*Free Regsitration Required]|
Ctags is a manuak that makes it easy to navigate large source code projects. It provides some of the features that you may be used to using in Eclipse or other IDEs, such as the ability to jump from the current source file to definitions of functions and structures in other files.
Ctags will make it much easier to find the Linux kernel files that you have to modify for your CSE projects.
ctags(1) – Linux man page
Ctags also supports many languages besides C, so you may find it useful for future projects. Ctags should already be installed on CSE instructional servers such as forkbomb and attu.
Ctags is first run on its own to generate a “tags” file, then it is invoked from within another Linux text editor such as Emacs or Vim.
These steps assume you want to use Ctags on the Linux kernel, but should generalize to other projects. If you are not on forkbomb or attu ctsgs, make sure that the system you are using has “Exuberant Ctags” installed, rather than the original “Ctags,” by running ctags –version.
Like all Linux programs, Ctags has a man page man 1 ctags. All of the information in this tutorial, and lots more advanced information, can be found there.
If you are unfamiliar with Emacs, you should go through the Emacs tutorial. It shouldn’t take too long, and it’s worth your time.
You can also check out the online tour. If you get stuck, press C-g to cancel pending commands, and exit Emacs by pressing C-x C-c. The author of this tutorial is not an Emacs expert; if you notice potential flaws or improvements, please mnaual him. S assembly catgs in the kernel, then tell etags to append the tags in those files to the TAGS file. You may see messages like “Warning: Permission denied” while etags is building the tags file.
These warnings can be ignored. Say yes when prompted to load the really big tags file.
The first command is probably the one you will use most often: The second command can be used to search for any tag in the TAGS file, regardless of the file you are currently viewing. Sometimes Etags will find multiple definitions for a given tag; when this is the case, use the third command to jump through the possible definitions until you find the one that you want.
Finally, use the fourth command to jump back up in the tag “stack. You’ll probably find that for some tags common structures, for exampleEtags finds hundreds or thousands of uses in the code, and jumping through them with the third command above to try to find the original definition is useless. This will display a list of the tag definitions in another buffer.
Switch to the new buffer C-x oscroll through the list of definitions to the one that you want, then press Enter to open the file.
ctags(1): make tag files for source code – Linux man page
When you’re done, instead of jumping back up in the tag stack, close the new buffer C-x k. To switch back to your original buffer and expand it, use C-x o to switch to it, then C-x 1 to expand. Even the list of all definitions given by tags-apropos may be too large to find the definition that you’re looking for.
This is mostly a problem for structs struct inodefor instance that are used frequently in the kernel. You should still find Etags useful for jumping to function definitions and less-commonly-used structs. Ctags for Vim appears to do a better job of separating “definitions” from “uses” in its tags file, so this is less of a problem for Vim; for Emacs, there may be other ways to mitigate this problem see this pagefor example.
Alternatively, you may wish to use cscope to find function and structure definitions, or just use the third step of the Vim instructions below.
These commands were tested with Vim 7. Run Ctags recursively over the entire kernel to generate the tags file. Permission denied” while ctags is building the tags file. To search for a specific tag and open Vim to its definition, run the following command in your shell:. The second command can be used to search for any tag, regardless of the file that is currently opened. Finally, the last command is used to jump back up in the tag stack to the location you initiated the previous tag search from.
ctags.1p – Linux manual page
Ctags Tutorial Ctags is a tool that makes it easy to navigate large source code projects. Important If you are not on forkbomb or attumake sure that the system you are using has “Exuberant Ctags” installed, rather than the original “Ctags,” by running ctags –version.
Tip Like all Linux programs, Ctags has a man page man 1 ctags. Disclaimer The author of this tutorial is not an Emacs expert; if you notice potential flaws or improvements, please contact him. Note You may see messages like “Warning: Note Even the list of all definitions given by tags-apropos may be too large janual find the definition that you’re looking for. Ctags with Vim Note These commands were tested with Vim 7.