aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/fountainwiki.txt362
-rw-r--r--plugin/fountainwiki.vim339
2 files changed, 441 insertions, 260 deletions
diff --git a/doc/fountainwiki.txt b/doc/fountainwiki.txt
new file mode 100644
index 0000000..7a9d020
--- /dev/null
+++ b/doc/fountainwiki.txt
@@ -0,0 +1,362 @@
+*fountainwiki.txt* for Vim version 7.3. Last change: Feb 21 2012
+
+ FountainWiki
+ ''''''''''''
+
+Light wikification of Fountain screenplay files plus syntax & indentation.
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+Author: Carson Fire <carsonfire@gmail.com>
+ http://twitter.com/carsonfire
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+CONTENTS *fountainwiki* *fountainwiki-contents*
+
+ 1. FountainWiki introduction : |fountainwiki-introduction|
+ 2. FountainWiki quick help : |fountainwiki-quick-help|
+ 3. Fountain syntax : |fountain-syntax|
+ FountainWikiWords : |fountainwikiwords|
+ 4. FountainWiki and Vimwiki : |fountainwiki-and-Vimwiki|
+ 5. FountainWiki options : |fountainwiki-options|
+ 6. Fountain indentation : |fountain-indentation|
+ 7. Fountain indentation options : |fountain-indentation-options|
+ 8. FountainWiki commands : |fountainwiki-commands|
+
+==============================================================================
+1. FountainWiki introduction *fountainwiki-introduction*
+==============================================================================
+The purpose of FountainWiki is to provide a note-taking facility that does not
+require any deviation from strict Fountain syntax.
+
+FountainWiki turns CHARACTER NAMES, ## Section headers and [[comments]] into
+WikiWords. Simply press 'enter', and a new file opens for keeping notes. These
+notes can be simple text files, or tap into other availabie file formats and
+systems.
+
+The indentation is not automatic as you type, but we include optional
+automatic indentation upon saving, or by hitting 'ctrl+enter'.
+
+==============================================================================
+2. FountainWiki quick help *fountainwiki-quick-help*
+==============================================================================
+
+ Auto indent :w (save file)
+ Manual indent ctrl-enter
+ ----------------------------------------------------
+ Open/create reference enter, on FountainWikiWords
+ Close reference enter, anywhere else
+ FountainWikiWords CHARACTER NAMES
+ ## Section headers
+ [[And notes]]
+ Switch focus <tab> (on either file)
+
+ ---------------VIMWIKI (IF SELECTED)----------------
+ Must search from any note, not screenplay:
+ Search all notes :VimwikiSearch pattern
+ :VWS patter
+ Reset wiki home :ResetWiki
+
+ ----------------VOOM (IF INSTALLED)-----------------
+ Outline :Voom markdown
+ Select section <cr> (enter)
+ Switch focus only <tab>
+ Move section up/down <c-up/down> (ctrl-up/down)
+
+ -------------------- NATIVE VIM---------------------
+ Change entire character line to uppercase gUU
+ Highlight all instances of CHARACTER ?CHARACTER
+
+==============================================================================
+3. Fountain syntax and FountainWikiWords *fountain-syntax*
+==============================================================================
+A review of Fountain syntax basics. Fountain provides for plain text
+screenwriting:
+
+------------------------------------------------------------------------------
+Title: Who's Minding Mindle?
+Author: Frank X. Thwacksway
+
+### Mindle bucks up
+
+INT. CLASSROOM - DAY
+
+Students are doing what unruly students do: making noise, throwing trash,
+tormenting each other. Apparently there is no teacher in sight, but we haven't
+caught a glimpse of the teacher's desk, yet.
+
+CUT TO:
+
+Peter Mindle, the teacher. The students have obviously worn him down. He sits,
+mute, depressed, unhappily resigned to his fate as we hear and catch sight of
+the chaos still erupting around him. He is finally startled out of his funk by
+a voice that he seems to think is coming from the desk in front of him. [[Maybe
+it's coming from the apple?]]
+
+WORM
+(shouting)
+You there! You're not going to stand for this, are you?
+
+------------------------------------------------------------------------------
+This small segment contains a few, but not all Fountain elements.
+
+ *fountainwikiwords*
+
+FountainWikiWords are sections of Fountain syntax that FountainWiki make
+clickable. Specifically, character names, section headers, and notes. True
+WikiWords -- conjoined capitalized words -- are not part of Fountain syntax,
+and are not made clickable through FountainWiki, since they should not exist
+in your screenplay. Simply press 'enter'.
+
+You do not have to click precisely on the character name or a note, but
+somewhere on the line. It's just the same if you hit the indentation before
+the character name, or any dialogue on the same line as a note. In either
+case, the entire name or note on that line becomes the reference.
+
+CHARACTER NAMES
+---------------
+Clickable character names appear in allcaps above dialogue. In the sample
+above, the only character who speaks is WORM; Peter Mindle must speak before
+he is clickable. Whether you call the character in the script PETER, MINDLE,
+or PETER MINDLE, that's entirely up to you; each variation will create a
+different file, so just be consistent!
+
+These character names can now be accessed from any point in the script they
+appear, and in any draft of the script in your screenplay directory. For this
+reason, you may want to separate different projects in different directories,
+otherwise, JACK the timid teacher in a comedy and JACK the tough cop in a
+gritty crime drama will lead to the same reference file.
+
+This may be seen as a weakness, but can also be a boon if working on many
+drafts of the same script, or writing a series based on a large cast of
+continuing characters.
+
+## Section headers and [[Notes]]
+--------------------------------
+Fountain allows ATX-headers, which should be familiar to you if you have used
+Markdown or other similar light markup syntax. These headers begin with
+hashmarks denoting the header level, and sometimes end with hashmarks. Notes
+are always between double brackets.
+
+In our sample above, the one section header is "Mindle bucks up"; the one note
+is "Maybe it's coming from the apple?" Both of these can be used for reference
+files.
+
+NOTE Section headers may be used simply to designate things like 'Act Three'
+or 'Scene 12'. This will produce predictibly non-unique reference files, and
+may conflict with other scripts in the same directory. We want to avoid
+suggesting methods of differentiating and changing things, as our purpose is
+to provide you with a reference tool that does not intrude on your work. But
+be aware of these potential conflicts.
+
+NOTE In the case of a line with multiple notes, the last note is chosen.
+
+NOTE You can use multi-line notes for reference files, but you must click on
+the first line, and only the first line of text will be used.
+
+NOTE Although Fountain syntax doesn't address notes in section headers,
+FountainWiki will simply internalize a note as part of the header. So
+something like '# Section [[Notes]] Header' would be read as 'Section Notes
+Header'.
+
+Everything else
+---------------
+Click on any line that does not contain at least one designated
+FountainWikiWord, and nothing happens. If you use the sidebar option, the
+sidebar closes.
+
+==============================================================================
+4. FountainWiki and Vimwiki *fountain-and-vimwiki*
+==============================================================================
+FountainWikiWords create a hook into other file formats and systems that can be
+exploited in different ways. Consider these other formats and systems to be
+*hosts* for your reference files.
+
+Once you leave your Fountain screenplay, you gain the power of another system,
+but you are also technically at its mercy. Type :FountainWiki or :FW to return
+to your screenplay. Or type `<leader>fw`.
+
+We have provided an automatic hack for exploiting Vimwiki's search power, if
+you choose the 'wiki' filetype (see options). When you click from your
+screenplay into a wiki file, we reassign the primary Vimwiki directory to your
+screenplay directory. Then type ':VimwikiSearch pattern' or ':VWS patter' to
+search through all your screenplay notes. You will need to use ':WikiReset' if
+you want to go back to normal.
+
+==============================================================================
+5. FountainWiki options *fountainwiki-options*
+==============================================================================
+To allow as much flexibility as possible, we make everything possible an
+option.
+
+This first one is awfully important, though. The way you keep notes relies on
+setting your filetype preference. When you click on a FountainWikiWord, this
+is the kind of file you will open, use, and save!
+
+ let g:FountainWiki_Card_Extension = 'txt'
+
+This is already set to 'txt' by default, because text files are ubiquitous.
+However, consider using a file type with more power: Markdown is a good
+choice, since Fountain is essentially a companion syntax. With Markdown, you
+get the same kind of headers, plus lists and more.
+
+However, the BEST choice would have to be Vimwiki or one of the other
+Vim-based wiki systems. Hook into the power of Vimwiki simply by setting that
+extension to 'wiki', and installing Vimwiki if you haven't already.
+
+Vimwiki - http://www.vim.org/scripts/script.php?script_id=2226
+
+There's always a catch: regardless what file type you choose now, you need to
+keep your notes together with your screenplay in the same directory. And if
+you decide to change filetypes in mid-stream, the fix is up to you. To keep
+your old notes, you would need to change the existing extensions, and do
+whatever you need to do to convert your text.
+
+Another decision you'll want to make early on is whether or not to allow
+uppercase letters in your filenames. Set to 0 to turn off lowercase-only
+filenames. Default setting is 1, lowercase-only.
+
+ let g:FountainWiki_Lowercase_Filename = 0
+
+Default behavior: a character named BILLY BOB creates a file named
+'billybob.txt'. Allow uppercase for 'BILLYBOB.txt'.
+
+Default behavior: section header '# Hero in Portland' becomes
+'heroinportland.txt'. Set to uppercase for 'HeroinPortland.txt'.
+
+Special characters are simply stripped out. 'BJÖRN' becomes 'bjrn.txt'.
+'PAVLOV'S DOG' becomes 'pavlovsdog.txt'.
+
+FountainWiki does not truncate strings, unless it finds a natural linebreak;
+too-long filenames can result, and will be treated by your system in whatever
+way your system treats too-long filenames.
+
+ let g:FountainWiki_Filename_Token = '.fnx'
+
+This is a token that can be inserted so that the files can be distinguished
+from other files in the same directory. We have decided to set the default to
+''; it may even be considered deprecated, already.
+
+The rest of the options relate more to the writing environment, and can be
+changed any time without altering the files.
+
+ let g:FountainWiki_Card_Only = 1
+
+Default is '1'; this opens the wiki file fully, in place of your screenplay.
+Set to '0' for a sidebar instead.
+
+If you choose the sidebar, you can adjust its width and position:
+
+ let g:FountainWiki_Card_Width = 48
+ let g:FountainWiki_Card_Right = 1 " 0 for the left side, 1 for the right.
+
+FountainWiki closes other splits to keep things neat. Turn off this behavior
+by changing the following option to '0'. This can get messy!
+
+ let g:FountainWiki_Card_StayOpen = 1
+
+==============================================================================
+6. Fountain indentation *Fountain-indentation*
+==============================================================================
+Indent Fountain files three different ways:
+
+ * Automatically, when saving the file.
+ * Hit 'enter' while in normal mode.
+ * Use the command :FountainWikiIndent
+
+Disable automatic indentation with the command:
+
+ :FountainWikiDisableAuto
+
+To turn it back on, type :FountainWikiEnableAuto
+
+Our little demo script again, demonstrating the intended results:
+
+Dialogue is not indented, as there is no way to make it look screenplay-like
+without introducing line breaks. We find that line breaks can corrupt
+processing, so we recommend setting your text width to 0. Character names and
+parentheticals are tabbed, and we try to approximate the position of centered
+text and transitions.
+
+Since we are emulating the look of a screenplay, and there is no nesting
+involved, we set the tabstops fairly wide for Fountain buffers, but you can use
+spaces, instead. All of this can be adjusted in the options.
+
+NOTE We are experimenting with ways of protecting your title page block (the
+first lines up to the first blank line), but we haven't quite got it, yet.
+Uppercase-only lines in the title page block may become confused with
+CHARACTER NAMES.
+
+------------------------------------------------------------------------------
+Title: Who's Minding Mindle?
+Author: Frank X. Thwacksway
+
+### Mindle bucks up
+
+INT. CLASSROOM - DAY
+
+Students are doing what unruly students do: making noise, throwing trash,
+tormenting each other. Apparently there is no teacher in sight, but we haven't
+caught a glimpse of the teacher's desk, yet.
+
+ CUT TO:
+
+Peter Mindle, the teacher. The students have obviously worn him down. He sits,
+mute, depressed, unhappily resigned to his fate as we hear and catch sight of
+the chaos still erupting around him. He is finally startled out of his funk by
+a voice that he seems to think is coming from the desk in front of him. [[Maybe
+it's coming from the apple?]]
+
+ WORM
+ (shouting)
+You there! You're not going to stand for this, are you?
+
+------------------------------------------------------------------------------
+
+==============================================================================
+7. Fountain indentation options *fountain-indentation-options*
+==============================================================================
+To save time, when you see '0' and '1' listed as options, that's 'off' and
+'on', respectively.
+
+Turn off our auto indent scheme:
+
+ let g:FountainWiki_Auto_Indent = 0
+
+The width of tabs for Fountain file buffers.
+
+ let g:FountainWiki_Tabstop = '8'
+
+Use the following to tweak the number of tabs, or change to spaces:
+
+ let g:FountainWiki_Character_Indent = '\t\t'
+ let g:FountainWiki_Parenthetical_Indent = '\t'
+ let g:FountainWiki_Transition_Indent = '\t\t\t\t\t\t'
+ let g:FountainWiki_Centered_Indent = '\t\t\t\t'
+
+We recommend leaving textwidth '0' (off), but you can change it here. This
+should affect Fountain buffers only.
+
+ let g:FountainWiki_Textwidth = '0'
+
+==============================================================================
+8. FountainWiki commands *fountainwiki-commands*
+==============================================================================
+With any luck, you won't have to remember too many commands. Click 'enter' on a
+FountainWikiWord to open a wiki file. To return to your screenplay file, do one
+of the three:
+
+ :FountainWiki :FW <leader>fw
+
+This is the one command you might like to map to something you can type
+quickly, so you can bounce between your screenplay and reference files quickly.
+
+FountainWiki commands:
+
+:FountainWikiCards Create wiki file from FountainWikiWord.
+:FountainWikiCursorJump Tabs between files in sidebar mode.
+
+Fountain indentation commands:
+
+:FountainWikiIndent Run indentation.
+:FountainWikiDisableAuto Turn off auto indentation.
+:FountainWikiEnableAuto Turn on auto indentation.
+
+vim:tw=78:ts=8:ft=help:norl:
diff --git a/plugin/fountainwiki.vim b/plugin/fountainwiki.vim
index db37f45..94c1051 100644
--- a/plugin/fountainwiki.vim
+++ b/plugin/fountainwiki.vim
@@ -1,207 +1,66 @@
" Vim plugin for Fountain screenplay files
" Plugin Name: FountainWiki & Indentation
-" Version: 1.1
-" Last Change: 2012 Feb 20
+" Version: 1.2
+" Last Change: 2012 Feb 21
" Reference: http://fountain.io/
" Maintainer: Carson Fire <carsonfire@gmail.com>
-"
-" OVERVIEW
-" ========
-" Plugin offers light wikification of Fountain files plus indentation.
-"
-" FountainWiki turns CHARACTER NAMES, ## section heads and [[comments]] into
-" automatic WikiWords. Simply press 'enter', and a new file opens for keeping
-" notes.
-"
-" This also creates a portal from Fountain files to powerful tools like
-" VimWiki, simply by defining the kind of notes you want to keep.
-"
-" The indentation is not automatic as you type, but we include optional
-" automatic indentation upon saving, or by hitting 'ctrl+enter'. Use with the
-" Fountain syntax file for best results.
-"
-" http://www.vim.org/scripts/script.php?script_id=3880
-"
-" INSTALLATION
-" ============
-" Just slip the ol' plugin file into your plugin folder. Adjust your vimrc
-" file (:e $MYVIMRC) with appropriate options, below.
-"
-" QUICK HELP
-" ==========
-" When in a Fountain document, type '?' in normal mode for help.
-"
-" FOUNTAINWIKI
-" ============
-" The purpose of FountainWiki is to provide a note-taking facility that does
-" not require any deviation from strict Fountain syntax.
-"
-" Operation is simple, and intended to emulate existing behavior of popular
-" Vim plugins Voom and VimWiki. Instead of remembering a tricky shortcut, you
-" simply move your cursor to a character line or scene header, or a line that
-" is or contains a comment, and press *enter*. A wiki file opens as a
-" sidebar to your script; either a new virtual file, or pre-existing notes.
-" Once you have saved that file, use *tab* to move between the two files. If
-" your wiki filetype uses tab, try ctrl+tab.
-"
-" FOUNTAINWIKI OPTIONS - NAMING FILES
-" -----------------------------------
-" If nothing else, define the extension of your wiki files!
-"
-" let g:FountainWiki_Card_Extension = 'txt'
-"
-" This is already set to 'txt' by default, because text files are ubiquitous.
-" However, consider using a file type with more power: Markdown is a good
-" choice, since Fountain is essentially a companion syntax. With Markdown, you
-" get the same kind of headers, plus lists and more.
-"
-" Want a metric ton more wiki power? Set your extension to 'wiki' and install
-" VimWiki.
-"
-" VimWiki - http://www.vim.org/scripts/script.php?script_id=2226
-"
-" Now your wiki files become full wikis in their own right; type
-" WikiWords within the wiki files in order to branch out to more notes in
-" the sidebar; hit 'backspace' to return, etc. Type :VimwikiSearch /pattern/
-" to search through all your notes!
-"
-" There's always a catch: regardless what file type you choose now, you need
-" to keep your notes together with your screenplay in the same directory. And
-" if you decide to change filetypes in mid-stream, the fix is up to you. To
-" keep your old notes, you would need to change the existing extensions, and
-" do whatever you need to do to convert your text.
-"
-" Since FountainWiki files use a token, you can use Renamer to batch an
-" extension change with this command (example given, change to extension
-" 'new'):
-"
-" :%s/\(.*\)\.fnx\.\(.*\)/\1.fnx.new/ge
-"
-" Renamer - http://www.vim.org/scripts/script.php?script_id=1721
-"
-" Another decision you'll want to make early on is whether or not to allow
-" uppercase letters in your filenames. Set to 0 to turn off lowercase-only
-" filenames. Default setting is 1, lowercase-only.
-"
-" let g:FountainWiki_Lowercase_Filename = 0
-"
-" Default behavior: a character named BILLY BOB creates a file named
-" 'billybob.fnx.txt'. Allow uppercase for 'BILLYBOB.fnx.txt'.
-"
-" Default behavior: section header '# Hero in Portland' becomes
-" 'heroinportland.fnx.txt'. Set to uppercase for 'HeroinPortland.fnx.txt'.
-"
-" Special characters are simply stripped out. 'BJÖRN' becomes 'bjrn.fnx.txt'.
-" 'PAVLOV'S DOG' becomes 'pavlovsdog.fnx.txt'.
-"
-" FountainWiki does not truncate strings, unless it finds a natural linebreak;
-" too-long filenames can result, and will be treated by your system in
-" whatever way your system treats too-long filenames.
-"
-" let g:FountainWiki_Filename_Token = '.fnx'
-"
-" This is a token that can be inserted so that the files can be distinguished
-" from other files in the same directory.
-"
-" FOUNTAINWIKI OPTIONS - ENVIRONMENT
-" ----------------------------------
-" You can adjust the width the wiki file opens:
-"
-" let g:FountainWiki_Card_Width = 48
-"
-" If you prefer for the wiki file to open on the right instead of the left:
-"
-" let g:FountainWiki_Card_Right = 1
-"
-" By default, all windows but your Fountain screenplay and wiki file are
-" closed. If you prefer to leave everything open and manually close files
-" yourself, you can do this -- but be warned, it gets messy fast!
-"
-" let g:FountainWiki_Card_StayOpen = 1
-"
-" FOUNTAIN INDENTATION
-" ====================
-" Indent Fountain files three different ways:
-"
-" * Automatically, when saving the file.
-" * Hit 'enter' while in normal mode.
-" * Use the command :FountainWikiIndent
-"
-" To temporarily disable automatic indentation, use the command
-"
-" :FountainWikiDisableAuto
-"
-" To turn it back on, type :FountainWikiEnableAuto
-"
-" A NOTE ABOUT DIALOGUE
-" ---------------------
-" While characters and parentheticals are indented, dialogue is not, and for
-" good reason.
-"
-" To properly indent an entire block, we would have to introduce line breaks.
-" That's a no-no. Such line breaks will likely corrupt subsequent format
-" conversion (we tested this in Screenplain; it does).
-"
-" And if we don't go whole hog and completely reformat your script for you,
-" *one* indent at the beginning of long dialogue blocks creates an indented
-" *paragraph*, and completely destroys the screenplay 'look'.
-"
-" Use the Fountain syntax file to help highlight dialogue from action.
-"
-" FOUNTAIN INDENTATION OPTIONS
-" ----------------------------
-" To turn off auto indent, set to '0'. The default is 1:
-"
-" let g:FountainWiki_Auto_Indent = 0
-"
-" FOUNTAIN INDENTATION TWEAKS
-" ---------------------------
-" You can tweak the indentation itself.
-"
-" Indentation for characters and parentheticals are set to one tab and two,
-" respectively. To adjust the look you want, set the tabstop preference. This
-" is set independently from other files in your buffer. '8' is the default
-" setting, since we're emulating the look of a screenplay, and not dealing
-" with any nesting.
-"
-" let g:FountainWiki_Tabstop = '8'
-"
-" Transitions and centered text can be a little trickier, especially if you
-" change the default tabstop. Use these variables to adjust the number of
-" tabs; shown here are the default number.
-"
-" let g:FountainWiki_Transition_Indent = '\t\t\t\t\t\t\t'
-" let g:FountainWiki_Centered_Indent = '\t\t\t'
-"
-" MAPPING FOUNTAINWIKI
-" ====================
-" There are a few commands you might wish to map.
-"
-" :FountainWikiCursorJump Tabs between Fountain screenplay and wiki file.
-" This is already mapped to 'tab', but may be
-" overruled by other mappings.
-" :FountainWikiDisableAuto Overrules default auto indentation.
-" :FountainWikiEnableAuto Turns auto indentation on.
-" :FountainWikiIndent On call indentation.
-" :FountainWikiCards Create wiki file from text under cursor.
-" :FountainWikiHelp Prints out a quick reminder of commands
-"
-" Default mapping is intended to emulate existing Vim plugins, particularly
-" Voom and VimWiki, and should only apply to Fountain files and the wiki
-" filetype you choose. The latter filetype will bring aboard its own mappings
-" and shortcuts, which is where most conflicts should arise.
-"
-" TODO Some method of listing and/or indicating the existence of related wiki
-" files--without interfering with Fountain syntax.
+
+if exists("g:wiki_1.path")
+ exe 'command WikiReset let g:wiki_1.path = "'.g:wiki_1.path.'"'
+elseif exists("g:wiki.path")
+ exe 'command WikiReset let g:wiki.path = "'.g:wiki.path.'"'
+endif
+if !exists('FountainWiki_Auto_Indent')
+ let FountainWiki_Auto_Indent = 1
+endif
+if !exists('FountainWiki_Tabstop')
+ let FountainWiki_Tabstop = 8
+endif
+if !exists('FountainWiki_Textwidth')
+ let FountainWiki_Textwidth = 0
+endif
+if !exists('FountainWiki_Character_Indent')
+ let FountainWiki_Character_Indent = '\t\t'
+endif
+if !exists('FountainWiki_Parenthetical_Indent')
+ let FountainWiki_Parenthetical_Indent = '\t'
+endif
+if !exists('FountainWiki_Transition_Indent')
+ let FountainWiki_Transition_Indent = '\t\t\t\t\t\t'
+endif
+if !exists('FountainWiki_Centered_Indent')
+ let FountainWiki_Centered_Indent = '\t\t\t\t'
+endif
+if !exists('FountainWiki_Card_Extension')
+ let FountainWiki_Card_Extension = 'txt'
+endif
+if !exists('FountainWiki_Card_Width')
+ let FountainWiki_Card_Width = 48
+endif
+if !exists('FountainWiki_Card_Right')
+ let FountainWiki_Card_Right = 0
+endif
+if !exists('FountainWiki_Card_Only')
+ let FountainWiki_Card_Only = 1
+endif
+if !exists('FountainWiki_Lowercase_Filename')
+ let FountainWiki_Lowercase_Filename = 1
+endif
+if !exists('FountainWiki_Filename_Token')
+ let FountainWiki_Filename_Token = '.fnx'
+endif
+if !exists('FountainWiki_Card_StayOpen')
+ let FountainWiki_Card_StayOpen = 0
+endif
function FountainWikiIndent()
normal mvgg}mt
- 't,$s/^\s*//ge
- exe '%s/\(.*\) TO:$/'.g:FountainWiki_Transition_Indent.'\1 TO:/ge'
- exe '%s/^> \(.*\)$/'.g:FountainWiki_Transition_Indent.'> \1/ge'
+ "'t,$s/^\s*//ge
+ exe '%s/^\s*\(\L*\)$/'.g:FountainWiki_Character_Indent.'\1/ge'
+ exe '%s/^\s*\(.*\) TO:$/'.g:FountainWiki_Transition_Indent.'\1 TO:/ge'
+ exe '%s/^\s*> \(.*\)$/'.g:FountainWiki_Transition_Indent.'> \1/ge'
exe '%s/^\s*>\(.*\)</'.g:FountainWiki_Centered_Indent.'>\1</ge'
- 't,$s/^(\(.*\))$/\t(\1)/ge
- 't,$s/^\(\L*\)$/\t\t\1/ge
+ exe '%s/^\s*(\(.*\))$/'.g:FountainWiki_Parenthetical_Indent.'(\1)/ge'
't,$s/^\s*\(\.\|INT\. \|EXT\. \|INT\.\/EXT\. \|INT\/EXT\. \|INT \|EXT \|INT\/EXT \|I\/E \|int\. \|ext\. \|int\.\/ext\. \|int\/ext\. \|int \|ext \|int\/ext \|i\/e \)/\1/ge
't,$s/^\s*$//ge
normal 'v
@@ -209,7 +68,15 @@ endfunction
function FountainWikiCards()
set noignorecase
- if g:FountainWiki_Card_StayOpen < 1
+ if exists("g:wiki_1.path")
+ let g:wiki_1.path = expand("%:p:h")
+ elseif exists("g:wiki.path")
+ let g:wiki.path = expand("%:p:h")
+ else
+ let wiki = {}
+ let g:wiki.path = expand("%:p:h")
+ endif
+ if g:FountainWiki_Card_Only < 1 && g:FountainWiki_Card_StayOpen < 1
only
endif
lcd %:p:h
@@ -229,73 +96,27 @@ function FountainWikiCards()
if g:FountainWiki_Lowercase_Filename > 0
let g:Section = tolower(g:Section)
endif
- exe 'vsplit '.g:Section.g:FountainWiki_Filename_Token.'.'.g:FountainWiki_Card_Extension
- if g:FountainWiki_Card_Right > 0
- wincmd r
+ if g:FountainWiki_Card_Only > 0
+ exe 'e '.g:Section.g:FountainWiki_Filename_Token.'.'.g:FountainWiki_Card_Extension
+ else
+ exe 'vsplit '.g:Section.g:FountainWiki_Filename_Token.'.'.g:FountainWiki_Card_Extension
+ if g:FountainWiki_Card_Right > 0
+ wincmd r
+ endif
endif
exe 'vertical resize '.g:FountainWiki_Card_Width
endif
endfunction
-function FountainWikiHelp()
- echo " "
- echo " Quick help for FountainWiki & Indentation"
- echo " ==================================================="
- echo " Auto indent :w (save file)"
- echo " Manual indent ctrl-enter"
- echo " ----------------------------------------------------"
- echo " Open/create reference* enter, on FountainWikiWords"
- echo " Close reference enter, anywhere else"
- echo " FountainWikiWords CHARACTER NAMES"
- echo " ## Section headers"
- echo " [[And notes]]"
- echo " Switch focus <tab> (on either file)"
- echo " "
- echo " ----------------VOOM (IF INSTALLED)-----------------"
- echo " Outline :Voom markdown"
- echo " Select section <cr> (enter)"
- echo " Switch focus only <tab>"
- echo " Move section up/down <c-up/down> (ctrl-up/down)"
- echo " "
- echo " -------------------- NATIVE VIM---------------------"
- echo " Change entire character line to uppercase gUU"
- echo " "
+function ScreenplayHome()
+ let g:FountainWiki_Home = expand("%:p")
+ let g:FountainWiki_Home = substitute(g:FountainWiki_Home," ","\\\\ ","g")
+ exe 'command! FountainWiki e '.g:FountainWiki_Home
+ exe 'command! FW e '.g:FountainWiki_Home
+ nnoremap <leader>fw <esc>:FountainWiki<cr>
+ au BufRead *.wiki nmap <backspace> <esc>:FountainWiki<cr>
endfunction
-if !exists('FountainWiki_Auto_Indent')
- let FountainWiki_Auto_Indent = 1
-endif
-if !exists('FountainWiki_Tabstop')
- let FountainWiki_Tabstop = 8
-endif
-if !exists('FountainWiki_Textwidth')
- let FountainWiki_Textwidth = 0
-endif
-if !exists('FountainWiki_Transition_Indent')
- let FountainWiki_Transition_Indent = '\t\t\t\t'
-endif
-if !exists('FountainWiki_Centered_Indent')
- let FountainWiki_Centered_Indent = '\t\t\t'
-endif
-if !exists('FountainWiki_Card_Extension')
- let FountainWiki_Card_Extension = 'txt'
-endif
-if !exists('FountainWiki_Card_Width')
- let FountainWiki_Card_Width = 48
-endif
-if !exists('FountainWiki_Card_Right')
- let FountainWiki_Card_Right = 0
-endif
-if !exists('FountainWiki_Lowercase_Filename')
- let FountainWiki_Lowercase_Filename = 1
-endif
-if !exists('FountainWiki_Filename_Token')
- let FountainWiki_Filename_Token = '.fnx'
-endif
-if !exists('FountainWiki_Card_StayOpen')
- let FountainWiki_Card_StayOpen = 0
-endif
-
command FountainWikiCursorJump wincmd w
command FountainWikiDisableAuto au! BufWrite *.fountain,*.spmd
command FountainWikiEnableAuto au BufWrite *.fountain,*.spmd silent call FountainWikiIndent()
@@ -305,9 +126,7 @@ au BufWrite *.fountain,*.spmd FountainWikiCursorJump
au BufRead *.fountain,*.spmd nnoremap <buffer> <c-cr> <esc>:FountainWikiIndent<cr>
command FountainWikiCards silent call FountainWikiCards()
au BufRead *.fountain,*.spmd nnoremap <buffer> <cr> <esc>:FountainWikiCards<cr>
-command FountainWikiHelp call FountainWikiHelp()
-au BufRead *.fountain,*.spmd nnoremap <buffer> ? <esc>:FountainWikiHelp<cr>
exe 'au BufRead *.fountain,*.spmd set tw='.g:FountainWiki_Textwidth
exe 'au BufRead *.fountain,*.spmd set tabstop='.g:FountainWiki_Tabstop
exe 'au BufRead *.fountain,*.spmd,*'.g:FountainWiki_Filename_Token.g:FountainWiki_Card_Extension.' nnoremap <buffer> <tab> <c-w>w'
-
+au BufRead *.fountain,*.spmd call ScreenplayHome()