Làm cách nào để tìm kiếm LaTeX -document trong Spotlight?


12

Bây giờ tôi cũng đã tái tạo vấn đề ở El Capitan với các thành phần mới (bo mạch chủ, SSD 3x) trong Macbook Air 2013-mid của tôi. Tôi đã cài đặt sạch OS X (El Capitan, Yosemite) trong khi thực hiện thử nghiệm. OS X mới nhất nơi tìm kiếm .tex hoạt động là 10.8.5 trong Spotlight. Hiện tại tôi không thấy bất kỳ tài liệu .tex nào trong tìm kiếm Spotlight của mình. Xét nghiệm

  • Không có câu trả lời hiện tại giải quyết vấn đề vĩnh viễn. Tại Yosemite, vấn đề đã trở lại sau một thời gian với một số câu trả lời. Không có giải pháp ổn định tồn tại và ít hiểu nguyên nhân của vấn đề là gì.

Việc lựa chọn cấu hình Cài đặt không liên quan trong Spotlight vì chúng ta có thể sử dụng trực tiếp lệnh mdfindtrong terminal, tương đương với Spotlight. Tuy nhiên, chúng tôi đã thử cài đặt Mặc định, tối thiểu và Đầy đủ trong Spotlight. Đối với các thử nghiệm, chúng tôi sử dụng Cài đặt mặc định trong OS X. Hệ thống và Ứng dụng

  • Hệ thống OS X Yosemite, OS X El Capitan
  • TexShop.app được cài đặt. (MacTeX 2015, mactex-20150613.pkg).
  • Ứng dụng Tex: TextMate2-beta8
  • Spotlight / Finder / bất kỳ ứng dụng tìm kiếm nào không hoạt động với các tệp TeX và MacTeX 2015
  • Spotlight hoạt động như mong đợi với một số cài đặt khác nhau và cả với MacTeX 2015.

Lệnh mdfind(phiên bản ngày 10 tháng 6 năm 2004) tương đương với tìm kiếm Spotlight, vì vậy một thử nghiệm đơn giản không trả về kết quả nào trong hệ thống của tôi

mdfind sulfas | grep tex

Tôi nghĩ vấn đề là hệ thống không nhận ra fileformat .tex`. Điều đầu tiên là để hệ thống nhận ra nó.

đề xuất của tjt263 chỉ tìm kiếm .tex trong Finder / Spotlight

Đầu ra của Spotlight .texhoặc lệnh đầu cuối cung cấp cho tex -files chính xác trong hệ thống của tôi. Tuy nhiên, việc kết hợp nó với các thuật ngữ khác như, bởi .tex diabetes, không còn cho các tệp tex nữa. Các nhà nhập khẩu có được bởi 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"
)

bài kiểm tra của bmike

Tệp ghi chú.tex không thể tìm kiếm trong Finder. Tôi thay đổi nó thành Notes.txt mà bây giờ tôi có thể tìm kiếm trong Finder. Điều này đề xuất với tôi rằng không phải vấn đề về chương trình Tìm kiếm (Spotlight, md ..., bất cứ điều gì bạn sử dụng, như tôi đã mô tả nhiều lần trong các bình luận). Vì vậy, tex -propet trong hệ thống. Đầu ra của cùng một tệp nhưng có hai kết thúc khác nhau. Đầu ra của txt -file:

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

Đầu ra của tex -file:

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

Lệnh muốn:

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"

Công cụ chẩn đoán hiện tại Sử dụng và thảo luận trong Trò chuyện

Lệnh được ẩn kỹ từ Có thể truy vấn cơ sở dữ liệu dịch vụ khởi chạy cho các ứng dụng sẽ mở một tệp tùy ý hoặc loại UTI không?

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

Chúng tôi thấy rằng TeXShop của MacTeX 2015 không có TeX.mdimporter. Cài đặt này cung cấp cho dòng cuối cùng của mdimport -L:

"/Appluggest/TeX/TeXShop.app/Contents/L Library / Spotlight / TwX.mdimporter")

Thử không thành công với Patrix

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

sau đó rm ~/Library/Spotlight/TeX.mdimportervà chúng tôi đã đặt lại chỉ mục của Spotlight bằng cách di chuyển HardDisc sang Ngăn chặn -panel và nhanh chóng xóa nó, vì vậy bây giờ hãy dành thời gian để lập chỉ mục hệ thống.

kết quả trả lời của klanomath đã làm việc một ngày cho đến khi trở lại trạng thái xấu

Tôi nhận được một số tệp .tex không ổn định trong mdfind. Sau một ngày sử dụng từ lúc bắt đầu đề xuất này, điều kiện đã trở lại trạng thái xấu:

  • Tìm kiếm loãng xương trả về các tệp giống như một ngày trước, nhưng tôi nhận thấy rằng các tệp đó, không thể nhìn thấy trong các kết quả tìm kiếm gần đây và đủ thời gian khi chỉnh sửa lần cuối, không thể nhìn thấy trong tìm kiếm
  • chỉ các tệp được chỉnh sửa gần đây được hiển thị và thực tế đôi khi các tệp cũ 3,5 tháng được hiển thị

Chạy 18:25:06:~:masi$ /usr/bin/mdimport -d3 /Users/masi/Dropbox/Internal\ Diseases/24.9.2015.texvà nhận

(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 = "\...";
}

Đoán về nguồn gốc của vấn đề: /Volume/Disc/.Spotlight-V100 / ...

Tôi đã nghiên cứu động lực học của bộ nhớ tại các thời điểm khác nhau bằng cách fdupes -rd /Volumes/Disc2/, mẫu sau đây là trong khi lập chỉ mục:

[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
---

trong đó nội dung tập tin là hai dòng trống. Bạn thấy nhiều mục trùng lặp được tạo bởi Spotlight cho chỉ mục của nó. Chỉ số của Spotlight có nhiều điểm trùng lặp ở nhiều điểm hoạt động. Tôi cũng đã nghiên cứu hành vi này trên các phương tiện truyền thông khác nhau. Có rất nhiều tập tin giả / trùng lặp được tạo trong quá trình lập chỉ mục và trong giai đoạn ổn định khi việc lập chỉ mục được thực hiện. Tôi nghĩ Apple đã làm rất tệ trong việc thiết kế chỉ mục mà Spotlight đang sử dụng.


Làm thế nào bạn có thể tìm kiếm tài liệu LaTeX với mdfind / Spotlight / Finder?


Vì A) đây là một câu hỏi hay ở chỗ nó phức tạp bởi giao điểm của ánh đèn sân khấu, loại tệp và cơ sở dữ liệu dịch vụ khởi chạy b) nó cần rất nhiều thứ qua lại, tôi đã tạo một phòng trò chuyện để thảo luận về vấn đề / lặp đi lặp lại về khắc phục sự cố để các bài viết không trở nên lộn xộn hơn mức cần thiết. chat.stackexchange.com/rooms/info/29405/...
bmike

1
Xin vui lòng không thêm câu trả lời vào văn bản câu hỏi, thay vào đó hãy gửi nó dưới dạng câu trả lời.
nohillside

Có vấn đề tương tự ở đây. Trên đầu trang, các biểu tượng cho tài liệu .tex là các biểu tượng trống (chung). Có lẽ hai vấn đề có liên quan?
dùng11126

@ user11126 Xin vui lòng, xem câu trả lời được chấp nhận. Apple đã cho thấy không có động lực để giải quyết vấn đề trong nhiều năm. Xem câu trả lời được chấp nhận và đề xuất của nó mà không có Spotlight. Phương pháp đầu cuối hoạt động tốt hơn nhiều. - - Về điều thứ hai - bạn có thể chưa cài đặt MacTex hoặc bạn gặp lỗi trong cấu hình.
Léo Léopold Hertz

Câu trả lời:


5

Đây có thể là kết quả của trình chỉnh sửa / phần mềm cho TEX mà bạn sử dụng do bạn không cần bất kỳ nhà nhập khẩu nổi bật nào để xử lý các tệp văn bản thuần túy. (Vì vậy, bạn chỉ có thể xóa trình nhập tùy chỉnh của ứng dụng hoặc chọn cập nhật / trình nhập khác).

Thay vì đoán tại vụ án - đây là cách khắc phục vấn đề nằm ở đâu. Trình chỉnh sửa có thể thay đổi ** kMDItemContentType ** thành một thứ không được lập chỉ mục hoặc bạn có tiện ích mở rộng đèn chiếu bên thứ ba bị hỏng. Đây là cách tôi biết điều nào trong số này (hoặc điều gì đó bất ngờ hơn) đang xảy ra:

A) Spotlight có lập chỉ mục một tệp văn bản tùy ý khi bạn thay đổi phần mở rộng từ .txt sang .tex không?
B) So sánh siêu dữ liệu cho các tệp để biết những gì đang xảy ra bằng cách sử dụngmdls


Để kiểm tra A, hãy mở Chỉnh sửa văn bản và dán một từ vào tài liệu: loãng xương

Nếu cần, hãy chuyển đổi tài liệu thành văn bản thuần túy (có thể là văn bản phong phú) - Shift + Command + T (hoặc sử dụng menu định dạng - Tạo văn bản thuần túy) và lưu nó vào máy tính để bàn của bạn dưới dạng file.txt - Nếu menu định dạng cho biết Làm giàu Sau đó, văn bản không nhấn phím và chỉ lưu tài liệu.

Tại thời điểm đó, spotlight sẽ thấy tập tin ngay lập tức. Nếu không, bạn có vấn đề nổi bật và không phải vấn đề tập tin .tex. Đây là một vấn đề rất cơ bản nếu ánh đèn sân khấu của bạn bị hỏng để không lập chỉ mục các tệp văn bản thuần túy. Nếu nó hoạt động, sau đó thay đổi phần mở rộng .txt thành .tex và kiểm tra lại spotlight.


Đối với thử nghiệm B - sử dụng mdlslệnh để kiểm tra sự khác biệt siêu dữ liệu giữa tệp của bạn và tệp TextEdit hoạt động với đèn chiếu. Đặc biệt chú ý đến các lĩnh vực sau:

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

Việc đổi kiểu:

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

Đây là một bài kiểm tra ngắn bạn có thể cắt / dán nếu kỹ năng đầu cuối của bạn chưa được phát triển. Nó sẽ xóa nội dung của bất kỳ tên tệp test_file nào trên máy tính để bàn của bạn để tạo bản sao lưu nếu bạn không chắc chắn trước khi dán các lệnh bên dưới:

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 

Các mdfindlệnh tương đương với việc sử dụng Spotlight, vì vậy hãy kiểm tra xem tìm kiếm đầu cuối có khớp với tìm kiếm spotlight tại thời điểm đó không.

Như một chú thích, những công cụ này chỉ cần thiết để chẩn đoán mức độ vỡ và không phải là sự thay thế cho tìm kiếm ánh đèn sân khấu. Chỉ là bạn không thể chẩn đoán một vấn đề nổi bật với ánh đèn sân khấu một mình. Ngoài ra, bạn có thể muốn xem nhật ký giao diện điều khiển trong khi bạn đang thực hiện các bước ~/Desktoptrong trường hợp có báo cáo sự cố hoặc chẩn đoán đèn chiếu khác xảy ra trong khi bạn chọc vào hệ thống con.

Ngoài ra, mọi thứ trở nên khó chịu một cách nhanh chóng nếu bạn có thể tìm kiếm tài liệu văn bản đơn giản nhưng không phải là văn bản. Trong bản cập nhật của bạn, bạn đã đề cập rằng các tệp .tex thuộc loại "org.tug.tex" - bạn có thể khám phá cơ sở dữ liệu dịch vụ khởi chạy để tìm hiểu những gì nhà nhập khẩu mà hệ thống chịu trách nhiệm phân tích tệp này và xóa chúng (hoặc chỉ tạo một đoán được giáo dục và tạm thời xóa các ứng dụng TEX để xem nó có "sửa" tạm thời đèn chiếu không).

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

Trong trường hợp lsregisterlà một công cụ tốt ẩn trong / System - xem chủ đề này trên superuser để đọc lên trên dịch vụ phóng: /superuser/323599/ và chủ đề này ở đây: mục trùng lặp trong "Open With" menu trong Finder ngay cả sau khi xây dựng lại Dịch vụ khởi động cho một số điều kỳ quặc để thử. Tôi khá tự tin Tôi có thể nói ra những gì không ổn trên hệ thống của bạn trong khoảng 20 phút chọc, nhưng viết ra tất cả các khả năng theo cách mà bạn có thể tiếp cận và đoán được một chút câu trả lời khó hơn tôi tưởng.



Tôi đã liên hệ với nhà phát triển của Textmate và muốn xác nhận khiếu nại này. Vấn đề được sao chép ngay bây giờ cũng ở El Capitan.
Léo Léopold Hertz

4

Tôi đã cố gắng tái tạo các sự cố Spotlight của bạn trong thiết lập máy ảo với Mac OS X 10.8.

Sau khi cài đặt MacTex-20150613 và cập nhật tất cả các thành phần (> 300) bao gồm TexShop và LaTeXiT, tôi không gặp vấn đề gì khi tìm kiếm nội dung trong các tệp * .tex.

Sau khi vào:

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

Tôi "đã thành công" khi mất khả năng tìm kiếm nội dung trong các tệp * .tex.

Để lấy lại khả năng làm như vậy tôi đã làm như sau:

  • Đăng nhập với tư cách quản trị viên Tôi đã sao chép tệp /Appluggest/TeX/TeXShop.app/Contents/L Library / Spotlight / TeX.mdimporter vào / Library / Spotlight / với

    sudo cp -R /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter  /Library/Spotlight/
    
  • Chuẩn bị reindexing hệ thống của tôi bằng cách trước tiên vào thư mục /.Spotlight-V100 (trong thanh công cụ Finder -> Go -> Chuyển đến Thư mục ... và nhập /.Spotlight-V100) và di chuyển tất cả các tệp và thư mục trong thư mục này vào thùng rác. Bạn phải nhập mật khẩu quản trị viên của bạn để làm như vậy. Nếu bạn không nhập được thư mục đăng nhập với quyền root (Bạn có thể phải bật root trước bằng cách sử dụng / System / Library / CoreService / Directory Utility.app) và xóa nội dung của thư mục dưới dạng root.
  • Đã khởi động lại máy Mac
  • Đăng nhập với tư cách quản trị viên và dọn sạch thùng rác. Việc reindexing sẽ được bắt đầu tự động.

Việc liên tục kiểm tra tất cả các thông tin liên quan như thuộc tính tệp hoặc khởi chạy dịch vụ ở các trạng thái khác nhau của hệ thống (với một số ảnh chụp nhanh VM) bằng mdls , xattr và các công cụ khác không tiết lộ bất kỳ điều gì thú vị hoặc đáng ngờ.


Tôi đã lặp lại tất cả các bước trên một cách kỹ lưỡng hơn trong một VM mới và được sử dụng mdimport -d3để kiểm tra hành vi của Spotlight.

Trong vanilla Mac OS X, tệp .tex được nhập chính xác bằng trình nhập 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. 

Các nội dung (từ khóa) đã được tìm thấy.

Điều tương tự cũng áp dụng cho Mac OS X sau khi cài đặt nhưng không khởi động một trong Tex.apps, trình nhập đã thay đổi thành 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 

Sau khi bắt đầu Tex.app (trong trường hợp của tôi là TeXShop), nhà nhập khẩu sử dụng TeX.mdimporter mặc định nằm trong độ sâu của gói 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 

Sau khi cập nhật MacTex-20150613 bao gồm TexShop và LaTeXiT, việc lập chỉ mục hoàn toàn bị phá vỡ:

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.

Đường dẫn thích hợp đến plugin TeX.mdimporter (bên trong TexShop) đã bị mất và do đó khả năng lập chỉ mục tệp * .tex mới biến mất. Các plugin khác như dyn.random hoặc RichText.mdimporter không tham gia có lẽ vì chúng không lập chỉ mục các tệp thuộc loại 'public.tex'. Tìm kiếm nội dung trong (ít nhất là mới) các tệp .tex không thể thực hiện được nữa.

Sau khi sao chép TeX.mdimporter vào / Thư viện / Lập chỉ mục nội dung Spotlight được khôi phục:

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 

Để reindex tất cả các tệp .tex đúng cách (đặc biệt là các tệp mà từ khóa nội dung không thể tìm kiếm được), bạn phải xây dựng lại cơ sở dữ liệu nổi bật (kiểm tra phần đầu tiên trong câu trả lời của tôi) hoặc thay đổi ngày sửa đổi của tất cả các tệp .tex để khởi tạo lại chúng. .


Hấp dẫn. Là nhà nhập khẩu cần thiết để thực hiện tìm kiếm toàn văn bản? Chỉ cần xóa nhà nhập khẩu nên để ánh sáng văn bản đơn giản xử lý tất cả các tệp, không? (và dù sao +1 rất lớn - công việc tuyệt vời)
bmike

Tôi có thể tìm kiếm tất cả các file của tôi không có nhà nhập khẩu đặc biệt, nhưng tôi không chạy 10,8 nữa ... nhờ @klanomath
bmike

@Masi làm gì mdutil -s ~/Dropboxhoặc nếu bạn gặp lỗi khi thực hiện lệnh sudo mdutil -s ~/Dropboxhiển thị đầu tiên ?
klanomath

@Masi Mặc dù đó là một thông báo lỗi, nhưng đó không phải là lỗi "bash" khi thực thi lệnh gây ra bởi các quyền bị thiếu (ý tôi là có lỗi). Đó là một thông báo lỗi nói rằng mdutilkhông thể lập chỉ mục thư mục dropbox của bạn. Làm thế nào để bạn trao đổi (dl / ul) hoặc nơi bạn lưu trữ các tệp .tex của bạn? Trong thư mục Dropbox?
klanomath

@Masi Disc2 là tập thứ hai hoặc ứng dụng / dịch vụ đám mây như Dropbox?
klanomath

4

Đây là cách tôi giải quyết vấn đề này.

Ghi chú. Điều này vẫn hoạt động kể từ lần đầu tiên tôi đăng giải pháp. Lúc đó tôi đang sử dụng Mac OS 10.11.5 và TeXShop 3.62; bây giờ là Mac OS 10.12.3 và TeXShop 3.77. Để chỉnh sửa các tệp .plist (như được giải thích bên dưới) tôi sử dụng Xcode.

Đầu tiên, bằng cách sử dụng mdlslệnh, tôi thấy rằng tất cả các tệp .tex của tôi đã báo cáo kMDItemContentType = “public.tex”(Nếu hệ thống của bạn báo cáo khác nhau, thì bạn sẽ phải sửa đổi các hướng dẫn sau cho phù hợp.)

Vì vậy, tôi đã mở TeXShop> Nội dung (bằng cách nhấp chuột phải vào TeXShop và chọn Hiển thị nội dung gói). Tôi đã sửa đổi Info.plist bằng cách thêm public.tex dưới dạng UTI Loại nội dung tài liệu như sau (xem dòng được tô màu xanh lam):

chỉnh sửa thông tin

Sau đó, tôi tiếp tục sửa đổi Info.plist trong TeXShop> Nội dung> Thư viện> Spotlight> TeX.mdimporter> Nội dung (thực hiện Hiển thị nội dung gói của TeX.mdimporter). Cũng giống như trên, tôi đã thêm public.tex ở những nơi thích hợp. Xem hình tiếp theo:

chỉnh sửa Info.plist của TeX.mdimporter

Sau này, Spotlight đang tìm kiếm nội dung của các tệp .tex.


Sẽ thật tuyệt khi có được một dòng cho điều này để hiểu nó tốt hơn. Chưa có xác nhận nào về cách thức hoạt động.
Léo Léopold Hertz

Tôi muốn bạn chỉ cho chúng tôi với một trình soạn thảo văn bản đơn giản; bảng Xcode là một loại khó hiểu.
Dellu

Cuối cùng làm việc lại trên Sierra! Thật là nhẹ nhõm!
Florian

2

Đây dường như là một vấn đề với nhập khẩu Spotlight MetaData. Đường dẫn bị thiếu, bị hỏng hoặc bị hỏng đến "Plugin Spotlight" được cài đặt bởi gói "TexLive".

Đầu ra của "mdimport -L" trên máy của tôi bao gồm dòng:

"/ Ứng dụng / TeX / TeX Live Utility.app/Contents/L Library / Spotlight / DVIImporter.mdimporter"

Tôi không thấy một dòng tương tự trong đầu ra của bạn. Một giải pháp tốt cho bạn có thể là cài đặt lại bản phân phối "TeX Live", từ Bản phân phối MacTeX-2015 tại: https://www.tug.org/mactex/ điều này sẽ sửa đường dẫn mdimport bị hỏng của bạn.

mactex-20150613.pkg


3
Đừng sử dụng các liên kết rút gọn mà họ làm xáo trộn điểm đến.
grg

Việc reindexing không giải quyết được vấn đề.
Léo Léopold Hertz

1

Nếu bạn có thể không có Spotlight

Nếu bạn muốn có một danh sách các tập tin và sau đó duyệt từng tệp một cách riêng biệt.

Nếu bạn muốn nhận tất cả tên tệp và kết quả trùng khớp trong cùng một chế độ xem, hãy sử dụng để tìm kiếm tất cả các tệp trong Thư mục Time...bằng cách duyệt qua đệ quy

  • tập tin / tập tin liên kết [fd0]

    find -L . -type d -path './Time*' \ 
        -exec grep -d "recurse" series {} + | 
    cut -c -80
    
  • Các tập tin .tex không có khoảng trắng trong thư mụcNames ( nguồn )

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

Nếu ánh đèn sân khấu

Khắc phục tạm thời là sử dụng tài liệu .txt thay vì tài liệu .tex trong một số thư mục vì đây là giải pháp ổn định

cat *.tex > summary_all.txt

Những nỗ lực khác

  • Tôi đang cố gắng tìm một cách tiếp cận đầu cuối để tìm kiếm các tệp .tex ở đây về Để mở PATH kết quả bằng cách nhấp vào Trình xem?
  • Tôi đang cố gắng thay thế mdfind ở đây về Cách thay thế mdfind bằng bất kỳ công cụ nào khác cho .tex?

1
Làm thế nào để bạn thực hiện tìm kiếm đệ quy trên một tập tin? Nếu tôi hiểu bạn một cách chính xác thì bạn có thể chuyển cả hai câu tìm kiếm của mình thành mộtfind -L . -type d -path './Time*' -exec grep -d "recurse" series {} +
fd0

0

Nếu bạn không thể tìm thấy một giải pháp mong muốn hơn, bạn luôn có thể thử mdfind.
Tôi hiểu đó là đối tác CLI của Spotlight . Tôi sử dụng nó thường xuyên và thấy nó khá hữu ích.
Để sử dụng nó, chỉ cần mở Terminal.app gốc , sau đó nhập lệnh & đối số như vậy:

username@hostname:~$ mdfind osteoporosis.tex

Ngoài ra, nếu bạn không biết tiêu đề; bạn chỉ có thể liệt kê tất cả các tệp LaTeX với:

username@hostname:~$ mdfind .tex

Có khả năng các truy vấn này khớp với các chuỗi tương tự, ví dụ '.text', trong trường hợp này sử dụng:

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

Và / hoặc đơn giản hơn: (Đây có lẽ là lựa chọn tốt nhất cho tình huống của bạn :)

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

Áp dụng | grep '\.tex$'cho lệnh, về cơ bản sẽ chạy các kết quả thông qua một bộ lọc khác, loại bỏ mọi tên tệp không chứa phần mở rộng LaTeX; '.tex', ở cuối chuỗi của họ.


FYI: Một số loại tệp dường như sẽ không cho phép Spotlight &mdfindxác định hoặc định vị chúng theo nội dung của chúng. Đó là bởi vì Spotlight chỉ có thể lập chỉ mục các loại tệp mà nó biết. Apple cung cấp một số plugin để lập chỉ mục các loại tệp phổ biến nhất, nhưng không phải tất cả chúng. Rõ ràng cần có một nhà nhập khẩu LaTeX Spotlight kèm theo bản sao MacTex của bạnnhưng nếu nó bị hỏng, thiếu hoặc không đầy đủ, bạn có thể tìm thấy một bản tuyệt vời ngay tại đây: http://wiesmann.codiferes.net/wordpress/?page_id=262


Cũng ở đây từ LyX cho Mac OS X:
http://wiki.lyx.org/Mac/Spotlight/
Và được gói cùng với TeXShop tại đây:
http://pages.uoregon.edu/koch/texshop/


Xem chat.stackexchange.com/rooms/29405/ cấp để thảo luận và quay lại / trả lời câu hỏi này.
bmike

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.