จะค้นหาเอกสาร LaTeX ใน Spotlight ได้อย่างไร


12

ฉันได้ทำซ้ำปัญหาในขณะนี้ใน El Capitan ด้วยส่วนประกอบใหม่ (มาเธอร์บอร์ด 3x SSD) ใน Macbook Air 2013- กลางของฉัน ฉันติดตั้ง OS X (El Capitan, Yosemite) เรียบร้อยแล้วขณะทำการทดสอบ OS X ล่าสุดที่การค้นหา. tex เป็น 10.8.5 ใน Spotlight ฉันไม่เห็นเอกสารใด ๆ . 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 -files อย่างถูกต้องในระบบ อย่างไรก็ตามการรวมเข้ากับคำอื่น ๆ เช่นโดย.tex diabetesไม่ให้ไฟล์ -tiles อีกต่อไป ผู้นำเข้าที่ได้รับจาก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 ได้แล้ว สิ่งนี้เสนอให้ฉันว่าไม่ใช่ปัญหาการค้นหา - โปรแกรม (สปอตไลท์, md ... , สิ่งที่คุณใช้เพราะฉันอธิบายหลายครั้งในความคิดเห็น) ดังนั้นเท็กซัส -problem ในระบบ เอาต์พุตของไฟล์เดียวกัน แต่มีสองตอนจบที่ต่างกัน ผลลัพธ์ของ 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

ผลลัพธ์ของ 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

คำสั่งที่ต้องการ:

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 -panel และลบออกอย่างรวดเร็วดังนั้นใช้เวลาสักครู่เพื่อสร้างดัชนีระบบ

ผลการตอบของ klanomath ซึ่งทำงานหนึ่งวันจนกระทั่งกลับไปที่สถานะไม่ดี

ฉันได้รับไฟล์. tex บางไฟล์ในรูปแบบ mdf อย่างไม่แน่นอน หลังจากใช้ไปหนึ่งวันจากผู้เริ่มต้นข้อเสนอนี้เงื่อนไขก็กลับไปอยู่ในสถานะไม่ดี:

  • การค้นหาโรคกระดูกพรุนส่งคืนไฟล์เดียวกับหนึ่งวันที่ผ่านมา แต่ฉันสังเกตเห็นว่าไฟล์เหล่านั้นซึ่งไม่ปรากฏในการค้นหาเมื่อเร็ว ๆ นี้และนานพอที่จะแก้ไขครั้งล่าสุดจะไม่ปรากฏในการค้นหา
  • แสดงเฉพาะไฟล์ที่ถูกแก้ไขเมื่อเร็ว ๆ นี้และบางครั้งอาจเป็นไฟล์ที่มีอายุ 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) นี่เป็นคำถามที่ดีเพราะมีความซับซ้อนเนื่องจากการแยกสปอตไลต์ประเภทไฟล์และฐานข้อมูลการเปิดตัวบริการ b) มันต้องการมากไปมาฉันได้ทำห้องแชทเพื่อพูดคุยปัญหา / ซ้ำในการแก้ไขปัญหา เพื่อให้การโพสต์ไม่ยุ่งเกินความจำเป็น chat.stackexchange.com/rooms/info/29405/…
bmike

1
โปรดอย่าเพิ่มคำตอบลงในข้อความคำถามโพสต์เป็นคำตอบด้านล่างแทน
nohillside

มีปัญหาเดียวกันที่นี่ ด้านบนของไอคอนสำหรับเอกสาร. tex จะว่างเปล่า (ทั่วไป) บางทีทั้งสองประเด็นเกี่ยวข้องกัน?
user11126

@ user11126 โปรดดูคำตอบที่ยอมรับ Apple ไม่ได้แสดงแรงจูงใจในการแก้ปัญหานี้มานานหลายปีแล้ว ดูคำตอบที่ยอมรับได้และข้อเสนอโดยไม่มี Spotlight วิธีการทำงานได้ดีขึ้นมาก - - เกี่ยวกับสิ่งที่สอง - คุณอาจไม่ได้ติดตั้ง MacTex หรือคุณมีข้อผิดพลาดในการกำหนดค่า
LéoLéopold Hertz 준영

คำตอบ:


5

สิ่งนี้อาจเป็นผลมาจากตัวแก้ไข / ซอฟต์แวร์สำหรับ TEX ที่คุณใช้เนื่องจากคุณไม่ต้องการผู้นำเข้าสปอตไลต์เพื่อประมวลผลไฟล์ข้อความธรรมดา (ดังนั้นคุณสามารถลบผู้นำเข้าที่กำหนดเองของแอปของคุณหรือเลือกผู้นำเข้าการอัปเดต / ที่แตกต่างกัน)

แทนที่จะคาดเดากรณี - นี่คือวิธีการตอกย้ำที่ปัญหาอยู่ เครื่องมือแก้ไขอาจเปลี่ยนค่า ** kMDItemContentType ** เป็นรายการที่ไม่ได้จัดทำดัชนีหรือคุณมีส่วนขยายสปอตไลท์ของบุคคลที่สามที่หยุดทำงาน นี่คือวิธีที่ฉันรู้ว่าสิ่งใดที่เกิดขึ้น (หรือสิ่งที่ไม่คาดคิด)

A) สปอตไลต์จัดทำดัชนีไฟล์ข้อความที่กำหนดเองหรือไม่เมื่อคุณเปลี่ยนนามสกุลจาก. txt เป็น. tex
B) เปรียบเทียบข้อมูลเมตาสำหรับไฟล์ที่จะรู้ว่าเกิดอะไรขึ้นโดยใช้mdls


หากต้องการทดสอบ A ให้เปิดแก้ไขข้อความและวางคำหนึ่งคำลงในเอกสาร: โรคกระดูกพรุน

หากจำเป็นให้แปลงเอกสารเป็นข้อความธรรมดา (อาจเป็นข้อความที่มีรูปแบบมาก) - Shift + Command + T (หรือใช้เมนูรูปแบบ - สร้างข้อความล้วน) และบันทึกลงในเดสก์ท็อปของคุณเป็น file.txt - หากเมนูรูปแบบแจ้งว่าMake Rich ข้อความจากนั้นอย่ากดปุ่มและเพียงบันทึกเอกสาร

ณ จุดนั้นสปอตไลท์ควรเห็นไฟล์ทันที หากไม่มีแสดงว่าคุณมีปัญหาสปอตไลต์และไม่ใช่ปัญหาไฟล์. 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 ที่เหมาะสม พิมพ์:

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 นาทีในการกระตุ้น แต่เขียนความเป็นไปได้ทั้งหมดในทางที่คุณสามารถเข้าถึงได้และการเดาคำตอบนั้นยากกว่าที่ฉันคาดไว้


ขอให้เรายังคงอภิปรายนี้ในการแชท
bmike

ฉันติดต่อผู้พัฒนา Textmate และต้องการยืนยันการอ้างสิทธิ์นี้ ปัญหาได้รับการทำซ้ำแล้วใน El Capitan
LéoLéopold Hertz 준영

4

ฉันพยายามสร้างปัญหาสปอตไลต์ของคุณใหม่ในการตั้งค่าเครื่องเสมือนด้วย 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ไปที่/ Library / Spotlight /ด้วย

    sudo cp -R /Applications/TeX/TeXShop.app/Contents/Library/Spotlight/TeX.mdimporter  /Library/Spotlight/
    
  • เตรียมการทำดัชนีระบบของฉันอีกครั้งโดยไปที่โฟลเดอร์ /.Spotlight-V100 เป็นครั้งแรก (ใน Finder menubar -> Go -> ไปที่ Folder ... และป้อน /.Spotlight-V100) และย้ายไฟล์และโฟลเดอร์ทั้งหมดในโฟลเดอร์นี้ ไปที่ถังขยะ คุณต้องป้อนรหัสผ่านผู้ดูแลของคุณเพื่อทำเช่นนั้น หากคุณล้มเหลวในการเข้าสู่โฟลเดอร์ในฐานะผู้ใช้รูท (คุณอาจต้องเปิดใช้งานรูทก่อนโดยใช้ / System / Library / CoreServices / Directory Utility.app) และลบเนื้อหาของโฟลเดอร์เป็นรูท
  • รีบูตเครื่อง Mac
  • เข้าสู่ระบบในฐานะผู้ดูแลระบบและล้างถังขยะ การทำดัชนีใหม่จะเริ่มต้นโดยอัตโนมัติ

การตรวจสอบข้อมูลที่เกี่ยวข้องทั้งหมดอย่างต่อเนื่องเช่นคุณสมบัติไฟล์หรือบริการเรียกใช้ในสถานะต่างๆของระบบ (ด้วย VM snapshot หลายตัว) โดยใช้mdls , xattrและเครื่องมืออื่น ๆ ไม่ได้เปิดเผยสิ่งที่น่าสนใจหรือน่าสงสัย


ฉันทำซ้ำทุกขั้นตอนข้างต้นอย่างละเอียดยิ่งขึ้นใน VM ใหม่และใช้mdimport -d3ในการตรวจสอบพฤติกรรมของ Spotlight

ในไฟล์วานิลลา Mac OS X a .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.mdimporter เริ่มต้นที่อยู่ในส่วนลึกของชุด 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 ไปที่การทำดัชนีเนื้อหา / Library / Spotlight แล้ว:

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แสดง
klanomath

@Masi แม้ว่าจะเป็นข้อความแสดงข้อผิดพลาด แต่ไม่ใช่ข้อผิดพลาด "bash" ในการเรียกใช้คำสั่งที่เกิดจากการอนุญาตที่ขาดหายไป (ซึ่งฉันหมายถึงมีข้อผิดพลาด) เป็นข้อความแสดงข้อผิดพลาดที่บอกว่าmdutilไม่สามารถสร้างดัชนีโฟลเดอร์ดรอปบ็อกซ์ของคุณ คุณแลกเปลี่ยน (dl / ul) หรือคุณเก็บไฟล์. tex ของคุณไว้ที่ไหน ในโฟลเดอร์ Dropbox หรือไม่
klanomath

@Masi Disc2 เป็นไดรฟ์ข้อมูลที่สองหรือแอพคลาวด์ / บริการเช่น Dropbox?
klanomath

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


มันจะเป็นการดีหากคุณได้รับหนึ่งบรรทัดสำหรับสิ่งนี้เพื่อทำความเข้าใจให้ดีขึ้น ยังไม่มีการยืนยันเกี่ยวกับวิธีการทำงาน
LéoLéopold Hertz 준영

ฉันหวังว่าคุณจะแสดงให้เราเห็นด้วยโปรแกรมแก้ไขข้อความธรรมดา; ตารางของ Xcode ค่อนข้างสับสน
Dellu

ทำงานอีกครั้งในที่สุดเซียร์รา! ค่อยยังชั่ว!
Florian

2

ดูเหมือนว่าจะมีปัญหากับการนำเข้า Spotlight MetaData เส้นทางที่ขาดหายไปเสียหายหรือเสียหายไปยัง "ปลั๊กอินเด่น" ที่ติดตั้งโดยแพ็คเกจ "TexLive"

ผลลัพธ์ของ "mdimport -L" บนเครื่องของฉันรวมถึงบรรทัด:

"/ Applications / TeX / TeX Live Utility.app/Contents/Library/Spotlight/DVIImporter.mdimporter"

ฉันไม่เห็นบรรทัดที่คล้ายกันในผลลัพธ์ของคุณ ทางออกที่ดีสำหรับคุณอาจติดตั้งการกระจาย "TeX Live" จากการแจกจ่าย MacTeX-2015 ได้ที่: https://www.tug.org/mactex/นี่ควรแก้ไขเส้นทาง mdimport ที่เสียของคุณ

mactex-20150613.pkg


3
อย่าใช้ลิงก์ที่สั้นลงเพราะมันทำให้ปลายทางสับสน
grg

การทำดัชนีใหม่ไม่ได้แก้ปัญหา
LéoLéopold Hertz 준영

1

หากคุณไม่มีสปอตไลท์

หากคุณต้องการรับรายการไฟล์จากนั้นเรียกดูแต่ละไฟล์แยกกัน

หากคุณต้องการรับชื่อไฟล์และการแข่งขันทั้งหมดในมุมมองเดียวกันใช้สำหรับค้นหาไฟล์ทั้งหมดใน Directory Time...โดยการวนซ้ำแบบซ้ำ

  • ไฟล์ / ไฟล์ที่เชื่อมโยงกัน [fd0]

    find -L . -type d -path './Time*' \ 
        -exec grep -d "recurse" series {} + | 
    cut -c -80
    
  • ไฟล์. tex โดยไม่มีช่องว่างใน directoryNames ( แหล่งที่มา )

    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 ฉันใช้บ่อยและพบว่ามีประโยชน์มาก
หากต้องการใช้งานเพียงแค่เปิด Native 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:บางไฟล์ประเภทดูเหมือนว่าจะไม่อนุญาตให้มีสปอตไลและmdfindเพื่อระบุตัวหรือหาพวกเขาโดยพวกเขาเนื้อหา นั่นเป็นเพราะสปอตไลท์สามารถจัดทำดัชนีประเภทไฟล์ที่รู้จักเท่านั้น 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

-1

ลองTexnicleมันมีรายการที่เหมาะสมใน mdimport -L


1
ขอบคุณสำหรับข้อเสนอ! อย่างไรก็ตามเราสนใจที่จะทำให้การค้นหาระบบทำงานอีกครั้ง (Spotlight / Finder)
LéoLéopold Hertz 준영
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.