ฉันจะร่าง / ซ่อน / แสดงข้อความเมื่อเขียนร้อยแก้วได้อย่างไร


9

ฉันต้องการใช้ Emacs เพื่อเขียนร้อยแก้ว (โดยเฉพาะนิยาย)

ฉันเคยใช้ Scrivener และ Ulysses มาก่อน แต่ฉันไม่มีความสุขกับพวกเขา ฉันต้องการลอง Emacs แต่ไม่ทราบวิธีการทำซ้ำเวิร์กโฟลว์ที่ฉันคุ้นเคย

ฉันเคยwriteroom-modeได้รับสภาพแวดล้อมที่ปราศจากความฟุ้งซ่าน แต่มันเป็นปริศนาชิ้นเดียว ฉันชอบวิธีที่ Ulysses และ Scrivener อนุญาตให้คุณจดจ่อกับข้อความจำนวนหนึ่งและฉันต้องการทราบวิธีการทำซ้ำฟังก์ชันนี้ ฉันต้องการorg-modeหรืออื่น ๆ outliner เพื่อให้ฉันมุ่งเน้นไปที่ข้อความและซ่อนส่วนที่เหลือ เป็นการดีที่ฉันต้องการมีแถบด้านข้าง (เช่น Ulysses) ซึ่งฉันสามารถจัดเรียงข้อความด้วยตนเองเช่นในภาพหน้าจอนี้:

Ulysses

ป.ล. ฉันได้อ่าน"Emacs for Writer PDFแต่ไม่ได้ตอบสนองความต้องการในการจัดระเบียบและจัดโครงสร้างข้อความของคุณ


4
โปรดชี้แจงโพสต์ของคุณด้วยคำถามเกี่ยวกับสิ่งที่คุณต้องการจริง ๆ (ยังดีกว่าถามคำถามแยกกันหนึ่งข้อต่อการโพสต์และทำหลายโพสต์หากจำเป็น) org-modeทำเค้าโครงซึ่งช่วยให้คุณมุ่งเน้นไปที่ข้อความบางส่วนและย้ายส่วนที่เหลือไปรอบ ๆ การ จำกัด การลบข้อความออกจากหน้าจอ
แดน

1
นี่อาจเป็นผู้สมัครสำหรับหนึ่งในคำถาม "รายการใหญ่" :) (มีการอภิปรายเกี่ยวกับ Meta ว่าคำถามประเภทนี้เหมาะสมหรือไม่ใน SE: meta.emacs.stackexchange.com/questions/305/ ...... ) เพิ่มเติมในหัวข้อ: คุณอาจจะกลับมาที่โหมดองค์กรอีกครั้ง มันมีขนาดใหญ่และในแง่ของโครงสร้างข้อความมันรู้ที่จะทำมาก อย่างไรก็ตาม Emacs ไม่เข้าใจไวยากรณ์ของข้อความที่คุณเขียน ตรวจการสะกดคำเป็นสิ่งที่มีให้ในเรื่องนี้
wvxvw

1
@lawlist writer ใช้ "sidebars" ในรูปแบบของ note เสมอ นี่เป็นเพียงเวอร์ชันดิจิตอลของมัน
Jason Mirk

2
นี่คือบทความที่น่าสนใจเรื่องวิธีการเขียนหนังสือใน emacs masteringemacs.org/article/how-to-write-a-book-in-emacs เป็นตัวอย่างของelispเวลาและการลงทุนฉันใช้เวลาสองสามวันเพื่อรับการเคลื่อนไหวขั้นพื้นฐานเพื่อเลียนแบบโปรแกรมประมวลผลคำต่างๆที่ฉันใช้ เป็นเวลาหลายปีในอาชีพของฉันเช่นคำซ้าย / ขวาย่อหน้าขึ้น / ลงและลบคำ สิ่งที่ดีเกี่ยวกับ Emacs คือมันสมบูรณ์แบบสำหรับทุกคนที่มีความผิดปกติของการย้ำคิดย้ำคิดย้ำถึงผู้ที่ต้องการสิ่งต่าง ๆ ในแบบที่เฉพาะเจาะจงและมันต้องถูกต้องไม่ใช่แค่เรื่องที่ถูกต้อง
ฏหมาย

1
Scrivener มีเนื้อหามากเกินไปและคุณไม่ต้องเขียนเป็นข้อความธรรมดาเท่าที่ฉันจำได้ Ulysses 3 ค่อนข้างดี แต่มันล้มเหลวมาก นอกจากนี้คุณไม่สามารถแบ่งบัฟเฟอร์ย้ายย่อหน้าของข้อความโดยไม่ต้องใช้เมาส์และสิ่งอื่น ๆ ที่คุณขาดหายไปเมื่อคุณรู้ว่ามันมีอยู่
Jason Mirk

คำตอบ:


6

นี่คือสิ่งที่ฉันเป็นเป้าหมายของคุณ:

  • ความสามารถในการมุ่งเน้นข้อความที่เฉพาะเจาะจงในขณะที่ทำให้ส่วนที่เหลืออยู่ห่างจากคุณ
  • ความสามารถในการย้ายข้อความขนาดใหญ่ไปมาอย่างรวดเร็ว

วิธีการแก้ปัญหานี้ใช้ฟังก์ชั่น Emacs นอกกรอบเท่านั้น:

  • org-mode
  • การกวดขัน
  • หน้าต่างแยก
  • บัฟเฟอร์ทางอ้อม

ก่อนอื่นถ้าคุณเขียนเอกสารของคุณในorg-mode(หรือโหมดใด ๆ ที่ใช้outlineสิ่งอำนวยความสะดวกของ Emacs ) คุณจะสามารถจัดโครงสร้างเอกสารของคุณด้วยส่วนหัวหัวเรื่องย่อย ฯลฯ จากนั้นซ่อนหรือแสดงเนื้อหาของ องค์ประกอบเหล่านั้น สำหรับงานประพันธ์คุณอาจพบว่ามีประโยชน์มาก ๆ : ส่วนหัวของบท, ส่วนหัวย่อยสำหรับส่วน, ส่วนย่อยย่อยสำหรับส่วนย่อย, จนถึงส่วนย่อย ... ส่วนหัวสำหรับแต่ละย่อหน้า

ประการที่สองแม้ว่าorg-modeจะอนุญาตให้คุณซ่อนเนื้อหาส่วนหัวของคุณและมุ่งเน้นเฉพาะส่วนหน้าของคุณ แต่จะปล่อยให้ส่วนหัวส่วนบนหน้าจอ คุณอาจหรืออาจไม่พบว่าว้าวุ่นใจ หากคุณทำเช่นนั้นคุณสามารถnarrowบัฟเฟอร์เพียงแค่ไปที่ส่วนหัว (ทำให้ส่วนที่เหลือทั้งหมดหายไปชั่วคราวจากการดู) และจากนั้นwidenอีกครั้งเมื่อคุณต้องการที่จะเห็นข้อความอื่นอีกครั้ง

ประการที่สามเพื่อให้ได้มุมมองเค้าร่างที่ง่ายและความสามารถในการย้ายข้อความไปมาอย่างรวดเร็วคุณสามารถใช้การผสมผสานระหว่างหน้าต่างแยกและบัฟเฟอร์ทางอ้อม ทำให้เฟรม Emacs ของคุณกว้างพอที่จะรองรับสองหน้าต่าง (ดูโพสต์นี้สำหรับคำศัพท์ของกรอบ / หน้าต่าง) ทำM-x split-window-horizontallyเพื่อให้ได้หน้าต่างสองบานเคียงข้างกันในกรอบของคุณ M-x clone-indirect-bufferในหน้าต่างที่มีเอกสารของคุณทำ

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

วิธีที่มีประโยชน์อย่างมากวิธีหนึ่งในการใช้สิ่งอำนวยความสะดวกนี้คือมีหน้าต่างแก้ไขหลักที่คุณป้อนและแก้ไขร้อยแก้วจริง ๆ และใช้หน้าต่างอื่นเป็นมุมมองเค้าร่างของคุณ: ซ่อนเนื้อหาเพื่อแสดงเฉพาะส่วนหัวในส่วน / ย่อย / อะไรก็ตามที่ให้ภาพรวมของโครงสร้างของเอกสาร จากนั้นคุณสามารถย้ายชิ้นรอบได้อย่างรวดเร็ว - ถ้าคุณกำลังใช้org-mode, M-<up>และM-<down>เรียกใช้org-metaupและorg-metadownตามลำดับซึ่งในบริบทนี้จะย้ายต้นไม้ย่อย (ส่วนหัวและทุกอย่างด้านล่าง) ขึ้นหรือลงในเอกสาร


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

2
clone-indirect-buffer-other-windowนอกจากนี้คุณยังอาจจะสนุกกับ
หลอดไส้

9

ฉันคิดว่านี่เป็นคำถามที่ดี ฉันแน่ใจว่ามีโหมดที่เป็นประโยชน์มากมายที่ผู้เขียนนิยายไม่รู้ว่าต้องการ ฉันเกิดที่โหมด palimpsest โดยบังเอิญ แต่ตอนนี้ฉันไม่สามารถอยู่ได้โดยปราศจากมัน ฉันชอบที่จะดูว่านักเขียนนิยายคนไหนที่มีประโยชน์

นี่คือบางส่วนที่ฉันใช้ทุกวัน:

  • จารึกโหมด ส่งข้อความที่เลือกไปที่ด้านล่างของไฟล์ ฉันใช้มันอาจจะ 20 ครั้งต่อชั่วโมง
  • คล่องแคล่ว เพิ่มขึ้นค้นหาของไฟล์ข้อความในไดเรกทอรีคล้ายกับของ @ ttscoff nvALT
  • Olivetti ทำให้พื้นที่ข้อความเล็กลงและดีขึ้น
  • น้ำพุ หากคุณเป็นนักเขียนบทภาพยนตร์
  • Helm-swoopสำหรับค้นหาสิ่งต่าง ๆ ได้อย่างรวดเร็ว
  • โอนเป็นทุนอัตโนมัติ ไม่จำเป็นต้องเขียนอักษรตัวใหญ่ด้วยตนเอง
  • Org-pomodoroเพื่อติดตามตัวเอง
  • wc-modeเพื่อนับคำหากคุณต้องการ
  • และที่สำคัญที่สุดคือโหมดองค์กรเพื่อจัดเค้าร่าง เคล็ดลับของฉันคือฉันเขียนบันทึกถึงตัวเอง (เช่น "ส่วนนี้ต้องการคำแนะนำที่ดีกว่า") โดยใช้ความคิดเห็นโหมด org ดังนั้นพวกเขาจะไม่ถูกรวมเมื่อฉันส่งออก โอ้และใช้คำสั่งorg-narrow-to-subtreeเพื่อมุ่งเน้นเฉพาะในส่วนที่คุณกำลังทำอยู่

2
มันยอดเยี่ยมมาก! ฉันเห็นตัวเองโดยใช้โหมด palimpsest หลายพันครั้งและ org-narrow-to-subtree ด้วย!
Jason Mirk

1
ฉันพบสิ่งนี้ซึ่งดูเหมือนว่าจะทำซ้ำสิ่งที่ฉันกำลังมองหา: github.com/titaniumbones/org-writers-roomแต่ไม่ได้ทำให้มันทำงานได้อย่างถูกต้อง สิ่งนี้ก็น่าสนใจเช่นกัน: github.com/theironsamurai/
Subsemacs

1
เท่าที่ฉันรู้ org- นักเขียน - ห้องยังไม่ทำงาน มันเป็นความคิดที่ดี แต่มีคนต้องการเขียนรหัส
หลอดไส้

1
มีอาสาสมัครคนใดบ้าง?
incandescentman

1

คำตอบนี้ไม่ละเอียด แต่ฉันไม่สามารถโพสต์นี้ในความคิดเห็นเพราะมีภาพ สารบัญที่คุณพูดถึงอาจมีลักษณะเหมือนด้านล่างหรือไม่?

ป้อนคำอธิบายรูปภาพที่นี่

อีกวิธีหนึ่งในการมีเค้าร่างคือการรันM-s o^\s-*\*(ซึ่งเทียบเท่ากับM-xoccur) แม้ว่านี่จะไม่ใช่โครงร่างที่เหมาะสม แต่บ่อยครั้งที่ฉันพบว่านี่เป็นวิธีแก้ปัญหาที่เพียงพอสำหรับปัญหาการค้นหาและการนำทางส่วนต่างๆของเอกสาร


1
ใช่ฉันลองใช้สปีดบาร์ แต่ฉันไม่ชอบว่ามันเป็นหน้าต่างลอย ดูเหมือนว่าล้าสมัยแล้ว
Jason Mirk

2
@JasonMirk มีโครงการที่ทำให้ Speedbar เป็นบัฟเฟอร์แทนที่จะเป็นหน้าต่าง แต่มันยากที่จะทำให้มันทำงานได้ "ถูกต้อง" เนื่องจากคำสั่งบัฟเฟอร์ต่าง ๆ ที่อาจฝังหรือแทนที่เนื้อหาในที่สุด เคยเป็นผู้จัดการการกำหนดค่าบัฟเฟอร์เช่น ECB ซึ่งทำโครงร่างบัฟเฟอร์คงที่และยังสามารถแสดงเค้าโครงในตำแหน่งคงที่ได้ แต่ประสบการณ์การทำงานกับ ECB ของฉันนั้นบ่อยครั้งกว่าที่มันจะเข้าไม่ถึง แต่อาจมีบางอย่างที่เหมาะกับคุณหากคุณไม่ต้องการจัดการบัฟเฟอร์บ่อยเกินไป
wvxvw

1
emacswiki.org/emacs/SrSpeedbarนี่คือโครงการที่ฉันกำลังพูดถึง
wvxvw

1
หากแนวคิดสปีดบาร์เป็นสิ่งที่โปสเตอร์ต้นฉบับชื่นชอบมันอาจคุ้มค่ากับการลงทุนเพื่อให้มันทำงานเหมือนโปสเตอร์ต้นฉบับที่ต้องการ ฉันใช้เวลาประมาณหนึ่งชั่วโมง (กับการelispลิงสองปีใต้เข็มขัดของฉัน) เพื่อสร้างห้องสมุดของฉันเองเซ็ตอัพเอาสิ่งที่กรอบออกมาและเปลี่ยนมันให้เป็นบัฟเฟอร์ตามต้องการที่สามารถแสดงในหน้าต่างใดก็ได้ นี่คือที่การลงทุนเวลามาเมื่อจัดการกับ Emacs - คุณค้นหาสิ่งที่คุณชอบ (เช่นสามารถทำงานด้วย) และเปลี่ยนเป็นสิ่งที่เหมาะสมกับความต้องการของคุณ ตัวอย่างเช่นgenerate-speedbar-noselect+ display
lawlist

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