撰写散文时如何勾勒/隐藏/显示文字?


9

我想用Emacs来写散文(特别是小说)。

我过去曾经使用过Scrivener和Ulysses,但我对它们并不满意。我想尝试Emacs,但不知道如何复制我惯用的工作流程。

我曾经writeroom-mode获得过一个无干扰的环境,但这只是难题的一部分。我喜欢Ulysses和Scrivener允许您专注于一段文本的方式,并且我想知道如何复制此功能。我想要一个org-mode或另一个大纲工具,让我专注于一段文字并隐藏其余的文字。理想情况下,我希望有一个侧边栏(例如Ulysses),在其中可以手动排列文本片段,如以下屏幕截图所示:

尤利西斯

PS我已经阅读了“ Emacs for Writers PDF,但它没有满足组织和组织文本的需要。


4
请用一个关于您实际需要什么的问题来澄清您的帖子(更好的是,每个帖子问一个离散的问题,并在必要时做多个帖子)。 org-mode概述,它使您可以专注于特定的文本片段,而其余部分则可以移动。缩小会从屏幕上删除文本。

1
这可能是那些“大名单”问题之一的候选人:)(关于Meta是否适合在SE上进行有关Meta的讨论:meta.emacs.stackexchange.com/questions/305/…)。有关主题的更多信息:您可能应该重新访问组织模式。它非常庞大,并且在构造文本方面,它知道可以做很多事情。但是,Emacs缺乏对所编写文本语法的理解。拼写检查就是这方面的全部内容。
wvxvw

1
@lawlist作家一直以注释的形式使用“补充工具”。这只是它的数字版本。
Jason Mirk

2
这是一篇有趣的文章,标题为“ 如何在emacs中写书”。 masteringemacs.org/article/how-to-to-write-a-book-in-emacs 作为elisp时间和投资的示例,我花了几天的时间来进行基本的动作来模仿我曾经使用过的各种文字处理程序在我的专业领域工作了多年-例如,左/右词,上/下段落和删除词。关于Emacs的好处是,它对于那些患有强迫症的人来说是完美的,他们需要以特定的方式做事,而且必须正确,而不仅仅是正确。
法律列表

1
据我所知,Scrivener的东西太多了,您不会用纯文本编写。Ulysses 3相当不错,但是崩溃很多。同样,您不能拆分缓冲区,在不使用鼠标的情况下四处移动文本段落,一旦知道它们的存在,最终会丢失许多其他内容。
Jason Mirk

Answers:


6

这是我要成为您的目标:

  • 能够专注于特定文本块,而不会干扰其余部分,
  • 快速移动大块文本的能力。

该解决方案仅使用开箱即用的Emacs功能:

  • org-mode
  • 缩小
  • 分割窗户
  • 间接缓冲区

首先,如果您以org-mode(或使用Emacs outline设施的任何方式)编写文档,则可以使用标题,子标题等来构造文档,然后隐藏或显示其正文。这些元素。对于散文,您可能会发现非常基本的内容会有所帮助:一章的标题,节的子标题,子节的子子标题,一直到子子...每个段落的标题。

其次,即使org-mode允许您隐藏标题的主体并仅将焦点放在您前面的主体上,它仍将节标题保留在屏幕上。您可能会也可能不会分散注意力。如果这样做,则可以narrow将缓冲区仅缓冲到该标头(使其余所有标头暂时从视图中消失),然后widen在想要再次查看其他文本时再次缓冲。

第三,要获得简单的轮廓视图和快速移动文本的能力,可以结合使用分割窗口和间接缓冲区。使您的Emacs框架足够宽,以容纳两个窗口(有关框架/窗口术语,请参阅此帖子)。这样做是M-x split-window-horizontally为了在框架中并排放置两个窗口。在包含您的文档的窗口中,执行M-x clone-indirect-buffer

现在,您在两个不同的缓冲区中具有同一文档的两个链接副本。将它们放在您的两个窗口中。尽管它们都包含相同的文本,但是您可以使它们在两个窗口中看起来不同。

使用此功能的一种非常有用的方法是有一个主编辑窗口,您可以在其中实际输入和编辑散文,然后将另一个窗口用作轮廓视图:隐藏正文以仅显示给定节/小节/中的标题。可以给自己一个概述文档结构的东西。然后,您可以移动块左右快速-如果你正在使用org-modeM-<up>并且M-<down>运行org-metauporg-metadown分别,其中,在这种情况下,将移动子树(它下面的标题和一切)向上或文档中了。


1
这几乎是完美的。我写了一些elisp,并根据自己的喜好定制了所有内容。毕竟不是那么难。还有一件事是如何在侧边栏上,按一下键并使其加载到主缓冲区中。但是我想这是一个不同的问题。
杰森·米尔克

2
您可能还会喜欢clone-indirect-buffer-other-window
白炽灯2015年

9

我认为这是一个很好的问题。我敢肯定,小说作家不知道有很多超级有用的模式。我偶然碰到了palimpsest模式,但现在我离不开它。我很想看看其他小说家认为有用的软件包。

这是我每天使用的一些:

  • palimpsest-mode。将选定的文本发送到文件底部。我可能每小时使用20次。
  • Deft。在目录中增量搜索文本文件,类似于@ttscoff的nvALT
  • 奥利维蒂(Olivetti)。使文本区域更小更好。
  • 喷泉。如果您是编剧。
  • 助您一臂之力,快速找到所需的东西。
  • 自动大写。无需自己写大写字母。
  • Org-pomodoro使您保持正轨。
  • wc-mode可以根据需要对单词进行计数。
  • 最重要的是,组织模式概述。我的窍门是我使用组织模式注释为自己写笔记(例如,“本节需要更好的介绍”),因此导出时不会将它们包括在内。哦,使用命令org-narrow-to-subtree仅关注您正在处理的部分。

2
太好了!我看到自己使用palimpsest模式数千次,并且也使用org-narrow-to-subtree!
Jason Mirk

1
我还发现这似乎可以复制我在寻找的东西:github.com/titaniumbones/org-writers-room,但尚未使其正常工作。这也很有趣:github.com/theironsamurai/scribemacs
Jason Mirk

1
据我所知,org-writers-room还没有工作。这是一个好主意,但是有人需要编写代码。
白炽灯2015年

1
有志愿者吗?
白炽灯2015年

1

这个答案并不详尽,但是我无法在评论中发布它,因为它具有图像。您正在谈论的目录是否可能如下所示?

在此处输入图片说明

具有轮廓的另一种特殊方法是运行M-s o^\s-*\*(等效于M-xoccur)。尽管这不是一个适当的大纲,但我经常发现这是解决文档各部分的定位和导航问题的适当解决方案。


1
是的,我尝试了speedbar,但我不喜欢它是一个浮动窗口。似乎已经过时了。
Jason Mirk

2
@JasonMirk有一个使Speedbar成为缓冲区而不是窗口的项目,但是由于各种缓冲区命令最终可能掩埋它或替换其内容,很难使其“正常”工作。曾经有像ECB这样的缓冲区配置管理器,它们制作了固定的缓冲区布局,并且还可以在固定的位置显示轮廓,但是我在ECB上的工作经验是,它常常会妨碍我。但是,如果您不需要过于频繁地操作缓冲区,那么类似的东西可能对您有用。
wvxvw

1
emacswiki.org/emacs/SrSpeedbar这是我正在谈论的项目。
wvxvw

1
如果速度栏的概念是原始海报喜欢的东西,那么可能值得花些时间使其表现得与原始海报一样。我花了大约一个小时的时间(花了两年的时间elisp在我的皮带下苦苦挣扎),才使图书馆成为我自己的自定义设置,删除了所有框架内容,并将其变成可以在任何窗口中显示的按需缓冲区。这是与Emacs进行交易时投入时间的地方-您找到喜欢的东西(即可以使用)并将其更改为适合您确切需求的东西。例如,generate-speedbar-noselect+ display
律师名单

我没有用过,但是neotree呢?
白炽灯2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.