--- a/contrib/vim/hgcommand.vim Wed Jul 12 23:50:34 2006 +0200
+++ b/contrib/vim/hgcommand.vim Wed Jul 12 23:52:08 2006 +0200
@@ -6,7 +6,7 @@
" Version: 1.76
" Maintainer: Mathieu Clabaut <mathieu.clabaut@gmail.com>
" License: This file is placed in the public domain.
-" Credits: {{{1
+" Credits:
" Bob Hiestand <bob.hiestand@gmail.com> for the fabulous
" cvscommand.vim from which this script was directly created by
" means of sed commands and minor tweaks.
@@ -22,213 +22,7 @@
" You still can read the documentation at the end of this file. Locate it by
" searching the "hgcommand-contents" string (and set ft=help to have
" appropriate syntaxic coloration).
-"
-" Section: Documentation : detail {{{1
-"
-" Provides functions to invoke various HG commands on the current file
-" (either the current buffer, or, in the case of an directory buffer, the file
-" on the current line). The output of the commands is captured in a new
-" scratch window. For convenience, if the functions are invoked on a HG
-" output window, the original file is used for the hg operation instead after
-" the window is split. This is primarily useful when running HGCommit and
-" you need to see the changes made, so that HGDiff is usable and shows up in
-" another window.
-"
-" Command documentation {{{2
-"
-" HGAdd Performs "hg add" on the current file.
-"
-" HGAnnotate Performs "hg annotate" on the current file. If an
-" argument is given, the argument is used as a revision
-" number to display. If not given an argument, it uses the
-" most recent version of the file on the current branch.
-" Additionally, if the current buffer is a HGAnnotate buffer
-" already, the version number on the current line is used.
-"
-" If the 'HGCommandAnnotateParent' variable is set to a
-" non-zero value, the version previous to the one on the
-" current line is used instead. This allows one to navigate
-" back to examine the previous version of a line.
-"
-" HGCommit[!] If called with arguments, this performs "hg commit" using
-" the arguments as the log message.
-"
-" If '!' is used, an empty log message is committed.
-"
-" If called with no arguments, this is a two-step command.
-" The first step opens a buffer to accept a log message.
-" When that buffer is written, it is automatically closed and
-" the file is committed using the information from that log
-" message. The commit can be abandoned if the log message
-" buffer is deleted or wiped before being written.
-"
-" HGDiff With no arguments, this performs "hg diff" on the current
-" file. With one argument, "hg diff" is performed on the
-" current file against the specified revision. With two
-" arguments, hg diff is performed between the specified
-" revisions of the current file. This command uses the
-" 'HGCommandDiffOpt' variable to specify diff options. If
-" that variable does not exist, then 'wbBc' is assumed. If
-" you wish to have no options, then set it to the empty
-" string.
-"
-" HGGotoOriginal Returns the current window to the source buffer if the
-" current buffer is a HG output buffer.
-"
-" HGLog Performs "hg log" on the current file.
-"
-" HGRevert Replaces the modified version of the current file with the
-" most recent version from the repository.
-"
-" HGReview Retrieves a particular version of the current file. If no
-" argument is given, the most recent version of the file on
-" the current branch is retrieved. The specified revision is
-" retrieved into a new buffer.
-"
-" HGStatus Performs "hg status" on the current file.
-"
-" HGUpdate Performs "hg update" on the current file.
-"
-" HGVimDiff With no arguments, this prompts the user for a revision and
-" then uses vimdiff to display the differences between the
-" current file and the specified revision. If no revision is
-" specified, the most recent version of the file on the
-" current branch is used. With one argument, that argument
-" is used as the revision as above. With two arguments, the
-" differences between the two revisions is displayed using
-" vimdiff.
-"
-" With either zero or one argument, the original buffer is used
-" to perform the vimdiff. When the other buffer is closed, the
-" original buffer will be returned to normal mode.
-"
-" Once vimdiff mode is started using the above methods,
-" additional vimdiff buffers may be added by passing a single
-" version argument to the command. There may be up to 4
-" vimdiff buffers total.
-"
-" Using the 2-argument form of the command resets the vimdiff
-" to only those 2 versions. Additionally, invoking the
-" command on a different file will close the previous vimdiff
-" buffers.
-"
-"
-" Mapping documentation: {{{2
-"
-" By default, a mapping is defined for each command. User-provided mappings
-" can be used instead by mapping to <Plug>CommandName, for instance:
-"
-" nnoremap ,ca <Plug>HGAdd
-"
-" The default mappings are as follow:
-"
-" <Leader>hga HGAdd
-" <Leader>hgn HGAnnotate
-" <Leader>hgc HGCommit
-" <Leader>hgd HGDiff
-" <Leader>hgg HGGotoOriginal
-" <Leader>hgG HGGotoOriginal!
-" <Leader>hgl HGLog
-" <Leader>hgr HGReview
-" <Leader>hgs HGStatus
-" <Leader>hgu HGUpdate
-" <Leader>hgv HGVimDiff
-"
-" Options documentation: {{{2
-"
-" Several variables are checked by the script to determine behavior as follow:
-"
-" HGCommandAnnotateParent
-" This variable, if set to a non-zero value, causes the zero-argument form
-" of HGAnnotate when invoked on a HGAnnotate buffer to go to the version
-" previous to that displayed on the current line. If not set, it defaults
-" to 0.
-"
-" HGCommandCommitOnWrite
-" This variable, if set to a non-zero value, causes the pending hg commit
-" to take place immediately as soon as the log message buffer is written.
-" If set to zero, only the HGCommit mapping will cause the pending commit
-" to occur. If not set, it defaults to 1.
-"
-" HGCommandDeleteOnHide
-" This variable, if set to a non-zero value, causes the temporary HG result
-" buffers to automatically delete themselves when hidden.
-"
-" HGCommandDiffOpt
-" This variable, if set, determines the options passed to the diff command
-" of HG. If not set, it defaults to 'wbBc'.
-"
-" HGCommandDiffSplit
-" This variable overrides the HGCommandSplit variable, but only for buffers
-" created with HGVimDiff.
-"
-" HGCommandEdit
-" This variable controls whether the original buffer is replaced ('edit') or
-" split ('split'). If not set, it defaults to 'edit'.
-"
-" HGCommandEnableBufferSetup
-" This variable, if set to a non-zero value, activates HG buffer management
-" mode. This mode means that two buffer variables, 'HGRevision' and
-" 'HGBranch', are set if the file is HG-controlled. This is useful for
-" displaying version information in the status bar.
-"
-" HGCommandInteractive
-" This variable, if set to a non-zero value, causes appropriate functions (for
-" the moment, only HGReview) to query the user for a revision to use
-" instead of the current revision if none is specified.
-"
-" HGCommandNameMarker
-" This variable, if set, configures the special attention-getting characters
-" that appear on either side of the hg buffer type in the buffer name.
-" This has no effect unless 'HGCommandNameResultBuffers' is set to a true
-" value. If not set, it defaults to '_'.
-"
-" HGCommandNameResultBuffers
-" This variable, if set to a true value, causes the hg result buffers to be
-" named in the old way ('<source file name> _<hg command>_'). If not set
-" or set to a false value, the result buffer is nameless.
-"
-" HGCommandSplit
-" This variable controls the orientation of the various window splits that
-" may occur (such as with HGVimDiff, when using a HG command on a HG
-" command buffer, or when the 'HGCommandEdit' variable is set to 'split'.
-" If set to 'horizontal', the resulting windows will be on stacked on top of
-" one another. If set to 'vertical', the resulting windows will be
-" side-by-side. If not set, it defaults to 'horizontal' for all but
-" HGVimDiff windows.
-"
-" Event documentation {{{2
-" For additional customization, hgcommand.vim uses User event autocommand
-" hooks. Each event is in the HGCommand group, and different patterns
-" match the various hooks.
-"
-" For instance, the following could be added to the vimrc to provide a 'q'
-" mapping to quit a HG buffer:
-"
-" augroup HGCommand
-" au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q :bwipeout<cr>
-" augroup END
-"
-" The following hooks are available:
-"
-" HGBufferCreated This event is fired just after a hg command
-" result buffer is created and filled with the
-" result of a hg command. It is executed within
-" the context of the new buffer.
-"
-" HGBufferSetup This event is fired just after HG buffer setup
-" occurs, if enabled.
-"
-" HGPluginInit This event is fired when the HGCommand plugin
-" first loads.
-"
-" HGPluginFinish This event is fired just after the HGCommand
-" plugin loads.
-"
-" HGVimDiffFinish This event is fired just after the HGVimDiff
-" command executes to allow customization of,
-" for instance, window placement and focus.
-"
+
" Section: Plugin header {{{1
" loaded_hgcommand is set to 1 when the initialization begins, and 2 when it
@@ -1422,18 +1216,16 @@
system designed for efficient handling of very large distributed projects.
==============================================================================
-1. Contents *hgcommand-contents*
+1. Contents *hgcommand-contents*
Installation : |hgcommand-install|
HGCommand Intro : |hgcommand|
HGCommand Manual : |hgcommand-manual|
Customization : |hgcommand-customize|
- SSH "integration" : |hgcommand-ssh|
Bugs : |hgcommand-bugs|
==============================================================================
- *hgcommand-install*
-2. HGCommand Installation
+2. HGCommand Installation *hgcommand-install*
In order to install the plugin, place the hgcommand.vim file into a plugin'
directory in your runtime path (please see |add-global-plugin| and
@@ -1444,537 +1236,444 @@
details.
*hgcommand-auto-help*
- The help file is automagically generated when the |vimspell| script is
+ The help file is automagically generated when the |hgcommand| script is
loaded for the first time.
==============================================================================
-3. HGCommand Intro *hgcommand*
- *hgcommand-intro*
+3. HGCommand Intro *hgcommand*
+ *hgcommand-intro*
-The HGCommand plugin provides global ex commands for manipulating
-HG-controlled source files. In general, each command operates on the current
-buffer and accomplishes a separate hg function, such as update, commit, log,
-and others (please see |hgcommand-commands| for a list of all available
-commands). The results of each operation are displayed in a scratch buffer.
-Several buffer variables are defined for those scratch buffers (please see
-|hgcommand-buffer-variables|).
+ The HGCommand plugin provides global ex commands for manipulating
+ HG-controlled source files. In general, each command operates on the
+ current buffer and accomplishes a separate hg function, such as update,
+ commit, log, and others (please see |hgcommand-commands| for a list of all
+ available commands). The results of each operation are displayed in a
+ scratch buffer. Several buffer variables are defined for those scratch
+ buffers (please see |hgcommand-buffer-variables|).
-The notion of "current file" means either the current buffer, or, in the case
-of a directory buffer, the file on the current line within the buffer.
+ The notion of "current file" means either the current buffer, or, in the
+ case of a directory buffer, the file on the current line within the buffer.
-For convenience, any HGCommand invoked on a HGCommand scratch buffer acts as
-though it was invoked on the original file and splits the screen so that the
-output appears in a new window.
+ For convenience, any HGCommand invoked on a HGCommand scratch buffer acts
+ as though it was invoked on the original file and splits the screen so that
+ the output appears in a new window.
-Many of the commands accept revisions as arguments. By default, most operate
-on the most recent revision on the current branch if no revision is specified
-(though see |HGCommandInteractive| to prompt instead).
+ Many of the commands accept revisions as arguments. By default, most
+ operate on the most recent revision on the current branch if no revision is
+ specified (though see |HGCommandInteractive| to prompt instead).
-Each HGCommand is mapped to a key sequence starting with the <Leader>
-keystroke. The default mappings may be overridden by supplying different
-mappings before the plugin is loaded, such as in the vimrc, in the standard
-fashion for plugin mappings. For examples, please see
-|hgcommand-mappings-override|.
+ Each HGCommand is mapped to a key sequence starting with the <Leader>
+ keystroke. The default mappings may be overridden by supplying different
+ mappings before the plugin is loaded, such as in the vimrc, in the standard
+ fashion for plugin mappings. For examples, please see
+ |hgcommand-mappings-override|.
-The HGCommand plugin may be configured in several ways. For more details,
-please see |hgcommand-customize|.
+ The HGCommand plugin may be configured in several ways. For more details,
+ please see |hgcommand-customize|.
==============================================================================
-
-4. HGCommand Manual *hgcommand-manual*
+4. HGCommand Manual *hgcommand-manual*
-4.1 HGCommand commands *hgcommand-commands*
+4.1 HGCommand commands *hgcommand-commands*
-HGCommand defines the following commands:
+ HGCommand defines the following commands:
-|:HGAdd|
-|:HGAnnotate|
-|:HGCommit|
-|:HGDiff|
-|:HGGotoOriginal|
-|:HGLog|
-|:HGRevert|
-|:HGReview|
-|:HGStatus|
-|:HGUnedit|
-|:HGUpdate|
-|:HGVimDiff|
+ |:HGAdd|
+ |:HGAnnotate|
+ |:HGCommit|
+ |:HGDiff|
+ |:HGGotoOriginal|
+ |:HGLog|
+ |:HGRevert|
+ |:HGReview|
+ |:HGStatus|
+ |:HGUpdate|
+ |:HGVimDiff|
-:HGAdd *:HGAdd*
+:HGAdd *:HGAdd*
-This command performs "hg add" on the current file. Please note, this does
-not commit the newly-added file.
+ This command performs "hg add" on the current file. Please note, this does
+ not commit the newly-added file.
-:HGAnnotate *:HGAnnotate*
+:HGAnnotate *:HGAnnotate*
-This command performs "hg annotate" on the current file. If an argument is
-given, the argument is used as a revision number to display. If not given an
-argument, it uses the most recent version of the file on the current branch.
-Additionally, if the current buffer is a HGAnnotate buffer already, the
-version number on the current line is used.
+ This command performs "hg annotate" on the current file. If an argument is
+ given, the argument is used as a revision number to display. If not given
+ an argument, it uses the most recent version of the file on the current
+ branch. Additionally, if the current buffer is a HGAnnotate buffer
+ already, the version number on the current line is used.
-If the |HGCommandAnnotateParent| variable is set to a non-zero value, the
-version previous to the one on the current line is used instead. This allows
-one to navigate back to examine the previous version of a line.
+ If the |HGCommandAnnotateParent| variable is set to a non-zero value, the
+ version previous to the one on the current line is used instead. This
+ allows one to navigate back to examine the previous version of a line.
-The filetype of the HGCommand scratch buffer is set to 'HGAnnotate', to take
-advantage of the bundled syntax file.
+ The filetype of the HGCommand scratch buffer is set to 'HGAnnotate', to
+ take advantage of the bundled syntax file.
-:HGCommit[!] *:HGCommit*
+:HGCommit[!] *:HGCommit*
-If called with arguments, this performs "hg commit" using the arguments as
-the log message.
+ If called with arguments, this performs "hg commit" using the arguments as
+ the log message.
-If '!' is used with no arguments, an empty log message is committed.
+ If '!' is used with no arguments, an empty log message is committed.
-If called with no arguments, this is a two-step command. The first step opens
-a buffer to accept a log message. When that buffer is written, it is
-automatically closed and the file is committed using the information from that
-log message. The commit can be abandoned if the log message buffer is deleted
-or wiped before being written.
+ If called with no arguments, this is a two-step command. The first step
+ opens a buffer to accept a log message. When that buffer is written, it is
+ automatically closed and the file is committed using the information from
+ that log message. The commit can be abandoned if the log message buffer is
+ deleted or wiped before being written.
-Alternatively, the mapping that is used to invoke :HGCommit (by default
-<Leader>hgc) can be used in the log message buffer to immediately commit.
-This
-is useful if the |HGCommandCommitOnWrite| variable is set to 0 to disable the
-normal commit-on-write behavior.
+ Alternatively, the mapping that is used to invoke :HGCommit (by default
+ <Leader>hgc) can be used in the log message buffer to immediately commit.
+ This is useful if the |HGCommandCommitOnWrite| variable is set to 0 to
+ disable the normal commit-on-write behavior.
-:HGDiff *:HGDiff*
+:HGDiff *:HGDiff*
+
+ With no arguments, this performs "hg diff" on the current file against the
+ current repository version.
-With no arguments, this performs "hg diff" on the current file against the
-current repository version.
-
-With one argument, "hg diff" is performed on the current file against the
-specified revision.
+ With one argument, "hg diff" is performed on the current file against the
+ specified revision.
-With two arguments, hg diff is performed between the specified
-revisions of the current file.
+ With two arguments, hg diff is performed between the specified revisions of
+ the current file.
-This command uses the 'HGCommandDiffOpt' variable to specify diff options.
-If that variable does not exist, then 'wbBc' is assumed. If you wish to have
-no options, then set it to the empty string.
+ This command uses the 'HGCommandDiffOpt' variable to specify diff options.
+ If that variable does not exist, then 'wbBc' is assumed. If you wish to
+ have no options, then set it to the empty string.
-This command performs "hg edit" on the current file.
+:HGGotoOriginal *:HGGotoOriginal*
-:HGGotoOriginal *:HGGotoOriginal*
-
-This command returns the current window to the source buffer, if the current
-buffer is a HG command output buffer.
+ This command returns the current window to the source buffer, if the
+ current buffer is a HG command output buffer.
:HGGotoOriginal!
-Like ":HGGotoOriginal" but also executes :bufwipeout on all HG command
-output buffers for the source buffer.
+ Like ":HGGotoOriginal" but also executes :bufwipeout on all HG command
+ output buffers for the source buffer.
-:HGLog *:HGLog*
+:HGLog *:HGLog*
-Performs "hg log" on the current file.
+ Performs "hg log" on the current file.
-If an argument is given, it is passed as an argument to the "-r" option of
-"hg log".
+ If an argument is given, it is passed as an argument to the "-r" option of
+ "hg log".
-:HGRevert *:HGRevert*
+:HGRevert *:HGRevert*
-Replaces the current file with the most recent version from the repository in
-order to wipe out any undesired changes.
-
-:HGReview *:HGReview*
+ Replaces the current file with the most recent version from the repository
+ in order to wipe out any undesired changes.
+
+:HGReview *:HGReview*
-Retrieves a particular version of the current file. If no argument is given,
-the most recent version of the file on the current branch is retrieved.
-Otherwise, the specified version is retrieved.
+ Retrieves a particular version of the current file. If no argument is
+ given, the most recent version of the file on the current branch is
+ retrieved. Otherwise, the specified version is retrieved.
-:HGStatus *:HGStatus*
+:HGStatus *:HGStatus*
-Performs "hg status" on the current file.
+ Performs "hg status" on the current file.
-:HGUnedit *:HGUnedit*
+:HGUpdate *:HGUpdate*
-Performs "hg unedit" on the current file. Again, yes, the output buffer here
-is basically useless.
-
-:HGUpdate *:HGUpdate*
+ Performs "hg update" on the current file. This intentionally does not
+ automatically reload the current buffer, though vim should prompt the user
+ to do so if the underlying file is altered by this command.
-Performs "hg update" on the current file. This intentionally does not
-automatically reload the current buffer, though vim should prompt the user to
-do so if the underlying file is altered by this command.
+:HGVimDiff *:HGVimDiff*
-:HGVimDiff *:HGVimDiff*
-
-With no arguments, this prompts the user for a revision and then uses vimdiff
-to display the differences between the current file and the specified
-revision. If no revision is specified, the most recent version of the file on
-the current branch is used.
+ With no arguments, this prompts the user for a revision and then uses
+ vimdiff to display the differences between the current file and the
+ specified revision. If no revision is specified, the most recent version
+ of the file on the current branch is used.
-With one argument, that argument is used as the revision as above. With two
-arguments, the differences between the two revisions is displayed using
-vimdiff.
+ With one argument, that argument is used as the revision as above. With
+ two arguments, the differences between the two revisions is displayed using
+ vimdiff.
-With either zero or one argument, the original buffer is used to perform the
-vimdiff. When the other buffer is closed, the original buffer will be
-returned to normal mode.
+ With either zero or one argument, the original buffer is used to perform
+ the vimdiff. When the other buffer is closed, the original buffer will be
+ returned to normal mode.
-Once vimdiff mode is started using the above methods, additional vimdiff
-buffers may be added by passing a single version argument to the command.
-There may be up to 4 vimdiff buffers total.
+ Once vimdiff mode is started using the above methods, additional vimdiff
+ buffers may be added by passing a single version argument to the command.
+ There may be up to 4 vimdiff buffers total.
-Using the 2-argument form of the command resets the vimdiff to only those 2
-versions. Additionally, invoking the command on a different file will close
-the previous vimdiff buffers.
+ Using the 2-argument form of the command resets the vimdiff to only those 2
+ versions. Additionally, invoking the command on a different file will
+ close the previous vimdiff buffers.
-4.2 Mappings *hgcommand-mappings*
+4.2 Mappings *hgcommand-mappings*
-By default, a mapping is defined for each command. These mappings execute the
-default (no-argument) form of each command.
+ By default, a mapping is defined for each command. These mappings execute
+ the default (no-argument) form of each command.
-<Leader>hga HGAdd
-<Leader>hgn HGAnnotate
-<Leader>hgc HGCommit
-<Leader>hgd HGDiff
-<Leader>hgg HGGotoOriginal
-<Leader>hgG HGGotoOriginal!
-<Leader>hgl HGLog
-<Leader>hgr HGReview
-<Leader>hgs HGStatus
-<Leader>hgt HGUnedit
-<Leader>hgu HGUpdate
-<Leader>hgv HGVimDiff
+ <Leader>hga HGAdd
+ <Leader>hgn HGAnnotate
+ <Leader>hgc HGCommit
+ <Leader>hgd HGDiff
+ <Leader>hgg HGGotoOriginal
+ <Leader>hgG HGGotoOriginal!
+ <Leader>hgl HGLog
+ <Leader>hgr HGReview
+ <Leader>hgs HGStatus
+ <Leader>hgu HGUpdate
+ <Leader>hgv HGVimDiff
- *hgcommand-mappings-override*
+ *hgcommand-mappings-override*
-The default mappings can be overriden by user-provided instead by mapping to
-<Plug>CommandName. This is especially useful when these mappings collide with
-other existing mappings (vim will warn of this during plugin initialization,
-but will not clobber the existing mappings).
+ The default mappings can be overriden by user-provided instead by mapping
+ to <Plug>CommandName. This is especially useful when these mappings
+ collide with other existing mappings (vim will warn of this during plugin
+ initialization, but will not clobber the existing mappings).
-For instance, to override the default mapping for :HGAdd to set it to '\add',
-add the following to the vimrc:
+ For instance, to override the default mapping for :HGAdd to set it to
+ '\add', add the following to the vimrc: >
-nmap \add <Plug>HGAdd
-
-4.3 Automatic buffer variables *hgcommand-buffer-variables*
+ nmap \add <Plug>HGAdd
+<
+4.3 Automatic buffer variables *hgcommand-buffer-variables*
-Several buffer variables are defined in each HGCommand result buffer. These
-may be useful for additional customization in callbacks defined in the event
-handlers (please see |hgcommand-events|).
+ Several buffer variables are defined in each HGCommand result buffer.
+ These may be useful for additional customization in callbacks defined in
+ the event handlers (please see |hgcommand-events|).
-The following variables are automatically defined:
+ The following variables are automatically defined:
-b:hgOrigBuffNR *b:hgOrigBuffNR*
+b:hgOrigBuffNR *b:hgOrigBuffNR*
-This variable is set to the buffer number of the source file.
+ This variable is set to the buffer number of the source file.
-b:hgcmd *b:hgcmd*
+b:hgcmd *b:hgcmd*
-This variable is set to the name of the hg command that created the result
-buffer.
+ This variable is set to the name of the hg command that created the result
+ buffer.
==============================================================================
-5. Configuration and customization *hgcommand-customize*
- *hgcommand-config*
+5. Configuration and customization *hgcommand-customize*
+ *hgcommand-config*
-The HGCommand plugin can be configured in two ways: by setting configuration
-variables (see |hgcommand-options|) or by defining HGCommand event handlers
-(see |hgcommand-events|). Additionally, the HGCommand plugin provides
-several option for naming the HG result buffers (see |hgcommand-naming|) and
-supported a customized status line (see |hgcommand-statusline| and
-|hgcommand-buffer-management|).
+ The HGCommand plugin can be configured in two ways: by setting
+ configuration variables (see |hgcommand-options|) or by defining HGCommand
+ event handlers (see |hgcommand-events|). Additionally, the HGCommand
+ plugin provides several option for naming the HG result buffers (see
+ |hgcommand-naming|) and supported a customized status line (see
+ |hgcommand-statusline| and |hgcommand-buffer-management|).
-5.1 HGCommand configuration variables *hgcommand-options*
+5.1 HGCommand configuration variables *hgcommand-options*
-Several variables affect the plugin's behavior. These variables are checked
-at time of execution, and may be defined at the window, buffer, or global
-level and are checked in that order of precedence.
+ Several variables affect the plugin's behavior. These variables are
+ checked at time of execution, and may be defined at the window, buffer, or
+ global level and are checked in that order of precedence.
-The following variables are available:
+ The following variables are available:
-|HGCommandAnnotateParent|
-|HGCommandCommitOnWrite|
-|HGCommandHGExec|
-|HGCommandDeleteOnHide|
-|HGCommandDiffOpt|
-|HGCommandDiffSplit|
-|HGCommandEdit|
-|HGCommandEnableBufferSetup|
-|HGCommandInteractive|
-|HGCommandNameMarker|
-|HGCommandNameResultBuffers|
-|HGCommandSplit|
+ |HGCommandAnnotateParent|
+ |HGCommandCommitOnWrite|
+ |HGCommandHGExec|
+ |HGCommandDeleteOnHide|
+ |HGCommandDiffOpt|
+ |HGCommandDiffSplit|
+ |HGCommandEdit|
+ |HGCommandEnableBufferSetup|
+ |HGCommandInteractive|
+ |HGCommandNameMarker|
+ |HGCommandNameResultBuffers|
+ |HGCommandSplit|
+
+HGCommandAnnotateParent *HGCommandAnnotateParent*
-HGCommandAnnotateParent *HGCommandAnnotateParent*
+ This variable, if set to a non-zero value, causes the zero-argument form of
+ HGAnnotate when invoked on a HGAnnotate buffer to go to the version
+ previous to that displayed on the current line. If not set, it defaults to
+ 0.
-This variable, if set to a non-zero value, causes the zero-argument form of
-HGAnnotate when invoked on a HGAnnotate buffer to go to the version previous
-to that displayed on the current line. If not set, it defaults to 0.
-
-HGCommandCommitOnWrite *HGCommandCommitOnWrite*
+HGCommandCommitOnWrite *HGCommandCommitOnWrite*
-This variable, if set to a non-zero value, causes the pending hg commit
-to take place immediately as soon as the log message buffer is written.
-If set to zero, only the HGCommit mapping will cause the pending commit to
-occur. If not set, it defaults to 1.
+ This variable, if set to a non-zero value, causes the pending hg commit to
+ take place immediately as soon as the log message buffer is written. If
+ set to zero, only the HGCommit mapping will cause the pending commit to
+ occur. If not set, it defaults to 1.
-HGCommandHGExec *HGCommandHGExec*
+HGCommandHGExec *HGCommandHGExec*
-This variable controls the executable used for all HG commands If not set,
-it defaults to "hg".
+ This variable controls the executable used for all HG commands. If not
+ set, it defaults to "hg".
-HGCommandDeleteOnHide *HGCommandDeleteOnHide*
+HGCommandDeleteOnHide *HGCommandDeleteOnHide*
-This variable, if set to a non-zero value, causes the temporary HG result
-buffers to automatically delete themselves when hidden.
+ This variable, if set to a non-zero value, causes the temporary HG result
+ buffers to automatically delete themselves when hidden.
-HGCommandDiffOpt *HGCommandDiffOpt*
+HGCommandDiffOpt *HGCommandDiffOpt*
-This variable, if set, determines the options passed to the diff command of
-HG. If not set, it defaults to 'wbBc'.
+ This variable, if set, determines the options passed to the diff command of
+ HG. If not set, it defaults to 'w'.
-HGCommandDiffSplit *HGCommandDiffSplit*
+HGCommandDiffSplit *HGCommandDiffSplit*
-This variable overrides the |HGCommandSplit| variable, but only for buffers
-created with |:HGVimDiff|.
+ This variable overrides the |HGCommandSplit| variable, but only for buffers
+ created with |:HGVimDiff|.
-HGCommandEdit *HGCommandEdit*
+HGCommandEdit *HGCommandEdit*
-This variable controls whether the original buffer is replaced ('edit') or
-split ('split'). If not set, it defaults to 'edit'.
+ This variable controls whether the original buffer is replaced ('edit') or
+ split ('split'). If not set, it defaults to 'edit'.
-HGCommandEnableBufferSetup *HGCommandEnableBufferSetup*
+HGCommandEnableBufferSetup *HGCommandEnableBufferSetup*
-This variable, if set to a non-zero value, activates HG buffer management
-mode see (|hgcommand-buffer-management|). This mode means that two buffer
-variables, 'HGRevision' and 'HGBranch', are set if the file is
-HG-controlled. This is useful for displaying version information in the
-status bar.
+ This variable, if set to a non-zero value, activates HG buffer management
+ mode see (|hgcommand-buffer-management|). This mode means that three
+ buffer variables, 'HGRepository', 'HGRevision' and 'HGBranch', are set if
+ the file is HG-controlled. This is useful for displaying version
+ information in the status bar.
-HGCommandInteractive *HGCommandInteractive*
+HGCommandInteractive *HGCommandInteractive*
-This variable, if set to a non-zero value, causes appropriate commands (for
-the moment, only |:HGReview|) to query the user for a revision to use instead
-of the current revision if none is specified.
+ This variable, if set to a non-zero value, causes appropriate commands (for
+ the moment, only |:HGReview|) to query the user for a revision to use
+ instead of the current revision if none is specified.
-HGCommandNameMarker *HGCommandNameMarker*
+HGCommandNameMarker *HGCommandNameMarker*
-This variable, if set, configures the special attention-getting characters
-that appear on either side of the hg buffer type in the buffer name. This
-has no effect unless |HGCommandNameResultBuffers| is set to a true value. If
-not set, it defaults to '_'.
+ This variable, if set, configures the special attention-getting characters
+ that appear on either side of the hg buffer type in the buffer name. This
+ has no effect unless |HGCommandNameResultBuffers| is set to a true value.
+ If not set, it defaults to '_'.
-HGCommandNameResultBuffers *HGCommandNameResultBuffers*
+HGCommandNameResultBuffers *HGCommandNameResultBuffers*
-This variable, if set to a true value, causes the hg result buffers to be
-named in the old way ('<source file name> _<hg command>_'). If not set
-or set to a false value, the result buffer is nameless.
+ This variable, if set to a true value, causes the hg result buffers to be
+ named in the old way ('<source file name> _<hg command>_'). If not set or
+ set to a false value, the result buffer is nameless.
-HGCommandSplit *HGCommandSplit*
+HGCommandSplit *HGCommandSplit*
-This variable controls the orientation of the various window splits that
-may occur (such as with HGVimDiff, when using a HG command on a HG
-command buffer, or when the |HGCommandEdit| variable is set to 'split'.
-If set to 'horizontal', the resulting windows will be on stacked on top of
-one another. If set to 'vertical', the resulting windows will be
-side-by-side. If not set, it defaults to 'horizontal' for all but
-HGVimDiff windows.
-
-5.2 HGCommand events *hgcommand-events*
+ This variable controls the orientation of the various window splits that
+ may occur (such as with HGVimDiff, when using a HG command on a HG command
+ buffer, or when the |HGCommandEdit| variable is set to 'split'. If set to
+ 'horizontal', the resulting windows will be on stacked on top of one
+ another. If set to 'vertical', the resulting windows will be side-by-side.
+ If not set, it defaults to 'horizontal' for all but HGVimDiff windows.
-For additional customization, HGCommand can trigger user-defined events.
-Event handlers are provided by defining User event autocommands (see
-|autocommand|, |User|) in the HGCommand group with patterns matching the
-event name.
+5.2 HGCommand events *hgcommand-events*
-For instance, the following could be added to the vimrc to provide a 'q'
-mapping to quit a HGCommand scratch buffer:
+ For additional customization, HGCommand can trigger user-defined events.
+ Event handlers are provided by defining User event autocommands (see
+ |autocommand|, |User|) in the HGCommand group with patterns matching the
+ event name.
-augroup HGCommand
- au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q: bwipeout<cr>
-augroup END
+ For instance, the following could be added to the vimrc to provide a 'q'
+ mapping to quit a HGCommand scratch buffer: >
-The following hooks are available:
+ augroup HGCommand
+ au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q:
+ bwipeout<cr>
+ augroup END
+<
+
+ The following hooks are available:
-HGBufferCreated This event is fired just after a hg command
- result buffer is created and filled with the
- result of a hg command. It is executed within
- the context of the HG command buffer. The
- HGCommand buffer variables may be useful for
- handlers of this event (please see
- |hgcommand-buffer-variables|).
+HGBufferCreated This event is fired just after a hg command result
+ buffer is created and filled with the result of a hg
+ command. It is executed within the context of the HG
+ command buffer. The HGCommand buffer variables may be
+ useful for handlers of this event (please see
+ |hgcommand-buffer-variables|).
-HGBufferSetup This event is fired just after HG buffer setup
- occurs, if enabled.
-
-HGPluginInit This event is fired when the HGCommand plugin
- first loads.
+HGBufferSetup This event is fired just after HG buffer setup occurs,
+ if enabled.
-HGPluginFinish This event is fired just after the HGCommand
- plugin loads.
+HGPluginInit This event is fired when the HGCommand plugin first
+ loads.
-HGVimDiffFinish This event is fired just after the HGVimDiff
- command executes to allow customization of,
- for instance, window placement and focus.
+HGPluginFinish This event is fired just after the HGCommand plugin
+ loads.
-5.3 HGCommand buffer naming *hgcommand-naming*
+HGVimDiffFinish This event is fired just after the HGVimDiff command
+ executes to allow customization of, for instance,
+ window placement and focus.
-By default, the buffers containing the result of HG commands are nameless
-scratch buffers. It is intended that buffer variables of those buffers be
-used to customize the statusline option so that the user may fully control the
-display of result buffers.
+5.3 HGCommand buffer naming *hgcommand-naming*
-If the old-style naming is desired, please enable the
-|HGCommandNameResultBuffers| variable. Then, each result buffer will receive
-a unique name that includes the source file name, the HG command, and any
-extra data (such as revision numbers) that were part of the command.
+ By default, the buffers containing the result of HG commands are nameless
+ scratch buffers. It is intended that buffer variables of those buffers be
+ used to customize the statusline option so that the user may fully control
+ the display of result buffers.
+
+ If the old-style naming is desired, please enable the
+ |HGCommandNameResultBuffers| variable. Then, each result buffer will
+ receive a unique name that includes the source file name, the HG command,
+ and any extra data (such as revision numbers) that were part of the
+ command.
5.4 HGCommand status line support *hgcommand-statusline*
-It is intended that the user will customize the |'statusline'| option to
-include HG result buffer attributes. A sample function that may be used in
-the |'statusline'| option is provided by the plugin, HGGetStatusLine(). In
-order to use that function in the status line, do something like the
-following:
+ It is intended that the user will customize the |'statusline'| option to
+ include HG result buffer attributes. A sample function that may be used in
+ the |'statusline'| option is provided by the plugin, HGGetStatusLine(). In
+ order to use that function in the status line, do something like the
+ following: >
+
+ set statusline=%<%f\ %{HGGetStatusLine()}\ %h%m%r%=%l,%c%V\ %P
+<
+ of which %{HGGetStatusLine()} is the relevant portion.
-set statusline=%<%f\ %{HGGetStatusLine()}\ %h%m%r%=%l,%c%V\ %P
+ The sample HGGetStatusLine() function handles both HG result buffers and
+ HG-managed files if HGCommand buffer management is enabled (please see
+ |hgcommand-buffer-management|).
-of which %{HGGetStatusLine()} is the relevant portion.
+5.5 HGCommand buffer management *hgcommand-buffer-management*
-The sample HGGetStatusLine() function handles both HG result buffers and
-HG-managed files if HGCommand buffer management is enabled (please see
-|hgcommand-buffer-management|).
+ The HGCommand plugin can operate in buffer management mode, which means
+ that it attempts to set two buffer variables ('HGRevision' and 'HGBranch')
+ upon entry into a buffer. This is rather slow because it means that 'hg
+ status' will be invoked at each entry into a buffer (during the |BufEnter|
+ autocommand).
-5.5 HGCommand buffer management *hgcommand-buffer-management*
+ This mode is disabled by default. In order to enable it, set the
+ |HGCommandEnableBufferSetup| variable to a true (non-zero) value. Enabling
+ this mode simply provides the buffer variables mentioned above. The user
+ must explicitly include those in the |'statusline'| option if they are to
+ appear in the status line (but see |hgcommand-statusline| for a simple way
+ to do that).
+
+==============================================================================
+9. Tips *hgcommand-tips*
+
+9.1 Split window annotation, by Michael Anderson >
-The HGCommand plugin can operate in buffer management mode, which means that
-it attempts to set two buffer variables ('HGRevision' and 'HGBranch') upon
-entry into a buffer. This is rather slow because it means that 'hg status'
-will be invoked at each entry into a buffer (during the |BufEnter|
-autocommand).
+ :nmap <Leader>hgN :vs<CR><C-w>h<Leader>hgn:vertical res 40<CR>
+ \ggdddd:set scb<CR>:set nowrap<CR><C-w>lgg:set scb<CR>
+ \:set nowrap<CR>
+<
-This mode is disabled by default. In order to enable it, set the
-|HGCommandEnableBufferSetup| variable to a true (non-zero) value. Enabling
-this mode simply provides the buffer variables mentioned above. The user must
-explicitly include those in the |'statusline'| option if they are to appear in
-the status line (but see |hgcommand-statusline| for a simple way to do that).
+ This splits the buffer vertically, puts an annotation on the left (minus
+ the header) with the width set to 40. An editable/normal copy is placed on
+ the right. The two versions are scroll locked so they move as one. and
+ wrapping is turned off so that the lines line up correctly. The advantages
+ are...
+
+ 1) You get a versioning on the right.
+ 2) You can still edit your own code.
+ 3) Your own code still has syntax highlighting.
==============================================================================
-6. SSH "integration" *hgcommand-ssh*
-
-The following instructions are intended for use in integrating the
-hgcommand.vim plugin with an SSH-based HG environment.
-
-Familiarity with SSH and HG are assumed.
-
-These instructions assume that the intent is to have a message box pop up in
-order to allow the user to enter a passphrase. If, instead, the user is
-comfortable using certificate-based authentication, then only instructions
-6.1.1 and 6.1.2 (and optionally 6.1.4) need to be followed; ssh should then
-work transparently.
-
-6.1 Environment settings *hgcommand-ssh-env*
-
-6.1.1 HGROOT should be set to something like:
-
- :ext:user@host:/path_to_repository
-
-6.1.2 HG_RSH should be set to:
-
- ssh
-
- Together, those settings tell HG to use ssh as the transport when
- performing HG calls.
+8. Known bugs *hgcommand-bugs*
-6.1.3 SSH_ASKPASS should be set to the password-dialog program. In my case,
- running gnome, it's set to:
-
- /usr/libexec/openssh/gnome-ssh-askpass
-
- This tells SSH how to get passwords if no input is available.
-
-6.1.4 OPTIONAL. You may need to set SSH_SERVER to the location of the hg
- executable on the remote (server) machine.
-
-6.2 HG wrapper program *hgcommand-ssh-wrapper*
-
-Now you need to convince SSH to use the password-dialog program. This means
-you need to execute SSH (and therefore HG) without standard input. The
-following script is a simple perl wrapper that dissasociates the HG command
-from the current terminal. Specific steps to do this may vary from system to
-system; the following example works for me on linux.
-
-#!/usr/bin/perl -w
-use strict;
-use POSIX qw(setsid);
-open STDIN, '/dev/null';
-fork and do {wait; exit;};
-setsid;
-exec('hg', @ARGV);
-
-6.3 Configuring hgcommand.vim *hgcommand-ssh-config*
+ Please let me know if you run across any.
-At this point, you should be able to use your wrapper script to invoke HG with
-various commands, and get the password dialog. All that's left is to make HG
-use your newly-created wrapper script.
-
-6.3.1 Tell hgcommand.vim what HG executable to use. The easiest way to do this
- is globally, by putting the following in your .vimrc:
-
- let HGCommandHGExec=/path/to/hg/wrapper/script
-
-6.4 Where to go from here *hgcommand-ssh-other*
-
-The script given above works even when non-SSH HG connections are used,
-except possibly when interactively entering the message for HG commit log
-(depending on the editor you use... VIM works fine). Since the hgcommand.vim
-plugin handles that message without a terminal, the wrapper script can be used
-all the time.
-
-This allows mixed-mode operation, where some work is done with SSH-based HG
-repositories, and others with pserver or local access.
-
-It is possible, though beyond the scope of the plugin, to dynamically set the
-HG executable based on the HGROOT for the file being edited. The user
-events provided (such as HGBufferCreated and HGBufferSetup) can be used to
-set a buffer-local value (b:HGCommandHGExec) to override the HG executable
-on a file-by-file basis. Alternatively, much the same can be done (less
-automatically) by the various project-oriented plugins out there.
-
-It is highly recommended for ease-of-use that certificates with no passphrase
-or ssh-agent are employed so that the user is not given the password prompt
-too often.
-
-==============================================================================
-9. Tips *hgcommand-tips*
-
-9.1 Split window annotation, by Michael Anderson
-
-:nmap <Leader>hgN :vs<CR><C-w>h<Leader>hgn:vertical res 40<CR>
- \ggdddd:set scb<CR>:set nowrap<CR><C-w>lgg:set scb<CR>
- \:set nowrap<CR>
-
-This splits the buffer vertically, puts an annotation on the left (minus the
-header) with the width set to 40. An editable/normal copy is placed on the
-right. The two versions are scroll locked so they move as one. and wrapping
-is turned off so that the lines line up correctly. The advantages are...
-
-1) You get a versioning on the right.
-2) You can still edit your own code.
-3) Your own code still has syntax highlighting.
-
-==============================================================================
-
-8. Known bugs *hgcommand-bugs*
-
-Please let me know if you run across any.
-
-HGVimDiff, when using the original (real) source buffer as one of the diff
-buffers, uses some hacks to try to restore the state of the original buffer
-when the scratch buffer containing the other version is destroyed. There may
-still be bugs in here, depending on many configuration details.
+ HGVimDiff, when using the original (real) source buffer as one of the diff
+ buffers, uses some hacks to try to restore the state of the original buffer
+ when the scratch buffer containing the other version is destroyed. There
+ may still be bugs in here, depending on many configuration details.
==============================================================================
=== END_DOC