Emacs

คำถาม & คำตอบสำหรับผู้ใช้ขยายหรือพัฒนา Emacs

2
จะประเมินโค้ด Elisp ที่มีอยู่ในสตริงได้อย่างไร?
คำถามที่สวยบอกว่ามันทั้งหมด: ฉันมีสตริงที่มีรหัสแหล่งที่มาสำหรับการแสดงออก Elisp ที่ถูกต้องและฉันต้องการที่จะประเมินมัน (ใน Python ตัวอย่างนิพจน์eval("1 - 2 + 3")จะประเมินเป็น 2)
21 read  eval 

1
ฉันจะแก้ไขปัญหา Emacs ได้อย่างไร
ในสถานการณ์ที่ Emacs ไม่ทำงานเหมือนที่ฉันต้องการฉันจะแก้ไขปัญหาได้อย่างไร ฉันจะใช้ขั้นตอนอะไรในการค้นหาและแก้ไขปัญหาด้วยตนเอง หรือล้มเหลวฉันจะรวบรวมข้อมูลที่เป็นประโยชน์เพื่อให้ผู้คนที่นี่ (หรือในรายชื่อผู้รับจดหมายหรือฟอรัมอื่น ๆ ) สามารถช่วยฉันแก้ปัญหาได้อย่างไร Emacs ของฉันมีแพ็คเกจมากมายสำเนาของตัวอย่าง & วาง (หรือถูกฆ่า & ดึง) จากทั่วอินเทอร์เน็ตและอิลิสที่กำหนดเองของฉันซึ่งฉันจำไม่ได้ว่าเป็นงานเขียนหรือไม่เข้าใจอีกต่อไป มีวิธีที่จะทำให้ความรู้สึกของภาวะแทรกซ้อนเหล่านี้ทั้งหมดหรือไม่?

2
ลิงก์โหมดองค์กรเพื่อเปิดไดเรกทอรีใน Dired
ฉันต้องการที่จะมีลิงค์เช่น [[file:~/projects][Projects]] เปิดโดยตรงใน Dired แทนที่จะเป็น Finder (ฉันใช้ Mac) ซึ่งเป็นสิ่งที่ทำตอนนี้ มีวิธีหรือไม่? (แน่นอนมีวิธีมันเป็น Emacs)


1
ส่วนใดของรหัสใน Emacs ที่ทำให้ "หมายเลขบรรทัดโหมด" พิมพ์ "??" เป็นหมายเลขบรรทัดในบัฟเฟอร์ที่มีเส้นยาว
ฉันใช้line-number-modeเพื่อมีตัวบ่งชี้ของบรรทัดปัจจุบันใน modeline ของฉัน แต่สำหรับไฟล์ขนาดใหญ่หรือมากกว่าไฟล์ที่มีความยาวมันเริ่มแสดงเครื่องหมายคำถามสองตัวแทนที่จะเป็นหมายเลขบรรทัด ผมเคยขุดบิตและพบว่าในขณะที่line-number-modeถูกกำหนดไว้ในsimple.elตัวแปรที่ปรับแต่งได้ (และอาจจะตรรกะทั้งหมดที่เกี่ยวข้อง) xdisp.cที่กำหนดไว้ใน การเปลี่ยนline-number-display-widthตัวแปรเป็นจำนวนสูงโดยพลการอาจแก้ไขได้ แต่ฉันสนใจในส่วนของรหัสและตรรกะที่ทำให้มันพิมพ์เครื่องหมายคำถามสองข้อ มันจะมีประโยชน์มากถ้ามีใครในพวกคุณพบฉัน

2
มีโหมดสำหรับอัปเดตลิขสิทธิ์เป็นปีโดยอัตโนมัติในไฟล์หรือไม่
โดยทั่วไปแล้วประมาณปีนี้คนเริ่มตระหนักว่าปีลิขสิทธิ์ของพวกเขาล้าสมัยในไฟล์ของพวกเขา สิ่งนี้น่ารำคาญเป็นพิเศษหากคุณต้องการใส่ลิขสิทธิ์ในไฟล์ต้นฉบับทุกไฟล์ ฉันสงสัยว่า emacs สามารถช่วยได้ที่นี่หรือไม่ มีโหมดที่จะอัปเดตปีลิขสิทธิ์โดยอัตโนมัติในไฟล์หรือไม่ เป็นการดีที่ฉันจะตั้งค่าโหมดด้วยชื่อและ บริษัท ในเครือของฉันเพื่อให้อัปเดตลิขสิทธิ์เฉพาะ นอกจากนี้ยังจะอัปเดตลิขสิทธิ์โดยอัตโนมัติเมื่อมีการเปลี่ยนแปลง (แม้ว่าจะเป็นการดีที่จะมีวิธีที่ง่ายในการเปลี่ยนแปลงจำนวนมากในโครงการ)
21 time-date 

1
วิธีปรับแต่งสีพื้นหลังสำหรับบางเว็บเพจที่เปิดด้วย eww
ฉันเพิ่งติดตั้ง emacs 24.4 และฉันเริ่มใช้ eww แต่สิ่งหนึ่งที่น่ารำคาญคือเมื่อฉันไปที่ google.com ฉันมีพื้นหลังสีเทาซึ่งทำให้ข้อความอ่านยากสำหรับธีมของฉัน นี่คือลักษณะที่ปรากฏ: มีวิธีใดบ้างที่ฉันสามารถเปลี่ยนสีพื้นหลังได้? ฉันแรกคิดว่าฉันสามารถกำหนดใบหน้า eww เอง แต่ไม่มีตัวเลือกสำหรับสิ่งนี้ ฉันยังสงสัยด้วยว่าทำไมสีพื้นหลังนี้ถึงมีมาตั้งแต่แรก
21 themes  eww 

2
คำสั่งที่ฟอร์แมต (prettifies) รหัส Elisp
สมมติว่าฉันมีฟังก์ชั่นที่มีลักษณะดังต่อไปนี้ (ตามปกติเมื่อพิมพ์เอลลิสเอาท์พุท) (defun my-example-function () (let ((a (do-something)) (b (do-something))) (setq someone me) (with-current-buffer b (do-that (or this (and that those))) (format "%s" a)))) ฉันต้องการคำสั่งที่สามารถเปลี่ยนสิ่งนั้นให้เป็นสิ่งที่มนุษย์จะเขียนเช่นดังต่อไปนี้ (defun my-example-function () (let ((a (do-something)) (b (do-something))) (setq someone me) (with-current-buffer b (do-that (or this (and that those))) (format "%s" a)))) ฉันเข้าใจว่ามีมากกว่าหนึ่งวิธีในการจัดรูปแบบโค้ด elispและมนุษย์ต่างคนทำสิ่งนั้นแตกต่างกัน นอกจากนี้ฉันเข้าใจว่ามันค่อนข้างเป็นอัตนัย …
21 elisp  formatting 

5
ฉันจะบังคับให้ประเมินค่า defvar อีกครั้งได้อย่างไร
สมมติว่าฉันมีบัฟเฟอร์เสียงกระเพื่อม Emacs ที่ประกอบด้วย: (defvar foo 1) ถ้าผมเรียกeval-last-sexpหรือeval-buffer, fooถูกผูกไว้กับ 1. ถ้าผมแล้วแก้ไขบัฟเฟอร์นี้ไปที่: (defvar foo 2) eval-last-sexpและeval-bufferอย่าเรียกใช้งานบรรทัดนี้ใหม่ดังนั้นจึงfooยังคงเป็น 1 นี่เป็นเรื่องที่ท้าทายโดยเฉพาะเมื่อมีข้อความหลายอย่างและฉันต้องติดตามว่าบรรทัดใดที่ไม่ได้รับการประเมินอีกครั้ง ฉันดูที่เพิ่งรีสตาร์ท Emacs แล้ว(require 'foo)แต่ฉันต้องระวังเพื่อหลีกเลี่ยงการโหลดไฟล์. elc ที่เก่ากว่า ฉันจะมั่นใจได้อย่างแน่นอนว่าตัวแปรและฟังก์ชั่นที่กำหนดไว้ในไฟล์ปัจจุบันอยู่ในสถานะเดียวกับการโหลดรหัสใหม่ในอินสแตนซ์ของ Emacs ใหม่

6
Flycheck พร้อมไฟล์ปฏิบัติการ eslint แบบสัมพัทธ์
โครงการจำนวนมากที่ฉันทำงานเกี่ยวกับการติดตั้ง eslint เป็นการพึ่งพา dev โดยใช้ชุดปลั๊กอิน eslint ที่กำหนดเอง ตอนนี้ flycheck ใช้เวอร์ชันที่ติดตั้งทั่วโลกของ eslint แทนที่จะเป็นเวอร์ชันของ eslint ที่ติดตั้งกับแต่ละโครงการ ฉันต้องการให้คะแนน flycheck ไปที่ node_modules / eslint / bin / eslint.js แทน เส้นทางแบบเต็มควรขึ้นอยู่กับเส้นทางของไฟล์บัฟเฟอร์ปัจจุบันดังนั้นฉันสามารถทำงานหลายโครงการในเวลาเดียวกันกับแต่ละบัฟเฟอร์โดยใช้ eslint ที่แตกต่างกัน เป็นไปได้ไหม ข้อเสนอแนะสำหรับฉันจะทำอย่างไรเกี่ยวกับการทำเช่นนี้?
21 flycheck 

5
ฉันจะเปลี่ยนบางส่วนของธีมที่กำหนดเองได้อย่างไร
ฉันใช้หนึ่งในธีมที่กำหนดเองที่กำหนดไว้ล่วงหน้าซึ่งมาพร้อมกับ Spacemacs (zenburn) ฉันจะแก้ไขบางส่วนของชุดรูปแบบได้อย่างไรตัวอย่างเช่นเพียงเปลี่ยนสีตัวอักษรที่ใช้สำหรับความคิดเห็น
21 themes  spacemacs 

1
วิธีใช้ org-refile เพื่อย้ายหัวเรื่องไปยังไฟล์เป็นหัวเรื่องระดับบนสุด?
ฉันต้องการมีไฟล์ "inbox.org" ที่ฉันรวบรวมบันทึกย่อ (พยายามใช้GTD : P) จากนั้นจึงย้ายสิ่งต่าง ๆ ไปยังที่ที่เหมาะสม ฉันเข้าใจว่าorg-refileเป็นวิธีในการทำสิ่งนี้ (ย้ายสิ่งต่าง ๆ ไปรอบ ๆ ) แต่ดูเหมือนว่าเป็นไปได้ที่จะรีเฟรชสิ่งต่าง ๆ ภายใต้พาดหัวไม่ใช่ไปที่ไฟล์โดยตรง สิ่งที่ฉันต้องการคือการจดบันทึกจาก inbox.org ของฉันและเพิ่มเป็นส่วนหัวระดับสูงในไฟล์ org ที่เหมาะสม เป็นไปได้หรือไม่ที่มีโอกาสเกิดขึ้น? ฉันอ่านข้อมูลorg-refile-targetsและดูเหมือนว่าจะสามารถรีเฟรชเป็นพาดหัวที่มีอยู่ได้เท่านั้นแม้ว่าข้อมูลในข้อความจะorg-refile-use-outline-pathพูดว่า: org-refile-use-outline-path เป็นตัวแปรที่กำหนดไว้ใน `org.el ' ค่าของมันคือ "ไฟล์" ค่าดั้งเดิมคือไม่มี เอกสารประกอบ: Non-nil หมายถึงจัดเตรียมเป้าหมายการ refile เป็นพา ธ ดังนั้นพาดหัวระดับ 3 จะมีให้เป็นระดับ 1 / ระดับ 2 / ระดับ 3 เมื่อค่าคือ `file …
21 org-mode 

1
Magit เทียบเท่าสำหรับ“ git remote -v” (รายการรีโมท)
ฉันสงสัยว่ามี magit เทียบเท่าgit remote -vกับรายการรีโมทและ URL ที่กำหนดไว้ในที่เก็บ git หรือไม่ magit remotes popup เสนอตัวเลือกในการเพิ่มลบเปลี่ยนชื่อและตั้งค่า url แต่ฉันไม่เห็นกลไกการแสดงรายการใด ๆ ตัวอย่างgit remote -vผลลัพธ์: origin ebpa@example.com:/var/git/myproject.git (fetch) origin ebpa@example.com:/var/git/myproject.git (push) magit-list-remotes ไม่ใช่แบบโต้ตอบและแสดงชื่อรีโมตเท่านั้น
20 magit 

1
วิธีแยกความแตกต่าง Ci จาก TAB
โดยทั่วไปแล้วด้วยเหตุผลทางประวัติศาสตร์ emacs จะปฏิบัติกับTABรหัสและรหัสC-iเดียวกัน cf เอกสารเสียงกระเพื่อม emacs บนปุ่มฟังก์ชั่นหรือคำตอบของ abo-abo สำหรับคำถาม "ความแตกต่างระหว่าง TAB และอะไร" . หมายเหตุ:ในบทความนี้พิมพ์ซ้ำเป็นTAB, <tab>และC-i; tabและCtrl+ iในขณะที่ปุ่มทางกายภาพบนแป้นพิมพ์ อย่างไรก็ตามในขณะนี้ emacs ปฏิบัติTABและC-iเป็นสิ่งเดียวกันคือ->(equal (kbd "TAB") (kbd "C-i"))t อย่างไรก็ตามเนื่องจากเราไม่ได้อยู่ในก้อนหินแห่งการคำนวณอีกต่อไปฉันจึงพบว่าสิ่งนี้น่ารำคาญอย่างยิ่ง มีข้อเสนอแนะเล็กน้อยสำหรับสิ่งที่สามารถทำได้เพื่อแก้ไขปัญหานี้เช่น "ฉันจะผูกคำสั่งกับ Ci โดยไม่เปลี่ยน TAB ได้อย่างไร" โซลูชันของ Treyไม่ทำงานสำหรับฉันตัวแปรlocal-function-key-mapsจะไม่เปลี่ยนแปลง การแก้ไขให้ใช้deleteแทนที่จะdelqส่งผลให้เกิดตัวแปรที่แก้ไข แต่ไม่นำการแก้ไข ... tabและCtrl+ iยังคงเหมือนเดิม การแปลไปที่แผนที่ไฮเปอร์ดูเหมือนว่าจะเป็นวิธีแก้ปัญหาในยุค 1980 ... ฉันอาจต้องการใช้Hyper+ iเช่นกัน การใช้input-decode-mapแผนที่ถึงCtrl+ iกับโค้ดควบคุม post-ASCII บางอย่างเกือบเป็นสิ่งที่ฉันกำลังมองหา ยกเว้นว่ามันไม่ทำงานอย่างถูกต้องกับkbdความหมายแมโครที่หนึ่งจะต้องปรับเปลี่ยนทุกบิตของรหัสที่มาที่จะผูก+Ctrl iเนื้อหานี้เป็นทางออกที่ดีที่สุดเนื่องจากรหัสต้นฉบับทั้งหมดได้รับการแก้ไขอย่างถูกต้อง ใช้(kbd …

1
เลือกไฟล์ไปยังระยะของไดเรกทอรีใหม่ด้วย magit
ถ้าคุณสร้างไดเรกทอรีใหม่ไฟล์จะไม่แสดงขึ้นกับmagit สถานะเพียงไดเรกทอรีใหม่ที่อยู่ในรายชื่อของรายการที่ไม่ได้ติดตาม ขณะนี้ฉันต้องทำการคัดลอกไดเรกทอรีใหม่แล้วลบไฟล์ที่ไม่ต้องการออกจากพื้นที่จัดเก็บ มีวิธีการเลือกไฟล์ใดที่จะสเตจจากไดเรกทอรีใหม่หรือไม่?
20 magit  git 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.