titulo para name metadatos keywords etiquetas etiqueta ejemplos description buscadores vim tags editor ctags

vim - para - Buscar etiquetas solo en el archivo actual



metadatos html para buscadores (3)

Estoy usando ": ta" para saltar a un método.
Por ejemplo, tengo dos clases llamadas A.java y B.java . Ambos tienen un método foo() y B.java tienen otro método llamado fooBar() . Luego abro A.java y A.java :ta foo luego fooBar y fooBar dos finalizaciones: foo y fooBar . Pero lo que quiero saltar ahora es solo etiquetar en el archivo actual, no me gusta la etiqueta en otro archivo para mostrar.

Y encontré que la lista de etiquetas es muy buena en este trabajo. Entonces, si puedo usar la etiqueta generada por taglist para buscar, será muy agradable.

Dependiendo de cuántas veces llame a sus métodos, un par de * puede ser suficiente.

Sin usar etiquetas, gd se puede usar para ir a la declaración local del método debajo del cursor. Tiendo a elegir la solución de menor tecnología por lo general, así que iría con esta.

Pero ctags también puede generar etiquetas para un único archivo o para una selección arbitraria de archivos. Se puede hacer en unos pocos pasos, pero definitivamente no es tan sencillo como lo que está acostumbrado a hacer ...

  1. Cree un archivo con el nombre (s) de los archivos que desea escanear. Digamos que se llama files.txt y está ubicado en la raíz de su directorio de trabajo.

  2. Genere su archivo de tags usando el argumento -L <file> : ctags -L files.txt .

En este punto, debe tener un archivo de tags que contenga solo las etiquetas presentes en los archivos especificados en el paso 1.

Generar diferentes archivos de tags para todo el proyecto y para archivos individuales puede ser útil aquí. Un guión corto que genere un archivo de tags el nombre del archivo actual y lo haga el único origen de las tags puede facilitar todo.

EDITAR

En realidad, TagList y TagBar no generan archivos de tags . La salida del ctags <options> que ejecutan se usa internamente y se analiza con todo tipo de expresiones regulares para filtrar por alcance o nombre de archivo o lo que sea.


No es exactamente una respuesta a su pregunta, pero parece que no hay forma de hacer exactamente lo que necesita, por lo tanto, le recomendaría lo siguiente: para su desarrollo de Java en Vim, intente con eclim .

Esta herramienta te ayuda a usar tu editor de texto favorito Vim con la potencia de un Eclipse (IDE). No puedo encontrar un análogo para completar la tabulación de :ta , pero conozco un análogo inteligente para g] : este es un comando :JavaSearchContext . Puedes asignarlo a algo.

Por ejemplo, si tiene dos clases A y B , y tiene el método foo() en cada clase, entonces g] le preguntará cada vez que quiera saltar a foo() , pero :JavaSearchContext siempre saltará a la declaración adecuada de foo() .

Por supuesto, hay muchas otras características.


Desafortunadamente esto no se puede hacer usando ctags . Ctags no respeta el contexto, es una lista pura de todas las "funciones" posibles. Intenta abrir un archivo de etiqueta con un editor (por ejemplo, vim) y verás que es solo una lista de "funciones" (en el caso de Java son "métodos"). Ejemplo:

getDesc src/com/redhat/rhn/internal/doclet/Handler.java /^ public String getDesc() {$/;" m class:Handler getDoc src/com/redhat/rhn/internal/doclet/ApiCall.java /^ public String getDoc() {$/;" m class:ApiCall

Vim solo busca el archivo "tal cual" sin darle ningún contexto, solo busca una "función". Es capaz de buscar archivos, clases, métodos, enumeraciones, etc. El formato de las etiquetas se describe con más detalle aquí: http://ctags.sourceforge.net/FORMAT

En Vim tienes pocas posibilidades. Hay varios complementos que le dan a Vim cierta sensibilidad al contexto, pero no puede usar etiquetas para eso. Vim tiene una característica llamada OmniComplete y hay pocos complementos dedicados para Java. Luego puede usar Ctrl-X Ctrl-O para comenzar una completición. Te recomiendo que lo asigne a una clave diferente (tal vez Ctrl-Space si lo desea). Más información sobre los complementos de Java OmniComplete aquí:

Vim omnicompletion para Java

Eclim ( http://eclim.org/ ) es muy completo, pero difícil de configurar (necesita ejecutar Eclipse en segundo plano). El script de JDE es más fácil y robusto ( http://www.vim.org/scripts/script.php?script_id=1213 ). Y tenga en cuenta que IntelliJ IDEA Community Edition (gratis) también tiene un plugin Vim muy agradable que es de uso gratuito. Pero te entiendo, Vim es Vim.

¡Buena suerte!