2011-06-23 20 views
9

Tengo opensuse 11.4 instalado. Vim es la versión 7. Ahora normalmente lo uso para buscar en el origen del kernel de Linux. Así que generé la base de datos cscope dentro de un directorio dentro de mi carpeta de inicio, es decir/home/aijazbaig1/cscope_DB/y obtuve 3 archivos. cscope.out, cscope.po.out y cscope.in.out además del archivo cscope.files que contiene una lista de todos los archivos relevantes que quiero buscar.vim no se puede conectar a la base de datos cscope

Además he añadido lo siguiente a mi .bashrc:

CSCOPE_DB=/home/aijazbaig1/cscope_DB/cscope.out 
export CSCOPE_DB 

Pero cuando hago una :cscope show desde dentro de vim que dice que no hay conexiones. ¿Puede alguien por favor decirme qué está pasando mal?

Keen saber de usted,

+0

Varios problemas podrían causar esto; consulte este sitio para obtener ayuda: http://vim.wikia.com/wiki/Cscope – Coffee

+2

Sí, lo intenté con lo que se mencionó aquí: http://stackoverflow.com/ questions/563616/vim-and-ctags-tips-and-tricks así que agregué la línea 'cs add $ CSCOPE_DB' desde dentro de un bloque 'if has (' cscope '). Ahora parece estar funcionando pero aún no puedo usar los comandos ctrl + '\' + sy tales comandos para buscar directamente un trabajo donde está mi cursor. Creo que tendré que descargar el archivo cscope_maps.vim y ponerlo en mi directorio .vim/plugin/¿no? Pero maldita sea, es una máquina virtual y el uso compartido de archivos no funciona :(. De todos modos, ese es un tema para otra sección –

+0

Sí, pude obtener esas teclas presionando los datos del archivo cscope_maps.vim en mi .vimrc. –

Respuesta

9

Calculo ya he hecho la visita, me gustaría tratar de responder.

que estaba recibiendo este error en la búsqueda usando Ctrl-Espacio s (o cualquier búsqueda para el caso):

E567: no hay conexiones cscope

fin encontré la solución completa en http://cscope.sourceforge.net/cscope_vim_tutorial.html , Paso 11.

La idea es crear una lista de archivos de origen que se incluirán en la vista de cscope, generar el cscope.out en la misma ubicación y actualizar la ruta de exportación en consecuencia:

  • find /my/project/dir -name '*.c' -o -name '*.h' > /foo/cscope.files
  • cscope -R -b (esto puede tomar un tiempo dependiendo del tamaño de la fuente)
  • export CSCOPE_DB=/foo/cscope.out (ponga esto en su .bashrc/.zshrc/otro de inicio de la escritura si no lo hace desea repetir esto cada vez que inicie sesión en la terminal)
9

Esto se menciona en los comentarios anteriores, pero quiero asegurarme de que se conserve en una respuesta.

El problema que surgió para mí fue que vim no sabía dónde buscar la base de datos cscope. Cuando añadí

cs add $CSCOPE_DB 

a mi .vimrc. Todo salió bien.

+0

Esto también me ayudó en mi ubuntu –

0

Tengo el mismo problema en mi PC. Por ahora, para resolver el problema:

  1. en el terminal ejecutar: which is cscope

  2. archivo .vimrc abierto para editar: set csprg=/usr/bin/cscope

-1

es necesario agregar una "conexión cscope", como este en vim:

:cscope add $PATH_TO_CSCOPE.out 

Ver :help cs para más ejemplos.

0

Así es como voy a explorar las fuentes del núcleo Linux a través de cscope:

yo uso vim como mi editor.

  1. Mientras está de pie dentro del directorio raíz fuente del kernel, ejecute cscope en modo interactivo, mientras que de forma recursiva pasando por subdirectorios durante la búsqueda de archivos de origen:

cscope -R

Cuando ejecuta por primera vez, generará el archivo de base de datos con el nombre: cscope.out dentro del directorio actual. Cualquier ejecución posterior utilizará la base de datos ya generada.

  1. Busque cualquier cosa o cualquier archivo y ábralo.
  2. etiquetas Conjunto cscope en vim para hacer que los comandos :tag y CTRL-] buscar a través de cscope primero y luego las etiquetas ctags':

:set cscopetag

  1. Conjunto de base de datos cscope actual en el interior VIM sesión:

:cs add cscope.out

Ahora puede utilizar CTRL-] y CTRL-t como lo haría en ctags para navegar! :)

Cuestiones relacionadas