2010-07-07 17 views
8

Istnieje folder zawierający przestrzeń, w wyniku której nie można indeksować tych folderów za pomocą cscope.Jak używać cscope ze ścieżkami zawierającymi spacje

Czy mogę prosić o pomoc w rozwiązaniu tego problemu lub jakiejkolwiek sugestii.

dzięki Julius


Dzięki za odpowiedź.

moje kroki do korzystania Cscope jak na poniższym

  • znalezisku. -name '* .scala'> cscope.files
  • cscope -b
    na tym etapie. widzę komunikat oznacza, że ​​nie można znaleźć pliku:
    cscope: nie można znaleźć pliku/pracy/projektu/kopiowania
    cscope: nie można znaleźć pliku
    cscope: nie można znaleźć pliku fp/src/main/jav ....
    Właściwie kopia fp to folder.so myślę, że cscope nie może rozpoznać folderu zawierającego spację.

Napotkano ten problem, gdy próbowałem użyć vima z cscope.maybe potrzebuję przenieść to pytanie do innego znacznika.

+1

użyłeś Vima etykietka. Czy to dlatego, że próbujesz użyć poleceń ': cscope' w Vimie? Jeśli tak, czy możesz pokazać polecenia, które próbujesz i jakie błędy otrzymujesz? – jamessan

Odpowiedz

3

Można użyć znaleźć na -exec zmusić cytatów wokół wyjścia:

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

Być może trzeba poeksperymentować z cytowania/ucieczki, jeśli robisz to ze skryptu.

+0

Ta odpowiedź zajmuje około 1 sekundy, aby wykonać ~ 100 plików. Moja odpowiedź zajmuje ~ 1 sekundę, aby zrobić ~ 100 000 plików. – webb

+1

@webb: Używanie fprintf (odpowiedź Oliviera Diotte) z pewnością wydaje się lepszym wykorzystaniem 'find' niż mojej naiwnej propozycji. – idbrii

0

Podwójne powoływanie się na nazwy plików działa w cygwin, gdzie tak jak w przypadku ucieczki z odwrotnym ukośnikiem, nie.

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

sed 's /.*/"&"/' jest nieco szybszy – webb

2

Odpowiedź pydave jest bardzo powolna. W ten sposób wziął 0.10s gdzie odpowiedź pydave wziął 14s:

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

Kudos! Działa naprawdę szybko – Melon

4

można to zrobić tylko za pomocą GNU znaleźć przynajmniej można użyć -printf lub -fprintf opcje że:

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

uprość% h /% f do% p – webb

+1

Twoja jest najszybsza odpowiedź: 8% szybciej niż moja, 14% szybciej niż z sed. . . i 1000x tak szybko, jak z exec! – webb