Как использовать cscope с путями, которые содержат пробелы - PullRequest
8 голосов
/ 07 июля 2010

Есть некоторая папка, которая содержит пространство, и в результате эти папки не могут быть проиндексированы с помощью cscope.

Могу ли я попросить вас о помощи, чтобы решить это, или любое предложение.

спасибо Julius


Спасибо за ваш ответ.

Мои шаги по использованию cscope, как показано ниже

  • найти. -name '* .scala'> cscope.files
  • cscope -b
    на этом этапе. Я вижу сообщение указывает, что не могу найти файл:
    cscope: не удается найти файл / работу / проект / копию
    cscope: не удается найти файл
    cscope: не удается найти файл fp / src / main / jav ....
    На самом деле копия fp - это папка. Поэтому я думаю, что cscope не может распознать, что папка содержит пространство.

Я столкнулся с этой проблемой, когда пытался использовать vim с cscope.maybe мне нужно переместить этот вопрос в другой тег.

Ответы [ 4 ]

7 голосов
/ 14 мая 2014

Вы можете сделать это, просто используя GNU find, вы можете использовать опции -printf или -fprintf для этого:

find . -type f -fprintf cscope.files '"%p"\n'
4 голосов
/ 15 апреля 2014

pydave ответ очень медленный.Этот путь занял 0.10 с, а ответ pydave - 14 с:

find . -name "*.scala" | awk '{print "\""$0"\""}' > cscope.files
2 голосов
/ 31 августа 2011

Вы можете использовать find -exec для принудительной кавычки вокруг вашего вывода:

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

Возможно, вам придется возиться с цитированием / экранированием, если вы делаете это из скрипта.

0 голосов
/ 04 марта 2014

Двойное цитирование имен файлов работает в cygwin, а экранирование с обратной косой чертой - нет.

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