I use Scott Selisker’s Scrivener-inspired plain text writing workflow with the free software tools Zotero and gedit. I also take notes in markdown, the simple markup language that the workflow uses for academic drafting.

A couple simple shell scripts, attached to keyboard shortcuts using gedit’s “Manage External Tools” pane, are really helpful with this workflow.

  • Zotero picker

    Requires Better BibTeX for Zotero. Launches a Zotero bibliographic entry picker and inserts the citation key into your document once you make a selection. Set “Output” to “Insert at cursor position.”

      curl -s http://127.0.0.1:23119/better-bibtex/cayw?format=pandoc\&brackets=true
    
  • PDF paste

    Requires xclip package if on Linux. Pulls text from your clipboard and cleans it up in the way you’d usually want when copy-pasting a quotation from a PDF (repairs line breaks and adjusts quotation marks). Set “Output” to “Insert at cursor position.”

    Linux:

      xclip -o -selection clipboard | tr '[\n\r]' ' ' | sed -E -e "s/- //g" -e "s/[ \t]*$//" -e "s/[\"\“\”]|[\’\‘]+/\'/g"
    

    Mac OS (untested):

      pbpaste | tr '[\n\r]' ' ' | sed -E -e "s/- //g" -e "s/[ \t]*$//" -e "s/[\"\“\”]|[\’\‘]+/\'/g"
    
  • Wrap selection

    Requires zenity, a GTK feature; untested outside GNOME. Prompts you for a bracket character or other string and appends it to either side of the selected text. (Handy for adding emphasis or hyperlinks to markdown text.) Set “Input” to “Current selection” and “Output” to “Replace current selection.”

      read selection
      wrapper=$(zenity --entry --title="Wrap selection - gedit" --text="Wrapper:")
      wrapend=$(echo "$wrapper" | sed 's/\[/\]/g
                                       s/(/)/g
                                       s/</>/g')
      echo -n "$wrapper$selection$wrapend"
    
  • wc-tracker is a command line tool and Node.js module for tracking word count changes to one or more documents.


I originally used the Atom text editor in this workflow before it was sunset and made a few packages to customize it.

  • notes-from-pdf, an Atom package that improves the process of copy-pasting quotations from a PDF into a text file
  • pandoc-interface-yaml, an Atom package that lets you export to various document formats using the options needed for citation formatting, etc.
  • rpg-dice, an Atom package for making Dungeons & Dragons-style dice rolls directly in a text editor (this one is not so much a boost to the academic writing productivity)