diff options
-rw-r--r-- | doc/fountainwiki.txt | 362 | ||||
-rw-r--r-- | plugin/fountainwiki.vim | 339 |
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() |