То, что Вы, вероятно, хотите, является обобщенным списком:
\begin{list}{\quad}{}
\item ...
\end{list}
вторым аргументом этой среде является символ, который будет вставлен перед каждым объектом.
То, что вам нужно, это файлы ctags и теги / TAGS. Ctags (я рекомендую Exuberant Ctags) - это программа, которая сканирует исходные файлы на предмет идентификаторов и создает файл, индексирующий их. Затем вы можете использовать ^] для перехода к определению тега под курсором.
Могут потребоваться некоторые дополнительные сведения, чтобы сообщить vim, как найти файл тегов; Я не уверен, что это такое. Но это общая идея - запустить ctags в исходный код и затем использовать ^].
В качестве альтернативы вы можете посмотреть GNU Global. Это немного сложнее. Но ctags выполнит то, что вы описали.
Vim без тени сомневаюсь, лучший редактор в мире (давай, ребята, emacs). Помимо войн с пламенем, то, что я нашел невероятно полезным для программирования на C ++ и Java, - это eclipse (лучшая IDE в мире, да, теперь я ковыряю Netbeans) с плагином vrapper. Вы получаете все преимущества полностью интегрированной среды разработки и мощные сочетания клавиш vim.
Vrapper не дает вам полной эмуляции vim, но вы можете перемещаться по своему коду, используя ярлыки vim, и вы не теряете ни одной из доброта затмения.
Использование ctags определенно является местом для начала, но не забывайте cscope. В обоих случаях перед запуском vim необходимо сначала просканировать исходные файлы с помощью cscope и ctags и создать их базы данных. Вам также необходимо время от времени обновлять базы данных по мере роста и изменения вашего кода.
С помощью ctags просто используйте команду « ctags
» в каталоге кода. Если у вас есть иерархия каталогов, начните сверху и используйте " ctags -R
" для рекурсивного просмотра всех каталогов ниже. Запустите vim в том же каталоге, что и получившийся файл тегов, и vim должен найти и загрузить его автоматически. Находясь в редакторе с курсором на имени функции или переменной, вы можете ввести '^]', и vim должен перейти к определению.
Аналогично, с cscope, используйте "
Завершение кода в vim доступно как vim-scripts: http://www.vim.org/scripts/index.php
ctags в целом - это ответ, как сказал Майкл Э. ctags * .c * .h
- это простое начало для проекта, в котором все файлы находятся в одном каталоге. Затем, как сказал Майкл, вы можете использовать ^], чтобы перейти к определению, и ^ T, чтобы вернуться туда, откуда вы пришли. Это те же самые клавиши, которые вы используете для перемещения внутри справки Vim.
В Java и C ++ у вас может быть несколько методов с одинаковым именем. : tn
перейдет к следующему, а : ts
перечислит альтернативы.
Для завершения кода в Vim я обычно использую ^ P и ^ N. Он не зависит от контекста, как эквивалент в Eclipse или MSVC, но обычно выполняет свою работу.
Другие инструменты, которые вы можете рассмотреть, - это cscope
и (конечно) Emacs или Eclipse.
Как говорили другие, вам нужно сгенерировать индексный файл для vi (m).
Я просто хочу сказать, что использование vim для программирования Java вместо современной IDE похоже на использование vim плюс калькулятор вместо электронной таблицы для чисел. Оба подходят для небольших задач,
Да, инструмент, который предоставляет этот индекс символа, называется ctags, и многие редакторы unix могут его использовать. vim хорош в командной строке, но я бы посоветовал потратить немного времени на то, чтобы привыкнуть к KATE. Это очень красивый современный редактор графического интерфейса с возможностью просмотра файлов в среде IDE, хорошей подсветкой синтаксиса, самым красивым динамическим переносом слов, который я когда-либо использовал, и т. Д. Однако для java стоит взглянуть на eclipse и netbeans.
В прошлый раз, когда я проверял, давным-давно, ctags
был в порядке, но он пропустил некоторые идентификаторы, а cscope
имеет более исчерпывающий вариант поиска, но все же пропускает некоторые идентификаторы.
grep
- это то, что я предпочитаю. Это исчерпывающий, но все же довольно быстрый, если база исходного кода имеет разумный размер или ПК работает быстро. Вы можете вызвать его из vim с помощью : grep
. Вот упрощенная версия моего собственного _vimrc
, чтобы показать, как я его настроил. Я помещаю комментарии, чтобы объяснить, какие клавиши и что делают.
" for Windows, replace with the location of `grep.exe'
" not needed for Unix/Linux
:set grepprg=c:\prog\cygwin\bin\grep.exe\ -n\ $*\ /dev/null
:function! RecursiveSearchIdentifierUnderCursor()
: sp
: let grep_cmd = "silent grep -r \"\\<" . expand("<cword>") . "\\>\" *"
: exe grep_cmd
:endfunction
" CTRL-backslash to search for the identifier (or "word") under the cursor
"
" an identifier is in the form "xxx_123_yyy" but something in the form
" "xxx_123_yyy.aaa_999" would be two identifiers separated by a period
"
"
" this basically executes:
"
" :grep -r "\<identifier\>" *
"
" for whatever `identifier' the cursor happens to be over
"
"
" to close the newly opened window, use:
"
" :q
"
:map <C-\> :call RecursiveSearchIdentifierUnderCursor()<CR>
" cursor up/down to move to the previous/next search result
:map <Up> :cp<CR>zz
:map <Down> :cn<CR>zz
" jump up/down between horizontally split windows
:map <PageUp> <C-W>k
:map <PageDown> <C-W>j
" move to the previous/next enclosing brace
:map <Left> [{
:map <Right> ]}
" move to the previous/next enclosing parenthesis
:map <Home> [(
:map <End> ])
" move to the previous/next enclosing # preprocessor directive
:map <Insert> [#
:map <Del> ]#
Также не забудьте *
(SHIFT-8) и #
(SHIFT-3) для поиска вперед и назад текущего идентификатора под курсором в текущем файле. . Я нашел это бесценным при просмотре кода, особенно при поиске коротких имен переменных, таких как «i» и «j», которые в противном случае соответствовали бы частям других имен переменных при слепом поиске в обычном текстовом редакторе.
Вы также можете вызвать : make
из vim
, если хотите использовать make
. Он остановится при первой ошибке компиляции, затем вы сможете отредактировать и снова запустить сборку из vim
.
Когда вы научитесь определять свои собственные функции и сопоставления клавиш, есть множество способов упростить повторяющиеся задачи программирования с помощью vim
.