2010-07-07 19 views
8

Hay algunas carpetas que contienen espacio, y como resultado, esas carpetas no se pueden indexar utilizando cscope.Cómo usar cscope con rutas que contienen espacios

¿Puedo pedirle ayuda para resolver esto o cualquier sugerencia?

gracias Julius


Gracias por su respuesta.

Mis pasos para utilizar cscope como la siguiente

  • hallazgo. -name '* .scala'> cscope.files
  • cscope -b
    en este paso. Veo el mensaje indica que no se puede encontrar el archivo:
    cscope: no se puede encontrar el archivo/trabajo/proyecto/copiar
    cscope: no se puede encontrar el archivo de
    cscope: no se puede encontrar el archivo fp/src/main/jav ....
    En realidad, la copia de fp es una carpeta. Así que creo que cscope no puede reconocer que la carpeta contiene espacio.

Me encontré con este problema cuando traté de usar vim con cscope.maybe necesito mover esta pregunta a otra etiqueta.

+1

ha utilizado el Vim etiqueta. ¿Esto es porque estás tratando de usar los comandos ': cscope' dentro de Vim? Si es así, ¿puedes mostrar los comandos que estás intentando y los errores que estás obteniendo? – jamessan

Respuesta

3

Puede utilizar Buscar de -exec para forzar comillas alrededor de la salida:

find . -name "*.scala" -exec echo \"{}\" \; > cscope.files 

puede que tenga que perder el tiempo con citar/escape, si está haciendo esto desde un script.

+0

Esta respuesta toma ~ 1 segundo para hacer ~ 100 archivos. Mi respuesta toma ~ 1 segundo para hacer ~ 100,000 archivos. – webb

+1

@webb: Usar fprintf (la respuesta de Olivier Diotte) ciertamente parece ser un mejor uso de 'encontrar' que mi propuesta ingenua. – idbrii

0

La doble cita de los nombres de archivos funciona en cygwin, donde no es posible escaparse con la barra invertida.

$ find $PWD -name "*.scala" | sed -e 's/^/"/g' -e 's/$/"/g' > cscope.files 
+0

sed '/.*/"&"/' es un poco más rápido – webb

2

pydave La respuesta es muy lenta. De esta manera tomó 0,10 s, donde la respuesta de pydave tomó 14s:

find . -name "*.scala" | awk '{print "\""$0"\""}' > cscope.files 
+0

Felicitaciones! Funciona muy rápido – Melon

4

Puede hacer que el simple uso de GNU encontrar al menos, puede utilizar los -printf o -fprintf opciones para ello:

find . -type f -fprintf cscope.files '"%p"\n' 
+0

simplifica% h /% f a% p – webb

+1

La tuya es la respuesta más rápida: 8% más rápida que la mía, 14% más rápida que con sed. . . ¡y 1000 veces tan rápido como con el ejecutivo! – webb

Cuestiones relacionadas