Як шукати LaTeX -документи в центрі уваги?


12

Я відтворив проблему зараз і в El Capitan з новими компонентами (материнська плата, 3x SSD) у своєму Macbook Air 2013-середині. У мене була чиста установка OS X (El Capitan, Yosemite) під час тестування. Остання ОС X, де працює пошук .tex, - 10.8.5 у центрі уваги. Наразі я не бачу жодних .tex-документів у своєму пошуку Spotlight. Тести

  • Жодна поточна відповідь не вирішує проблему назавжди. У Йосеміті проблема через деякий час повернулася з деякими відповідями. Немає стабільного рішення і мало розуміння, що є причиною проблеми.

Вибір конфігурацій параметрів у Spotlight не має значення, оскільки ми можемо безпосередньо використовувати команду mdfindв терміналі, що еквівалентно Spotlight. Однак ми спробували параметри за замовчуванням, мінімальні та повні налаштування в Spotlight. Для тестів ми використовуємо налаштування за замовчуванням в OS X. Система та програми

  • Системи OS X Yosemite, OS X El Capitan
  • TexShop.app встановлений. (MacTeX 2015, mactex-20150613.pkg).
  • Додаток Tex: TextMate2-beta8
  • Spotlight / Finder / будь-яка програма пошуку не працює з файлами TeX та MacTeX 2015
  • Прожектор працює як очікується з деякими різними налаштуваннями, а також із MacTeX 2015.

Команда mdfind(версія 10 червня 2004 р.) Еквівалентна пошуку Spotlight, тому простий тест, який нічого успішно не повертає в мою систему

mdfind sulfas | grep tex

Я думаю, що проблема полягає в тому, що система не розпізнає формат файлу .tex`. Перше, що потрібно визнати системою.

пропозиція tjt263 шукати лише .tex у Finder / Spotlight

Виведення Spotlight .texабо команда терміналу дає текстові файли правильно в моїй системі. Однак, поєднуючи його з іншими термінами, як-от, вже .tex diabetesне дає текстових файлів. Імпортери, отримані mdimport -L:

2015-09-22 15:31:42.352 mdimport[8163:707] Paths: id(502) (
    "/Library/Spotlight/iBooksAuthor.mdimporter",
    "/Library/Spotlight/iWork.mdimporter",
    "/Library/Spotlight/Microsoft Office.mdimporter",
    "/System/Library/Spotlight/Application.mdimporter",
    "/System/Library/Spotlight/Archives.mdimporter",
    "/System/Library/Spotlight/Audio.mdimporter",
    "/System/Library/Spotlight/Automator.mdimporter",
    "/System/Library/Spotlight/Bookmarks.mdimporter",
    "/System/Library/Spotlight/Chat.mdimporter",
    "/System/Library/Spotlight/CoreMedia.mdimporter",
    "/System/Library/Spotlight/Font.mdimporter",
    "/System/Library/Spotlight/iCal.mdimporter",
    "/System/Library/Spotlight/Image.mdimporter",
    "/System/Library/Spotlight/iPhoto.mdimporter",
    "/System/Library/Spotlight/iPhoto8.mdimporter",
    "/System/Library/Spotlight/Mail.mdimporter",
    "/System/Library/Spotlight/MIDI.mdimporter",
    "/System/Library/Spotlight/Notes.mdimporter",
    "/System/Library/Spotlight/PDF.mdimporter",
    "/System/Library/Spotlight/PS.mdimporter",
    "/System/Library/Spotlight/QuartzComposer.mdimporter",
    "/System/Library/Spotlight/RichText.mdimporter",
    "/System/Library/Spotlight/SystemPrefs.mdimporter",
    "/System/Library/Spotlight/vCard.mdimporter",
    "/Applications/Microsoft Office 2011/Microsoft Outlook.app/Contents/Library/Spotlight/Microsoft Outlook.mdimporter",
    "/Applications/Xcode.app/Contents/Library/Spotlight/uuid.mdimporter",
    "/Applications/DjView.app/Contents/Library/Spotlight/DjVu.mdimporter"
)

тести bmikes

Файл notes.tex не можна шукати в Finder. Я змінюю його на notes.txt, яку зараз я можу шукати в Finder. Це пропонує мені не шукати проблему-програму (Spotlight, md ..., що б ви не використовували, як я багато разів описував у коментарях). Так tex -проблема в системі. Виходи одного файлу, але з двома різними закінченнями. Вихід txt -файлу:

15:42:23:Desktop:masi$ mdls 8.9.2015.txt 
kMDItemContentCreationDate     = 2015-09-22 13:38:31 +0000
kMDItemContentModificationDate = 2015-09-22 13:38:31 +0000
kMDItemContentType             = "public.plain-text"
kMDItemContentTypeTree         = (
    "public.plain-text",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2015-09-22 13:39:22 +0000
kMDItemDisplayName             = "8.9.2015.txt"
kMDItemFSContentChangeDate     = 2015-09-22 13:38:31 +0000
kMDItemFSCreationDate          = 2015-09-22 13:38:31 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "8.9.2015.txt"
kMDItemFSNodeCount             = 62503
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 502
kMDItemFSSize                  = 62503
kMDItemFSTypeCode              = ""
kMDItemKind                    = "Plain Text Document"
kMDItemLogicalSize             = 62503
kMDItemPhysicalSize            = 65536

Вихід tex -файлу:

15:42:27:Desktop:masi$ mdls 8.9.2015.tex 
kMDItemContentCreationDate     = 2015-09-22 13:38:31 +0000
kMDItemContentModificationDate = 2015-09-22 13:38:31 +0000
kMDItemContentType             = "org.tug.tex"
kMDItemContentTypeTree         = (
    "org.tug.tex",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemDateAdded               = 2015-09-22 13:42:37 +0000
kMDItemDisplayName             = "8.9.2015.tex"
kMDItemFSContentChangeDate     = 2015-09-22 13:38:31 +0000
kMDItemFSCreationDate          = 2015-09-22 13:38:31 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = 0
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = 0
kMDItemFSLabel                 = 0
kMDItemFSName                  = "8.9.2015.tex"
kMDItemFSNodeCount             = 62503
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 502
kMDItemFSSize                  = 62503
kMDItemFSTypeCode              = ""
kMDItemKind                    = "TeX document"
kMDItemLogicalSize             = 62503
kMDItemPhysicalSize            = 65536

Потрібні команди:

mkdir /Users/masi/Desktop/masi
18:07:56:~:masii$ cp /tmp/8.9.2015.tex /Users/masi/Desktop/masi/
18:08:09:~:masi$ cd /Users/masi/Desktop/masi/
18:08:16:masi:masi$ echo osteoporosis > test_file.txt
18:08:24:masi:masi$ mdfind osteoporosis |grep /Users/masi/Desktop/masi/
/Users/masi/Desktop/masi/test_file.txt
18:08:47:masi:masi$ mdls -name kMDItemContentType test_file.txt 
kdItemContentType = (public.plain-text)
18:09:49:masi:masi$ mv test_file.txt test_file.tex
18:10:14:masi:masi$ mdfind osteoporosis | grep /Users/masi/Desktop/masi/
18:10:20:masi:masi$ mdls -name kMDItemContentType test_file.tex 
kMDItemContentType = "org.tug.tex"

Поточні засоби діагностики Використання та обговорення в чаті

Добре прихована команда від Чи можливо запитувати базу даних служб запуску програм, які відкриють довільний файл або тип UTI?

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -n7 org.tug.tex

Ми з’ясували, що в TeXShop MacTeX 2015 немає TeX.mdimporter. Встановлення цього дає в останньому рядку mdimport -L:

"/Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter")

Невдала спроба з Patrix

mkdir -p ~/Library/Spotlight; ln -s /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter ~/Library/Spotlight/

після цього rm ~/Library/Spotlight/TeX.mdimporterми перезавантажили індекс Spotlight, перемістивши HardDisc до панелі Prevent-і швидко видаливши його, тому зайнявши час для індексації системи.

результати відповіді кланомата, який працював один день, поки не повернувся до поганого стану

Я отримую нестабільно деякі .tex файли в mdfind. Після одноденного використання з ініціативи цієї пропозиції, стан повернувся до поганого стану:

  • Пошук остеопорозу повертає ті самі файли, що і один день тому назад, але я помітив, що ті файли, які останнім часом не було видно в пошукових збігах і досить тривалий час при останньому редагуванні, не видно в пошуку
  • показані лише нещодавно відредаговані файли, а фактично іноді навіть 3,5 місяці

Біжить 18:25:06:~:masi$ /usr/bin/mdimport -d3 /Users/masi/Dropbox/Internal\ Diseases/24.9.2015.texі стає

(Debug) Import: file:/Users/masi/Dropbox/Internal Diseases/24.9.2015.tex plugin:file://localhost/Library/Spotlight/TeX.mdimporter/ /Library/Spotlight/TeX.mdimporter
(Info) Import: edu.uo.texshop.tex 
(Debug) Import: Attributes for file /Users/masi/Dropbox/Internal Diseases/24.9.2015.tex: {
    ":MD:kMDExtendedImportDictionary" =     {
    };
    "_kMDItemFinderLabel" = 0;
    "com_apple_metadata_modtime" = 464803819;
    kMDItemContentCreationDate = "2015-09-23 19:57:11 +0000";
    kMDItemContentModificationDate = "2015-09-24 16:10:19 +0000";
    kMDItemContentType = "edu.uo.texshop.tex";
    kMDItemContentTypeTree =     (
        "edu.uo.texshop.tex",
        "public.text",
        "public.data",
        "public.item",
        "public.content",
        "public.plain-text",
        "org.tug.tex"
    );
    kMDItemDateAdded = "2015-09-23 19:57:11 +0000";
    kMDItemDisplayName =     {
        "" = "24.9.2015.tex";
    };
    kMDItemKind =     {
        "" = "TeX File";
        en = "TeX File";
        pt = "Documento TeX";
    };
    kMDItemLogicalSize = 18220;
    kMDItemPhysicalSize = 20480;
    kMDItemTextContent = "\...";
}
2015-09-24 18:25:50.335 mdimport[6875:707] Imported '/Users/masi/Dropbox/Internal Diseases/24.9.2015.tex' of type 'edu.uo.texshop.tex' with plugIn /Library/Spotlight/TeX.mdimporter.
2015-09-24 18:25:50.336 mdimport[6875:707] Attributes: {
    ":MD:kMDExtendedImportDictionary" =     {
    };
    "_kMDItemFinderLabel" = 0;
    "_kMDItemStaticInterestScore" = "0.5";
    "com_apple_metadata_modtime" = 464803819;
    kMDItemContentCreationDate = "2015-09-23 19:57:11 +0000";
    kMDItemContentModificationDate = "2015-09-24 16:10:19 +0000";
    kMDItemContentType = "edu.uo.texshop.tex";
    kMDItemContentTypeTree =     (
        "edu.uo.texshop.tex",
        "public.text",
        "public.data",
        "public.item",
        "public.content",
        "public.plain-text",
        "org.tug.tex"
    );
    kMDItemDateAdded = "2015-09-23 19:57:11 +0000";
    kMDItemDisplayName =     {
        "" = "24.9.2015.tex";
    };
    kMDItemKind =     {
        "" = "TeX File";
        en = "TeX File";
        pt = "Documento TeX";
    };
    kMDItemLogicalSize = 18220;
    kMDItemPhysicalSize = 20480;
    kMDItemTextContent = "\...";
}

Здогадайтесь про виникнення проблеми: /Volumes/Disc/.Spotlight-V100 / ...

Я досліджував динаміку пам’яті в різні моменти часу fdupes -rd /Volumes/Disc2/, під час індексації виконується наступний зразок:

[1] /Users/masi/Dropbox/det2/plan.tex
[2] /Volumes/Disc2/.Spotlight-V100/Store-V2/440B4DE1-129F-46AB-9D58-14F473B0282A/Cache/0000/0000/0003/213630.txt
[3] /Volumes/Disc2/.Spotlight-V100/Store-V2/440B4DE1-129F-46AB-9D58-14F473B0282A/Cache/0000/0000/0003/213631.txt
[4] /Volumes/Disc2/.Spotlight-V100/Store-V2/440B4DE1-129F-46AB-9D58-14F473B0282A/Cache/0000/0000/0003/213633.txt
... [10] sometimes much more
---

де вміст файлу - два порожні рядки. Ви бачите багато повторюваних записів, створених Spotlight для його індексу. Індекс Spotlight має багато дублів у багатьох пунктах свого функціонування. Я також вивчав цю поведінку в різних засобах масової інформації. Існує багато фіктивних / дублікатів файлів, створених під час індексації та протягом стабільного періоду, коли індексація проводиться. Я думаю, що Apple зробила погану роботу в розробці індексу, який використовує Spotlight.


Як можна шукати документи LaTeX за допомогою mdfind / Spotlight / Finder?


Оскільки A) це гарне питання в тому, що це ускладнюється перетином прожектора, типів файлів та бази даних служб запуску. щоб публікації не стали бруднішими, ніж потрібно. chat.stackexchange.com/rooms/info/29405/…
bmike

1
Будь ласка, не додайте відповіді до тексту питання, а надішліть його як відповідь нижче.
nohillside

Маючи тут і ті ж проблеми. Зверху значки для .tex-документів - порожні (загальні). Можливо, два питання пов'язані?
користувач11126

@ user11126 Будь ласка, дивіться прийняту відповідь. Apple багато років не виявляє жодної мотивації вирішувати проблему. Дивіться прийняту відповідь та її пропозицію без прожектора. Термінальний підхід працює набагато краще. - Щодо другого - ви, можливо, не встановили MacTex або у вас є помилка в конфігурації.
Лео Леопольд Герц 준영

Відповіді:


5

Це, ймовірно, є результатом редактора / програмного забезпечення для TEX, який ви використовуєте, оскільки для обробки звичайних текстових файлів вам не потрібен жоден імпортер прожектора. (Отже, ви можете просто видалити спеціальний імпортер програми або вибрати імпортера оновлення / іншого).

Замість того, щоб здогадуватися у цій справі - ось як прибити нігть, де проблема лежить. Редактор може змінити ** kMDItemContentType ** на той, який не індексується, або у вас є розширення сторонніх прожекторів, яке виходить з ладу. Ось як я знаю, що з цього (або щось більш несподіване) відбувається:

A) Чи вказує прожектор довільний текстовий файл, коли ви змінюєте розширення з .txt на .tex?
B) Порівняйте метадані для файлів, щоб знати, що відбувається з використаннямmdls


Щоб перевірити А, відкрийте редагування тексту та вставте в документ одне слово: остеопороз

Якщо потрібно, перетворіть документ у звичайний текст (це, мабуть, багатий текст) - Shift + Command + T (або скористайтеся меню формату - Зробити звичайний текст) та збережіть його на робочому столі як file.txt - Якщо в меню формату написано Зробити багатим Потім текст не натискайте клавіші, а просто збережіть документ.

У цей момент прожектор повинен негайно побачити файл. Якщо ні, у вас є проблема із прожектором, а не з файлами .tex. Це дуже основна проблема, якщо ваш прожектор порушений, щоб не індексувати текстові файли простого тексту. Якщо це працює, то змініть розширення .txt на .tex та перевірте прожектор.


Для тесту B - використовуйте mdlsкоманду для вивчення відмінностей метаданих між вашим файлом та файлом TextEdit, які працюють із прожектором. Зверніть особливу увагу на наступні поля:

kMDItemContentType             = "public.plain-text"
kMDItemContentTypeTree         = (
    "public.plain-text",
    "public.text",
    "public.data",
    "public.item",
    "public.content"
)
kMDItemKind                    = "Plain Text Document"

Зміна .txt на .tex викликає зміну цього (оскільки я не маю жодної програми, яка заявляє про розширення файлу .tex і відображає його до класифікації служб запуску / прожектора та належної kMDItemContentType / kMDItemKind на відміну від загальної та ad / hoc тип:

kMDItemContentType             = "dyn.ah62d4rv4ge81k3p2"
kMDItemContentTypeTree         = (
    "dyn.ah62d4rv4ge81k3p2",
    "public.data",
    "public.item"
)
kMDItemKind                    = "Document"

Ось короткий тест, який можна вирізати / вставити, якщо навички вашого терміналу ще не розвинені. Це видалить вміст будь-яких імен файлів test_file на робочому столі, тому зробіть резервну копію, якщо ви не впевнені перед тим, як вставити команди нижче:

cd ~/Desktop/
echo osteoporosis > test_file.txt
mdfind osteoporosis | grep Desktop
mdls  -name kMDItemContentType test_file.txt 
mv test_file.txt test_file.tex
mdfind osteoporosis | grep Desktop
mdls  -name kMDItemContentType test_file.tex 

Ці mdfindкоманди еквівалентно використання Прожектори, так що перевірити , що термінал пошук відповідає пошуку прожектора на той момент.

Як виноска, ці інструменти потрібні лише для діагностики ступеня поломки, а не для заміни пошуку в центрі уваги. Просто ви не можете діагностувати проблему прожектора лише за допомогою прожектора. Крім того, ви можете дивитись журнал консолі, виконуючи кроки, ~/Desktopякщо у вас з’являються повідомлення про аварії або інша діагностика прожекторів, коли ви дбаєте про підсистему.

Крім того, справи швидко стають неприємними, якщо ви можете шукати звичайний текстовий документ, але не текстовий. У своєму оновленні ви згадали, що .tex-файли мають тип "org.tug.tex" - ви можете вивчити базу даних служб запуску, щоб дізнатися, які імпортери системні речі відповідають за аналіз цього файлу та їх видалення (або просто зробіть освічена здогадка і тимчасово видаліть програми TEX, щоб побачити, чи він тимчасово "фіксує" прожектор).

lsregister -dump| grep -n7 org.tug.tex

Звідки lsregisterдобре прихований інструмент в / Системі - дивіться цю тему на SuperUser, щоб прочитати послуги запуску: /superuser/323599/, а цей потік тут: Скопіюйте записи в меню "Відкрити з" у Finder навіть після відновлення Launch Services , щоб спробувати деякі дивні речі. Я досить впевнений, що зможу вияснити, що таке у вашій системі приблизно за 20 хвилин тикання, але записати всі можливості доступним для вас способом і вгадати трохи відповідей виявляється складніше, ніж я очікував.



Я зв’язався з розробником Textmate і хочу підтвердити цю претензію. Проблема відтворена зараз і в Ель-Капітані.
Лео Леопольд Герц 준영

4

Я намагався відтворити ваші проблеми Spotlight у налаштуваннях віртуальної машини з Mac OS X 10.8.

Після встановлення MacTex-20150613 та оновлення всіх компонентів (> 300), включаючи TexShop та LaTeXiT, у мене не було проблем із пошуком вмісту у файлах * .tex.

Після введення:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Мені "вдалося" втратити можливість пошуку вмісту у файлах * .tex.

Щоб відновити можливість зробити це, я зробив наступне:

  • Увійшов як адміністратор Я скопіював файл /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter в / Бібліотека / Прожектор / з

    sudo cp -R /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter  /Library/Spotlight/
    
  • Підготував повторну детекцію моєї системи, попередньо перейшовши до папки /.Spotlight-V100 (у меню Finder -> Перейти -> Перейти до папки ... та ввести /.Spotlight-V100) та перемістивши всі файли та папки в цій папці до смітника. Для цього вам потрібно ввести пароль адміністратора. Якщо ви не зможете ввійти в систему входу в папку як root (можливо, вам доведеться спочатку ввімкнути root / System / Library / CoreServices / Directory Utility.app) та видалити вміст папки як root.
  • Перезавантажили Mac
  • Увійшли як адміністратор і випорожнили кошик. Повторне встановлення почнеться автоматично.

Постійна перевірка всієї відповідної інформації, наприклад атрибутів файлів або запуску служб у різних станах системи (з кількома знімками VM) за допомогою mdls , xattr та інших інструментів, не виявила нічого цікавого чи підозрілого.


Я повторював усі кроки вище в більшій мірі в новій машині управління та використовував mdimport -d3для перевірки поведінки Spotlight.

У ванільний Mac OS X файл .tex належним чином імпортується за допомогою імпортера dyn.random:

host:~user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample.tex
(Debug) Import: file:/Users/user/Desktop/sample.tex plugin:(null) (null)
2015-09-23 20:20:42.359 mdimport[313:707] Imported '/Users/user/Desktop/sample.tex' of type 'dyn.ah62d4rv4ge81k3p2' with no plugIn. 

Знайдено вміст (ключові слова).

Це ж стосується Mac OS X після встановлення, але не запускаючи одного з Tex.apps, імпортер змінив на RichText.mdimporter, хоча:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample.tex
(Debug) Import: file:/Users/user/Desktop/sample.tex plugin:file://localhost/System/Library/Spotlight/RichText.mdimporter/ /System/Library/Spotlight/RichText.mdimporter
(Info) Import: public.tex 

Після запуску Tex.app (в моєму випадку TeXShop) імпортер використовує типовий димпортер TeX.md за замовчуванням, що знаходиться в глибині пакета TeXShop:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample.tex
(Debug) Import: file:/Users/user/Desktop/sample.tex plugin:file://localhost/Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter/ /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter
(Info) Import: edu.uo.texshop.tex 

Після оновлення MacTex-20150613, включаючи TexShop та LaTeXiT, індексація повністю порушена:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample-2.tex
(Debug) Import: file:/Users/user/Desktop/sample-2.tex plugin:(null) (null)
2015-09-23 21:29:49.278 mdimport[5541:707] Imported '/Users/user/Desktop/sample-2.tex' of type 'public.tex' with no plugIn.

Правильний шлях до плагіна TeX.mdimporter (всередині TexShop) загубився, і тому можливість індексувати новий * .tex-файл зникла. Інші плагіни, такі як dyn.random або RichText.mdimporter, напевно, не наступають, тому що вони не індексують файли типу 'public.tex'. Пошук вмісту в (принаймні нових) файлах .tex вже не можливий.

Після копіювання TeX.mdimporter в / Бібліотека / Прожекторне відновлення індексується:

host:~ user$ /usr/bin/mdimport -d3 /Users/user/Desktop/sample-3.tex
(Debug) Import: file:/Users/user/Desktop/sample-3.tex plugin:file://localhost/Library/Spotlight/TeX.mdimporter/ /Library/Spotlight/TeX.mdimporter
(Info) Import: public.tex 

Щоб належним чином перевстановити всі файли .tex (особливо ті, у яких ключові слова вмісту не підлягають пошуку), вам доведеться відновити базу даних уваги (перевірити першу частину моєї відповіді) або змінити дати модифікації всіх файлів .tex для того, щоб ініціювати їх повторне дексирування. .


Цікаво. Чи потрібен імпортеру для повнотекстового пошуку тексту? Просто видалення імпортера повинно дозволяти простому текстовому прожектору обробляти всі файли, ні? (і все-таки величезний +1 - велика робота)
bmike

Я можу шукати всі мої файли без спеціального імпортера, але я більше не працюю 10,8 ... дякую @klanomath
bmike

@Masi, що робить mdutil -s ~/Dropboxабо якщо у вас з’являється помилка під час виконання першого sudo mdutil -s ~/Dropboxвідображення команди ?
кланомат

@Masi Хоча це повідомлення про помилку, це не помилка "bash", яка виконує команду, викликану відсутніми дозволами (що я мав на увазі з помилкою). Це повідомлення про помилку, яке говорить про те, що mdutilне може індексувати папку, що випадає. Як ви обмінюєтесь (dl / ul) або де зберігаєте свої .tex файли? У папці Dropbox?
кланомат

@Masi Disc2 - це другий том або хмарна програма / послуга на зразок Dropbox?
кланомат

4

Ось як я вирішив цю проблему.

Примітка. Це все ще працює, оскільки я вперше розмістив рішення. У той час я використовував Mac OS 10.11.5 і TeXShop 3.62; тепер це Mac OS 10.12.3 і TeXShop 3.77. Для редагування файлів .plist (як пояснено нижче) я використовую Xcode.

По-перше, використовуючи mdlsкоманду, я виявив, що всі мої файли .tex повідомляються kMDItemContentType = “public.tex”(Якщо ваша система звітує по-іншому, то вам доведеться відповідно змінити наступні інструкції.)

Тому я відкрив TeXShop> Зміст (клацнувши правою кнопкою миші TeXShop та вибравши Показувати вміст пакета). Я змінив Info.plist, додавши public.tex як тип вмісту документа UTI таким чином (див. Рядок, виділений синім кольором):

редагування info.plist

Потім я продовжував вносити зміни до Info.plist у TeXShop> Зміст> Бібліотека> Прожектор> TeX.mdimporter> Зміст (виконати Показати зміст пакету TeX.mdimporter). Як і вище, я додав public.tex у відповідних місцях. Дивіться наступне зображення:

редагування Info.plist TeX.mdimporter

Після цього Spotlight здійснює пошук вмісту файлів .tex.


Було б чудово отримати для цього однолінійку, щоб краще зрозуміти це. Поки немає підтвердження про те, як це працює.
Лео Леопольд Герц 준영

Я хочу, щоб ти показав нам звичайний текстовий редактор; Таблиця Xcode - це щось заплутане.
Деллу

Нарешті знову працюємо над Сьєррою! Яке полегшення!
Флоріан

2

Здається, це проблема з імпортом Spotlight MetaData. Пропущений, пошкоджений або зламаний шлях до "плагін прожектора", встановлений пакетом "TexLive".

Вихід "mdimport -L" на моїй машині включає рядок:

"/ Програми / TeX / TeX Live Utility.app/Contents/Library/Spotlight/DVIImporter.mdimporter"

Я не бачу подібного рядка у вашому висновку. Хорошим рішенням для вас може стати перевстановлення дистрибутива "TeX Live" з дистрибуції MacTeX-2015 за адресою: https://www.tug.org/mactex/, це повинно виправити ваш зламаний шлях mdimport.

mactex-20150613.pkg


3
Не користуйтеся скороченими посиланнями - вони прикривають місце призначення.
гр

Перевстановлення проблеми не вирішило.
Лео Леопольд Герц 준영

1

Якщо ви можете бути без прожектора

Якщо ви хочете отримати список файлів, а потім переглядати кожен з них окремо.

  • Використовуйте сценарій, haetexяк описано в потоці Як шукати файли .tex? яка працює також у BSD, оскільки POSIX.

Якщо ви хочете, щоб усі імена файлів і збігів були в одному і тому ж представленні, використовуйте для пошуку всіх файлів у Каталозі Time...шляхом рекурсивного переходу.

  • Файли / файли з посиланням [fd0]

    find -L . -type d -path './Time*' \ 
        -exec grep -d "recurse" series {} + | 
    cut -c -80
    
  • .tex файли без пробілів у каталогуNames ( джерело )

    find -L $(find . -type l -name 'Math*') -name '*.tex' \
        -exec fgrep word /dev/null {} + |
    cut -c -80
    

Якщо прожектор

Тимчасове виправлення полягає у використанні .txt документів замість .tex документів у деяких папках, оскільки це стабільне рішення

cat *.tex > summary_all.txt

Інші спроби

  • Я намагаюся знайти термінальний підхід для пошуку .tex файлів тут про те, щоб відкрити результат, який отримав PATH, натиснувши кнопку Переглядач?
  • Я намагаюся замінити mdfind тут про те, як замінити mdfind будь-яким іншим інструментом для .tex?

1
Як зробити рекурсивний пошук у файлі? Якщо я вас правильно зрозумів, ви можете згорнути обидві ваші заяви про пошук в одинfind -L . -type d -path './Time*' -exec grep -d "recurse" series {} +
fd0

0

Якщо ви не можете знайти більш бажане рішення, ви завжди можете спробувати mdfind.
Я розумію, що це CLI від колеги Spotlight . Я використовую його часто і вважаю це досить корисним.
Для його використання просто відкрийте нативну Terminal.app , а потім введіть команду та аргумент так:

username@hostname:~$ mdfind osteoporosis.tex

Крім того, якщо ви не знаєте назви; ви можете просто перерахувати всі файли LaTeX за допомогою:

username@hostname:~$ mdfind .tex

Існує ймовірність, що ці запити можуть збігатися з подібними рядками, тобто ".text", у цьому випадку використовуйте:

username@hostname:~$ mdfind osteoporosis.tex | grep '\.tex$'

І / або простіше: (Це, мабуть, найкращий варіант для вашої ситуації :)

username@hostname:~$ mdfind .tex | grep '\.tex$'

Звертаючись | grep '\.tex$'до команди, в основному запускає результати через інший фільтр, видаляючи всі імена файлів, які не містять розширення LaTeX; '.tex', наприкінці їх рядка.


FYI: Деякі типи файлів, здається, не дозволяють Spotlight &mdfindідентифікувати чи знаходити їх за вмістом . Це тому, що Spotlight може індексувати лише ті типи файлів, про які він знає. Apple надає деякі плагіни для індексації найпоширеніших типів файлів, але не всіх. Мабуть, має бути імпортер LaTeX Spotlight, включений до вашої копії MacTex, але якщо він зламаний, відсутній або неадекватний, ви можете знайти чудовий тут: http://wiesmann.codiferes.net/wordpress/?page_id=262


Також тут, від LyX для Mac OS X:
http://wiki.lyx.org/Mac/Spotlight/
І в комплекті з TeXShop тут:
http://pages.uoregon.edu/koch/texshop/


Див. Chat.stackexchange.com/rooms/29405/… для обговорення та повернення / назад з цього питання.
bmike

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.