aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcarson fire <carsonfire@gmail.com>2012-02-21 00:00:00 +0000
committerAble Scraper <scraper@vim-scripts.org>2012-03-07 01:05:44 -0600
commitbf27f5cfaee4a39574d95ce01632d15c54372f7f (patch)
tree8ced582f0b39a750afa5649f45807cc7c86f2b19
parent02dc8b84a4b4884ad570ee82364363e9058de80f (diff)
downloadfountainwiki.vim-bf27f5cfaee4a39574d95ce01632d15c54372f7f.tar.gz
Version 1.21.2
Vimballed, now with proper help file. Wiki file now opens full window (more common behavior), but with the sidebar still available as an option. New command brings you back to your screenplay. Hack added for properly exploiting Vimwiki search (if using Vimwiki in conjunction). More options for customizing indentation. Filename token deprecated, now optional.
-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()