My dotfiles. Period.

gutentags.txt 36KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. *gutentags.txt* Automatic ctags management for VIM
  2. ___ ___ ___ ___ ___
  3. /\__\ /\ \ /\__\ /\__\ /\ \
  4. /:/ _/_ \:\ \ /:/ / /:/ _/_ \:\ \
  5. /:/ /\ \ \:\ \ /:/__/ /:/ /\__\ \:\ \
  6. /:/ /::\ \ ___ \:\ \ /::\ \ /:/ /:/ _/_ _____\:\ \
  7. /:/__\/\:\__\ /\ \ \:\__\ /:/\:\ \ /:/_/:/ /\__\ /::::::::\__\
  8. \:\ \ /:/ / \:\ \ /:/ / \/__\:\ \ \:\/:/ /:/ / \:\~~\~~\/__/
  9. \:\ /:/ / \:\ /:/ / \:\__\ \::/_/:/ / \:\ \
  10. \:\/:/ / \:\/:/ / \/__/ \:\/:/ / \:\ \
  11. \::/ / \::/ / \::/ / \:\__\
  12. \/__/ \/__/ \/__/ \/__/
  13. ___ ___ ___ ___
  14. /\__\ /\ \ /\__\ /\__\
  15. /:/ / /::\ \ /:/ _/_ /:/ _/_
  16. /:/__/ /:/\:\ \ /:/ /\ \ /:/ /\ \
  17. /::\ \ /:/ /::\ \ /:/ /::\ \ /:/ /::\ \
  18. /:/\:\ \ /:/_/:/\:\__\ /:/__\/\:\__\ /:/_/:/\:\__\
  19. \/__\:\ \ \:\/:/ \/__/ \:\ \ /:/ / \:\/:/ /:/ /
  20. \:\__\ \::/__/ \:\ /:/ / \::/ /:/ /
  21. \/__/ \:\ \ \:\/:/ / \/_/:/ /
  22. \:\__\ \::/ / /:/ /
  23. \/__/ \/__/ \/__/
  24. GUTENTAGS REFERENCE MANUAL
  25. by Ludovic Chabant
  26. *gutentags*
  27. 1. Introduction |gutentags-intro|
  28. 2. Commands |gutentags-commands|
  29. 3. Status Line |gutentags-status-line|
  30. 4. Global Settings |gutentags-settings|
  31. 5. Project Settings |gutentags-project-settings|
  32. =============================================================================
  33. 1. Introduction *gutentags-intro*
  34. Gutentags is a plugin that takes care of the much needed management of tags
  35. files in Vim. It will (re)generate tag files as you work while staying
  36. completely out of your way. It will even do its best to keep those tag files
  37. out of your way too. It has no dependencies and just works.
  38. In order to generate tag files, Gutentags will have to figure out what's in
  39. your project. To do this, it will locate well-known project root markers like
  40. SCM folders (.git, .hg, etc.), any custom tags you define (with
  41. |gutentags_project_root|), and even things you may have defined already with
  42. other plugins, like CtrlP.
  43. If the current file you're editing is found to be in such a project, Gutentags
  44. will make sure the tag file for that project is up to date. Then, as you work
  45. in files in that project, it will partially re-generate the tag file. Every
  46. time you save, it will silently, in the background, update the tags for that
  47. file.
  48. Usually, `ctags` can only append tags to an existing tag file, so Gutentags
  49. removes the tags for the current file first, to make sure the tag file is
  50. always consistent with the source code.
  51. Also, Gutentags is clever enough to not stumble upon itself by triggering
  52. multiple ctags processes if you save files too fast, or if your project is
  53. really big.
  54. 1.1 Requirements
  55. *gutentags-ctags-requirements*
  56. If you're using the `ctags` modules (which is the default and only working one
  57. at this point, really), you will need a `tags` generator that supports the
  58. following arguments:
  59. * `-f` (to specify the output file)
  60. * `--append` (to append to an existing file while keeping it sorted)
  61. * `--exclude` (to exclude file patterns)
  62. * `--options` (to specify an options file)
  63. This means you probably want Exuberant Ctags or Universal Ctags. The basic
  64. old BSD Ctags WON'T WORK. Other language-specific versions may or may not
  65. work. Check with their help or man page.
  66. 1.2 Similar Plugins
  67. *gutentags-similar-plugins*
  68. There are some similar Vim plugins out there ("vim-tags", "vim-autotag",
  69. "vim-automatic-ctags", etc.). They all fail on one or more of the requirements
  70. I set for myself with Gutentags:
  71. * No other dependency than running Vim: no Python, Ruby, or whatever.
  72. * Cross-platform: should work on at least Mac and Windows.
  73. * Incremental tags generation: don't re-generate the whole project all the
  74. time. This may be fine for small projects, but it doesn't scale.
  75. * External process management: if the ctags process is taking a long time,
  76. don't run another one because I saved the file again.
  77. * Keep the tag file consistent: don't just append the current file's tags to
  78. the tag file, otherwise you will still "see" tags for deleted or renamed
  79. classes and functions.
  80. * Automatically create the tag file: you open something from a freshly forked
  81. project, it should start indexing it automatically, just like in Sublime Text
  82. or Visual Studio or any other IDE.
  83. =============================================================================
  84. 2. Commands *gutentags-commands*
  85. *gutentags-project-commands*
  86. The following commands are only available in buffers that have been found to
  87. belong to a project that should be managed by Gutentags. See
  88. |gutentags_project_root| for how Gutentags figures out the project a file
  89. belongs to. When no project is found (i.e. the file is not under any of the
  90. known project markers), Gutentags is disabled for that buffer, and the
  91. following commands and remarks don't apply.
  92. If you want to force-disable Gutentags for a given project even though it does
  93. match one of the items in |gutentags_project_root|, create a file named
  94. "`.notags`" at the root of the project.
  95. The tag file that Gutentags creates and manages will be named after
  96. |gutentags_ctags_tagfile|, relative to the project's root directory. When
  97. Gutentags finds a valid project root, it will prepend the tag file's path to
  98. 'tags', unless |gutentags_ctags_auto_set_tags| is set to 0. This is to make
  99. sure Vim will use that file first.
  100. If a file managed by Gutentags is opened and no tag file already exists,
  101. Gutentags will start generating it right away in the background, unless
  102. |gutentags_generate_on_missing| is set to 0. If you have a large project, you
  103. may want to know when Gutentags is generating tags: see
  104. |gutentags-status-line| to display an indicator in your status line.
  105. When a file managed by Gutentags is saved, the tag file will be incrementally
  106. updated, i.e. references to the recently saved file are removed, and that file
  107. is re-parsed for tags, with the result being merged into the tag file. This
  108. makes the tag file 100% consistent with the latest changes. This doesn't
  109. happen however if |gutentags_generate_on_write| is set to 0, in which case you
  110. have to run |GutentagsUpdate| manually.
  111. *:GutentagsUpdate*
  112. :GutentagsUpdate
  113. Forces an update of the current tag file with the
  114. current buffer. If tags are already being generated,
  115. you will be notified and the command will abort.
  116. :GutentagsUpdate!
  117. Like |GutentagsUpdate|, but updates the current tags
  118. file with the whole project instead of just the
  119. current buffer.
  120. Some debugging/troubleshooting commands are also available if the
  121. |gutentags_define_advanced_commands| global setting is set to 1.
  122. *:GutentagsToggleEnabled*
  123. :GutentagsToggleEnabled
  124. Disables and re-enables Gutentags.
  125. When Gutentags is disabled, it won't update your tag
  126. file when you save a buffer. It will however still
  127. look for project markers as you open new buffers so
  128. that they can start working again when you re-enable
  129. Gutentags.
  130. {only available when
  131. |gutentags_define_advanced_commands| is set}
  132. *GutentagsToggleTrace*
  133. :GutentagsToggleTrace
  134. If you want to keep an eye on what Gutentags is doing,
  135. you can enable tracing. This will show messages every
  136. time Gutentags does something. It can get annoying
  137. quickly, since it will require you to press a key to
  138. dismiss those messages, but it can be useful to
  139. troubleshoot a problem.
  140. In addition to messages in Vim, it will also make
  141. Gutentags redirect the output of the tag generation
  142. script to a `.log` file in the project root.
  143. {only available when
  144. |gutentags_define_advanced_commands| is set}
  145. Gutentags also has some user auto-commands (see |User| and |:doautocmd|):
  146. *GutentagsUpdating*
  147. GutentagsUpdating
  148. This auto-command is triggered when a background
  149. update job has started.
  150. *GutentagsUpdated*
  151. GutentagsUpdated
  152. This auto-command is triggered when a background
  153. update job has finished.
  154. =============================================================================
  155. 3. Status Line *gutentags-status-line*
  156. Tag file generation can take a while if you're working on a project big
  157. enough. In that case, you may want to know when `ctags` is running, so you
  158. have a heads up if some of the tags aren't recognized yet.
  159. *gutentags#statusline()*
  160. You can display an indicator of tag generation progress in your |status-line|
  161. with the following function: >
  162. :set statusline+=%{gutentags#statusline()}
  163. The function will, by default, print a list of modules in the status line. So
  164. if the `ctags` module (see |g:gutentags_modules|) is currently generating
  165. a tags file, you will see "ctags" printed in the status line. If nothing is
  166. happening, nothing will be printed in the status line.
  167. You can pass some parameters to customize this:
  168. 1. A prefix string (defaults to `""`).
  169. 2. A suffix string (defaults to `""`).
  170. 3. The text to print (defaults to the names of modules currently generating
  171. something).
  172. So using `gutentags#statusline('[', ']')` would print `"[ctags]"` instead of
  173. `"ctags"`.
  174. Because Gutentags runs the tag generation in the background, the statusline
  175. indicator might stay there even after the background process has ended. It
  176. would only go away when Vim decides to refresh the statusline. You can force
  177. refresh it in a callback on |GutentagsUpdating| and |GutentagsUpdated|.
  178. For instance, with the `lightline` plugin:
  179. augroup MyGutentagsStatusLineRefresher
  180. autocmd!
  181. autocmd User GutentagsUpdating call lightline#update()
  182. autocmd User GutentagsUpdated call lightline#update()
  183. augroup END
  184. *gutentags#statusline_cb*
  185. As an alternative to the previous function, `gutentags#statusline_cb` takes
  186. a single parameter which should be a |Funcref| or a function name. This
  187. function should take a list of active module names, and return a string. This
  188. lets you completely control what the status line will print.
  189. For instance:
  190. function! s:get_gutentags_status(mods) abort
  191. let l:msg = ''
  192. if index(a:mods, 'ctags') >= 0
  193. let l:msg .= '♨'
  194. endif
  195. if index(a:mods, 'cscope') >= 0
  196. let l:msg .= '♺'
  197. endif
  198. return l:msg
  199. endfunction
  200. :set statusline+=%{gutentags#statusline_cb(
  201. \function('<SID>get_gutentags_status'))}
  202. By default, the callback function doesn't get called if no tags generation is
  203. currently happening. You can pass `1` as a second argument so that the
  204. callback function is always called.
  205. =============================================================================
  206. 4. Global Settings *gutentags-settings*
  207. The following settings can be defined in your |vimrc| to change the default
  208. behaviour of Gutentags.
  209. *gutentags_enabled*
  210. g:gutentags_enabled
  211. Defines whether Gutentags should be enabled. When
  212. disabled, Gutentags will still scan for project root
  213. markers when opening buffers. This is so that when you
  214. re-enable Gutentags, you won't have some buffers
  215. mysteriously working while others (those open last)
  216. don't.
  217. Defaults to `1`.
  218. *gutentags_trace*
  219. g:gutentags_trace
  220. When true, Gutentags will spit out debugging
  221. information as Vim messages (which you can later read
  222. with |:messages|). It also runs its background scripts
  223. with extra parameters to log activity to a `tags.log`
  224. file that you can also inspect for more information.
  225. Note: you can run `:verbose GutentagsUpdate` to
  226. temporarily set |g:gutentags_trace| to `1` for that
  227. update only.
  228. Defaults to `0`.
  229. *gutentags_dont_load*
  230. g:gutentags_dont_load
  231. Prevents Gutentags from loading at all on Vim startup.
  232. The difference between this and |gutentags_enabled| is
  233. that |gutentags_enabled| can be turned on and off in
  234. the same Vim session -- Gutentags as a plugin stays
  235. loaded and will keep track of what happened while it
  236. was disabled. However, |gutentags_dont_load| only
  237. works on Vim startup and will prevent Gutentags from
  238. loading at all, as if it wasn't there.
  239. *gutentags_modules*
  240. g:gutentags_modules
  241. A list of modules to load with Gutentags. Each module
  242. is responsible for generating a specific type of tags
  243. file.
  244. Valid values are:
  245. - `ctags`: generates a `tags` file using
  246. a `ctags`-compatible program like Exhuberant Ctags
  247. or Universal Ctags.
  248. - `cscope`: generates a code database file using
  249. `cscope`.
  250. - `gtags_cscope`: same as `cscope` but uses GNU's
  251. `gtags` executable and database.
  252. Defaults to `[ctags]`.
  253. *gutentags_project_root*
  254. g:gutentags_project_root
  255. When a buffer is loaded, Gutentags will figure out if
  256. it's part of a project that should have tags managed
  257. automatically. To do this, it looks for "root markers"
  258. in the current file's directory and its parent
  259. directories. If it finds any of those markers,
  260. Gutentags will be enabled for the project, and a tags
  261. file named after |gutentags_ctags_tagfile| will be
  262. created at the project root.
  263. Defaults to `[]` (an empty |List|).
  264. A list of default markers will be appended to the
  265. user-defined ones unless
  266. |gutentags_add_default_project_roots| is set to 0.
  267. *gutentags_add_default_project_roots*
  268. g:gutentags_add_default_project_roots
  269. Defines whether Gutentags should always define some
  270. default project roots (see |gutentags_project_root|).
  271. This can be useful to prevent unnecessary disk access
  272. when Gutentags searches for a project root.
  273. The default markers are:
  274. `['.git', '.hg', '.svn', '.bzr', '_darcs', '_darcs', '_FOSSIL_', '.fslckout']`
  275. *gutentags_add_ctrlp_root_markers*
  276. g:gutentags_add_ctrlp_root_markers
  277. If Gutentags finds `g:ctrlp_root_markers` (used by the
  278. CtrlP plugin), it will append those root markers to
  279. the existing ones (see |g:gutentags_project_root|).
  280. Set this to 0 to stop it from happening.
  281. Defaults to 1.
  282. *gutentags_exclude_filetypes*
  283. g:gutentags_exclude_filetypes
  284. A |List| of file types (see |'filetype'|) that Gutentags
  285. should ignore. When a buffer is opened, if its
  286. 'filetype' is found in this list, Gutentags features
  287. won't be available for this buffer.
  288. Defaults to an empty list (`[]`).
  289. *gutentags_exclude_project_root*
  290. g:gutentags_exclude_project_root
  291. A list of project roots to generally ignore. If a file
  292. is opened inside one of those projects, Gutentags
  293. won't be activated. This is similar to placing
  294. a `.notags` file in the root of those projects, but
  295. can be useful when you don't want to, or can't, place
  296. such a file there.
  297. Defaults to `['/usr/local']`, which is the folder where
  298. Homebrew is known to create a Git directory by default
  299. on MacOS.
  300. *gutentags_project_root_finder*
  301. g:gutentags_project_root_finder
  302. When a buffer is loaded, Gutentags uses a default
  303. (internal) implementation to find that file's
  304. project's root directory, using settings like
  305. |g:gutentags_project_root|. When you specify
  306. |g:gutentags_project_root_finder|, you can tell
  307. Gutentags to use a custom implementation, such as
  308. `vim-projectroot`. The value of this setting must be
  309. the name of a function that takes a single string
  310. argument (the path to the current buffer's file) and
  311. returns a string value (the project's root directory).
  312. Defaults to `''`.
  313. Note: when set, the called implementation will
  314. possibly ignore |g:gutentags_project_root|.
  315. Note: an implementation can fallback to the default
  316. behaviour by calling
  317. `gutentags#default_get_project_root`.
  318. *gutentags_generate_on_missing*
  319. g:gutentags_generate_on_missing
  320. If set to 1, Gutentags will start generating an initial
  321. tag file if a file is open in a project where no tags
  322. file is found. See |gutentags_project_root| for how
  323. Gutentags locates the project.
  324. When set to 0, Gutentags will only generate the first
  325. time the file is saved (if
  326. |gutentags_generate_on_write| is set to 1), or when
  327. |GutentagsUpdate| or |GutentagsGenerate| is run.
  328. Defaults to 1.
  329. *gutentags_generate_on_new*
  330. g:gutentags_generate_on_new
  331. If set to 1, Gutentags will start generating the tag
  332. file when a new project is open. A new project is
  333. considered open when a buffer is created for a file
  334. whose corresponding tag file has not been "seen" yet
  335. in the current Vim session -- which pretty much means
  336. when you open the first file in a given source control
  337. repository.
  338. When set to 0, Gutentags won't do anything special.
  339. See also |gutentags_generate_on_missing| and
  340. |gutentags_generate_on_write|.
  341. Defaults to 1.
  342. *gutentags_generate_on_write*
  343. g:gutentags_generate_on_write
  344. If set to 1, Gutentags will update the current
  345. project's tag file when a file inside that project is
  346. saved. See |gutentags_project_root| for how Gutentags
  347. locates the project.
  348. When set to 0, Gutentags won't do anything on save.
  349. This means that the project's tag file won't reflect
  350. the latest changes, and you will have to run
  351. |GutentagsUpdate| manually.
  352. Defaults to 1.
  353. *gutentags_generate_on_empty_buffer*
  354. g:gutentags_generate_on_empty_buffer
  355. If set to 1, Gutentags will start generating the tag
  356. file even if there's no buffer currently open, as long
  357. as the current working directory (as returned by
  358. |:cd|) is inside a known project.
  359. This is useful if you want Gutentags to generate the
  360. tag file right after opening Vim.
  361. Defaults to 0.
  362. *gutentags_background_update*
  363. g:gutentags_background_update
  364. Specifies whether the process that updates the tags
  365. file should be run in the background or in the
  366. foreground. If run in the foreground, Vim will block
  367. until the process is complete.
  368. Defaults to 1.
  369. *gutentags_cache_dir*
  370. g:gutentags_cache_dir
  371. Specifies a directory in which to create all the tags
  372. files, instead of writing them at the root of each
  373. project. This is handy to keep tags files from
  374. polluting many directories all across your computer.
  375. *gutentags_resolve_symlinks*
  376. g:gutentags_resolve_symlinks
  377. When set to 1, Gutentags will resolve any symlinks in
  378. the current buffer's path in order to find the project
  379. it belongs to. This is what you want if you're editing
  380. a symlink located outside of the project, and it
  381. points to a file inside the project. However, this is
  382. maybe not what you want if the symlink itself is
  383. part of the project.
  384. Defaults to 0.
  385. *gutentags_init_user_func*
  386. g:gutentags_init_user_func
  387. When set to a non-empty string, it is expected to be
  388. the name of a function that will be called when a file
  389. is opened in a project. The function gets passed the
  390. path of the file and if it returns 0, Gutentags won't
  391. be enabled for that file.
  392. You can use this to manually set buffer-local
  393. settings:
  394. * `b:gutentags_ctags_tagfile` (see |gutentags_ctags_tagfile|).
  395. This setting was previously called
  396. `gutentags_enabled_user_func`. The old setting is
  397. still used as a fallback.
  398. Defaults to "".
  399. *gutentags_define_advanced_commands*
  400. g:gutentags_define_advanced_commands
  401. Defines some advanced commands like
  402. |GutentagsToggleEnabled| and |GutentagsUnlock|.
  403. *gutentags_project_info*
  404. g:gutentags_project_info
  405. Defines ways for Gutentags to figure out what kind of
  406. project any given file belongs to. This should be
  407. a list of dictionaries:
  408. let g:gutentags_project_info = []
  409. call add(g:gutentags_project_info, {...})
  410. Each dictionary item must contain at least a `type`
  411. key, indicating the type of project:
  412. {"type": "python"}
  413. Other items will be used to figure out if a project is
  414. of the given type.
  415. "file": any existing file with this path (relative to
  416. the project root) will make the current project match
  417. the given info.
  418. "glob": any result found with this glob pattern
  419. (relative to the project root) will make the current
  420. project match the given info. See |glob()| for more
  421. information.
  422. Gutentags adds by default the following definitions:
  423. call add(g:gutentags_project_info, {'type': 'python', 'file': 'setup.py'})
  424. call add(g:gutentags_project_info, {'type': 'ruby', 'file': 'Gemfile'})
  425. This means, for example, that you can use
  426. `g:gutentags_ctags_executable_ruby` out of the box.
  427. See |gutentags_ctags_executable_{filetype}| for more
  428. information.
  429. *gutentags_file_list_command*
  430. g:gutentags_file_list_command
  431. Specifies command(s) to use to list files for which
  432. tags should be generated, instead of recursively
  433. examining all files within the project root. When
  434. invoked, file list commands will execute in the
  435. project root directory.
  436. This setting is useful in projects using source
  437. control to restrict tag generation to only files
  438. tracked in the repository.
  439. This variable may be set in one of two ways. If
  440. set as a |String|, the specified command will be used to
  441. list files for all projects. For example: >
  442. let g:gutentags_file_list_command = 'find . -type f'
  443. <
  444. If set as a |Dictionary|, this variable should be set
  445. as a mapping of project root markers to the desired
  446. file list command for that root marker. (See
  447. |gutentags_project_root| for how Gutentags uses root
  448. markers to locate the project.) For example: >
  449. let g:gutentags_file_list_command = {
  450. \ 'markers': {
  451. \ '.git': 'git ls-files',
  452. \ '.hg': 'hg files',
  453. \ },
  454. \ }
  455. <
  456. Note: If a custom ctags executable is specified, it
  457. must support the '-L' command line option in order to
  458. read the list of files to be examined.
  459. The following settings are valid for the `ctags` module.
  460. *gutentags_ctags_executable*
  461. g:gutentags_ctags_executable
  462. Specifies the ctags executable to launch.
  463. Defaults to `ctags`.
  464. *gutentags_ctags_executable_{filetype}*
  465. g:gutentags_ctags_executable_{type}
  466. Specifies the ctags executable to launch for a project
  467. of type {type}. See |gutentags_project_info| for more
  468. information.
  469. IMPORTANT: please see |gutentags-ctags-requirements|.
  470. Example: >
  471. let g:gutentags_ctags_executable_ruby = 'foobar'
  472. <
  473. *gutentags_ctags_tagfile*
  474. g:gutentags_ctags_tagfile
  475. Specifies the name of the tag file to create. This
  476. will be appended to the project's root. See
  477. |gutentags_project_root| for how Gutentags locates the
  478. project.
  479. Defaults to `tags`.
  480. *gutentags_ctags_exclude*
  481. g:gutentags_ctags_exclude
  482. A list of file patterns to pass to the
  483. |gutentags_ctags_executable| so that they will be
  484. excluded from parsing for the tags generation.
  485. See also |gutentags_ctags_exclude_wildignore|.
  486. Defaults to `[]` (an empty |List|).
  487. *gutentags_ctags_exclude_wildignore*
  488. g:gutentags_ctags_exclude_wildignore
  489. When 1, Gutentags will automatically pass your
  490. 'wildignore' file patterns to the
  491. |gutentags_ctags_executable| so that they are ignored.
  492. Set also |gutentags_ctags_exclude| to pass custom
  493. patterns.
  494. Defaults to 1.
  495. *gutentags_ctags_auto_set_tags*
  496. g:gutentags_ctags_auto_set_tags
  497. If set to 1, Gutentags will automatically prepend
  498. 'tags' with the exact path to the tag file for the
  499. current project. See |gutentags_project_root| for how
  500. Gutentags locates the project.
  501. When set to 0, Gutentags doesn't change 'tags', and
  502. this means that whatever tag file it generates may
  503. not be picked up by Vim. See |tagfiles()| to know what
  504. tag files Vim knows about.
  505. Defaults to 1.
  506. *gutentags_ctags_extra_args*
  507. g:gutentags_ctags_extra_args
  508. A list of arguments to pass to `ctags`.
  509. Defaults to `[]`.
  510. *gutentags_ctags_post_process_cmd*
  511. g:gutentags_ctags_post_process_cmd
  512. If defined, the tags generation script will run the
  513. command with an argument that points to a temporary
  514. copy of the tags file. If the post-process step is
  515. modifying the tags file, it needs to do so in-place.
  516. This is useful for cleaning up a tags file that may
  517. contain tags with non-ASCII names that somehow upsets
  518. Vim.
  519. Defaults to `""` (an empty |String|).
  520. The following settings are valid for the `cscope` module.
  521. *gutentags_cscope_executable*
  522. g:gutentags_cscope_executable
  523. Specifies the name or path of the `cscope` executable
  524. to use to generate the code database.
  525. Defaults to `"cscope"`.
  526. *gutentags_scopefile*
  527. g:gutentags_scopefile
  528. Specifies the name of the scope file to create. This
  529. will be appended to the project's root. See
  530. |gutentags_project_root| for how Gutentags locates the
  531. project.
  532. Defaults to `"cscope.out"`.
  533. *gutentags_auto_add_cscope*
  534. g:gutentags_auto_add_cscope
  535. If set to 1, Gutentags will automatically add the
  536. generated code database to Vim by running `:cs add`
  537. (see |:cscope|).
  538. Defaults to 1.
  539. *gutentags_cscope_build_inverted_index*
  540. g:gutentags_cscope_build_inverted_index
  541. If set to 1, Gutentags will make `cscope` build an
  542. inverted index.
  543. Defaults to 0.
  544. The following settings are valid for the `gtags_cscope` module.
  545. *gutentags_gtags_executable*
  546. g:gutentags_gtags_executable
  547. Specifies the name or path of the `gtags` executable
  548. to use to generate the code database.
  549. Defaults to `"gtags"`.
  550. *gutentags_gtags_cscope_executable*
  551. g:gutentags_gtags_cscope_executable
  552. Specifies the name or path of the `gtags-cscope`
  553. executable to use to generate the code database.
  554. Defaults to `"gtags-cscope"`.
  555. *gutentags_gtags_dbpath*
  556. g:gutentags_gtags_dbpath
  557. Path from the cache directory (|gutentags_cache_dir|
  558. or project root) to the folder containing the
  559. definition database file (usually called `GTAGS`).
  560. Defaults to `""`.
  561. *gutentags_gtags_options_file*
  562. g:gutentags_gtags_options_file
  563. The name of a file that will be looked for in
  564. a project root directory. The file is expected to
  565. contain `gtags` options (one per line).
  566. Defaults to `".gutgtags"`.
  567. *gutentags_auto_add_gtags_cscope*
  568. g:gutentags_auto_add_gtags_cscope
  569. If set to 1, Gutentags will automatically add the
  570. generated code database to Vim by running `:cs add`
  571. (see |:cscope|).
  572. Defaults to 1.
  573. People using `cscope` or `gtags_cscope` across multiple projects in the same
  574. Vim instance might be interested in the `gutentags_plus` plugin, which handles
  575. switching databases automatically before performing a query.
  576. See https://github.com/skywind3000/gutentags_plus.
  577. =============================================================================
  578. 5. Project Settings *gutentags-project-settings*
  579. Gutentags can be customized to some extent on a per-project basis with the
  580. following files present in the project root directory:
  581. *gutentags-.gutctags*
  582. `.gutctags`: if this file exists, Ctags will be told to load additional
  583. command-line parameters by reading it line by line (see the Ctags
  584. documentation for more information).
  585. Note that for complex reasons, Gutentags can't run `ctags` from the project
  586. root if you're using |gutentags_cache_dir|, so if the `.gutctags` file exists,
  587. it will be pre-processed in order to make all `--exclude=` clauses into
  588. absolute paths (by prepending the project root). The resulting file will be
  589. saved into the cache directory, and passed to `ctags` via the `--options=`
  590. parameter. If you're _not_ using |gutentags_cache_dir|, the `.gutctags` file
  591. is _not_ pre-processed, and is passed as-is via the `--options=` parameter.
  592. *gutentags-.notags*
  593. `.notags`: if this file exists, Gutentags will be disabled completely for that
  594. project.
  595. vim:tw=78:et:ft=help:norl: