]> git.wincent.com - docvim.git/commitdiff
Initial cut at @mapping, @command, @option, @function
authorGreg Hurrell <greg@hurrell.net>
Mon, 6 Jun 2016 13:55:27 +0000 (06:55 -0700)
committerGreg Hurrell <greg@hurrell.net>
Mon, 6 Jun 2016 13:55:27 +0000 (06:55 -0700)
Still some bugs to sort out (eg. duplicate symbol table entry due to extra
`MappingsAnnotation` when we perform extraction) and polish to apply (not
actually printing the options/functions etc).

26 files changed:
docvim.cabal
lib/Docvim/Compile.hs
lib/Docvim/Visitor.hs
lib/Docvim/Visitor/Command.hs [new file with mode: 0644]
lib/Docvim/Visitor/Commands.hs
lib/Docvim/Visitor/Footer.hs
lib/Docvim/Visitor/Function.hs [new file with mode: 0644]
lib/Docvim/Visitor/Functions.hs
lib/Docvim/Visitor/Mapping.hs [new file with mode: 0644]
lib/Docvim/Visitor/Mappings.hs
lib/Docvim/Visitor/Option.hs [new file with mode: 0644]
lib/Docvim/Visitor/Options.hs
lib/Docvim/Visitor/Plugin.hs
lib/Docvim/Visitor/Symbol.hs
tests/fixtures/markdown/integration-ferret-ftplugin-qf.golden
tests/fixtures/markdown/integration-ferret-private.golden
tests/fixtures/markdown/ordering-across-docblocks.golden
tests/fixtures/markdown/ordering-within-docblocks.golden
tests/fixtures/parser/integration-ferret-ftplugin-qf.golden
tests/fixtures/parser/integration-ferret-plugin.golden
tests/fixtures/parser/integration-ferret-private.golden
tests/fixtures/parser/mappings.golden
tests/fixtures/parser/options.golden
tests/fixtures/vim/integration-ferret-ftplugin-qf.golden
tests/fixtures/vim/integration-ferret-plugin.golden
tests/fixtures/vim/integration-ferret-private.golden

index 16c4f82ba4f45e7c442cb8542eb1eb174e215425..d3fc3d95b8c09b86bb737518d63f32162a3acd55 100644 (file)
@@ -94,10 +94,14 @@ library
                  ,  Docvim.ReadDir
                  ,  Docvim.Util
                  ,  Docvim.Visitor
+                 ,  Docvim.Visitor.Command
                  ,  Docvim.Visitor.Commands
                  ,  Docvim.Visitor.Footer
+                 ,  Docvim.Visitor.Function
                  ,  Docvim.Visitor.Functions
+                 ,  Docvim.Visitor.Mapping
                  ,  Docvim.Visitor.Mappings
+                 ,  Docvim.Visitor.Option
                  ,  Docvim.Visitor.Options
                  ,  Docvim.Visitor.Plugin
                  ,  Docvim.Visitor.Symbol
index 83a29155ba8a74d4ea7e269932905d50eb98413c..c0cdc3201f6c295d153174794f141fc33898f48a 100644 (file)
@@ -1,10 +1,14 @@
 module Docvim.Compile (compile) where
 
 import Docvim.AST (Node(Project))
+import Docvim.Visitor.Command (extractCommand)
 import Docvim.Visitor.Commands (extractCommands)
 import Docvim.Visitor.Footer (extractFooter)
+import Docvim.Visitor.Function (extractFunction)
 import Docvim.Visitor.Functions (extractFunctions)
+import Docvim.Visitor.Mapping (extractMapping)
 import Docvim.Visitor.Mappings (extractMappings)
+import Docvim.Visitor.Option (extractOption)
 import Docvim.Visitor.Options (extractOptions)
 import Docvim.Visitor.Plugin (extractPlugin)
 import Docvim.Visitor (extract)
@@ -15,15 +19,23 @@ compile ns = do
   let (ast, footer) = extract extractFooter $ Project ns
   let (ast2, plugin) = extract extractPlugin ast
   let (ast3, commands) = extract extractCommands ast2
-  let (ast4, functions) = extract extractFunctions ast3
-  let (ast5, mappings) = extract extractMappings ast4
-  let (ast6, options) = extract extractOptions ast5
+  let (ast4, command) = extract extractCommand ast3
+  let (ast5, functions) = extract extractFunctions ast4
+  let (ast6, function) = extract extractFunction ast5
+  let (ast7, mappings) = extract extractMappings ast6
+  let (ast8, mapping) = extract extractMapping ast7
+  let (ast9, options) = extract extractOptions ast8
+  let (ast10, option) = extract extractOption ast9
   let project = Project $ concat [ plugin
                                  , [ast6]
                                  , commands
+                                 , command
                                  , mappings
+                                 , mapping
                                  , options
+                                 , option
                                  , functions
+                                 , function
                                  , footer
                                  ]
   project
index 6ed3a7da16a2a679c2bb074b288a2bded9bcc2c8..0c240a9b72323d9ec75a39252d70679d17349b8f 100644 (file)
@@ -1,7 +1,7 @@
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE FlexibleContexts #-}
 
-module Docvim.Visitor (endBlock, extract, extractBlocks) where
+module Docvim.Visitor (endSection, extract, extractBlocks) where
 
 import Control.Applicative (Alternative, (<|>), empty)
 import Control.Monad ((>=>))
@@ -11,8 +11,8 @@ import Docvim.AST
 import qualified Data.DList as DList
 
 -- | Returns True if a node marks the end of a region/block.
-endBlock :: Node -> Bool
-endBlock = \case
+endSection :: Node -> Bool
+endSection = \case
   CommandAnnotation _    -> True
   CommandsAnnotation     -> True
   FooterAnnotation       -> True
diff --git a/lib/Docvim/Visitor/Command.hs b/lib/Docvim/Visitor/Command.hs
new file mode 100644 (file)
index 0000000..f1772c2
--- /dev/null
@@ -0,0 +1,16 @@
+{-# LANGUAGE LambdaCase #-}
+
+module Docvim.Visitor.Command (extractCommand) where
+
+import Control.Applicative (Alternative)
+import Docvim.AST (Node(CommandAnnotation))
+import Docvim.Visitor (endSection, extractBlocks)
+
+-- | Extracts a list of nodes (if any exist) identified by the `@command`
+-- annotation of the source code.
+extractCommand :: Alternative f => [Node] -> (f [Node], [Node])
+extractCommand = extractBlocks f
+  where
+    f = \case
+      CommandAnnotation _ -> Just endSection
+      _                   -> Nothing
index d2f64985090d5fbefd78a5dd9ea6fb6df6ad053f..8813ad72588e27333afb3de6a4d37d7ffc991c3d 100644 (file)
@@ -2,7 +2,7 @@ module Docvim.Visitor.Commands (extractCommands) where
 
 import Control.Applicative (Alternative)
 import Docvim.AST (Node(CommandsAnnotation))
-import Docvim.Visitor (endBlock, extractBlocks)
+import Docvim.Visitor (endSection, extractBlocks)
 
 -- | Extracts a list of nodes (if any exist) from the `@commands` section(s) of
 -- the source code.
@@ -15,5 +15,5 @@ extractCommands :: Alternative f => [Node] -> (f [Node], [Node])
 extractCommands = extractBlocks f
   where
     f x = if x == CommandsAnnotation
-          then Just endBlock
+          then Just endSection
           else Nothing
index 7bd35c472eddc4b85ae1c0e5455dbe954f7488b3..e71ab201642017f717bd413d40ecb9a9e09c859f 100644 (file)
@@ -2,7 +2,7 @@ module Docvim.Visitor.Footer (extractFooter) where
 
 import Control.Applicative (Alternative)
 import Docvim.AST (Node(FooterAnnotation))
-import Docvim.Visitor (endBlock, extractBlocks)
+import Docvim.Visitor (endSection, extractBlocks)
 
 -- | Extracts a list of nodes (if any exist) from the `@footer` section(s) of
 -- the source code.
@@ -15,5 +15,5 @@ extractFooter :: Alternative f => [Node] -> (f [Node], [Node])
 extractFooter = extractBlocks f
   where
     f x = if x == FooterAnnotation
-          then Just endBlock
+          then Just endSection
           else Nothing
diff --git a/lib/Docvim/Visitor/Function.hs b/lib/Docvim/Visitor/Function.hs
new file mode 100644 (file)
index 0000000..61cd760
--- /dev/null
@@ -0,0 +1,22 @@
+{-# LANGUAGE LambdaCase #-}
+
+module Docvim.Visitor.Function (extractFunction) where
+
+import Control.Applicative (Alternative)
+import Docvim.AST (Node(FunctionAnnotation))
+import Docvim.Visitor (endSection, extractBlocks)
+
+-- | Extracts a list of nodes (if any exist) identified by the `@function`
+-- annotation of the source code.
+extractFunction :: Alternative f => [Node] -> (f [Node], [Node])
+extractFunction = extractBlocks f
+  where
+    f = \case
+      FunctionAnnotation _ -> Just endSection
+      _                    -> Nothing
+-- TODO: plug this in to the Compile module
+-- (note will need to implement printing as well)
+-- TODO: verify that these do what we think they should do... (should they wrap
+-- what they return in an array, or do they all get merged, and if they do, is
+-- that ok? it probably is)
+-- TODO: DRY these visitors up; they are all almost exactly the same
index 90ac33a576d9e7e00f0c39c1f6273ccb44cab1b2..132e0adba7a4f5891a8a8456880b8ff47e60240a 100644 (file)
@@ -2,7 +2,7 @@ module Docvim.Visitor.Functions (extractFunctions) where
 
 import Control.Applicative (Alternative)
 import Docvim.AST (Node(FunctionsAnnotation))
-import Docvim.Visitor (endBlock, extractBlocks)
+import Docvim.Visitor (endSection, extractBlocks)
 
 -- | Extracts a list of nodes (if any exist) from the `@functions` section(s) of
 -- the source code.
@@ -15,5 +15,5 @@ extractFunctions :: Alternative f => [Node] -> (f [Node], [Node])
 extractFunctions = extractBlocks f
   where
     f x = if x == FunctionsAnnotation
-          then Just endBlock
+          then Just endSection
           else Nothing
diff --git a/lib/Docvim/Visitor/Mapping.hs b/lib/Docvim/Visitor/Mapping.hs
new file mode 100644 (file)
index 0000000..fc262bb
--- /dev/null
@@ -0,0 +1,16 @@
+{-# LANGUAGE LambdaCase #-}
+
+module Docvim.Visitor.Mapping (extractMapping) where
+
+import Control.Applicative (Alternative)
+import Docvim.AST (Node(MappingAnnotation))
+import Docvim.Visitor (endSection, extractBlocks)
+
+-- | Extracts a list of nodes (if any exist) identified by the `@mapping`
+-- annotation of the source code.
+extractMapping :: Alternative f => [Node] -> (f [Node], [Node])
+extractMapping = extractBlocks f
+  where
+    f = \case
+      MappingAnnotation _ -> Just endSection
+      _                   -> Nothing
index 9ba27fba9b488721c5bfa01b1fdf1a6c11bf389a..a45b3a88ef70282a458baa685a99dde8dff1f3d8 100644 (file)
@@ -2,7 +2,7 @@ module Docvim.Visitor.Mappings (extractMappings) where
 
 import Control.Applicative (Alternative)
 import Docvim.AST (Node(MappingsAnnotation))
-import Docvim.Visitor (endBlock, extractBlocks)
+import Docvim.Visitor (endSection, extractBlocks)
 
 -- | Extracts a list of nodes (if any exist) from the `@mappings` section(s) of
 -- the source code.
@@ -15,5 +15,6 @@ extractMappings :: Alternative f => [Node] -> (f [Node], [Node])
 extractMappings = extractBlocks f
   where
     f x = if x == MappingsAnnotation
-          then Just endBlock
+          then Just endSection
           else Nothing
+-- TODO: DRY all these up
diff --git a/lib/Docvim/Visitor/Option.hs b/lib/Docvim/Visitor/Option.hs
new file mode 100644 (file)
index 0000000..f9d4660
--- /dev/null
@@ -0,0 +1,16 @@
+{-# LANGUAGE LambdaCase #-}
+
+module Docvim.Visitor.Option (extractOption) where
+
+import Control.Applicative (Alternative)
+import Docvim.AST (Node(OptionAnnotation))
+import Docvim.Visitor (endSection, extractBlocks)
+
+-- | Extracts a list of nodes (if any exist) identified by the `@option`
+-- annotation of the source code.
+extractOption :: Alternative f => [Node] -> (f [Node], [Node])
+extractOption = extractBlocks f
+  where
+    f = \case
+      OptionAnnotation {} -> Just endSection
+      _                   -> Nothing
index e65aecb304a63f3bd1d00954240e8d4041a11a45..98fc056d4ba93da086686137a653158736165d42 100644 (file)
@@ -2,7 +2,7 @@ module Docvim.Visitor.Options (extractOptions) where
 
 import Control.Applicative (Alternative)
 import Docvim.AST (Node(OptionsAnnotation))
-import Docvim.Visitor (endBlock, extractBlocks)
+import Docvim.Visitor (endSection, extractBlocks)
 
 -- | Extracts a list of nodes (if any exist) from the `@options` section(s) of
 -- the source code.
@@ -15,5 +15,5 @@ extractOptions :: Alternative f => [Node] -> (f [Node], [Node])
 extractOptions = extractBlocks f
   where
     f x = if x == OptionsAnnotation
-          then Just endBlock
+          then Just endSection
           else Nothing
index a27a0b92a16c29ccad90e56fe4f34f71bfa0601a..efa236877d6e4d40328e7d0eff64d8005e7ab055 100644 (file)
@@ -6,7 +6,7 @@ module Docvim.Visitor.Plugin ( getPluginName
 
 import Control.Applicative (Alternative)
 import Docvim.AST (Node(PluginAnnotation), walk)
-import Docvim.Visitor (endBlock, extractBlocks)
+import Docvim.Visitor (endSection, extractBlocks)
 
 -- | Returns the name of the plug-in or Nothing if none is found.
 --
@@ -33,5 +33,5 @@ extractPlugin :: Alternative f => [Node] -> (f [Node], [Node])
 extractPlugin = extractBlocks f
   where
     f = \case
-      PluginAnnotation {} -> Just endBlock
+      PluginAnnotation {} -> Just endSection
       _                   -> Nothing
index 56f8062e0c1d0cad8622a07fb541c5dd6b8acabb..471676277cd8b584a209410d40d3449d8353cbb5 100644 (file)
@@ -17,7 +17,7 @@ getSymbols node = if length symbols == Set.size set
     symbols                                 = walk gatherSymbols [] node
     gatherSymbols (CommandsAnnotation)      = genHeading "commands"
     gatherSymbols (FunctionsAnnotation)     = genHeading "functions"
-    gatherSymbols (HeadingAnnotation h)     = [titleAnchor h]
+    gatherSymbols (HeadingAnnotation h)     = genHeading h
     gatherSymbols (LinkTargets ts)          = ts
     -- TODO: probably don't want this target to exist in the symbol table when
     -- emitting Markdown
@@ -25,8 +25,6 @@ getSymbols node = if length symbols == Set.size set
     gatherSymbols (MappingsAnnotation)      = genHeading "mappings"
     gatherSymbols (OptionsAnnotation)       = genHeading "options"
     gatherSymbols _                         = []
-    titleAnchor title                       = sanitizeAnchor $ titlePrefix ++ title
-    titlePrefix                             = downcase $ maybe "" (++ "-") $ getPluginName node
     genHeading h                            = maybe [] (\x -> [sanitizeAnchor $ x ++ "-" ++ h]) (getPluginName node)
     duplicates                              = nub $ f (sort symbols)
       where
index 4de81ddae4d46642f261bd9347ca788815016d11..02306aac122024bfb09063da8d7a3865fa252571 100644 (file)
@@ -19,3 +19,25 @@ To prevent these mappings from being set up, set to 0:
 ```
 let g:FerretQFMap=0
 ```
+
+Controls whether to set up setting overrides for <strong>`quickfix`</strong> windows. These are various settings, such as <strong>`norelativenumber`</strong>, <strong>`nolist`</strong> and <strong>`nowrap`</strong>, that are intended to make the <strong>`quickfix`</strong> window, which is typically very small relative to other windows, more usable.
+
+A full list of overridden settings can be found in <strong>`ferret-overrides`</strong>.
+
+To prevent the custom settings from being applied, set <strong>`g:FerretQFOptions`</strong> to 0:
+
+```
+let g:FerretQFOptions=0
+```
+
+Controls whether to set up mappings in the <strong>`quickfix`</strong> results window for deleting results. The mappings include:
+
+- `d` (<strong>`visual-mode`</strong>): delete visual selection
+- `dd` (<strong>`Normal-mode`</strong>): delete current line
+- `d`{motion} (<strong>`Normal-mode`</strong>): delete range indicated by {motion}
+
+To prevent these mappings from being set up, set to 0:
+
+```
+let g:FerretQFMap=0
+```
index 0d8fb54414e103654f6cae12c120567ac99e4ad6..010c92acfbdd77cc7e9d2153123fb5cb2f6e5901 100644 (file)
@@ -3,3 +3,9 @@ Controls whether to use vim-dispatch (and specifically, <strong>`:Make`</strong>
 ```
 let g:FerretDispatch=0
 ```
+
+Controls whether to use vim-dispatch (and specifically, <strong>`:Make`</strong>) to run <strong>`:Ack`</strong> searches asynchronously, when available. To prevent vim-dispatch from being used, set to 0:
+
+```
+let g:FerretDispatch=0
+```
index 6fe5baaef4b3700b517ba7461449ebd09bc9f2dc..ebb0ac991e68caf4006f56aae55b53d1930273ba 100644 (file)
@@ -2,6 +2,14 @@
 
 In which the narrator says some things.
 
+## Options
+
+Stuff about options.
+
+## Mappings
+
+Stuff about mappings.
+
 ## Commands
 
 Stuff about commands.
index 6fe5baaef4b3700b517ba7461449ebd09bc9f2dc..ebb0ac991e68caf4006f56aae55b53d1930273ba 100644 (file)
@@ -2,6 +2,14 @@
 
 In which the narrator says some things.
 
+## Options
+
+Stuff about options.
+
+## Mappings
+
+Stuff about mappings.
+
 ## Commands
 
 Stuff about commands.
index 42ba8f0351f3b1b73d9bea31bd8d5f0bd6fd9a8a..a6b5a7ec3534c4548ffcd317d0ac7d447a5d9295 100644 (file)
@@ -279,4 +279,242 @@ Project
           , GenericStatement "endif"
           ]
       ]
+  , OptionAnnotation "g:FerretQFOptions" "boolean" (Just "1")
+  , Paragraph
+      [ Plaintext "Controls"
+      , Whitespace
+      , Plaintext "whether"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "up"
+      , Whitespace
+      , Plaintext "setting"
+      , Whitespace
+      , Plaintext "overrides"
+      , Whitespace
+      , Plaintext "for"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "windows."
+      , Whitespace
+      , Plaintext "These"
+      , Whitespace
+      , Plaintext "are"
+      , Whitespace
+      , Plaintext "various"
+      , Whitespace
+      , Plaintext "settings,"
+      , Whitespace
+      , Plaintext "such"
+      , Whitespace
+      , Plaintext "as"
+      , Whitespace
+      , Link "norelativenumber"
+      , Plaintext ","
+      , Whitespace
+      , Link "nolist"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Link "nowrap"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "that"
+      , Whitespace
+      , Plaintext "are"
+      , Whitespace
+      , Plaintext "intended"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "make"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "window,"
+      , Whitespace
+      , Plaintext "which"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "typically"
+      , Whitespace
+      , Plaintext "very"
+      , Whitespace
+      , Plaintext "small"
+      , Whitespace
+      , Plaintext "relative"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "other"
+      , Whitespace
+      , Plaintext "windows,"
+      , Whitespace
+      , Plaintext "more"
+      , Whitespace
+      , Plaintext "usable."
+      ]
+  , Paragraph
+      [ Plaintext "A"
+      , Whitespace
+      , Plaintext "full"
+      , Whitespace
+      , Plaintext "list"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "overridden"
+      , Whitespace
+      , Plaintext "settings"
+      , Whitespace
+      , Plaintext "can"
+      , Whitespace
+      , Plaintext "be"
+      , Whitespace
+      , Plaintext "found"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Link "ferret-overrides"
+      , Plaintext "."
+      ]
+  , Paragraph
+      [ Plaintext "To"
+      , Whitespace
+      , Plaintext "prevent"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "custom"
+      , Whitespace
+      , Plaintext "settings"
+      , Whitespace
+      , Plaintext "from"
+      , Whitespace
+      , Plaintext "being"
+      , Whitespace
+      , Plaintext "applied,"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Link "g:FerretQFOptions"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "0:"
+      ]
+  , Fenced [ "let g:FerretQFOptions=0" ]
+  , OptionAnnotation "g:FerretQFMap" "boolean" (Just "1")
+  , Paragraph
+      [ Plaintext "Controls"
+      , Whitespace
+      , Plaintext "whether"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "up"
+      , Whitespace
+      , Plaintext "mappings"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "results"
+      , Whitespace
+      , Plaintext "window"
+      , Whitespace
+      , Plaintext "for"
+      , Whitespace
+      , Plaintext "deleting"
+      , Whitespace
+      , Plaintext "results."
+      , Whitespace
+      , Plaintext "The"
+      , Whitespace
+      , Plaintext "mappings"
+      , Whitespace
+      , Plaintext "include:"
+      ]
+  , List
+      [ ListItem
+          [ Code "d"
+          , Whitespace
+          , Plaintext "("
+          , Link "visual-mode"
+          , Plaintext "):"
+          , Whitespace
+          , Plaintext "delete"
+          , Whitespace
+          , Plaintext "visual"
+          , Whitespace
+          , Plaintext "selection"
+          ]
+      , ListItem
+          [ Code "dd"
+          , Whitespace
+          , Plaintext "("
+          , Link "Normal-mode"
+          , Plaintext "):"
+          , Whitespace
+          , Plaintext "delete"
+          , Whitespace
+          , Plaintext "current"
+          , Whitespace
+          , Plaintext "line"
+          ]
+      , ListItem
+          [ Code "d"
+          , Plaintext "{motion}"
+          , Whitespace
+          , Plaintext "("
+          , Link "Normal-mode"
+          , Plaintext "):"
+          , Whitespace
+          , Plaintext "delete"
+          , Whitespace
+          , Plaintext "range"
+          , Whitespace
+          , Plaintext "indicated"
+          , Whitespace
+          , Plaintext "by"
+          , Whitespace
+          , Plaintext "{motion}"
+          ]
+      ]
+  , Paragraph
+      [ Plaintext "To"
+      , Whitespace
+      , Plaintext "prevent"
+      , Whitespace
+      , Plaintext "these"
+      , Whitespace
+      , Plaintext "mappings"
+      , Whitespace
+      , Plaintext "from"
+      , Whitespace
+      , Plaintext "being"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "up,"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "0:"
+      ]
+  , Fenced [ "let g:FerretQFMap=0" ]
   ]
index 46c33ae53e1c80203ac5580f571ca0f8431c59ab..ee05c454822468d393d1a84a65449f29239a7bb8 100644 (file)
@@ -810,7 +810,206 @@ Project
   , Fenced [ ":call pathogen#helptags()" ]
   , Project
       [ Unit
-          [ DocBlock []
+          [ DocBlock
+              [ MappingsAnnotation
+              , SubheadingAnnotation
+                  "Circumstances where mappings do not get set up"
+              , Paragraph
+                  [ Plaintext "Note"
+                  , Whitespace
+                  , Plaintext "that"
+                  , Whitespace
+                  , Plaintext "Ferret"
+                  , Whitespace
+                  , Plaintext "will"
+                  , Whitespace
+                  , Plaintext "not"
+                  , Whitespace
+                  , Plaintext "try"
+                  , Whitespace
+                  , Plaintext "to"
+                  , Whitespace
+                  , Plaintext "set"
+                  , Whitespace
+                  , Plaintext "up"
+                  , Whitespace
+                  , Plaintext "the"
+                  , Whitespace
+                  , Plaintext "<leader>"
+                  , Whitespace
+                  , Plaintext "mappings"
+                  , Whitespace
+                  , Plaintext "if"
+                  , Whitespace
+                  , Plaintext "any"
+                  , Whitespace
+                  , Plaintext "of"
+                  , Whitespace
+                  , Plaintext "the"
+                  , Whitespace
+                  , Plaintext "following"
+                  , Whitespace
+                  , Plaintext "are"
+                  , Whitespace
+                  , Plaintext "true:"
+                  ]
+              , List
+                  [ ListItem
+                      [ Plaintext "A"
+                      , Whitespace
+                      , Plaintext "mapping"
+                      , Whitespace
+                      , Plaintext "for"
+                      , Whitespace
+                      , Plaintext "already"
+                      , Whitespace
+                      , Plaintext "exists."
+                      ]
+                  , ListItem
+                      [ Plaintext "An"
+                      , Whitespace
+                      , Plaintext "alternative"
+                      , Whitespace
+                      , Plaintext "mapping"
+                      , Whitespace
+                      , Plaintext "for"
+                      , Whitespace
+                      , Plaintext "the"
+                      , Whitespace
+                      , Plaintext "same"
+                      , Whitespace
+                      , Plaintext "functionality"
+                      , Whitespace
+                      , Plaintext "has"
+                      , Whitespace
+                      , Plaintext "already"
+                      , Whitespace
+                      , Plaintext "been"
+                      , Whitespace
+                      , Plaintext "set"
+                      , Whitespace
+                      , Plaintext "up"
+                      , Whitespace
+                      , Plaintext "from"
+                      , Whitespace
+                      , Plaintext "a"
+                      , Whitespace
+                      , Link ".vimrc"
+                      , Plaintext "."
+                      ]
+                  , ListItem
+                      [ Plaintext "The"
+                      , Whitespace
+                      , Plaintext "mapping"
+                      , Whitespace
+                      , Plaintext "has"
+                      , Whitespace
+                      , Plaintext "been"
+                      , Whitespace
+                      , Plaintext "suppressed"
+                      , Whitespace
+                      , Plaintext "by"
+                      , Whitespace
+                      , Plaintext "setting"
+                      , Whitespace
+                      , Link "g:FerretMap"
+                      , Whitespace
+                      , Plaintext "to"
+                      , Whitespace
+                      , Plaintext "1"
+                      , Whitespace
+                      , Plaintext "in"
+                      , Whitespace
+                      , Plaintext "your"
+                      , Whitespace
+                      , Link ".vimrc"
+                      , Plaintext "."
+                      ]
+                  ]
+              , SubheadingAnnotation "Mappings specific to the quickfix window"
+              , Paragraph
+                  [ Plaintext "Additionally,"
+                  , Whitespace
+                  , Plaintext "Ferret"
+                  , Whitespace
+                  , Plaintext "will"
+                  , Whitespace
+                  , Plaintext "set"
+                  , Whitespace
+                  , Plaintext "up"
+                  , Whitespace
+                  , Plaintext "special"
+                  , Whitespace
+                  , Plaintext "mappings"
+                  , Whitespace
+                  , Plaintext "in"
+                  , Whitespace
+                  , Link "quickfix"
+                  , Whitespace
+                  , Plaintext "listings,"
+                  , Whitespace
+                  , Plaintext "unless"
+                  , Whitespace
+                  , Plaintext "prevented"
+                  , Whitespace
+                  , Plaintext "from"
+                  , Whitespace
+                  , Plaintext "doing"
+                  , Whitespace
+                  , Plaintext "so"
+                  , Whitespace
+                  , Plaintext "by"
+                  , Whitespace
+                  , Link "g:FerretQFMap"
+                  , Plaintext ":"
+                  ]
+              , List
+                  [ ListItem
+                      [ Code "d"
+                      , Whitespace
+                      , Plaintext "("
+                      , Link "visual-mode"
+                      , Plaintext "):"
+                      , Whitespace
+                      , Plaintext "delete"
+                      , Whitespace
+                      , Plaintext "visual"
+                      , Whitespace
+                      , Plaintext "selection"
+                      ]
+                  , ListItem
+                      [ Code "dd"
+                      , Whitespace
+                      , Plaintext "("
+                      , Link "Normal-mode"
+                      , Plaintext "):"
+                      , Whitespace
+                      , Plaintext "delete"
+                      , Whitespace
+                      , Plaintext "current"
+                      , Whitespace
+                      , Plaintext "line"
+                      ]
+                  , ListItem
+                      [ Code "d"
+                      , Plaintext "{motion}"
+                      , Whitespace
+                      , Plaintext "("
+                      , Link "Normal-mode"
+                      , Plaintext "):"
+                      , Whitespace
+                      , Plaintext "delete"
+                      , Whitespace
+                      , Plaintext "range"
+                      , Whitespace
+                      , Plaintext "indicated"
+                      , Whitespace
+                      , Plaintext "by"
+                      , Whitespace
+                      , Plaintext "{motion}"
+                      ]
+                  ]
+              ]
           , GenericStatement "\"\""
           , GenericStatement
               "if exists('g:FerretLoaded') || &compatible || v:version < 700"
@@ -848,1277 +1047,1745 @@ Project
           , GenericStatement "autocmd QuickFixCmdPost l* nested lwindow"
           , GenericStatement "augroup END"
           , GenericStatement "endif"
+          , DocBlock []
+          , GenericStatement
+              "command! -nargs=+ -complete=file Ack call ferret#private#ack(<q-args>)"
+          , DocBlock []
+          , GenericStatement
+              "command! -nargs=+ -complete=file Lack call ferret#private#lack(<q-args>)"
+          , DocBlock []
+          , GenericStatement
+              "command! -nargs=1 Acks call ferret#private#acks(<q-args>)"
           , DocBlock
-              [ CommandAnnotation ":Ack {pattern} {options}"
+              [ OptionAnnotation "g:FerretMap" "boolean" (Just "1")
               , Paragraph
-                  [ Plaintext "Searches"
+                  [ Plaintext "Controls"
                   , Whitespace
-                  , Plaintext "for"
+                  , Plaintext "whether"
                   , Whitespace
-                  , Plaintext "{pattern}"
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "in"
+                  , Plaintext "set"
                   , Whitespace
-                  , Plaintext "all"
+                  , Plaintext "up"
                   , Whitespace
                   , Plaintext "the"
                   , Whitespace
-                  , Plaintext "files"
+                  , Plaintext "Ferret"
                   , Whitespace
-                  , Plaintext "under"
+                  , Plaintext "mappings,"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "such"
                   , Whitespace
-                  , Plaintext "current"
+                  , Plaintext "as"
                   , Whitespace
-                  , Plaintext "directory"
+                  , Link "<Plug>(FerretAck)"
                   , Whitespace
                   , Plaintext "(see"
                   , Whitespace
-                  , Link ":pwd"
-                  , Plaintext "),"
+                  , Link "ferret-mappings"
                   , Whitespace
-                  , Plaintext "unless"
+                  , Plaintext "for"
                   , Whitespace
-                  , Plaintext "otherwise"
+                  , Plaintext "a"
                   , Whitespace
-                  , Plaintext "overridden"
+                  , Plaintext "full"
                   , Whitespace
-                  , Plaintext "via"
+                  , Plaintext "list)."
                   , Whitespace
-                  , Plaintext "{options},"
+                  , Plaintext "To"
                   , Whitespace
-                  , Plaintext "and"
+                  , Plaintext "prevent"
                   , Whitespace
-                  , Plaintext "displays"
+                  , Plaintext "any"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "mapping"
                   , Whitespace
-                  , Plaintext "results"
+                  , Plaintext "from"
                   , Whitespace
-                  , Plaintext "in"
+                  , Plaintext "being"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "configured,"
                   , Whitespace
-                  , Link "quickfix"
+                  , Plaintext "set"
+                  , Whitespace
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "listing."
+                  , Plaintext "0:"
                   ]
+              , Fenced [ "let g:FerretMap=0" ]
+              ]
+          , LetStatement
+              { letLexpr = "s:map" , letValue = "get(g:, 'FerretMap', 1)" }
+          , GenericStatement "if s:map"
+          , GenericStatement
+              "if !hasmapto('<Plug>(FerretAck)') && maparg('<leader>a', 'n') ==# ''"
+          , DocBlock
+              [ MappingAnnotation "<Plug>(FerretAck)"
               , Paragraph
-                  [ Code "ag"
+                  [ Plaintext "Ferret"
                   , Whitespace
-                  , Plaintext "(The"
+                  , Plaintext "maps"
                   , Whitespace
-                  , Plaintext "Silver"
+                  , Plaintext "<leader>a"
                   , Whitespace
-                  , Plaintext "Searcher)"
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "will"
+                  , Link "<Plug>(FerretAck)"
+                  , Plaintext ","
                   , Whitespace
-                  , Plaintext "be"
+                  , Plaintext "which"
                   , Whitespace
-                  , Plaintext "used"
+                  , Plaintext "triggers"
                   , Whitespace
-                  , Plaintext "preferentially"
+                  , Plaintext "the"
                   , Whitespace
-                  , Plaintext "if"
+                  , Link ":Ack"
                   , Whitespace
-                  , Plaintext "present"
+                  , Plaintext "command."
                   , Whitespace
-                  , Plaintext "on"
+                  , Plaintext "To"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "use"
                   , Whitespace
-                  , Plaintext "system,"
+                  , Plaintext "an"
                   , Whitespace
-                  , Plaintext "because"
+                  , Plaintext "alternative"
                   , Whitespace
-                  , Plaintext "it"
+                  , Plaintext "mapping"
                   , Whitespace
-                  , Plaintext "is"
+                  , Plaintext "instead,"
                   , Whitespace
-                  , Plaintext "faster,"
+                  , Plaintext "create"
                   , Whitespace
-                  , Plaintext "falling"
+                  , Plaintext "a"
                   , Whitespace
-                  , Plaintext "back"
+                  , Plaintext "different"
                   , Whitespace
-                  , Plaintext "to"
+                  , Plaintext "one"
                   , Whitespace
-                  , Code "ack"
+                  , Plaintext "in"
                   , Whitespace
-                  , Plaintext "and"
+                  , Plaintext "your"
                   , Whitespace
-                  , Plaintext "then"
+                  , Link ".vimrc"
                   , Whitespace
-                  , Code "grep"
+                  , Plaintext "instead"
                   , Whitespace
-                  , Plaintext "as"
+                  , Plaintext "using"
                   , Whitespace
-                  , Plaintext "needed."
+                  , Link ":nmap"
+                  , Plaintext ":"
+                  ]
+              , Fenced
+                  [ "\" Instead of <leader>a, use <leader>x."
+                  , "nmap <leader>x <Plug>(FerretAck)"
                   ]
+              ]
+          , GenericStatement "nmap <unique> <leader>a <Plug>(FerretAck)"
+          , GenericStatement "endif"
+          , GenericStatement "nnoremap <Plug>(FerretAck) :Ack<space>"
+          , GenericStatement
+              "if !hasmapto('<Plug>FerretLack') && maparg('<leader>l', 'n') ==# ''"
+          , DocBlock
+              [ MappingAnnotation "<Plug>(FerretLack)"
               , Paragraph
-                  [ Plaintext "If"
-                  , Whitespace
-                  , Plaintext "dispatch.vim"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "installed"
-                  , Whitespace
-                  , Plaintext "the"
+                  [ Plaintext "Ferret"
                   , Whitespace
-                  , Plaintext "search"
+                  , Plaintext "maps"
                   , Whitespace
-                  , Plaintext "process"
+                  , Plaintext "<leader>l"
                   , Whitespace
-                  , Plaintext "will"
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "run"
+                  , Link "<Plug>(FerretLack)"
+                  , Plaintext ","
                   , Whitespace
-                  , Plaintext "asynchronously"
+                  , Plaintext "which"
                   , Whitespace
-                  , Plaintext "via"
+                  , Plaintext "triggers"
                   , Whitespace
                   , Plaintext "the"
                   , Whitespace
-                  , Link ":Make"
+                  , Link ":Lack"
                   , Whitespace
-                  , Plaintext "command,"
+                  , Plaintext "command."
                   , Whitespace
-                  , Plaintext "otherwise"
+                  , Plaintext "To"
                   , Whitespace
-                  , Plaintext "it"
+                  , Plaintext "use"
                   , Whitespace
-                  , Plaintext "will"
+                  , Plaintext "an"
                   , Whitespace
-                  , Plaintext "be"
+                  , Plaintext "alternative"
                   , Whitespace
-                  , Plaintext "run"
+                  , Plaintext "mapping"
                   , Whitespace
-                  , Plaintext "synchronously"
+                  , Plaintext "instead,"
                   , Whitespace
-                  , Plaintext "via"
+                  , Plaintext "create"
                   , Whitespace
-                  , Link ":cexpr"
-                  , Plaintext "."
+                  , Plaintext "a"
                   , Whitespace
-                  , Plaintext "Asynchronous"
+                  , Plaintext "different"
                   , Whitespace
-                  , Plaintext "searches"
+                  , Plaintext "one"
                   , Whitespace
-                  , Plaintext "are"
+                  , Plaintext "in"
                   , Whitespace
-                  , Plaintext "preferred"
+                  , Plaintext "your"
                   , Whitespace
-                  , Plaintext "because"
+                  , Link ".vimrc"
                   , Whitespace
-                  , Plaintext "they"
+                  , Plaintext "instead"
                   , Whitespace
-                  , Plaintext "do"
+                  , Plaintext "using"
                   , Whitespace
-                  , Plaintext "not"
+                  , Link ":nmap"
+                  , Plaintext ":"
+                  ]
+              , Fenced
+                  [ "\" Instead of <leader>l, use <leader>y."
+                  , "nmap <leader>y <Plug>(FerretLack)"
+                  ]
+              ]
+          , GenericStatement "nmap <unique> <leader>l <Plug>(FerretLack)"
+          , GenericStatement "endif"
+          , GenericStatement "nnoremap <Plug>(FerretLack) :Lack<space>"
+          , GenericStatement
+              "if !hasmapto('<Plug>(FerretAckWord)') && maparg('<leader>s', 'n') ==# ''"
+          , DocBlock
+              [ MappingAnnotation "<Plug>(FerretAckWord)"
+              , Paragraph
+                  [ Plaintext "Ferret"
                   , Whitespace
-                  , Plaintext "block,"
+                  , Plaintext "maps"
                   , Whitespace
-                  , Plaintext "despite"
+                  , Plaintext "<leader>s"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "(mnemonix:"
                   , Whitespace
-                  , Plaintext "fact"
+                  , Plaintext "\"selection)"
                   , Whitespace
-                  , Plaintext "that"
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "Vim"
+                  , Link "<Plug>(FerretAckWord)"
+                  , Plaintext ","
                   , Whitespace
-                  , Plaintext "itself"
+                  , Plaintext "which"
                   , Whitespace
-                  , Plaintext "is"
+                  , Plaintext "uses"
                   , Whitespace
-                  , Plaintext "single"
+                  , Link ":Ack"
                   , Whitespace
-                  , Plaintext "threaded."
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "The"
+                  , Plaintext "search"
                   , Whitespace
-                  , Link "g:FerretDispatch"
+                  , Plaintext "for"
                   , Whitespace
-                  , Plaintext "option"
+                  , Plaintext "the"
                   , Whitespace
-                  , Plaintext "can"
+                  , Plaintext "word"
                   , Whitespace
-                  , Plaintext "be"
+                  , Plaintext "currently"
                   , Whitespace
-                  , Plaintext "used"
+                  , Plaintext "under"
                   , Whitespace
-                  , Plaintext "to"
+                  , Plaintext "the"
                   , Whitespace
-                  , Plaintext "prevent"
+                  , Plaintext "cursor."
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "To"
                   , Whitespace
                   , Plaintext "use"
                   , Whitespace
-                  , Plaintext "of"
+                  , Plaintext "an"
                   , Whitespace
-                  , Plaintext "dispatch.vim."
-                  ]
-              , Paragraph
-                  [ Plaintext "The"
+                  , Plaintext "alternative"
                   , Whitespace
-                  , Plaintext "{pattern}"
+                  , Plaintext "mapping"
                   , Whitespace
-                  , Plaintext "is"
+                  , Plaintext "instead,"
                   , Whitespace
-                  , Plaintext "passed"
+                  , Plaintext "create"
                   , Whitespace
-                  , Plaintext "through"
+                  , Plaintext "a"
                   , Whitespace
-                  , Plaintext "as-is"
+                  , Plaintext "different"
                   , Whitespace
-                  , Plaintext "to"
+                  , Plaintext "one"
                   , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "underlying"
-                  , Whitespace
-                  , Plaintext "search"
-                  , Whitespace
-                  , Plaintext "program,"
-                  , Whitespace
-                  , Plaintext "and"
-                  , Whitespace
-                  , Plaintext "no"
-                  , Whitespace
-                  , Plaintext "escaping"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "required"
-                  , Whitespace
-                  , Plaintext "other"
-                  , Whitespace
-                  , Plaintext "than"
-                  , Whitespace
-                  , Plaintext "preceding"
-                  , Whitespace
-                  , Plaintext "spaces"
-                  , Whitespace
-                  , Plaintext "by"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "single"
-                  , Whitespace
-                  , Plaintext "backslash."
-                  , Whitespace
-                  , Plaintext "For"
-                  , Whitespace
-                  , Plaintext "example,"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "search"
-                  , Whitespace
-                  , Plaintext "for"
+                  , Plaintext "in"
                   , Whitespace
-                  , Plaintext "\"\\bfoo[0-9]{2}"
+                  , Plaintext "your"
                   , Whitespace
-                  , Plaintext "bar\\b\""
+                  , Link ".vimrc"
                   , Whitespace
-                  , Plaintext "(ie."
+                  , Plaintext "instead"
                   , Whitespace
                   , Plaintext "using"
                   , Whitespace
-                  , Code "ag"
-                  , Plaintext "'s"
-                  , Whitespace
-                  , Plaintext "Perl-style"
-                  , Whitespace
-                  , Plaintext "regular"
-                  , Whitespace
-                  , Plaintext "expression"
-                  , Whitespace
-                  , Plaintext "syntax),"
-                  , Whitespace
-                  , Plaintext "you"
-                  , Whitespace
-                  , Plaintext "could"
-                  , Whitespace
-                  , Plaintext "do:"
+                  , Link ":nmap"
+                  , Plaintext ":"
+                  ]
+              , Fenced
+                  [ "\" Instead of <leader>s, use <leader>z."
+                  , "nmap <leader>z <Plug>(FerretAckWord)"
                   ]
-              , Fenced [ ":Ack \\bfoo[0-9]{2}\\ bar\\b" ]
+              ]
+          , GenericStatement "nmap <unique> <leader>s <Plug>(FerretAckWord)"
+          , GenericStatement "endif"
+          , GenericStatement
+              "nnoremap <Plug>(FerretAckWord) :Ack <C-r><C-w><CR>"
+          , GenericStatement
+              "if !hasmapto('<Plug>(FerretAcks)') && maparg('<leader>r', 'n') ==# ''"
+          , DocBlock
+              [ MappingAnnotation "*<Plug>(FerretAcks)*"
               , Paragraph
-                  [ Plaintext "Likewise,"
-                  , Whitespace
-                  , Plaintext "{options}"
+                  [ Plaintext "Ferret"
                   , Whitespace
-                  , Plaintext "are"
+                  , Plaintext "maps"
                   , Whitespace
-                  , Plaintext "passed"
+                  , Plaintext "<leader>r"
                   , Whitespace
-                  , Plaintext "through."
+                  , Plaintext "(mnemonic:"
                   , Whitespace
-                  , Plaintext "In"
+                  , Plaintext "\"replace\")"
                   , Whitespace
-                  , Plaintext "this"
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "example,"
+                  , Link "<Plug>(FerretAcks)"
+                  , Plaintext ","
                   , Whitespace
-                  , Plaintext "we"
+                  , Plaintext "which"
                   , Whitespace
-                  , Plaintext "pass"
+                  , Plaintext "triggers"
                   , Whitespace
                   , Plaintext "the"
                   , Whitespace
-                  , Code "-w"
-                  , Whitespace
-                  , Plaintext "option"
-                  , Whitespace
-                  , Plaintext "(to"
-                  , Whitespace
-                  , Plaintext "search"
-                  , Whitespace
-                  , Plaintext "on"
-                  , Whitespace
-                  , Plaintext "word"
+                  , Link ":Acks"
                   , Whitespace
-                  , Plaintext "boundaries),"
+                  , Plaintext "command"
                   , Whitespace
                   , Plaintext "and"
                   , Whitespace
-                  , Plaintext "scope"
+                  , Plaintext "fills"
                   , Whitespace
                   , Plaintext "the"
                   , Whitespace
-                  , Plaintext "search"
+                  , Plaintext "prompt"
                   , Whitespace
-                  , Plaintext "to"
+                  , Plaintext "with"
                   , Whitespace
                   , Plaintext "the"
                   , Whitespace
-                  , Plaintext "\"foo\""
-                  , Whitespace
-                  , Plaintext "and"
-                  , Whitespace
-                  , Plaintext "\"bar\""
-                  , Whitespace
-                  , Plaintext "subdirectories:"
-                  , Whitespace
-                  , Plaintext ">"
-                  ]
-              , Fenced [ ":Ack -w something foo bar" ]
-              , Paragraph
-                  [ Plaintext "As"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "convenience"
-                  , Whitespace
-                  , Plaintext "<leader>a"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "set-up"
+                  , Plaintext "last"
                   , Whitespace
-                  , Plaintext "("
-                  , Link "<Plug>(FerretAck)"
-                  , Plaintext ")"
+                  , Plaintext "search"
                   , Whitespace
-                  , Plaintext "as"
+                  , Plaintext "term"
                   , Whitespace
-                  , Plaintext "a"
+                  , Plaintext "from"
                   , Whitespace
-                  , Plaintext "shortcut"
+                  , Plaintext "Ferret."
                   , Whitespace
                   , Plaintext "to"
                   , Whitespace
-                  , Plaintext "enter"
-                  , Whitespace
-                  , Link "Cmdline-mode"
-                  , Whitespace
-                  , Plaintext "with"
-                  , Whitespace
-                  , Code ":Ack"
-                  , Whitespace
-                  , Plaintext "inserted"
-                  , Whitespace
-                  , Plaintext "on"
-                  , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "use"
                   , Whitespace
-                  , Link "Cmdline"
-                  , Plaintext "."
+                  , Plaintext "an"
                   , Whitespace
-                  , Plaintext "Likewise"
+                  , Plaintext "alternative"
                   , Whitespace
-                  , Plaintext "<leader>s"
+                  , Plaintext "mapping"
                   , Whitespace
-                  , Plaintext "("
-                  , Link "<Plug>(FerretAckWord)"
-                  , Plaintext ")"
+                  , Plaintext "instead,"
                   , Whitespace
-                  , Plaintext "is"
+                  , Plaintext "create"
                   , Whitespace
                   , Plaintext "a"
                   , Whitespace
-                  , Plaintext "shortcut"
-                  , Whitespace
-                  , Plaintext "for"
-                  , Whitespace
-                  , Plaintext "running"
-                  , Whitespace
-                  , Link ":Ack"
+                  , Plaintext "different"
                   , Whitespace
-                  , Plaintext "with"
+                  , Plaintext "one"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "in"
                   , Whitespace
-                  , Plaintext "word"
+                  , Plaintext "your"
                   , Whitespace
-                  , Plaintext "currently"
+                  , Link ".vimrc"
                   , Whitespace
-                  , Plaintext "under"
+                  , Plaintext "instead"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "using"
                   , Whitespace
-                  , Plaintext "cursor."
+                  , Link ":nmap"
+                  , Plaintext ":"
+                  ]
+              , Fenced
+                  [ "\" Instead of <leader>r, use <leader>u."
+                  , "nmap <leader>u <Plug>(FerretAcks)"
                   ]
               ]
+          , GenericStatement "nmap <unique> <leader>r <Plug>(FerretAcks)"
+          , GenericStatement "endif"
           , GenericStatement
-              "command! -nargs=+ -complete=file Ack call ferret#private#ack(<q-args>)"
+              "nnoremap <Plug>(FerretAcks) :Acks <c-r>=(exists('g:ferret_lastsearch') ? '/' . g:ferret_lastsearch . '//' : ' ')<CR><Left>"
+          , GenericStatement "endif"
+          , DocBlock []
+          , GenericStatement
+              "command! -bar Qargs execute 'args' ferret#private#qargs()"
           , DocBlock
-              [ CommandAnnotation ":Lack {pattern} {options}"
+              [ OptionAnnotation "g:FerretQFCommands" "boolean" (Just "1")
               , Paragraph
-                  [ Plaintext "Just"
+                  [ Plaintext "Controls"
+                  , Whitespace
+                  , Plaintext "whether"
                   , Whitespace
-                  , Plaintext "like"
+                  , Plaintext "to"
                   , Whitespace
-                  , Link ":Ack"
-                  , Plaintext ","
+                  , Plaintext "set"
                   , Whitespace
-                  , Plaintext "but"
+                  , Plaintext "up"
                   , Whitespace
-                  , Plaintext "instead"
+                  , Plaintext "custom"
                   , Whitespace
-                  , Plaintext "of"
+                  , Plaintext "versions"
                   , Whitespace
-                  , Plaintext "using"
+                  , Plaintext "of"
                   , Whitespace
                   , Plaintext "the"
                   , Whitespace
                   , Link "quickfix"
                   , Whitespace
-                  , Plaintext "listing,"
-                  , Whitespace
-                  , Plaintext "which"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "global"
-                  , Whitespace
-                  , Plaintext "across"
-                  , Whitespace
-                  , Plaintext "an"
-                  , Whitespace
-                  , Plaintext "entire"
-                  , Whitespace
-                  , Plaintext "Vim"
-                  , Whitespace
-                  , Plaintext "instance,"
-                  , Whitespace
-                  , Plaintext "it"
-                  , Whitespace
-                  , Plaintext "uses"
-                  , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "commands,"
                   , Whitespace
-                  , Link "location-list"
+                  , Link ":cn"
                   , Plaintext ","
                   , Whitespace
-                  , Plaintext "which"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "per-window"
-                  , Whitespace
-                  , Plaintext "construct."
-                  ]
-              , Paragraph
-                  [ Plaintext "Note"
-                  , Whitespace
-                  , Plaintext "that"
-                  , Whitespace
-                  , Link ":Lack"
-                  , Whitespace
-                  , Plaintext "always"
-                  , Whitespace
-                  , Plaintext "runs"
-                  , Whitespace
-                  , Plaintext "synchronously"
-                  , Whitespace
-                  , Plaintext "via"
-                  , Whitespace
-                  , Link ":cexpr"
+                  , Link ":cnf"
                   , Plaintext ","
                   , Whitespace
-                  , Plaintext "because"
-                  , Whitespace
-                  , Plaintext "dispatch.vim"
-                  , Whitespace
-                  , Plaintext "doesn't"
-                  , Whitespace
-                  , Plaintext "currently"
-                  , Whitespace
-                  , Plaintext "support"
+                  , Link ":cp"
                   , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "an"
                   , Whitespace
-                  , Link "location-list"
+                  , Link ":cpf"
                   , Plaintext "."
-                  ]
-              ]
-          , GenericStatement
-              "command! -nargs=+ -complete=file Lack call ferret#private#lack(<q-args>)"
-          , DocBlock
-              [ CommandAnnotation ":Acks /{pattern}/{replacement}/"
-              , Paragraph
-                  [ Plaintext "Takes"
-                  , Whitespace
-                  , Plaintext "all"
                   , Whitespace
-                  , Plaintext "of"
-                  , Whitespace
-                  , Plaintext "the"
+                  , Plaintext "These"
                   , Whitespace
-                  , Plaintext "files"
+                  , Plaintext "overrides"
                   , Whitespace
-                  , Plaintext "currently"
+                  , Plaintext "vertically"
                   , Whitespace
-                  , Plaintext "in"
+                  , Plaintext "center"
                   , Whitespace
                   , Plaintext "the"
                   , Whitespace
-                  , Link "quickfix"
+                  , Plaintext "match"
                   , Whitespace
-                  , Plaintext "listing"
+                  , Plaintext "within"
                   , Whitespace
-                  , Plaintext "and"
+                  , Plaintext "the"
                   , Whitespace
-                  , Plaintext "performs"
+                  , Plaintext "viewport"
                   , Whitespace
-                  , Plaintext "a"
+                  , Plaintext "on"
                   , Whitespace
-                  , Plaintext "substitution"
+                  , Plaintext "each"
                   , Whitespace
-                  , Plaintext "of"
+                  , Plaintext "jump."
                   , Whitespace
-                  , Plaintext "all"
+                  , Plaintext "To"
                   , Whitespace
-                  , Plaintext "instances"
+                  , Plaintext "prevent"
                   , Whitespace
-                  , Plaintext "of"
+                  , Plaintext "the"
                   , Whitespace
-                  , Plaintext "{pattern}"
+                  , Plaintext "custom"
                   , Whitespace
-                  , Plaintext "(a"
+                  , Plaintext "versions"
                   , Whitespace
-                  , Plaintext "standard"
+                  , Plaintext "from"
                   , Whitespace
-                  , Plaintext "Vim"
+                  , Plaintext "being"
                   , Whitespace
-                  , Plaintext "search"
+                  , Plaintext "configured,"
                   , Whitespace
-                  , Link "pattern"
-                  , Plaintext ")"
+                  , Plaintext "set"
                   , Whitespace
-                  , Plaintext "by"
+                  , Plaintext "to"
                   , Whitespace
-                  , Plaintext "{replacement}."
+                  , Plaintext "0:"
                   ]
-              , Paragraph
-                  [ Plaintext "A"
-                  , Whitespace
-                  , Plaintext "typical"
-                  , Whitespace
-                  , Plaintext "sequence"
-                  , Whitespace
-                  , Plaintext "consists"
-                  , Whitespace
-                  , Plaintext "of"
-                  , Whitespace
-                  , Plaintext "an"
-                  , Whitespace
-                  , Link ":Ack"
-                  , Whitespace
-                  , Plaintext "invocation"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "populate"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link "quickfix"
-                  , Whitespace
-                  , Plaintext "listing"
-                  , Whitespace
-                  , Plaintext "and"
-                  , Whitespace
-                  , Plaintext "then"
-                  , Whitespace
-                  , Link ":Acks"
-                  , Whitespace
-                  , Plaintext "(mnemonic:"
-                  , Whitespace
-                  , Plaintext "\"Ack"
-                  , Whitespace
-                  , Plaintext "substitute\")"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "perform"
-                  , Whitespace
-                  , Plaintext "replacements."
-                  , Whitespace
-                  , Plaintext "For"
-                  , Whitespace
-                  , Plaintext "example,"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "replace"
-                  , Whitespace
-                  , Plaintext "\"foo\""
-                  , Whitespace
-                  , Plaintext "with"
-                  , Whitespace
-                  , Plaintext "\"bar\""
-                  , Whitespace
-                  , Plaintext "across"
-                  , Whitespace
-                  , Plaintext "all"
-                  , Whitespace
-                  , Plaintext "files"
-                  , Whitespace
-                  , Plaintext "in"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "current"
-                  , Whitespace
-                  , Plaintext "directory:"
-                  ]
-              , Fenced [ ":Ack foo" , ":Acks /foo/bar/" ]
-              ]
-          , GenericStatement
-              "command! -nargs=1 Acks call ferret#private#acks(<q-args>)"
-          , DocBlock
-              [ OptionAnnotation "g:FerretMap" "boolean" (Just "1")
-              , Paragraph
-                  [ Plaintext "Controls"
-                  , Whitespace
-                  , Plaintext "whether"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "set"
-                  , Whitespace
-                  , Plaintext "up"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "Ferret"
-                  , Whitespace
-                  , Plaintext "mappings,"
-                  , Whitespace
-                  , Plaintext "such"
-                  , Whitespace
-                  , Plaintext "as"
-                  , Whitespace
-                  , Link "<Plug>(FerretAck)"
-                  , Whitespace
-                  , Plaintext "(see"
-                  , Whitespace
-                  , Link "ferret-mappings"
-                  , Whitespace
-                  , Plaintext "for"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "full"
-                  , Whitespace
-                  , Plaintext "list)."
-                  , Whitespace
-                  , Plaintext "To"
-                  , Whitespace
-                  , Plaintext "prevent"
-                  , Whitespace
-                  , Plaintext "any"
-                  , Whitespace
-                  , Plaintext "mapping"
-                  , Whitespace
-                  , Plaintext "from"
-                  , Whitespace
-                  , Plaintext "being"
-                  , Whitespace
-                  , Plaintext "configured,"
-                  , Whitespace
-                  , Plaintext "set"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "0:"
-                  ]
-              , Fenced [ "let g:FerretMap=0" ]
+              , Fenced [ "let g:FerretQFCommands=0" ]
               ]
           , LetStatement
-              { letLexpr = "s:map" , letValue = "get(g:, 'FerretMap', 1)" }
-          , GenericStatement "if s:map"
+              { letLexpr = "s:commands"
+              , letValue = "get(g:, 'FerretQFCommands', 1)"
+              }
+          , GenericStatement "if s:commands"
           , GenericStatement
-              "if !hasmapto('<Plug>(FerretAck)') && maparg('<leader>a', 'n') ==# ''"
-          , DocBlock
-              [ MappingAnnotation "<Plug>(FerretAck)"
-              , Paragraph
-                  [ Plaintext "Ferret"
-                  , Whitespace
-                  , Plaintext "maps"
-                  , Whitespace
-                  , Plaintext "<leader>a"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Link "<Plug>(FerretAck)"
-                  , Plaintext ","
-                  , Whitespace
-                  , Plaintext "which"
-                  , Whitespace
-                  , Plaintext "triggers"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link ":Ack"
-                  , Whitespace
-                  , Plaintext "command."
-                  , Whitespace
-                  , Plaintext "To"
-                  , Whitespace
-                  , Plaintext "use"
-                  , Whitespace
-                  , Plaintext "an"
-                  , Whitespace
-                  , Plaintext "alternative"
-                  , Whitespace
-                  , Plaintext "mapping"
-                  , Whitespace
-                  , Plaintext "instead,"
-                  , Whitespace
-                  , Plaintext "create"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "different"
-                  , Whitespace
-                  , Plaintext "one"
-                  , Whitespace
-                  , Plaintext "in"
-                  , Whitespace
-                  , Plaintext "your"
-                  , Whitespace
-                  , Link ".vimrc"
-                  , Whitespace
-                  , Plaintext "instead"
-                  , Whitespace
-                  , Plaintext "using"
-                  , Whitespace
-                  , Link ":nmap"
-                  , Plaintext ":"
-                  ]
-              , Fenced
-                  [ "\" Instead of <leader>a, use <leader>x."
-                  , "nmap <leader>x <Plug>(FerretAck)"
-                  ]
-              ]
-          , GenericStatement "nmap <unique> <leader>a <Plug>(FerretAck)"
-          , GenericStatement "endif"
-          , GenericStatement "nnoremap <Plug>(FerretAck) :Ack<space>"
+              "cabbrev <silent> <expr> cn ((getcmdtype() == ':' && getcmdpos() == 3) ? 'cn <bar> normal zz' : 'cn')"
           , GenericStatement
-              "if !hasmapto('<Plug>FerretLack') && maparg('<leader>l', 'n') ==# ''"
-          , DocBlock
-              [ MappingAnnotation "<Plug>(FerretLack)"
-              , Paragraph
-                  [ Plaintext "Ferret"
-                  , Whitespace
-                  , Plaintext "maps"
-                  , Whitespace
-                  , Plaintext "<leader>l"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Link "<Plug>(FerretLack)"
-                  , Plaintext ","
-                  , Whitespace
-                  , Plaintext "which"
-                  , Whitespace
-                  , Plaintext "triggers"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link ":Lack"
-                  , Whitespace
-                  , Plaintext "command."
-                  , Whitespace
-                  , Plaintext "To"
-                  , Whitespace
-                  , Plaintext "use"
-                  , Whitespace
-                  , Plaintext "an"
-                  , Whitespace
-                  , Plaintext "alternative"
-                  , Whitespace
-                  , Plaintext "mapping"
-                  , Whitespace
-                  , Plaintext "instead,"
-                  , Whitespace
-                  , Plaintext "create"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "different"
-                  , Whitespace
-                  , Plaintext "one"
-                  , Whitespace
-                  , Plaintext "in"
-                  , Whitespace
-                  , Plaintext "your"
-                  , Whitespace
-                  , Link ".vimrc"
-                  , Whitespace
-                  , Plaintext "instead"
-                  , Whitespace
-                  , Plaintext "using"
-                  , Whitespace
-                  , Link ":nmap"
-                  , Plaintext ":"
-                  ]
-              , Fenced
-                  [ "\" Instead of <leader>l, use <leader>y."
-                  , "nmap <leader>y <Plug>(FerretLack)"
-                  ]
-              ]
-          , GenericStatement "nmap <unique> <leader>l <Plug>(FerretLack)"
-          , GenericStatement "endif"
-          , GenericStatement "nnoremap <Plug>(FerretLack) :Lack<space>"
+              "cabbrev <silent> <expr> cnf ((getcmdtype() == ':' && getcmdpos() == 4) ? 'cnf <bar> normal zz' : 'cnf')"
           , GenericStatement
-              "if !hasmapto('<Plug>(FerretAckWord)') && maparg('<leader>s', 'n') ==# ''"
-          , DocBlock
-              [ MappingAnnotation "<Plug>(FerretAckWord)"
-              , Paragraph
-                  [ Plaintext "Ferret"
-                  , Whitespace
-                  , Plaintext "maps"
-                  , Whitespace
-                  , Plaintext "<leader>s"
-                  , Whitespace
-                  , Plaintext "(mnemonix:"
-                  , Whitespace
-                  , Plaintext "\"selection)"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Link "<Plug>(FerretAckWord)"
-                  , Plaintext ","
-                  , Whitespace
-                  , Plaintext "which"
-                  , Whitespace
-                  , Plaintext "uses"
-                  , Whitespace
-                  , Link ":Ack"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "search"
-                  , Whitespace
-                  , Plaintext "for"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "word"
-                  , Whitespace
-                  , Plaintext "currently"
-                  , Whitespace
-                  , Plaintext "under"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "cursor."
-                  , Whitespace
-                  , Plaintext "To"
-                  , Whitespace
-                  , Plaintext "use"
-                  , Whitespace
-                  , Plaintext "an"
-                  , Whitespace
-                  , Plaintext "alternative"
-                  , Whitespace
-                  , Plaintext "mapping"
-                  , Whitespace
-                  , Plaintext "instead,"
-                  , Whitespace
-                  , Plaintext "create"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "different"
-                  , Whitespace
-                  , Plaintext "one"
-                  , Whitespace
-                  , Plaintext "in"
-                  , Whitespace
-                  , Plaintext "your"
-                  , Whitespace
-                  , Link ".vimrc"
-                  , Whitespace
-                  , Plaintext "instead"
-                  , Whitespace
-                  , Plaintext "using"
-                  , Whitespace
-                  , Link ":nmap"
-                  , Plaintext ":"
-                  ]
-              , Fenced
-                  [ "\" Instead of <leader>s, use <leader>z."
-                  , "nmap <leader>z <Plug>(FerretAckWord)"
-                  ]
-              ]
-          , GenericStatement "nmap <unique> <leader>s <Plug>(FerretAckWord)"
-          , GenericStatement "endif"
-          , GenericStatement
-              "nnoremap <Plug>(FerretAckWord) :Ack <C-r><C-w><CR>"
-          , GenericStatement
-              "if !hasmapto('<Plug>(FerretAcks)') && maparg('<leader>r', 'n') ==# ''"
-          , DocBlock
-              [ MappingAnnotation "*<Plug>(FerretAcks)*"
-              , Paragraph
-                  [ Plaintext "Ferret"
-                  , Whitespace
-                  , Plaintext "maps"
-                  , Whitespace
-                  , Plaintext "<leader>r"
-                  , Whitespace
-                  , Plaintext "(mnemonic:"
-                  , Whitespace
-                  , Plaintext "\"replace\")"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Link "<Plug>(FerretAcks)"
-                  , Plaintext ","
-                  , Whitespace
-                  , Plaintext "which"
-                  , Whitespace
-                  , Plaintext "triggers"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link ":Acks"
-                  , Whitespace
-                  , Plaintext "command"
-                  , Whitespace
-                  , Plaintext "and"
-                  , Whitespace
-                  , Plaintext "fills"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "prompt"
-                  , Whitespace
-                  , Plaintext "with"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "last"
-                  , Whitespace
-                  , Plaintext "search"
-                  , Whitespace
-                  , Plaintext "term"
-                  , Whitespace
-                  , Plaintext "from"
-                  , Whitespace
-                  , Plaintext "Ferret."
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "use"
-                  , Whitespace
-                  , Plaintext "an"
-                  , Whitespace
-                  , Plaintext "alternative"
-                  , Whitespace
-                  , Plaintext "mapping"
-                  , Whitespace
-                  , Plaintext "instead,"
-                  , Whitespace
-                  , Plaintext "create"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "different"
-                  , Whitespace
-                  , Plaintext "one"
-                  , Whitespace
-                  , Plaintext "in"
-                  , Whitespace
-                  , Plaintext "your"
-                  , Whitespace
-                  , Link ".vimrc"
-                  , Whitespace
-                  , Plaintext "instead"
-                  , Whitespace
-                  , Plaintext "using"
-                  , Whitespace
-                  , Link ":nmap"
-                  , Plaintext ":"
-                  ]
-              , Fenced
-                  [ "\" Instead of <leader>r, use <leader>u."
-                  , "nmap <leader>u <Plug>(FerretAcks)"
-                  ]
-              ]
-          , GenericStatement "nmap <unique> <leader>r <Plug>(FerretAcks)"
-          , GenericStatement "endif"
+              "cabbrev <silent> <expr> cp ((getcmdtype() == ':' && getcmdpos() == 3) ? 'cp <bar> normal zz' : 'cp')"
           , GenericStatement
-              "nnoremap <Plug>(FerretAcks) :Acks <c-r>=(exists('g:ferret_lastsearch') ? '/' . g:ferret_lastsearch . '//' : ' ')<CR><Left>"
-          , GenericStatement "endif"
-          , DocBlock
-              [ CommandAnnotation ":Qargs"
-              , Paragraph
-                  [ Plaintext "This"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "a"
-                  , Whitespace
-                  , Plaintext "utility"
-                  , Whitespace
-                  , Plaintext "function"
-                  , Whitespace
-                  , Plaintext "that"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "used"
-                  , Whitespace
-                  , Plaintext "by"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link ":Acks"
-                  , Whitespace
-                  , Plaintext "command"
-                  , Whitespace
-                  , Plaintext "but"
-                  , Whitespace
-                  , Plaintext "is"
-                  , Whitespace
-                  , Plaintext "also"
-                  , Whitespace
-                  , Plaintext "generally"
-                  , Whitespace
-                  , Plaintext "useful"
-                  , Whitespace
-                  , Plaintext "enough"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "warrant"
-                  , Whitespace
-                  , Plaintext "being"
-                  , Whitespace
-                  , Plaintext "exposed"
-                  , Whitespace
-                  , Plaintext "publicly."
-                  ]
-              , Paragraph
-                  [ Plaintext "It"
-                  , Whitespace
-                  , Plaintext "takes"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "files"
-                  , Whitespace
-                  , Plaintext "currently"
-                  , Whitespace
-                  , Plaintext "in"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link "quickfix"
-                  , Whitespace
-                  , Plaintext "listing"
-                  , Whitespace
-                  , Plaintext "and"
-                  , Whitespace
-                  , Plaintext "sets"
-                  , Whitespace
-                  , Plaintext "them"
-                  , Whitespace
-                  , Plaintext "as"
-                  , Whitespace
-                  , Link ":args"
-                  , Whitespace
-                  , Plaintext "so"
-                  , Whitespace
-                  , Plaintext "that"
-                  , Whitespace
-                  , Plaintext "they"
-                  , Whitespace
-                  , Plaintext "can"
-                  , Whitespace
-                  , Plaintext "be"
-                  , Whitespace
-                  , Plaintext "operated"
-                  , Whitespace
-                  , Plaintext "on"
-                  , Whitespace
-                  , Plaintext "en"
-                  , Whitespace
-                  , Plaintext "masse"
-                  , Whitespace
-                  , Plaintext "via"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link ":argdo"
-                  , Whitespace
-                  , Plaintext "command."
-                  ]
-              ]
-          , GenericStatement
-              "command! -bar Qargs execute 'args' ferret#private#qargs()"
-          , DocBlock
-              [ OptionAnnotation "g:FerretQFCommands" "boolean" (Just "1")
-              , Paragraph
-                  [ Plaintext "Controls"
-                  , Whitespace
-                  , Plaintext "whether"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "set"
-                  , Whitespace
-                  , Plaintext "up"
-                  , Whitespace
-                  , Plaintext "custom"
-                  , Whitespace
-                  , Plaintext "versions"
-                  , Whitespace
-                  , Plaintext "of"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Link "quickfix"
-                  , Whitespace
-                  , Plaintext "commands,"
-                  , Whitespace
-                  , Link ":cn"
-                  , Plaintext ","
-                  , Whitespace
-                  , Link ":cnf"
-                  , Plaintext ","
-                  , Whitespace
-                  , Link ":cp"
-                  , Whitespace
-                  , Plaintext "an"
-                  , Whitespace
-                  , Link ":cpf"
-                  , Plaintext "."
-                  , Whitespace
-                  , Plaintext "These"
-                  , Whitespace
-                  , Plaintext "overrides"
-                  , Whitespace
-                  , Plaintext "vertically"
-                  , Whitespace
-                  , Plaintext "center"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "match"
-                  , Whitespace
-                  , Plaintext "within"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "viewport"
-                  , Whitespace
-                  , Plaintext "on"
-                  , Whitespace
-                  , Plaintext "each"
-                  , Whitespace
-                  , Plaintext "jump."
-                  , Whitespace
-                  , Plaintext "To"
-                  , Whitespace
-                  , Plaintext "prevent"
-                  , Whitespace
-                  , Plaintext "the"
-                  , Whitespace
-                  , Plaintext "custom"
-                  , Whitespace
-                  , Plaintext "versions"
-                  , Whitespace
-                  , Plaintext "from"
-                  , Whitespace
-                  , Plaintext "being"
-                  , Whitespace
-                  , Plaintext "configured,"
-                  , Whitespace
-                  , Plaintext "set"
-                  , Whitespace
-                  , Plaintext "to"
-                  , Whitespace
-                  , Plaintext "0:"
-                  ]
-              , Fenced [ "let g:FerretQFCommands=0" ]
-              ]
-          , LetStatement
-              { letLexpr = "s:commands"
-              , letValue = "get(g:, 'FerretQFCommands', 1)"
-              }
-          , GenericStatement "if s:commands"
-          , GenericStatement
-              "cabbrev <silent> <expr> cn ((getcmdtype() == ':' && getcmdpos() == 3) ? 'cn <bar> normal zz' : 'cn')"
-          , GenericStatement
-              "cabbrev <silent> <expr> cnf ((getcmdtype() == ':' && getcmdpos() == 4) ? 'cnf <bar> normal zz' : 'cnf')"
-          , GenericStatement
-              "cabbrev <silent> <expr> cp ((getcmdtype() == ':' && getcmdpos() == 3) ? 'cp <bar> normal zz' : 'cp')"
-          , GenericStatement
-              "cabbrev <silent> <expr> cpf ((getcmdtype() == ':' && getcmdpos() == 4) ? 'cpf <bar> normal zz' : 'cpf')"
+              "cabbrev <silent> <expr> cpf ((getcmdtype() == ':' && getcmdpos() == 4) ? 'cpf <bar> normal zz' : 'cpf')"
           , GenericStatement "endif"
           , LetStatement
               { letLexpr = "&cpoptions " , letValue = "s:cpoptions" }
           , UnletStatement { unletBang = False , unletBody = "s:cpoptions" }
           ]
       ]
-  , MappingsAnnotation
-  , SubheadingAnnotation
-      "Circumstances where mappings do not get set up"
+  , CommandAnnotation ":Ack {pattern} {options}"
+  , Paragraph
+      [ Plaintext "Searches"
+      , Whitespace
+      , Plaintext "for"
+      , Whitespace
+      , Plaintext "{pattern}"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "all"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "files"
+      , Whitespace
+      , Plaintext "under"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "current"
+      , Whitespace
+      , Plaintext "directory"
+      , Whitespace
+      , Plaintext "(see"
+      , Whitespace
+      , Link ":pwd"
+      , Plaintext "),"
+      , Whitespace
+      , Plaintext "unless"
+      , Whitespace
+      , Plaintext "otherwise"
+      , Whitespace
+      , Plaintext "overridden"
+      , Whitespace
+      , Plaintext "via"
+      , Whitespace
+      , Plaintext "{options},"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "displays"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "results"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "listing."
+      ]
+  , Paragraph
+      [ Code "ag"
+      , Whitespace
+      , Plaintext "(The"
+      , Whitespace
+      , Plaintext "Silver"
+      , Whitespace
+      , Plaintext "Searcher)"
+      , Whitespace
+      , Plaintext "will"
+      , Whitespace
+      , Plaintext "be"
+      , Whitespace
+      , Plaintext "used"
+      , Whitespace
+      , Plaintext "preferentially"
+      , Whitespace
+      , Plaintext "if"
+      , Whitespace
+      , Plaintext "present"
+      , Whitespace
+      , Plaintext "on"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "system,"
+      , Whitespace
+      , Plaintext "because"
+      , Whitespace
+      , Plaintext "it"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "faster,"
+      , Whitespace
+      , Plaintext "falling"
+      , Whitespace
+      , Plaintext "back"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Code "ack"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "then"
+      , Whitespace
+      , Code "grep"
+      , Whitespace
+      , Plaintext "as"
+      , Whitespace
+      , Plaintext "needed."
+      ]
+  , Paragraph
+      [ Plaintext "If"
+      , Whitespace
+      , Plaintext "dispatch.vim"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "installed"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Plaintext "process"
+      , Whitespace
+      , Plaintext "will"
+      , Whitespace
+      , Plaintext "run"
+      , Whitespace
+      , Plaintext "asynchronously"
+      , Whitespace
+      , Plaintext "via"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link ":Make"
+      , Whitespace
+      , Plaintext "command,"
+      , Whitespace
+      , Plaintext "otherwise"
+      , Whitespace
+      , Plaintext "it"
+      , Whitespace
+      , Plaintext "will"
+      , Whitespace
+      , Plaintext "be"
+      , Whitespace
+      , Plaintext "run"
+      , Whitespace
+      , Plaintext "synchronously"
+      , Whitespace
+      , Plaintext "via"
+      , Whitespace
+      , Link ":cexpr"
+      , Plaintext "."
+      , Whitespace
+      , Plaintext "Asynchronous"
+      , Whitespace
+      , Plaintext "searches"
+      , Whitespace
+      , Plaintext "are"
+      , Whitespace
+      , Plaintext "preferred"
+      , Whitespace
+      , Plaintext "because"
+      , Whitespace
+      , Plaintext "they"
+      , Whitespace
+      , Plaintext "do"
+      , Whitespace
+      , Plaintext "not"
+      , Whitespace
+      , Plaintext "block,"
+      , Whitespace
+      , Plaintext "despite"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "fact"
+      , Whitespace
+      , Plaintext "that"
+      , Whitespace
+      , Plaintext "Vim"
+      , Whitespace
+      , Plaintext "itself"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "single"
+      , Whitespace
+      , Plaintext "threaded."
+      , Whitespace
+      , Plaintext "The"
+      , Whitespace
+      , Link "g:FerretDispatch"
+      , Whitespace
+      , Plaintext "option"
+      , Whitespace
+      , Plaintext "can"
+      , Whitespace
+      , Plaintext "be"
+      , Whitespace
+      , Plaintext "used"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "prevent"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "use"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "dispatch.vim."
+      ]
+  , Paragraph
+      [ Plaintext "The"
+      , Whitespace
+      , Plaintext "{pattern}"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "passed"
+      , Whitespace
+      , Plaintext "through"
+      , Whitespace
+      , Plaintext "as-is"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "underlying"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Plaintext "program,"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "no"
+      , Whitespace
+      , Plaintext "escaping"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "required"
+      , Whitespace
+      , Plaintext "other"
+      , Whitespace
+      , Plaintext "than"
+      , Whitespace
+      , Plaintext "preceding"
+      , Whitespace
+      , Plaintext "spaces"
+      , Whitespace
+      , Plaintext "by"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "single"
+      , Whitespace
+      , Plaintext "backslash."
+      , Whitespace
+      , Plaintext "For"
+      , Whitespace
+      , Plaintext "example,"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Plaintext "for"
+      , Whitespace
+      , Plaintext "\"\\bfoo[0-9]{2}"
+      , Whitespace
+      , Plaintext "bar\\b\""
+      , Whitespace
+      , Plaintext "(ie."
+      , Whitespace
+      , Plaintext "using"
+      , Whitespace
+      , Code "ag"
+      , Plaintext "'s"
+      , Whitespace
+      , Plaintext "Perl-style"
+      , Whitespace
+      , Plaintext "regular"
+      , Whitespace
+      , Plaintext "expression"
+      , Whitespace
+      , Plaintext "syntax),"
+      , Whitespace
+      , Plaintext "you"
+      , Whitespace
+      , Plaintext "could"
+      , Whitespace
+      , Plaintext "do:"
+      ]
+  , Fenced [ ":Ack \\bfoo[0-9]{2}\\ bar\\b" ]
+  , Paragraph
+      [ Plaintext "Likewise,"
+      , Whitespace
+      , Plaintext "{options}"
+      , Whitespace
+      , Plaintext "are"
+      , Whitespace
+      , Plaintext "passed"
+      , Whitespace
+      , Plaintext "through."
+      , Whitespace
+      , Plaintext "In"
+      , Whitespace
+      , Plaintext "this"
+      , Whitespace
+      , Plaintext "example,"
+      , Whitespace
+      , Plaintext "we"
+      , Whitespace
+      , Plaintext "pass"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Code "-w"
+      , Whitespace
+      , Plaintext "option"
+      , Whitespace
+      , Plaintext "(to"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Plaintext "on"
+      , Whitespace
+      , Plaintext "word"
+      , Whitespace
+      , Plaintext "boundaries),"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "scope"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "\"foo\""
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "\"bar\""
+      , Whitespace
+      , Plaintext "subdirectories:"
+      , Whitespace
+      , Plaintext ">"
+      ]
+  , Fenced [ ":Ack -w something foo bar" ]
+  , Paragraph
+      [ Plaintext "As"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "convenience"
+      , Whitespace
+      , Plaintext "<leader>a"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "set-up"
+      , Whitespace
+      , Plaintext "("
+      , Link "<Plug>(FerretAck)"
+      , Plaintext ")"
+      , Whitespace
+      , Plaintext "as"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "shortcut"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "enter"
+      , Whitespace
+      , Link "Cmdline-mode"
+      , Whitespace
+      , Plaintext "with"
+      , Whitespace
+      , Code ":Ack"
+      , Whitespace
+      , Plaintext "inserted"
+      , Whitespace
+      , Plaintext "on"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "Cmdline"
+      , Plaintext "."
+      , Whitespace
+      , Plaintext "Likewise"
+      , Whitespace
+      , Plaintext "<leader>s"
+      , Whitespace
+      , Plaintext "("
+      , Link "<Plug>(FerretAckWord)"
+      , Plaintext ")"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "shortcut"
+      , Whitespace
+      , Plaintext "for"
+      , Whitespace
+      , Plaintext "running"
+      , Whitespace
+      , Link ":Ack"
+      , Whitespace
+      , Plaintext "with"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "word"
+      , Whitespace
+      , Plaintext "currently"
+      , Whitespace
+      , Plaintext "under"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "cursor."
+      ]
+  , CommandAnnotation ":Lack {pattern} {options}"
+  , Paragraph
+      [ Plaintext "Just"
+      , Whitespace
+      , Plaintext "like"
+      , Whitespace
+      , Link ":Ack"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "but"
+      , Whitespace
+      , Plaintext "instead"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "using"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "listing,"
+      , Whitespace
+      , Plaintext "which"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "global"
+      , Whitespace
+      , Plaintext "across"
+      , Whitespace
+      , Plaintext "an"
+      , Whitespace
+      , Plaintext "entire"
+      , Whitespace
+      , Plaintext "Vim"
+      , Whitespace
+      , Plaintext "instance,"
+      , Whitespace
+      , Plaintext "it"
+      , Whitespace
+      , Plaintext "uses"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "location-list"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "which"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "per-window"
+      , Whitespace
+      , Plaintext "construct."
+      ]
+  , Paragraph
+      [ Plaintext "Note"
+      , Whitespace
+      , Plaintext "that"
+      , Whitespace
+      , Link ":Lack"
+      , Whitespace
+      , Plaintext "always"
+      , Whitespace
+      , Plaintext "runs"
+      , Whitespace
+      , Plaintext "synchronously"
+      , Whitespace
+      , Plaintext "via"
+      , Whitespace
+      , Link ":cexpr"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "because"
+      , Whitespace
+      , Plaintext "dispatch.vim"
+      , Whitespace
+      , Plaintext "doesn't"
+      , Whitespace
+      , Plaintext "currently"
+      , Whitespace
+      , Plaintext "support"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "location-list"
+      , Plaintext "."
+      ]
+  , CommandAnnotation ":Acks /{pattern}/{replacement}/"
+  , Paragraph
+      [ Plaintext "Takes"
+      , Whitespace
+      , Plaintext "all"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "files"
+      , Whitespace
+      , Plaintext "currently"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "listing"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "performs"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "substitution"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "all"
+      , Whitespace
+      , Plaintext "instances"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "{pattern}"
+      , Whitespace
+      , Plaintext "(a"
+      , Whitespace
+      , Plaintext "standard"
+      , Whitespace
+      , Plaintext "Vim"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Link "pattern"
+      , Plaintext ")"
+      , Whitespace
+      , Plaintext "by"
+      , Whitespace
+      , Plaintext "{replacement}."
+      ]
+  , Paragraph
+      [ Plaintext "A"
+      , Whitespace
+      , Plaintext "typical"
+      , Whitespace
+      , Plaintext "sequence"
+      , Whitespace
+      , Plaintext "consists"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "an"
+      , Whitespace
+      , Link ":Ack"
+      , Whitespace
+      , Plaintext "invocation"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "populate"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "listing"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "then"
+      , Whitespace
+      , Link ":Acks"
+      , Whitespace
+      , Plaintext "(mnemonic:"
+      , Whitespace
+      , Plaintext "\"Ack"
+      , Whitespace
+      , Plaintext "substitute\")"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "perform"
+      , Whitespace
+      , Plaintext "replacements."
+      , Whitespace
+      , Plaintext "For"
+      , Whitespace
+      , Plaintext "example,"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "replace"
+      , Whitespace
+      , Plaintext "\"foo\""
+      , Whitespace
+      , Plaintext "with"
+      , Whitespace
+      , Plaintext "\"bar\""
+      , Whitespace
+      , Plaintext "across"
+      , Whitespace
+      , Plaintext "all"
+      , Whitespace
+      , Plaintext "files"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "current"
+      , Whitespace
+      , Plaintext "directory:"
+      ]
+  , Fenced [ ":Ack foo" , ":Acks /foo/bar/" ]
+  , CommandAnnotation ":Qargs"
+  , Paragraph
+      [ Plaintext "This"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "utility"
+      , Whitespace
+      , Plaintext "function"
+      , Whitespace
+      , Plaintext "that"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "used"
+      , Whitespace
+      , Plaintext "by"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link ":Acks"
+      , Whitespace
+      , Plaintext "command"
+      , Whitespace
+      , Plaintext "but"
+      , Whitespace
+      , Plaintext "is"
+      , Whitespace
+      , Plaintext "also"
+      , Whitespace
+      , Plaintext "generally"
+      , Whitespace
+      , Plaintext "useful"
+      , Whitespace
+      , Plaintext "enough"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "warrant"
+      , Whitespace
+      , Plaintext "being"
+      , Whitespace
+      , Plaintext "exposed"
+      , Whitespace
+      , Plaintext "publicly."
+      ]
+  , Paragraph
+      [ Plaintext "It"
+      , Whitespace
+      , Plaintext "takes"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "files"
+      , Whitespace
+      , Plaintext "currently"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "listing"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "sets"
+      , Whitespace
+      , Plaintext "them"
+      , Whitespace
+      , Plaintext "as"
+      , Whitespace
+      , Link ":args"
+      , Whitespace
+      , Plaintext "so"
+      , Whitespace
+      , Plaintext "that"
+      , Whitespace
+      , Plaintext "they"
+      , Whitespace
+      , Plaintext "can"
+      , Whitespace
+      , Plaintext "be"
+      , Whitespace
+      , Plaintext "operated"
+      , Whitespace
+      , Plaintext "on"
+      , Whitespace
+      , Plaintext "en"
+      , Whitespace
+      , Plaintext "masse"
+      , Whitespace
+      , Plaintext "via"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link ":argdo"
+      , Whitespace
+      , Plaintext "command."
+      ]
+  , MappingsAnnotation
+  , SubheadingAnnotation
+      "Circumstances where mappings do not get set up"
+  , Paragraph
+      [ Plaintext "Note"
+      , Whitespace
+      , Plaintext "that"
+      , Whitespace
+      , Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "will"
+      , Whitespace
+      , Plaintext "not"
+      , Whitespace
+      , Plaintext "try"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "up"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "<leader>"
+      , Whitespace
+      , Plaintext "mappings"
+      , Whitespace
+      , Plaintext "if"
+      , Whitespace
+      , Plaintext "any"
+      , Whitespace
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "following"
+      , Whitespace
+      , Plaintext "are"
+      , Whitespace
+      , Plaintext "true:"
+      ]
+  , List
+      [ ListItem
+          [ Plaintext "A"
+          , Whitespace
+          , Plaintext "mapping"
+          , Whitespace
+          , Plaintext "for"
+          , Whitespace
+          , Plaintext "already"
+          , Whitespace
+          , Plaintext "exists."
+          ]
+      , ListItem
+          [ Plaintext "An"
+          , Whitespace
+          , Plaintext "alternative"
+          , Whitespace
+          , Plaintext "mapping"
+          , Whitespace
+          , Plaintext "for"
+          , Whitespace
+          , Plaintext "the"
+          , Whitespace
+          , Plaintext "same"
+          , Whitespace
+          , Plaintext "functionality"
+          , Whitespace
+          , Plaintext "has"
+          , Whitespace
+          , Plaintext "already"
+          , Whitespace
+          , Plaintext "been"
+          , Whitespace
+          , Plaintext "set"
+          , Whitespace
+          , Plaintext "up"
+          , Whitespace
+          , Plaintext "from"
+          , Whitespace
+          , Plaintext "a"
+          , Whitespace
+          , Link ".vimrc"
+          , Plaintext "."
+          ]
+      , ListItem
+          [ Plaintext "The"
+          , Whitespace
+          , Plaintext "mapping"
+          , Whitespace
+          , Plaintext "has"
+          , Whitespace
+          , Plaintext "been"
+          , Whitespace
+          , Plaintext "suppressed"
+          , Whitespace
+          , Plaintext "by"
+          , Whitespace
+          , Plaintext "setting"
+          , Whitespace
+          , Link "g:FerretMap"
+          , Whitespace
+          , Plaintext "to"
+          , Whitespace
+          , Plaintext "1"
+          , Whitespace
+          , Plaintext "in"
+          , Whitespace
+          , Plaintext "your"
+          , Whitespace
+          , Link ".vimrc"
+          , Plaintext "."
+          ]
+      ]
+  , SubheadingAnnotation "Mappings specific to the quickfix window"
+  , Paragraph
+      [ Plaintext "Additionally,"
+      , Whitespace
+      , Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "will"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "up"
+      , Whitespace
+      , Plaintext "special"
+      , Whitespace
+      , Plaintext "mappings"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Link "quickfix"
+      , Whitespace
+      , Plaintext "listings,"
+      , Whitespace
+      , Plaintext "unless"
+      , Whitespace
+      , Plaintext "prevented"
+      , Whitespace
+      , Plaintext "from"
+      , Whitespace
+      , Plaintext "doing"
+      , Whitespace
+      , Plaintext "so"
+      , Whitespace
+      , Plaintext "by"
+      , Whitespace
+      , Link "g:FerretQFMap"
+      , Plaintext ":"
+      ]
+  , List
+      [ ListItem
+          [ Code "d"
+          , Whitespace
+          , Plaintext "("
+          , Link "visual-mode"
+          , Plaintext "):"
+          , Whitespace
+          , Plaintext "delete"
+          , Whitespace
+          , Plaintext "visual"
+          , Whitespace
+          , Plaintext "selection"
+          ]
+      , ListItem
+          [ Code "dd"
+          , Whitespace
+          , Plaintext "("
+          , Link "Normal-mode"
+          , Plaintext "):"
+          , Whitespace
+          , Plaintext "delete"
+          , Whitespace
+          , Plaintext "current"
+          , Whitespace
+          , Plaintext "line"
+          ]
+      , ListItem
+          [ Code "d"
+          , Plaintext "{motion}"
+          , Whitespace
+          , Plaintext "("
+          , Link "Normal-mode"
+          , Plaintext "):"
+          , Whitespace
+          , Plaintext "delete"
+          , Whitespace
+          , Plaintext "range"
+          , Whitespace
+          , Plaintext "indicated"
+          , Whitespace
+          , Plaintext "by"
+          , Whitespace
+          , Plaintext "{motion}"
+          ]
+      ]
+  , MappingAnnotation "<Plug>(FerretAck)"
   , Paragraph
-      [ Plaintext "Note"
+      [ Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "maps"
+      , Whitespace
+      , Plaintext "<leader>a"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Link "<Plug>(FerretAck)"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "which"
+      , Whitespace
+      , Plaintext "triggers"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link ":Ack"
+      , Whitespace
+      , Plaintext "command."
+      , Whitespace
+      , Plaintext "To"
+      , Whitespace
+      , Plaintext "use"
+      , Whitespace
+      , Plaintext "an"
+      , Whitespace
+      , Plaintext "alternative"
+      , Whitespace
+      , Plaintext "mapping"
+      , Whitespace
+      , Plaintext "instead,"
+      , Whitespace
+      , Plaintext "create"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "different"
+      , Whitespace
+      , Plaintext "one"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "your"
+      , Whitespace
+      , Link ".vimrc"
+      , Whitespace
+      , Plaintext "instead"
+      , Whitespace
+      , Plaintext "using"
+      , Whitespace
+      , Link ":nmap"
+      , Plaintext ":"
+      ]
+  , Fenced
+      [ "\" Instead of <leader>a, use <leader>x."
+      , "nmap <leader>x <Plug>(FerretAck)"
+      ]
+  , MappingAnnotation "<Plug>(FerretLack)"
+  , Paragraph
+      [ Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "maps"
+      , Whitespace
+      , Plaintext "<leader>l"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Link "<Plug>(FerretLack)"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "which"
+      , Whitespace
+      , Plaintext "triggers"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link ":Lack"
+      , Whitespace
+      , Plaintext "command."
+      , Whitespace
+      , Plaintext "To"
+      , Whitespace
+      , Plaintext "use"
+      , Whitespace
+      , Plaintext "an"
+      , Whitespace
+      , Plaintext "alternative"
+      , Whitespace
+      , Plaintext "mapping"
+      , Whitespace
+      , Plaintext "instead,"
+      , Whitespace
+      , Plaintext "create"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "different"
+      , Whitespace
+      , Plaintext "one"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "your"
+      , Whitespace
+      , Link ".vimrc"
+      , Whitespace
+      , Plaintext "instead"
+      , Whitespace
+      , Plaintext "using"
+      , Whitespace
+      , Link ":nmap"
+      , Plaintext ":"
+      ]
+  , Fenced
+      [ "\" Instead of <leader>l, use <leader>y."
+      , "nmap <leader>y <Plug>(FerretLack)"
+      ]
+  , MappingAnnotation "<Plug>(FerretAckWord)"
+  , Paragraph
+      [ Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "maps"
+      , Whitespace
+      , Plaintext "<leader>s"
+      , Whitespace
+      , Plaintext "(mnemonix:"
+      , Whitespace
+      , Plaintext "\"selection)"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Link "<Plug>(FerretAckWord)"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "which"
+      , Whitespace
+      , Plaintext "uses"
+      , Whitespace
+      , Link ":Ack"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "search"
+      , Whitespace
+      , Plaintext "for"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "word"
+      , Whitespace
+      , Plaintext "currently"
+      , Whitespace
+      , Plaintext "under"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "cursor."
+      , Whitespace
+      , Plaintext "To"
+      , Whitespace
+      , Plaintext "use"
+      , Whitespace
+      , Plaintext "an"
+      , Whitespace
+      , Plaintext "alternative"
+      , Whitespace
+      , Plaintext "mapping"
+      , Whitespace
+      , Plaintext "instead,"
+      , Whitespace
+      , Plaintext "create"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "different"
+      , Whitespace
+      , Plaintext "one"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "your"
+      , Whitespace
+      , Link ".vimrc"
+      , Whitespace
+      , Plaintext "instead"
+      , Whitespace
+      , Plaintext "using"
+      , Whitespace
+      , Link ":nmap"
+      , Plaintext ":"
+      ]
+  , Fenced
+      [ "\" Instead of <leader>s, use <leader>z."
+      , "nmap <leader>z <Plug>(FerretAckWord)"
+      ]
+  , MappingAnnotation "*<Plug>(FerretAcks)*"
+  , Paragraph
+      [ Plaintext "Ferret"
+      , Whitespace
+      , Plaintext "maps"
+      , Whitespace
+      , Plaintext "<leader>r"
+      , Whitespace
+      , Plaintext "(mnemonic:"
+      , Whitespace
+      , Plaintext "\"replace\")"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Link "<Plug>(FerretAcks)"
+      , Plaintext ","
+      , Whitespace
+      , Plaintext "which"
+      , Whitespace
+      , Plaintext "triggers"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Link ":Acks"
+      , Whitespace
+      , Plaintext "command"
+      , Whitespace
+      , Plaintext "and"
+      , Whitespace
+      , Plaintext "fills"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "prompt"
       , Whitespace
-      , Plaintext "that"
+      , Plaintext "with"
       , Whitespace
-      , Plaintext "Ferret"
+      , Plaintext "the"
       , Whitespace
-      , Plaintext "will"
+      , Plaintext "last"
       , Whitespace
-      , Plaintext "not"
+      , Plaintext "search"
       , Whitespace
-      , Plaintext "try"
+      , Plaintext "term"
+      , Whitespace
+      , Plaintext "from"
+      , Whitespace
+      , Plaintext "Ferret."
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "use"
+      , Whitespace
+      , Plaintext "an"
+      , Whitespace
+      , Plaintext "alternative"
+      , Whitespace
+      , Plaintext "mapping"
+      , Whitespace
+      , Plaintext "instead,"
+      , Whitespace
+      , Plaintext "create"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "different"
+      , Whitespace
+      , Plaintext "one"
+      , Whitespace
+      , Plaintext "in"
+      , Whitespace
+      , Plaintext "your"
+      , Whitespace
+      , Link ".vimrc"
+      , Whitespace
+      , Plaintext "instead"
+      , Whitespace
+      , Plaintext "using"
+      , Whitespace
+      , Link ":nmap"
+      , Plaintext ":"
+      ]
+  , Fenced
+      [ "\" Instead of <leader>r, use <leader>u."
+      , "nmap <leader>u <Plug>(FerretAcks)"
+      ]
+  , OptionAnnotation "g:FerretMap" "boolean" (Just "1")
+  , Paragraph
+      [ Plaintext "Controls"
+      , Whitespace
+      , Plaintext "whether"
       , Whitespace
       , Plaintext "to"
       , Whitespace
@@ -2128,180 +2795,133 @@ Project
       , Whitespace
       , Plaintext "the"
       , Whitespace
-      , Plaintext "<leader>"
+      , Plaintext "Ferret"
       , Whitespace
-      , Plaintext "mappings"
+      , Plaintext "mappings,"
       , Whitespace
-      , Plaintext "if"
+      , Plaintext "such"
+      , Whitespace
+      , Plaintext "as"
+      , Whitespace
+      , Link "<Plug>(FerretAck)"
+      , Whitespace
+      , Plaintext "(see"
+      , Whitespace
+      , Link "ferret-mappings"
+      , Whitespace
+      , Plaintext "for"
+      , Whitespace
+      , Plaintext "a"
+      , Whitespace
+      , Plaintext "full"
+      , Whitespace
+      , Plaintext "list)."
+      , Whitespace
+      , Plaintext "To"
+      , Whitespace
+      , Plaintext "prevent"
       , Whitespace
       , Plaintext "any"
       , Whitespace
-      , Plaintext "of"
+      , Plaintext "mapping"
       , Whitespace
-      , Plaintext "the"
+      , Plaintext "from"
       , Whitespace
-      , Plaintext "following"
+      , Plaintext "being"
       , Whitespace
-      , Plaintext "are"
+      , Plaintext "configured,"
       , Whitespace
-      , Plaintext "true:"
-      ]
-  , List
-      [ ListItem
-          [ Plaintext "A"
-          , Whitespace
-          , Plaintext "mapping"
-          , Whitespace
-          , Plaintext "for"
-          , Whitespace
-          , Plaintext "already"
-          , Whitespace
-          , Plaintext "exists."
-          ]
-      , ListItem
-          [ Plaintext "An"
-          , Whitespace
-          , Plaintext "alternative"
-          , Whitespace
-          , Plaintext "mapping"
-          , Whitespace
-          , Plaintext "for"
-          , Whitespace
-          , Plaintext "the"
-          , Whitespace
-          , Plaintext "same"
-          , Whitespace
-          , Plaintext "functionality"
-          , Whitespace
-          , Plaintext "has"
-          , Whitespace
-          , Plaintext "already"
-          , Whitespace
-          , Plaintext "been"
-          , Whitespace
-          , Plaintext "set"
-          , Whitespace
-          , Plaintext "up"
-          , Whitespace
-          , Plaintext "from"
-          , Whitespace
-          , Plaintext "a"
-          , Whitespace
-          , Link ".vimrc"
-          , Plaintext "."
-          ]
-      , ListItem
-          [ Plaintext "The"
-          , Whitespace
-          , Plaintext "mapping"
-          , Whitespace
-          , Plaintext "has"
-          , Whitespace
-          , Plaintext "been"
-          , Whitespace
-          , Plaintext "suppressed"
-          , Whitespace
-          , Plaintext "by"
-          , Whitespace
-          , Plaintext "setting"
-          , Whitespace
-          , Link "g:FerretMap"
-          , Whitespace
-          , Plaintext "to"
-          , Whitespace
-          , Plaintext "1"
-          , Whitespace
-          , Plaintext "in"
-          , Whitespace
-          , Plaintext "your"
-          , Whitespace
-          , Link ".vimrc"
-          , Plaintext "."
-          ]
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "0:"
       ]
-  , SubheadingAnnotation "Mappings specific to the quickfix window"
+  , Fenced [ "let g:FerretMap=0" ]
+  , OptionAnnotation "g:FerretQFCommands" "boolean" (Just "1")
   , Paragraph
-      [ Plaintext "Additionally,"
+      [ Plaintext "Controls"
       , Whitespace
-      , Plaintext "Ferret"
+      , Plaintext "whether"
       , Whitespace
-      , Plaintext "will"
+      , Plaintext "to"
       , Whitespace
       , Plaintext "set"
       , Whitespace
       , Plaintext "up"
       , Whitespace
-      , Plaintext "special"
+      , Plaintext "custom"
       , Whitespace
-      , Plaintext "mappings"
+      , Plaintext "versions"
       , Whitespace
-      , Plaintext "in"
+      , Plaintext "of"
+      , Whitespace
+      , Plaintext "the"
       , Whitespace
       , Link "quickfix"
       , Whitespace
-      , Plaintext "listings,"
+      , Plaintext "commands,"
       , Whitespace
-      , Plaintext "unless"
+      , Link ":cn"
+      , Plaintext ","
       , Whitespace
-      , Plaintext "prevented"
+      , Link ":cnf"
+      , Plaintext ","
+      , Whitespace
+      , Link ":cp"
+      , Whitespace
+      , Plaintext "an"
+      , Whitespace
+      , Link ":cpf"
+      , Plaintext "."
+      , Whitespace
+      , Plaintext "These"
+      , Whitespace
+      , Plaintext "overrides"
+      , Whitespace
+      , Plaintext "vertically"
+      , Whitespace
+      , Plaintext "center"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "match"
+      , Whitespace
+      , Plaintext "within"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "viewport"
+      , Whitespace
+      , Plaintext "on"
+      , Whitespace
+      , Plaintext "each"
+      , Whitespace
+      , Plaintext "jump."
+      , Whitespace
+      , Plaintext "To"
+      , Whitespace
+      , Plaintext "prevent"
+      , Whitespace
+      , Plaintext "the"
+      , Whitespace
+      , Plaintext "custom"
+      , Whitespace
+      , Plaintext "versions"
       , Whitespace
       , Plaintext "from"
       , Whitespace
-      , Plaintext "doing"
+      , Plaintext "being"
       , Whitespace
-      , Plaintext "so"
+      , Plaintext "configured,"
       , Whitespace
-      , Plaintext "by"
+      , Plaintext "set"
       , Whitespace
-      , Link "g:FerretQFMap"
-      , Plaintext ":"
-      ]
-  , List
-      [ ListItem
-          [ Code "d"
-          , Whitespace
-          , Plaintext "("
-          , Link "visual-mode"
-          , Plaintext "):"
-          , Whitespace
-          , Plaintext "delete"
-          , Whitespace
-          , Plaintext "visual"
-          , Whitespace
-          , Plaintext "selection"
-          ]
-      , ListItem
-          [ Code "dd"
-          , Whitespace
-          , Plaintext "("
-          , Link "Normal-mode"
-          , Plaintext "):"
-          , Whitespace
-          , Plaintext "delete"
-          , Whitespace
-          , Plaintext "current"
-          , Whitespace
-          , Plaintext "line"
-          ]
-      , ListItem
-          [ Code "d"
-          , Plaintext "{motion}"
-          , Whitespace
-          , Plaintext "("
-          , Link "Normal-mode"
-          , Plaintext "):"
-          , Whitespace
-          , Plaintext "delete"
-          , Whitespace
-          , Plaintext "range"
-          , Whitespace
-          , Plaintext "indicated"
-          , Whitespace
-          , Plaintext "by"
-          , Whitespace
-          , Plaintext "{motion}"
-          ]
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "0:"
       ]
+  , Fenced [ "let g:FerretQFCommands=0" ]
   , FooterAnnotation
   , HeadingAnnotation "Custom autocommands"
   , LinkTargets [ "FerretWillWrite" , "FerretDidWrite" ]
index 2661c490092be348be4dc8e8f9940135d62e0309..aa89c83fb170c5c852bd92554b08432e594e34bb 100644 (file)
@@ -399,4 +399,56 @@ Project
               }
           ]
       ]
+  , OptionAnnotation "g:FerretDispatch" "boolean" (Just "1")
+  , Paragraph
+      [ Plaintext "Controls"
+      , Whitespace
+      , Plaintext "whether"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "use"
+      , Whitespace
+      , Plaintext "vim-dispatch"
+      , Whitespace
+      , Plaintext "(and"
+      , Whitespace
+      , Plaintext "specifically,"
+      , Whitespace
+      , Link ":Make"
+      , Plaintext ")"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "run"
+      , Whitespace
+      , Link ":Ack"
+      , Whitespace
+      , Plaintext "searches"
+      , Whitespace
+      , Plaintext "asynchronously,"
+      , Whitespace
+      , Plaintext "when"
+      , Whitespace
+      , Plaintext "available."
+      , Whitespace
+      , Plaintext "To"
+      , Whitespace
+      , Plaintext "prevent"
+      , Whitespace
+      , Plaintext "vim-dispatch"
+      , Whitespace
+      , Plaintext "from"
+      , Whitespace
+      , Plaintext "being"
+      , Whitespace
+      , Plaintext "used,"
+      , Whitespace
+      , Plaintext "set"
+      , Whitespace
+      , Plaintext "to"
+      , Whitespace
+      , Plaintext "0:"
+      ]
+  , Fenced [ "let g:FerretDispatch=0" ]
   ]
index 74d11af0d3c92c3c5585a929a4a2c6888c72ff55..d49b1b315b9a8ab3a2449743353abc47ee6967f9 100644 (file)
@@ -4,6 +4,32 @@ Project
           [ DocBlock
               [ Paragraph
                   [ Plaintext "General" , Whitespace , Plaintext "stuff." ]
+              , MappingsAnnotation
+              , Paragraph
+                  [ Plaintext "Here"
+                  , Whitespace
+                  , Plaintext "is"
+                  , Whitespace
+                  , Plaintext "some"
+                  , Whitespace
+                  , Plaintext "general"
+                  , Whitespace
+                  , Plaintext "commentary"
+                  , Whitespace
+                  , Plaintext "about"
+                  , Whitespace
+                  , Plaintext "the"
+                  , Whitespace
+                  , Plaintext "mappings"
+                  , Whitespace
+                  , Plaintext "provided"
+                  , Whitespace
+                  , Plaintext "by"
+                  , Whitespace
+                  , Plaintext "the"
+                  , Whitespace
+                  , Plaintext "plug-in."
+                  ]
               ]
           ]
       ]
index 91e679d94b15be11c23413389dcf066bfd9430ba..99309fda250d79594b520cec4f16d26dadaa634d 100644 (file)
@@ -4,6 +4,32 @@ Project
           [ DocBlock
               [ Paragraph
                   [ Plaintext "General" , Whitespace , Plaintext "stuff." ]
+              , OptionsAnnotation
+              , Paragraph
+                  [ Plaintext "Here"
+                  , Whitespace
+                  , Plaintext "is"
+                  , Whitespace
+                  , Plaintext "some"
+                  , Whitespace
+                  , Plaintext "general"
+                  , Whitespace
+                  , Plaintext "commentary"
+                  , Whitespace
+                  , Plaintext "about"
+                  , Whitespace
+                  , Plaintext "the"
+                  , Whitespace
+                  , Plaintext "options"
+                  , Whitespace
+                  , Plaintext "provided"
+                  , Whitespace
+                  , Plaintext "by"
+                  , Whitespace
+                  , Plaintext "the"
+                  , Whitespace
+                  , Plaintext "plug-in."
+                  ]
               ]
           ]
       ]
index 053a7dc805a90fa2650fbc26c5416481b3a95f76..e2b61ac7ae3669bfde0aba47a9a6bc0fadc3c972 100644 (file)
@@ -21,3 +21,26 @@ To prevent these mappings from being set up, set to 0:
 >
     let g:FerretQFMap=0
 <
+Controls whether to set up setting overrides for |quickfix| windows. These
+are various settings, such as |norelativenumber|, |nolist| and |nowrap|,
+that are intended to make the |quickfix| window, which is typically very
+small relative to other windows, more usable.
+
+A full list of overridden settings can be found in |ferret-overrides|.
+
+To prevent the custom settings from being applied, set |g:FerretQFOptions|
+to 0:
+>
+    let g:FerretQFOptions=0
+<
+Controls whether to set up mappings in the |quickfix| results window for
+deleting results. The mappings include:
+
+- `d` (|visual-mode|): delete visual selection
+- `dd` (|Normal-mode|): delete current line
+- `d`{motion} (|Normal-mode|): delete range indicated by {motion}
+
+To prevent these mappings from being set up, set to 0:
+>
+    let g:FerretQFMap=0
+<
index 55e0c148982b9f4ff77db003c5896b5f44c7da4e..ff9588eb7429bfb02654e41b125520f44fecdf40 100644 (file)
@@ -76,6 +76,71 @@ To generate help tags under Pathogen, you can do so from inside Vim with:
 >
     :call pathogen#helptags()
 <
+MAPPINGS                                                    *ferret-mappings*
+
+Circumstances where mappings do not get set up ~
+
+Note that Ferret will not try to set up the <leader> mappings if any of the
+following are true:
+
+- A mapping for already exists.
+- An alternative mapping for the same functionality has already been set up
+  from a |.vimrc|.
+- The mapping has been suppressed by setting |g:FerretMap| to 1 in your
+  |.vimrc|.
+
+Mappings specific to the quickfix window ~
+
+Additionally, Ferret will set up special mappings in |quickfix| listings,
+unless prevented from doing so by |g:FerretQFMap|:
+
+- `d` (|visual-mode|): delete visual selection
+- `dd` (|Normal-mode|): delete current line
+- `d`{motion} (|Normal-mode|): delete range indicated by {motion}
+
+Controls whether to set up the Ferret mappings, such as |<Plug>(FerretAck)|
+(see |ferret-mappings| for a full list). To prevent any mapping from being
+configured, set to 0:
+>
+    let g:FerretMap=0
+<
+Ferret maps <leader>a to |<Plug>(FerretAck)|, which triggers the |:Ack|
+command. To use an alternative mapping instead, create a different one in
+your |.vimrc| instead using |:nmap|:
+>
+    " Instead of <leader>a, use <leader>x.
+    nmap <leader>x <Plug>(FerretAck)
+<
+Ferret maps <leader>l to |<Plug>(FerretLack)|, which triggers the |:Lack|
+command. To use an alternative mapping instead, create a different one in
+your |.vimrc| instead using |:nmap|:
+>
+    " Instead of <leader>l, use <leader>y.
+    nmap <leader>y <Plug>(FerretLack)
+<
+Ferret maps <leader>s (mnemonix: "selection) to |<Plug>(FerretAckWord)|,
+which uses |:Ack| to search for the word currently under the cursor. To use
+an alternative mapping instead, create a different one in your |.vimrc|
+instead using |:nmap|:
+>
+    " Instead of <leader>s, use <leader>z.
+    nmap <leader>z <Plug>(FerretAckWord)
+<
+Ferret maps <leader>r (mnemonic: "replace") to |<Plug>(FerretAcks)|, which
+triggers the |:Acks| command and fills the prompt with the last search term
+from Ferret. to use an alternative mapping instead, create a different one
+in your |.vimrc| instead using |:nmap|:
+>
+    " Instead of <leader>r, use <leader>u.
+    nmap <leader>u <Plug>(FerretAcks)
+<
+Controls whether to set up custom versions of the |quickfix| commands,
+|:cn|, |:cnf|, |:cp| an |:cpf|. These overrides vertically center the match
+within the viewport on each jump. To prevent the custom versions from being
+configured, set to 0:
+>
+    let g:FerretQFCommands=0
+<
 Searches for {pattern} in all the files under the current directory (see
 |:pwd|), unless otherwise overridden via {options}, and displays the results
 in the |quickfix| listing.
@@ -127,12 +192,34 @@ the current directory:
     :Ack foo
     :Acks /foo/bar/
 <
-Controls whether to set up the Ferret mappings, such as |<Plug>(FerretAck)|
-(see |ferret-mappings| for a full list). To prevent any mapping from being
-configured, set to 0:
->
-    let g:FerretMap=0
-<
+This is a utility function that is used by the |:Acks| command but is also
+generally useful enough to warrant being exposed publicly.
+
+It takes the files currently in the |quickfix| listing and sets them as
+|:args| so that they can be operated on en masse via the |:argdo| command.
+
+MAPPINGS                                                    *ferret-mappings*
+
+Circumstances where mappings do not get set up ~
+
+Note that Ferret will not try to set up the <leader> mappings if any of the
+following are true:
+
+- A mapping for already exists.
+- An alternative mapping for the same functionality has already been set up
+  from a |.vimrc|.
+- The mapping has been suppressed by setting |g:FerretMap| to 1 in your
+  |.vimrc|.
+
+Mappings specific to the quickfix window ~
+
+Additionally, Ferret will set up special mappings in |quickfix| listings,
+unless prevented from doing so by |g:FerretQFMap|:
+
+- `d` (|visual-mode|): delete visual selection
+- `dd` (|Normal-mode|): delete current line
+- `d`{motion} (|Normal-mode|): delete range indicated by {motion}
+
 Ferret maps <leader>a to |<Plug>(FerretAck)|, which triggers the |:Ack|
 command. To use an alternative mapping instead, create a different one in
 your |.vimrc| instead using |:nmap|:
@@ -163,12 +250,12 @@ in your |.vimrc| instead using |:nmap|:
     " Instead of <leader>r, use <leader>u.
     nmap <leader>u <Plug>(FerretAcks)
 <
-This is a utility function that is used by the |:Acks| command but is also
-generally useful enough to warrant being exposed publicly.
-
-It takes the files currently in the |quickfix| listing and sets them as
-|:args| so that they can be operated on en masse via the |:argdo| command.
-
+Controls whether to set up the Ferret mappings, such as |<Plug>(FerretAck)|
+(see |ferret-mappings| for a full list). To prevent any mapping from being
+configured, set to 0:
+>
+    let g:FerretMap=0
+<
 Controls whether to set up custom versions of the |quickfix| commands,
 |:cn|, |:cnf|, |:cp| an |:cpf|. These overrides vertically center the match
 within the viewport on each jump. To prevent the custom versions from being
@@ -176,28 +263,6 @@ configured, set to 0:
 >
     let g:FerretQFCommands=0
 <
-MAPPINGS                                                    *ferret-mappings*
-
-Circumstances where mappings do not get set up ~
-
-Note that Ferret will not try to set up the <leader> mappings if any of the
-following are true:
-
-- A mapping for already exists.
-- An alternative mapping for the same functionality has already been set up
-  from a |.vimrc|.
-- The mapping has been suppressed by setting |g:FerretMap| to 1 in your
-  |.vimrc|.
-
-Mappings specific to the quickfix window ~
-
-Additionally, Ferret will set up special mappings in |quickfix| listings,
-unless prevented from doing so by |g:FerretQFMap|:
-
-- `d` (|visual-mode|): delete visual selection
-- `dd` (|Normal-mode|): delete current line
-- `d`{motion} (|Normal-mode|): delete range indicated by {motion}
-
 CUSTOM AUTOCOMMANDS                              *ferret-custom-autocommands*
 
                                            *FerretDidWrite* *FerretWillWrite*
index a6f8f18363527fa1261b12347f5da5268a0546e9..7a6d0dda6b7b2d4a031c69d2fa5dc0ea8276be8a 100644 (file)
@@ -4,3 +4,9 @@ being used, set to 0:
 >
     let g:FerretDispatch=0
 <
+Controls whether to use vim-dispatch (and specifically, |:Make|) to run
+|:Ack| searches asynchronously, when available. To prevent vim-dispatch from
+being used, set to 0:
+>
+    let g:FerretDispatch=0
+<