sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

blerc.template (52983B)


      1 # -*- mode: sh; mode: sh-bash -*-
      2 
      3 ## This is a template for "~/.blerc".
      4 ##
      5 ## To use ble.sh in bash, please set up "~/.bashrc" as follows:
      6 ##
      7 ## ```bash
      8 ## # bashrc
      9 ##
     10 ## # Please put the following line in the beginning of .bashrc
     11 ## # Note: Please replace $HOME/.local/share/blesh with the path to your ble.sh
     12 ## [[ $- == *i* ]] && "$HOME/.local/share/blesh/ble.sh" --noattach
     13 ##
     14 ## # Your bashrc contents should come between the two lines.
     15 ##
     16 ## # Please put the following line in the end of .bashrc
     17 ## [[ ${BLE_VERSION-} ]] && ble-attach
     18 ## ```
     19 ##
     20 
     21 ##-----------------------------------------------------------------------------
     22 ## Basic settings
     23 
     24 
     25 ## The following setting specifies the input encoding. Currently only "UTF-8"
     26 ## and "C" is available.
     27 
     28 #bleopt input_encoding=UTF-8
     29 
     30 
     31 ## The following setting specifies the pager used by ble.sh.  This is used to
     32 ## show the help of commands (f1).
     33 
     34 #bleopt pager=less
     35 
     36 ## The following setting specifies the editor used by ble.sh.  This is used for
     37 ## the widget edit-and-execute (C-x C-e) and editor for a large amount of
     38 ## command line texts.  Possible values include, for example, "vim", "emacs
     39 ## -nw" and "nano".
     40 
     41 #bleopt editor=vim
     42 
     43 
     44 ## The following settings sets the behavior of visible bells (vbell).
     45 ## "vbell_duration" sets the time duration to show the vbell. "vbell_align"
     46 ## controls the position of vbell. The value "left" (default) specifies that
     47 ## the vbell should be shown up on the top left corner of the terminal. The
     48 ## values "center" and "right" specify that the vbell is shown on the top
     49 ## center and the top right corner, respectively.
     50 
     51 #bleopt vbell_default_message=' Wuff, -- Wuff!! '
     52 #bleopt vbell_duration=2000
     53 #bleopt vbell_align=right
     54 
     55 
     56 ##-----------------------------------------------------------------------------
     57 ## Line editor settings
     58 
     59 
     60 ## The following settings turns on/off the audible bells and visible bells for
     61 ## errors while user edit. The non-empty value turns on the bells.
     62 
     63 #bleopt edit_abell=1
     64 #bleopt edit_vbell=
     65 
     66 
     67 ## The following setting turns on the delayed load of history when an non-empty
     68 ## value is set.
     69 
     70 #bleopt history_lazyload=1
     71 
     72 
     73 ## The following setting turns on the delete selection mode when an non-empty
     74 ## value is set. When the mode is turned on the selection is removed when a
     75 ## user inserts a character.
     76 
     77 #bleopt delete_selection_mode=1
     78 
     79 
     80 ## The following settings control the indentation. "indent_offset" sets the
     81 ## indent width. "indent_tabs" controls if tabs can be used for indentation or
     82 ## not. If "indent_tabs" is set to 0, tabs will never be used. Otherwise
     83 ## indentation is made with tabs and spaces.
     84 
     85 #bleopt indent_offset=4
     86 #bleopt indent_tabs=1
     87 
     88 
     89 ## "undo_point" controls the cursor position after "undo". When "beg" or "end"
     90 ## is specified, the cursor will be moved to the beginning or the end of the
     91 ## dirty section, respectively. When other values are specified, the original
     92 ## cursor position is reproduced.
     93 
     94 #bleopt undo_point=end
     95 
     96 
     97 ## The following setting controls forced layout calculations before graphical
     98 ## operations. When a non-empty value is specified, the forced calculations are
     99 ## enabled. When an empty string is set, the operations are switched to logical
    100 ## ones.
    101 
    102 #bleopt edit_forced_textmap=1
    103 
    104 
    105 ## The following option controls the interpretation of lines when going to the
    106 ## beginning or the end of the current line.  When the value `logical` is
    107 ## specified, the logical line is used, i.e., the beginning and the end of the
    108 ## line is determined based on the newline characters in the edited text.  When
    109 ## the value `graphical` is specified, the graphical line is used, i.e., the
    110 ## beginning and the end of the displayed line in the terminal is used.
    111 
    112 #bleopt edit_line_type=graphical
    113 
    114 
    115 ## The following option specifies the set of expansions performed by
    116 ## magic-space with a colon-separated list of expansion types. "history",
    117 ## "sabbrev", and "alias" can be specified.
    118 
    119 #bleopt edit_magic_expand=history:sabbrev
    120 
    121 
    122 ## This option configures the detailed behavior of the widget "magic-space"
    123 ## with a colon-separated list.  If the field "inline-sabbrev-no-insert" is
    124 ## specified, the insertion of "SP" is skipped when the inline sabbrev is
    125 ## performed by "magic-space".
    126 
    127 #bleopt edit_magic_opts=
    128 
    129 
    130 ## The following option controls the position of the info pane where completion
    131 ## menu, mode names, and other information are shown.  When the value "top" is
    132 ## specified, the info pane is shown just below the command line.  When the
    133 ## value "bottom" is specified, the info pane is shown at the bottom of the
    134 ## terminal.  The default is "top".
    135 
    136 #bleopt info_display=top
    137 
    138 
    139 ## The following settings controls the prompt after the cursor left the command
    140 ## line.  "prompt_ps1_final" contains a prompt string.  "prompt_ps1_transient"
    141 ## is a colon-separated list of fields "always", "same-dir" and "trim".  The
    142 ## prompt is replaced by "prompt_ps1_final" if it has a non-empty value.
    143 ## Otherwise, the prompt is trimmed leaving the last line if
    144 ## "prompt_ps1_transient" has a field "trim".  Otherwise, the prompt vanishes
    145 ## if "prompt_ps1_transient" has a non-empty value.  When
    146 ## "prompt_ps1_transient" contains a field "same-dir", the setting of
    147 ## "prompt_ps1_transient" is effective only when the current working directory
    148 ## did not change since the last command line.
    149 
    150 #bleopt prompt_ps1_final=
    151 #bleopt prompt_ps1_transient=trim
    152 
    153 
    154 ## The following settings controls the right prompt. "prompt_rps1" specifies
    155 ## the contents of the right prompt in the format of PS1.  When the cursor
    156 ## leaves the current command line, the right prompt is replaced by
    157 ## "prompt_rps1_final" if it has a non-empty value, or otherwise, the right
    158 ## prompt vanishes if "prompt_rps1_transient" is set to a non-empty value,
    159 
    160 #bleopt prompt_rps1='\w'
    161 #bleopt prompt_rps1_final=
    162 #bleopt prompt_rps1_transient=''
    163 
    164 
    165 ## The following settings specify the content of terminal titles and status
    166 ## lines.  "prompt_xterm_title" specifies the terminal title which can be set
    167 ## by "OSC 0 ; ... BEL".  "prompt_screen_title" is effective inside terminal
    168 ## multiplexers such as GNU screen and tmux and specifies the window title of
    169 ## the terminal multiplexer which can be set by "ESC k ... ST".
    170 ## "prompt_term_status" is only effective when terminfo entries "tsl" and "fsl"
    171 ## (or termcap entries "ts" and "ds") are available, and specifies the content
    172 ## of the status line which can be set by the terminfo entries.  When each
    173 ## setting has non-empty value, the content of corresponding title or status
    174 ## line is replaced just before PS1 is shown.
    175 
    176 #bleopt prompt_xterm_title=
    177 #bleopt prompt_screen_title=
    178 #bleopt prompt_term_status=
    179 
    180 
    181 ## The following settings control the status line.  "prompt_status_line"
    182 ## specifies the content of the status line.  If its value is empty, the status
    183 ## line is not shown.  "prompt_status_align" controls the position of the
    184 ## content in the status line.
    185 
    186 #bleopt prompt_status_line=
    187 #bleopt prompt_status_align=left
    188 
    189 
    190 ## "prompt_eol_mark" specifies the contents of the mark used to indicate the
    191 ## command output is not ended with newlines. The value can contain ANSI escape
    192 ## sequences.
    193 
    194 #bleopt prompt_eol_mark=$'\e[94m[ble: EOF]\e[m'
    195 
    196 
    197 ## "prompt_ruler" specifies the ruler between the previous command and the
    198 ## prompt (like powerlevel10k
    199 ## "POWERLEVEL9K_PROMPT_{ADD_NEWLINE,SHOW_RULER,RULER_*}").  When the empty
    200 ## value is specified, the ruler is disabled.  This is the default.  When the
    201 ## value "empty-line" is specified, an empty line is inserted between the
    202 ## command and the prompt.  When the other values are specified, the value is
    203 ## interpreted as an ANSI sequences, and the result is repeated to fill a line.
    204 
    205 #bleopt prompt_ruler=            # no ruler (default)
    206 #bleopt prompt_ruler=empty-line  # empty line
    207 #bleopt prompt_ruler=$'\e[94m-'  # blue line
    208 
    209 
    210 ## "prompt_command_changes_layout" specifies whether the commands called from
    211 ## the blehook PRECMD or the variable PROMPT_COMMAND output texts to the
    212 ## terminal and changes the layout.  When a non-empty value is specified,
    213 ## ble.sh resets the layout before running the hooks PRECMD and PROMPT_COMMAND
    214 ## and restores the layout after running the hooks.  When a empty value is
    215 ## specified, ble.sh assumes that these hooks do not output texts to the
    216 ## terminal and do not changes the cursor positions and skip the special
    217 ## treatment.
    218 
    219 #bleopt prompt_command_changes_layout=   # PRECMD/PROMPT_COMMAND not output
    220 #bleopt prompt_command_changes_layout=1  # PRECMD/PROMPT_COMMAND may output
    221 
    222 
    223 ## "exec_restore_pipestatus" controls whether ble.sh restores PIPESTATUS of the
    224 ## previous user command.  When this option is set to a non-empty value,
    225 ## PIPESTATUS is restored.  This feature is turned off by default because it
    226 ## adds extra execution costs.  Note that the values of PIPESTATUS of the
    227 ## previous command are always available with the array BLE_PIPESTATUS
    228 ## regardless of this setting.
    229 
    230 #bleopt exec_restore_pipestatus=1  # restores PIPESTATUS
    231 
    232 
    233 ## "exec_errexit_mark" specifies the format of the mark to show the exit status
    234 ## of the command when it is non-zero.  If this setting is an empty string the
    235 ## exit status will not be shown.  The value can contain ANSI escape sequences.
    236 
    237 #bleopt exec_errexit_mark=$'\e[91m[ble: exit %d]\e[m'
    238 
    239 
    240 ## "exec_elapsed_mark" specifies the format of the command execution time
    241 ## report.  It takes two arguments: the first is the string that explains the
    242 ## elapsed time, and the second is a number that represents the percentage of
    243 ## CPU core usage.  "exec_elapsed_enabled" specifies the condition that the
    244 ## command execution time report is displayed after the command execution.  The
    245 ## condition is expressed by an arithmetic expression, where a non-zero result
    246 ## causes displaying the report.  In the arithmetic expression, variables
    247 ## "real", "{usr,sys}{,_self,_child}", and "cpu" can be used.  "real"
    248 ## represents the elapsed time.  "usr" and "sys" represent the user and system
    249 ## time, respectively.  The suffixes "_self" and "_child" represent the part
    250 ## consumed in the main shell process and the other child processes including
    251 ## subshells and external programs, respectively.  "cpu" represents the
    252 ## percentage of the CPU core usage in integer, which can be calculated by
    253 ## "(usr+sys)*100/real".  The other values are all in unit of milliseconds.
    254 
    255 #bleopt exec_elapsed_mark=$'\e[94m[ble: elapsed %s (CPU %s%%)]\e[m'
    256 #bleopt exec_elapsed_enabled='usr+sys>=10000'
    257 
    258 
    259 ## The following setting controls the exit when jobs are remaining. When an
    260 ## empty string is set, the shell will never exit with remaining jobs through
    261 ## widgets. When an non-empty value is set, the shell will exit when exit is
    262 ## attempted twice consecutively.
    263 
    264 #bleopt allow_exit_with_jobs=
    265 
    266 
    267 ## The following setting controls the cursor position after the move to other
    268 ## history entries. When non-empty values are specified, the offset of the
    269 ## cursor from the beginning of the command line is preserved. When an empty
    270 ## value is specified the cursor position is the beginning or the end of the
    271 ## command lines when the move is to a newer or older entry, respectively.
    272 
    273 #bleopt history_preserve_point=
    274 
    275 
    276 ## The following setting controls the history sharing. If it has non-empty
    277 ## value, the history sharing is enabled. With the history sharing, the command
    278 ## history is shared with the other Bash ble.sh sessions with the history
    279 ## sharing turned on.
    280 
    281 #bleopt history_share=
    282 
    283 
    284 ## This option controls the target range in the command history for
    285 ## "erasedups", which is performed when it is specified in "HISTCONTROL".  When
    286 ## this option has an empty value, the target range is the entire history as in
    287 ## the plain Bash.  When this option evaluates to a positive integer "count",
    288 ## the target range is the last "n" entries in the command history.  When this
    289 ## option evaluates to a non-positive integer "offset", "offset" specifies the
    290 ## beginning of the target range relative to the history count at the session
    291 ## start.  The end of the target range is always the end of the command
    292 ## history.
    293 
    294 #bleopt history_erasedups_limit=       # entire history
    295 #bleopt history_erasedups_limit=0      # only new items added in this session
    296 #bleopt history_erasedups_limit=-1000  # new items and 1000 prev-session items
    297 #bleopt history_erasedups_limit=1000   # last 1000 items
    298 
    299 
    300 ## The following setting controls the behavior of the widget
    301 ## "accept-single-line-or-newline" in the single-line editing mode. The value
    302 ## is a subject of arithmetic evaluation. When it evaluates to negative
    303 ## integers, the line is always accepted. When it evaluates to 0, it enters the
    304 ## multiline editing mode when there is any unprocessed user inputs, or
    305 ## otherwise the line is accepted. When it evaluates to a positive integer "n",
    306 ## it enters the multiline editing mode when there is more than "n"unprocessed
    307 ## user inputs.
    308 
    309 #bleopt accept_line_threshold=5
    310 
    311 
    312 ## The following option controls the behavior when the number of characters
    313 ## exceeds the capacity specified by `line_limit_length`.  The value `none`
    314 ## means that the number of characters will not be checked.  The value
    315 ## `discard` means that the characters cannot be inserted when the number of
    316 ## characters exceeds the capacity.  The value `truncate` means that the
    317 ## command line is truncated from its end to fit into the capacity.  The value
    318 ## `editor` means that the widget `edit-and-execute` will be invoked to open an
    319 ## editor to edit the command line contents.
    320 
    321 #bleopt line_limit_type=none
    322 
    323 
    324 ## The following option specifies the capacity of the command line in the
    325 ## number of characters.  The number 0 or negative numbers means the unlimited
    326 ## capacity.
    327 
    328 #bleopt line_limit_length=10000
    329 
    330 
    331 ## The following option specifies the maximal number of characters which can be
    332 ## appended into the history.  When this option has a positive value, commands
    333 ## with the length longer than the value is not appended to the history.  When
    334 ## this option has a non-positive value, commands are always appended to the
    335 ## history regardless of their length.
    336 
    337 #bleopt history_limit_length=10000
    338 
    339 
    340 ##-----------------------------------------------------------------------------
    341 ## Terminal state control
    342 
    343 
    344 ## The following setting specifies the cursor type when commands are executed.
    345 ## The cursor type is specified by the argument of the control function
    346 ## DECSCUSR.
    347 
    348 #bleopt term_cursor_external=0
    349 
    350 
    351 ## The following settings, external and internal, specify the "modifyOtherKeys"
    352 ## states [the control function SM(>4)] when commands are executed and when
    353 ## ble.sh has control, respectively.
    354 
    355 #bleopt term_modifyOtherKeys_external=auto
    356 #bleopt term_modifyOtherKeys_internal=auto
    357 
    358 
    359 ## The following setting controls whether the kitty-keyboard-protocol sequences
    360 ## should pass-through the terminal multiplexers when the outermost terminal is
    361 ## kitty.  When this option has a non-empty string, the pass-through kitty
    362 ## protocol sequences are enabled.
    363 ##
    364 ## * This is intended to be used with tmux-3.4+.  This works with tmux-3.3a and
    365 ##   below as far as the user does not enable CapsLock or NumLock.  Note that
    366 ##   this might cause problems of keyboard inputs after detaching from tmux;
    367 ##   You might lose the control of the terminal applications that do not
    368 ##   support extended keys outside the terminal multiplexers.
    369 ##
    370 ## * This will cause the same problems when used with multiple windows in GNU
    371 ##   screen.  You will lose the control of the terminal applications without
    372 ##   the support for extended keys when there are more than one ble.sh session
    373 ##   or when there is at least one foreground ble.sh session in GNU screen.
    374 
    375 #bleopt term_modifyOtherKeys_passthrough_kitty_protocol=1
    376 
    377 ##-----------------------------------------------------------------------------
    378 ## Rendering options
    379 
    380 
    381 ## "tab_width" specifies the width of TAB on the command line. When an empty
    382 ## value is specified, the width in terminfo (tput it) is used.
    383 
    384 #bleopt tab_width=
    385 
    386 
    387 ## "char_width_mode" specifies the width of East_Asian_Width=A characters.
    388 ## When the value "east" is specified, the width is 2. When the value "west" is
    389 ## specified, the width is 1.  When the value "emacs" is specified, the width
    390 ## table (depending on characters) used in Emacs is used.  When the value
    391 ## "musl" is specified, the table for "wcwidth" of the musl C library in 2014
    392 ## is used [Note: recent versions of musl library is more conforming to Unicode
    393 ## so favor "west" or "east"].  When "auto" is specified, the character width
    394 ## mode is automatically selected based on interactions with the terminal.
    395 
    396 #bleopt char_width_mode=auto
    397 
    398 
    399 ## "char_width_version" specifies the Unicode version that char width
    400 ## determination bases on.  When "auto" is specified, ble.sh automatically
    401 ## tests the behavior of the terminal on startup and try to determine the
    402 ## appropriate version.  Supported versions are "4.1", "5.0", "5.2", "6.0",
    403 ## "6.1", "6.2", "6.3", "7.0", "8.0", "9.0", "10.0", "11.0", "12.0", "12.1",
    404 ## "13.0", "14.0", and "15.0".  The default value is "auto".
    405 
    406 #bleopt char_width_version=auto
    407 
    408 
    409 ## "emoji_width" specifies the width of emoji characters.  If an empty value is
    410 ## specified, special treatment of emoji is disabled.
    411 
    412 #bleopt emoji_width=2
    413 
    414 
    415 ## "emoji_version" specifies the version of Unicode Emoji.  Available values
    416 ## are 0.6, 0.7, 1.0, 2.0, 3.0, 4.0, 5.0, 11.0, 12.0, 12.1, 13.0, 13.1, 14.0,
    417 ## and 15.0.
    418 
    419 #bleopt emoji_version=13.1
    420 
    421 
    422 ## "emoji_opts" is a colon-separated list that represents the terminal
    423 ## capability for emojis.  When "tpvs" and "epvs" are specified, TPVS and EPVS
    424 ## (text/emoji presentation variation selectors), respectively, can be used to
    425 ## change he representation of emoji characters.  When "zwj" is specified, the
    426 ## emoji ZWJ sequences are supported.  When "ri" is specified, the flag emojis
    427 ## formed by two Regional_Indicators are supported.  When "unqualified" is
    428 ## specified, unqualified emojis are treated as emojis as well as the qualified
    429 ## emojis.
    430 
    431 #bleopt emoji_opts=ri
    432 
    433 
    434 ## This option specifies the type of the supported grapheme cluster of the
    435 ## terminal.  The empty string indicates that the terminal does not support the
    436 ## grapheme clusters.  The values "extended" and "legacy" indicate that the
    437 ## terminal supports the extended and legacy grapheme clusters, respectively.
    438 
    439 #bleopt grapheme_cluster=extended
    440 
    441 
    442 ## This option controls the behavior when ble.sh receives SIGWINCH.
    443 ## * When the value "redraw-safe" is specified, ble.sh redraws the new prompt
    444 ##   starting from the line of the current cursor position.
    445 ## * When the value "redraw-prev" is specified, ble.sh tries to go to the
    446 ##   beginning of the current prompt and overwrite the current one.  This is
    447 ##   similar to the behavior of GNU Readline.  This possibly erase the output
    448 ##   of the previous command because ble.sh tries to go to the beginning of the
    449 ##   current prompt assuming that the number of lines in the prompt does not
    450 ##   change by the terminal resizing.
    451 ## * When the value "redraw-here" is specified, ble.sh tries to determine the
    452 ##   number of lines that can be safely erased and go to the beginning of the
    453 ##   safe lines before the redraw.  This is the default behavior.  In
    454 ##   principle, this can also erase the previous outputs, but it would be
    455 ##   supposed to be rarely happen as far as the text reflowing of the terminal
    456 ##   behaves in a reasonable way.
    457 ## * When the value "clear" is specified, the terminal content is erased and
    458 ##   the new prompt will be drawn at the top of the terminal.  The previous
    459 ##   terminal contents including the command outputs will be lost.
    460 
    461 #bleopt canvas_winch_action=redraw-here
    462 
    463 ##-----------------------------------------------------------------------------
    464 ## User input settings
    465 
    466 ## The following setting sets the default keymap. The value "emacs" specifies
    467 ## that the emacs keymap should be used. The value "vi" specifies that the vi
    468 ## keymap (insert mode) should be used as the default. The value "auto"
    469 ## specifies that the keymap should be automatically selected from "emacs" or
    470 ## "vi" according to the current readline state "set -o emacs" or "set -o vi".
    471 
    472 #bleopt default_keymap=auto
    473 
    474 
    475 ## The following setting controls the treatment of isolated ESCs.  The value
    476 ## "esc" indicates that it should be treated as ESC.  The value "meta"
    477 ## indicates that it should be treated as Meta modifier.  The value "auto"
    478 ## indicates that the behavior will be switched to an appropriate side of "esc"
    479 ## or "meta" depending on the current keymap.
    480 
    481 #bleopt decode_isolated_esc=esc
    482 
    483 
    484 ## The following setting specifies the byte code used to abort the currently
    485 ## processed inputs. The default value 28 corresponds to "C-\".
    486 
    487 #bleopt decode_abort_char=28
    488 
    489 
    490 ## The following settings sets up the behavior for errors while user input
    491 ## decoding. "error_char" is the decoding error for the current character
    492 ## encoding. "error_cseq" indicates the unrecognized CSI sequences.
    493 ## "error_kseq" indicates the unbound key sequences. "abell" and "vbell" turn
    494 ## on/off the audible bells and visible bells on errors. If the variable is
    495 ## empty the bells are turned off, or otherwise turned on. "discard" controls
    496 ## if the chars/sequences will be discarded or processed in later stage. If a
    497 ## non-empty value is given, chars/sequences are discarded.
    498 
    499 #bleopt decode_error_char_abell=
    500 #bleopt decode_error_char_vbell=1
    501 #bleopt decode_error_char_discard=
    502 #bleopt decode_error_cseq_abell=
    503 #bleopt decode_error_cseq_vbell=1
    504 #bleopt decode_error_cseq_discard=1
    505 #bleopt decode_error_kseq_abell=1
    506 #bleopt decode_error_kseq_vbell=1
    507 #bleopt decode_error_kseq_discard=1
    508 
    509 
    510 ## This variable sets the limit to the count of recursive calls of keyboard
    511 ## macros.
    512 
    513 #bleopt decode_macro_limit=1024
    514 
    515 
    516 ## When a non-empty value is specified to this settings, the terminal's
    517 ## Bracketed Paste Mode (DEC mode 2004) is enabled.  This setting is
    518 ## synchronized with the readline variable "enable-bracketed-paste".
    519 
    520 #bleopt term_bracketed_paste_mode=on
    521 
    522 ##-----------------------------------------------------------------------------
    523 ## Settings for completion
    524 
    525 
    526 ## The following settings turn on/off the corresponding functionalities. When
    527 ## non-empty strings are set, the functionality is enabled. Otherwise, the
    528 ## functionality is inactive.
    529 
    530 #bleopt complete_auto_complete=1
    531 #bleopt complete_menu_complete=1
    532 #bleopt complete_menu_filter=1
    533 
    534 
    535 ## If "complete_ambiguous" has non-empty values, ambiguous completion
    536 ## candidates are generated for completion.
    537 
    538 #bleopt complete_ambiguous=1
    539 
    540 
    541 ## If "complete_contract_function_names" has non-empty values, the function
    542 ## name candidates are grouped by prefixes of the directory-like form "*/".
    543 
    544 #bleopt complete_contract_function_names=1
    545 
    546 
    547 ## By default, ble.sh does not allow rewriting the existing text if non-unique
    548 ## candidates does not contain the existing text.  If this setting has
    549 ## non-empty values, ble.sh rewrites the existing text.
    550 
    551 #bleopt complete_allow_reduction=1
    552 
    553 
    554 ## This option specifies the threshold to simplify the quotation type of the
    555 ## inserted word.  This option is evaluated as an arithmetic expression.  When
    556 ## this option evaluates to a negative value, the simplification of the
    557 ## quotation is disabled.  Otherwise, when the number of characters will be
    558 ## reduced by at least the specified value, the quotation is simplified.  The
    559 ## default is 0, which means that the quotation is simplified unless the number
    560 ## of characters increases by the simplification.
    561 
    562 #bleopt complete_requote_threshold=0
    563 
    564 
    565 ## If "complete_auto_history" has non-empty values, auto-complete searches
    566 ## matching command lines from history.
    567 
    568 #bleopt complete_auto_history=1
    569 
    570 
    571 ## The following setting controls the delay of auto-complete after the last
    572 ## user input. The unit is millisecond.
    573 
    574 #bleopt complete_auto_delay=100
    575 
    576 
    577 ## The setting "complete_auto_wordbreaks" is used as the delimiters for
    578 ## identifying words for M-right (auto-complete/insert-word).  The default
    579 ## value is $' \t\n'.  If the empty value is set, the default value is used.
    580 
    581 #bleopt complete_auto_wordbreaks=$' \t\n/'
    582 
    583 
    584 ## The setting "complete_auto_complete_opts" is a colon-separated list of
    585 ## options:
    586 ##
    587 ## - The option "suppress-after-complete" controls whether auto-complete is
    588 ##   enabled after TAB completions.  If "suppress-after-complete" is included,
    589 ##   auto-complete is enabled after TAB completions.  Otherwise, auto-complete
    590 ##   is disabled after TAB completions.
    591 
    592 #bleopt complete_auto_complete_opts=suppress-after-complete
    593 
    594 
    595 ## The setting "complete_auto_menu" controls the delay of "auto-menu".  When a
    596 ## non-empty string is set, auto-menu is enabled.  The string is evaluated as
    597 ## an arithmetic expression to give the delay in milliseconds.  ble.sh will
    598 ## automatically show the menu of completions after the idle time (for which
    599 ## user input does not arrive) reaches the delay.
    600 
    601 #bleopt complete_auto_menu=500
    602 
    603 
    604 ## When there are user inputs while generating completion candidates, the
    605 ## candidates generation will be canceled to process the user inputs. The
    606 ## following setting controls the interval of checking user inputs while
    607 ## generating completion candidates.
    608 
    609 #bleopt complete_polling_cycle=50
    610 
    611 
    612 ## A hint on the maximum acceptable size of any data structure generated during
    613 ## the completion process, beyond which the completion may be prematurely
    614 ## aborted to avoid excessive processing time.  "complete_limit" is used for
    615 ## TAB completion.  When its value is empty, the size checks are disabled.
    616 ## "complete_limit_auto" is used for auto-completion.  When its value is empty,
    617 ## the setting "complete_limit" is used instead. "complete_limit_auto_menu" is
    618 ## used for auto-menu.
    619 
    620 #bleopt complete_limit=500
    621 #bleopt complete_limit_auto=200
    622 #bleopt complete_limit_auto_menu=100
    623 
    624 
    625 ## The following setting controls the timeout for the pathname expansions
    626 ## performed in auto-complete.  When the word contains a glob pattern that
    627 ## takes a long time to evaluate the pathname expansion, auto-complete based on
    628 ## the filename is canceled based on the timeout setting.  The value specifies
    629 ## the timeout duration in milliseconds.  When the value is empty, the
    630 ## timeout is disabled.
    631 
    632 #bleopt complete_timeout_auto=5000
    633 
    634 
    635 ## The following setting controls the timeout for the pathname expansions to
    636 ## prepare COMP_WORDS and COMP_LINE for progcomp.  When the word contains a
    637 ## glob pattern that takes a long time to evaluate, the pathname expansion is
    638 ## canceled, and a noglob expansion is used to construct COMP_WORDS and
    639 ## COMP_LINE.  The value specifies ## the timeout duration in milliseconds.
    640 ## When the value is empty, the timeout is disabled.
    641 
    642 #bleopt complete_timeout_compvar=200
    643 
    644 
    645 ## The following setting specifies the style of the menu to show completion
    646 ## candidates. The value "dense" and "dense-nowrap" shows candidates separated
    647 ## by spaces. "dense-nowrap" is different from "dense" in the behavior that it
    648 ## inserts a new line before the candidates that does not fit into the
    649 ## remaining part of the current line. The value "align" and "align-nowrap"
    650 ## aligns the candidates. The value "linewise" shows a candidate per line.  The
    651 ## value "desc" and "desc-text" shows a candidate per line with description for
    652 ## each. "desc-text" is different from "desc" in the behavior that it does not
    653 ## interprets ANSI escape sequences in the descriptions.
    654 
    655 #bleopt complete_menu_style=align-nowrap
    656 
    657 
    658 ## When a non-empty value is specified to this setting, the matching text on
    659 ## the right of the cursor is removed on the insertion of the completion.  This
    660 ## setting is synchronized with the readline variable "skip-completed-text".
    661 
    662 #bleopt complete_skip_matched=on
    663 
    664 
    665 ## The following setting controls the detailed behavior of menu-complete with a
    666 ## colon-separated list of options:
    667 ##
    668 ## - When the option "insert-selection" is specified, the currently selected
    669 ##  menu item is temporarily inserted in the command line.
    670 
    671 #bleopt complete_menu_complete_opts=insert-selection
    672 
    673 
    674 ## When a non-empty value is specified to this setting, the highlighting of the
    675 ## menu items is enabled.  This setting is synchronized with the readline
    676 ## variable "colored-stats".
    677 
    678 #bleopt complete_menu_color=on
    679 
    680 
    681 ## When a non-empty value is specified to this setting, the part of the menu
    682 ## items matching with the already input text is highlighted.  This setting is
    683 ## synchronized with the readline variable "colored-completion-prefix".
    684 
    685 #bleopt complete_menu_color_match=on
    686 
    687 
    688 ## The following settings specify the maximal and minimal align widths for
    689 ## complete_menu_style="align" and "align-nowrap".
    690 
    691 #bleopt menu_align_min=4
    692 #bleopt menu_align_max=20
    693 
    694 
    695 ## The following setting specifies the maximal height of the menu.  When this
    696 ## value is evaluated to be a positive integer, the maximal line number of the
    697 ## menu is limited to that value.
    698 
    699 #bleopt complete_menu_maxlines=10
    700 
    701 
    702 ## The following settings specify the prefix of the menu items.  "menu_prefix"
    703 ## specifies the default prefix for any menu-style.
    704 ## "menu_{align,desc,linewise,dense}_prefix" specify the prefixes in the
    705 ## respective menu-styles.  The value is specified by a printf format, where
    706 ## the first argument is the index of the candidate.  ANSI escape sequences can
    707 ## also be used.  For example, the candidate index can be shown by setting the
    708 ## value '%d '.  The default value is empty.
    709 
    710 #bleopt menu_align=
    711 #bleopt menu_align_prefix='\e[1m%d:\e[m '
    712 #bleopt menu_desc_prefix='\e[1m%d.\e[m '
    713 #bleopt menu_linewise_prefix='\e[1;36m%d:\e[m '
    714 #bleopt menu_dense_prefix='\e[1;32m>\e[m '
    715 
    716 
    717 ## The following setting specifies the minimum column width for the multicolumn
    718 ## description for `complete_menu_style=desc'.  When the empty value is
    719 ## specified, the multicolumn mode is disabled.
    720 
    721 #bleopt menu_desc_multicolumn_width=65
    722 
    723 
    724 ## When this Readline setting is enabled, the cases of alphabets are ignored on
    725 ## completion generation.
    726 
    727 #bind 'set completion-ignore-case off'
    728 
    729 
    730 ## When this Readline setting is turned on, suffixes are added to the filename
    731 ## completions in the menu.  The characters "@", "/" and "*" are added to
    732 ## symbolic links, directories and executables, respectively.
    733 
    734 #bind 'set visible-stats off'
    735 
    736 
    737 ## When this Readline setting is turned on, the suffix "/" is inserted after
    738 ## the insertion of directory names.
    739 
    740 #bind 'set mark-directories on'
    741 
    742 
    743 ## When this Readline setting is turned on, the suffix "/" is inserted after
    744 ## symbolic links pointing to directories.
    745 
    746 #bind 'set mark-symlinked-directories on'
    747 
    748 
    749 ## When this Readline setting is turned on, the filenames starting with "." is
    750 ## also generated as possible completions.
    751 
    752 #bind 'set match-hidden-files on'
    753 
    754 
    755 ## By default, when filenames of the form "dir/file*" is shown in the menu, the
    756 ## part of the directory name "dir/" is omitted.  When this Readline setting is
    757 ## turned on, the directory name of filename completions are not omitted.
    758 
    759 #bind 'set menu-complete-display-prefix off'
    760 
    761 
    762 ## This option specifies a colon-separated list of glob patterns of sabbrev
    763 ## names ignored in generating the sabbrev completion candidates.
    764 
    765 #bleopt complete_source_sabbrev_ignore=
    766 
    767 
    768 ## This is a colon-separated list of options.  When the field
    769 ## `no-empty-completion` is specified, the sabbrev completion candidates are
    770 ## not generated when the word to complete is empty.
    771 
    772 #bleopt complete_source_sabbrev_opts=no-empty-completion
    773 
    774 ##-----------------------------------------------------------------------------
    775 ## Color settings
    776 
    777 ## The setting "term_index_colors" specifies the number of index colors used to
    778 ## specify colors in the terminal.  The value "auto" means that the use of
    779 ## index colors are determined based on the terminfo database and the value of
    780 ## TERM shell variable.  Otherwise, the value is evaluated as an arithmetic
    781 ## expression.  When it is evaluated to 256, the index colors are assumed to be
    782 ## xterm 256-color palette (16 basic + 6x6x6 color cube + 24 gray scale).  When
    783 ## it is evaluated to 88, the index colors are assumed to be xterm 88-color
    784 ## palette (16 basic + 4x4x4 color cube + 8 gray scale).  When it is evaluated
    785 ## to 0, ble.sh will never use the index colors to set colors.  When it is
    786 ## evaluated to other integers, the value specifies the maximum available
    787 ## index.
    788 
    789 #bleopt term_index_colors=256
    790 
    791 
    792 ## The setting "term_true_colors" specifies the format of 24-bit color escape
    793 ## sequences supported by your terminal.  The value "semicolon" indicates the
    794 ## format "CSI 3 8 ; 2 ; R ; G ; B m".  The value "colon" indicates the format
    795 ## "CSI 3 8 : 2 : R : G : B m".  The other value implies that the terminal does
    796 ## not support 24-bit color sequences.  In this case, ble.sh tries to output
    797 ## indexed color sequences or basic color sequences with properly reduced
    798 ## colors.
    799 
    800 #bleopt term_true_colors=semicolon
    801 
    802 
    803 ## The setting "filename_ls_colors" can be used to import the filename coloring
    804 ## scheme by the environment variable LS_COLORS.
    805 
    806 #bleopt filename_ls_colors="$LS_COLORS"
    807 
    808 
    809 ## The following settings enable or disable the syntax highlighting.  When the
    810 ## setting "highlight_syntax" has a non-empty value, the syntax highlighting is
    811 ## enabled.  When the setting "highlight_filename" has a non-empty value, the
    812 ## highlighting based on the filename and the command name is enabled during
    813 ## the process of the syntax highlighting.  Similarly, when the setting
    814 ## "highlight_variable" has a non-empty value, the highlighting based on the
    815 ## variable type is enabled.  All of these settings have non-empty values by
    816 ## default.
    817 
    818 #bleopt highlight_syntax=
    819 #bleopt highlight_filename=
    820 #bleopt highlight_variable=
    821 
    822 
    823 ## The following settings control the timeout and user-input cancellation of
    824 ## the pathname expansions performed in the syntax highlighting.  When the word
    825 ## contains a glob pattern that takes a long time to evaluate the pathname
    826 ## expansion, the syntax highlighting based on the filename is canceled based
    827 ## on the timeouts specified by these settings.  "highlight_timeout_sync" /
    828 ## "highlight_timeout_async" specify the timeout durations in milliseconds to
    829 ## be used for the foreground / background syntax highlighting, respectively.
    830 ## When the timeout occurred in the foreground, the syntax highlighting will be
    831 ## deferred to the background syntax highlighting.  When the timeout occurred
    832 ## in the background, the syntax highlighting for the filename is canceled.
    833 ## When the value is empty, the corresponding timeout is disabled.
    834 ## "syntax_eval_polling_interval" specifies the maximal interval between the
    835 ## user-input checking.
    836 
    837 #bleopt highlight_timeout_sync=500
    838 #bleopt highlight_timeout_async=5000
    839 #bleopt syntax_eval_polling_interval=50
    840 
    841 
    842 ## The following settings specify graphic styles of each faces.
    843 
    844 #ble-face -s region                    fg=white,bg=60
    845 #ble-face -s region_insert             fg=blue,bg=252
    846 #ble-face -s region_match              fg=white,bg=55
    847 #ble-face -s region_target             fg=black,bg=153
    848 #ble-face -s disabled                  fg=242
    849 #ble-face -s overwrite_mode            fg=black,bg=51
    850 #ble-face -s auto_complete             fg=238,bg=254
    851 #ble-face -s menu_filter_fixed         bold
    852 #ble-face -s menu_filter_input         fg=16,bg=229
    853 #ble-face -s vbell                     reverse
    854 #ble-face -s vbell_erase               bg=252
    855 #ble-face -s vbell_flash               fg=green,reverse
    856 #ble-face -s prompt_status_line        fg=231,bg=240
    857 
    858 #ble-face -s syntax_default            none
    859 #ble-face -s syntax_command            fg=brown
    860 #ble-face -s syntax_quoted             fg=green
    861 #ble-face -s syntax_quotation          fg=green,bold
    862 #ble-face -s syntax_escape             fg=magenta
    863 #ble-face -s syntax_expr               fg=navy
    864 #ble-face -s syntax_error              bg=203,fg=231
    865 #ble-face -s syntax_varname            fg=202
    866 #ble-face -s syntax_delimiter          bold
    867 #ble-face -s syntax_param_expansion    fg=purple
    868 #ble-face -s syntax_history_expansion  bg=94,fg=231
    869 #ble-face -s syntax_function_name      fg=92,bold
    870 #ble-face -s syntax_comment            fg=gray
    871 #ble-face -s syntax_glob               fg=198,bold
    872 #ble-face -s syntax_brace              fg=37,bold
    873 #ble-face -s syntax_tilde              fg=navy,bold
    874 #ble-face -s syntax_document           fg=94
    875 #ble-face -s syntax_document_begin     fg=94,bold
    876 #ble-face -s command_builtin_dot       fg=red,bold
    877 #ble-face -s command_builtin           fg=red
    878 #ble-face -s command_alias             fg=teal
    879 #ble-face -s command_function          fg=92 # fg=purple
    880 #ble-face -s command_file              fg=green
    881 #ble-face -s command_keyword           fg=blue
    882 #ble-face -s command_jobs              fg=red,bold
    883 #ble-face -s command_directory         fg=navy,underline
    884 #ble-face -s argument_option           fg=teal
    885 #ble-face -s argument_option           fg=black,bg=225
    886 #ble-face -s filename_directory        underline,fg=26
    887 #ble-face -s filename_directory_sticky underline,fg=white,bg=26
    888 #ble-face -s filename_link             underline,fg=teal
    889 #ble-face -s filename_orphan           underline,fg=teal,bg=224
    890 #ble-face -s filename_setuid           underline,fg=black,bg=220
    891 #ble-face -s filename_setgid           underline,fg=black,bg=191
    892 #ble-face -s filename_executable       underline,fg=green
    893 #ble-face -s filename_other            underline
    894 #ble-face -s filename_socket           underline,fg=cyan,bg=black
    895 #ble-face -s filename_pipe             underline,fg=lime,bg=black
    896 #ble-face -s filename_character        underline,fg=white,bg=black
    897 #ble-face -s filename_block            underline,fg=yellow,bg=black
    898 #ble-face -s filename_warning          underline,fg=red
    899 #ble-face -s filename_url              underline,fg=blue
    900 #ble-face -s filename_ls_colors        underline
    901 #ble-face -s varname_array             fg=orange,bold
    902 #ble-face -s varname_empty             fg=31
    903 #ble-face -s varname_export            fg=200,bold
    904 #ble-face -s varname_expr              fg=92,bold
    905 #ble-face -s varname_hash              fg=70,bold
    906 #ble-face -s varname_number            fg=64
    907 #ble-face -s varname_readonly          fg=200
    908 #ble-face -s varname_transform         fg=29,bold
    909 #ble-face -s varname_unset             fg=124
    910 
    911 #ble-face -s cmdinfo_cd_cdpath         fg=26,bg=155
    912 
    913 ##-----------------------------------------------------------------------------
    914 ## Keybindings
    915 
    916 
    917 ## The default mapping of <SP> in ble.sh is magic-space which performs history
    918 ## and sabbrev expansion before inserting a space.  If you want to insert just
    919 ## a space without expansions as Bash's default, use the following setting:
    920 
    921 #ble-bind -f 'SP' 'self-insert'
    922 
    923 
    924 ## The default mapping of `/' (<slash>) in ble.sh is magic-slash which performs
    925 ## sabbrev expansions of the name ` ~*'.  If you want to insert just a slash
    926 ## without expansions as Bash's default, use the following setting:
    927 
    928 #ble-bind -f '/' 'self-insert'
    929 
    930 
    931 ## If you want to search the already input string using <up> and <down> keys,
    932 ## use the following setting:
    933 
    934 #ble-bind -f up 'history-search-backward'
    935 #ble-bind -f down 'history-search-forward'
    936 
    937 
    938 ## If you want to immediately run the matched command by RET, you can specify
    939 ## the option "immediate-accept" to nsearch widgets:
    940 
    941 #ble-bind -f up 'history-search-backward immediate-accept'
    942 #ble-bind -f down 'history-search-forward immediate-accept'
    943 
    944 
    945 ## If you want to kill/copy words including the spaces preceding them, you can
    946 ## use the following keybindings:
    947 
    948 #ble-bind -f C-w 'kill-region-or kill-uword'
    949 #ble-bind -f M-w 'copy-region-or copy-uword'
    950 
    951 ##-----------------------------------------------------------------------------
    952 ## Settings for Emacs mode
    953 
    954 function blerc/emacs-load-hook {
    955   #----------------------------------------------------------------------------
    956   # Settings for the mode indicator
    957 
    958   ## The following option specifies the content of the mode indicator shown in
    959   ## the info line as a prompt sequence.
    960 
    961   #bleopt prompt_emacs_mode_indicator='\q{keymap:emacs/mode-indicator}'
    962 
    963 
    964   ## The following option specifies the multiline mode name used in the prompt
    965   ## sequence \q{keymap:emacs/mode-indicator} in the multiline editing mode.
    966 
    967   # default
    968   #bleopt keymap_emacs_mode_string_multiline=$'\e[1m-- MULTILINE --\e[m'
    969   # do not show the mode name
    970   #bleopt keymap_emacs_mode_string_multiline=
    971 
    972   #----------------------------------------------------------------------------
    973   # Keybindings
    974 
    975   ## The default mapping of RET and C-m inserts newline with multiline commands
    976   ## or incomplete commands.  With the following setting, RET and C-m always
    977   ## causes the execution of the command even in the multiline mode or when the
    978   ## command is not syntactically completed.
    979 
    980   #ble-bind -f 'C-m' accept-line
    981   #ble-bind -f 'RET' accept-line
    982 
    983 
    984   ## With the following settings, M-backspace (whose actual key sequence
    985   ## depends on your terminal) will kill the backward word as in the default
    986   ## readline.
    987 
    988   #ble-bind -f 'M-C-?' kill-backward-cword
    989   #ble-bind -f 'M-DEL' kill-backward-cword
    990   #ble-bind -f 'M-C-h' kill-backward-cword
    991   #ble-bind -f 'M-BS'  kill-backward-cword
    992 
    993   return 0
    994 }
    995 blehook/eval-after-load keymap_emacs blerc/emacs-load-hook
    996 
    997 ##-----------------------------------------------------------------------------
    998 ## Settings for Vim mode
    999 
   1000 function blerc/vim-load-hook {
   1001   ((_ble_bash>=40300)) && builtin bind 'set keyseq-timeout 1'
   1002 
   1003   #----------------------------------------------------------------------------
   1004   # Settings for the mode indicator
   1005 
   1006   ## The following option specifies the content of the mode indicator shown in
   1007   ## the info line as a prompt sequence.
   1008 
   1009   #bleopt prompt_vi_mode_indicator='\q{keymap:vi/mode-indicator}'
   1010 
   1011 
   1012   ## The following option controls whether the prompt sequence
   1013   ## \q{keymap:vi/mode-indicator} is activated.  When this option has a
   1014   ## non-empty value, \q{keymap:vi/mode-indicator} is expanded to the mode
   1015   ## indicator. Otherwise, \q{keymap:vi/mode-indicator} is expanded to the
   1016   ## empty string.
   1017 
   1018   #bleopt keymap_vi_mode_show=1
   1019 
   1020 
   1021   ## The following options specify the name of modes in
   1022   ## \q{keymap:vi/mode-indicator}.
   1023 
   1024   #bleopt keymap_vi_mode_name_insert=INSERT
   1025   #bleopt keymap_vi_mode_name_replace=REPLACE
   1026   #bleopt keymap_vi_mode_name_vreplace=VREPLACE
   1027   #bleopt keymap_vi_mode_name_visual=VISUAL
   1028   #bleopt keymap_vi_mode_name_select=SELECT
   1029   #bleopt keymap_vi_mode_name_linewise=LINE
   1030   #bleopt keymap_vi_mode_name_blockwise=BLOCK
   1031 
   1032 
   1033   ## This option specifies the result of \q{keymap:vi/mode-indicator} in the
   1034   ## normal mode.  For example, if you want to show an explicit name of the
   1035   ## normal mode like in other modes, please use the following setting:
   1036 
   1037   #bleopt keymap_vi_mode_string_nmap:=$'\e[1m-- NORMAL --\e[m'
   1038 
   1039 
   1040   ## This option specifies that all the prompts should be recalculated on the
   1041   ## mode change.  When this option has a non-empty value, the prompt will be
   1042   ## recalculated.
   1043 
   1044   #bleopt keymap_vi_mode_update_prompt=
   1045 
   1046   #----------------------------------------------------------------------------
   1047   # Keybindings
   1048 
   1049   ## The following setting sets up the keymap settings with Meta modifiers.
   1050   ## With this setting, M-RET can be used to insert a newline in the
   1051   ## commandline.
   1052 
   1053   #ble-decode/keymap:vi_imap/define-meta-bindings
   1054 
   1055   ## In this case, C-RET can be optionally configured so that it forcibly
   1056   ## executes the command.
   1057 
   1058   #ble-bind -m vi_imap -f 'C-RET' 'accept-line'
   1059 
   1060   ## The default mapping of <M-backspace> (whose actual key sequence depends on
   1061   ## your terminal) copies the previous shell word in the kill ring.  Instead,
   1062   ## the following settings will kill the backward word as in the default
   1063   ## readline.
   1064 
   1065   #ble-bind -m vi_imap -f 'M-C-?' kill-backward-cword
   1066   #ble-bind -m vi_imap -f 'M-DEL' kill-backward-cword
   1067   #ble-bind -m vi_imap -f 'M-C-h' kill-backward-cword
   1068   #ble-bind -m vi_imap -f 'M-BS'  kill-backward-cword
   1069 
   1070 
   1071   ## The default mapping of RET and C-m in the insert mode inserts newline with
   1072   ## multiline commands or incomplete commands.  They moves the cursor position
   1073   ## to the next line in the normal mode.  Instead, with the following setting,
   1074   ## RET and C-m always causes the execution of the command even in the
   1075   ## multiline mode or when the command is not syntactically completed.
   1076 
   1077   #ble-bind -m vi_imap -f 'C-m' accept-line
   1078   #ble-bind -m vi_imap -f 'RET' accept-line
   1079   #ble-bind -m vi_nmap -f 'C-m' accept-line
   1080   #ble-bind -m vi_nmap -f 'RET' accept-line
   1081 
   1082 
   1083   ## The default mapping of C-o is vi_imap/single-command-mode.  If you want to
   1084   ## execute the current command line and load the next history entry with
   1085   ## <C-o>, use the following setting:
   1086 
   1087   #ble-bind -m vi_imap -f 'C-o' 'accept-and-next'
   1088 
   1089 
   1090   ## The default mapping of C-k is kill-forward-line.  If you want to input
   1091   ## digraphs with <C-k>{char1}{char2}, use the following setting:
   1092 
   1093   #ble-bind -m vi_imap -f 'C-k' 'vi_imap/insert-digraph'
   1094 
   1095 
   1096   ## The default mapping of C-c is vi_imap/normal-mode-without-insert-leave
   1097   ## (imap), vi-command/cancel (nmap).  If you instead want to discard the
   1098   ## current line and go to the next line, you can bind C-c to 'discard-line':
   1099 
   1100   #ble-bind -m vi_imap -f 'C-c' discard-line
   1101   #ble-bind -m vi_nmap -f 'C-c' discard-line
   1102 
   1103 
   1104   ## The default mapping of 'g g' and G moves the current position in the
   1105   ## command history.  If you would like to move the cursor position in the
   1106   ## current command entry, you can overwrite the bindings as follows.
   1107 
   1108   #ble-bind -m vi_nmap -f 'g g' vi-command/first-nol
   1109   #ble-bind -m vi_omap -f 'g g' vi-command/first-nol
   1110   #ble-bind -m vi_xmap -f 'g g' vi-command/first-nol
   1111   #ble-bind -m vi_nmap -f 'G' vi-command/last-line
   1112   #ble-bind -m vi_omap -f 'G' vi-command/last-line
   1113   #ble-bind -m vi_xmap -f 'G' vi-command/last-line
   1114 
   1115 
   1116   ## The default mapping of 'C-r' in the normal mode is "vi_nmap/redo".  If you
   1117   ## want to use the incremental search mode from Emacs in the Vim mode (as in
   1118   ## Readline), please use the following keybinding.
   1119 
   1120   #ble-bind -m vi_nmap -f 'C-r' history-isearch-backward
   1121 
   1122   #----------------------------------------------------------------------------
   1123   # Cursor shapes and other terminal settings
   1124 
   1125   ## Cursor settings
   1126 
   1127   #ble-bind -m vi_nmap --cursor 2
   1128   #ble-bind -m vi_imap --cursor 5
   1129   #ble-bind -m vi_omap --cursor 4
   1130   #ble-bind -m vi_xmap --cursor 2
   1131   #ble-bind -m vi_smap --cursor 2
   1132   #ble-bind -m vi_cmap --cursor 0
   1133 
   1134   ## DECSCUSR setting
   1135   ##
   1136   ##   If you don't have the entry Ss in terminfo, yet your terminal supports
   1137   ##   DECSCUSR, please comment out the following line to enable DECSCUSR.
   1138   ##
   1139   #_ble_term_Ss=$'\e[@1 q'
   1140 
   1141   ## Control sequences that will be output on entering each mode
   1142   #bleopt term_vi_nmap=
   1143   #bleopt term_vi_imap=
   1144   #bleopt term_vi_omap=
   1145   #bleopt term_vi_xmap=
   1146   #bleopt term_vi_smap=
   1147   #bleopt term_vi_cmap=
   1148 
   1149   #----------------------------------------------------------------------------
   1150   # Miscellaneous settings
   1151 
   1152   ## This option controls the frequency of recording "undo".  When the value
   1153   ## "more" is specified, "undo" will be recorded for various operations in
   1154   ## "vi_imap".
   1155 
   1156   #bleopt keymap_vi_imap_undo=
   1157 
   1158 
   1159   ## This option controls the behavior of motion in select mode.  The value is
   1160   ## a list of words separated by commas.  When the word "stopsel" is contained
   1161   ## in this option, ble.sh exits the select mode with a motion in select mode.
   1162 
   1163   #bleopt keymap_vi_keymodel=
   1164 
   1165 
   1166   ## This option sets the upper limit of the maximal depth of recurrence of
   1167 
   1168   ## replaying keyboard macros.
   1169   #bleopt keymap_vi_macro_depth=64
   1170 
   1171 
   1172   ## This option specifies the operator name when the user input "g@" in normal
   1173   ## mode.  The function "ble/keymap:vi/operator:$value", where "$value" is the
   1174   ## value of this setting, is used as the implementation of the operator.
   1175 
   1176   #bleopt keymap_vi_operatorfunc=
   1177 
   1178 
   1179   ## When this option has a non-empty value, "/", "?", "n", "N" search the word
   1180   ## on the current position.  When this option has the empty value, these keys
   1181   ## follows the behavior of `vim`.
   1182 
   1183   #bleopt keymap_vi_search_match_current=
   1184 
   1185   #----------------------------------------------------------------------------
   1186   # plugins
   1187 
   1188   ## vim-surround
   1189 
   1190   #ble-import vim-surround
   1191   #bleopt vim_surround_45:=$'$( \r )'
   1192   #bleopt vim_surround_61:=$'$(( \r ))'
   1193 
   1194   ## vim-arpeggio
   1195 
   1196   #ble-import vim-arpeggio
   1197   #bleopt vim_arpeggio_timeoutlen=10
   1198   #ble/lib/vim-arpeggio.sh/bind -s jk 'hello'
   1199 
   1200   ## vim-airline
   1201 
   1202   #ble-import vim-airline
   1203   #bleopt vim_airline_theme=light
   1204   #bleopt vim_airline_section_a='\e[1m\q{lib/vim-airline/mode}'
   1205   #bleopt vim_airline_section_b='\q{lib/vim-airline/gitstatus}'
   1206   #bleopt vim_airline_section_c='\w'
   1207   #bleopt vim_airline_section_x='bash'
   1208   #bleopt vim_airline_section_y='$_ble_util_locale_encoding[unix]'
   1209   #bleopt vim_airline_section_z=' \q{history-percentile} \e[1m!\q{history-index}/\!\e[22m \q{position}'
   1210   #bleopt vim_airline_left_sep=$'\uE0B0'
   1211   #bleopt vim_airline_left_alt_sep=$'\uE0B1'
   1212   #bleopt vim_airline_right_sep=$'\uE0B2'
   1213   #bleopt vim_airline_right_alt_sep=$'\uE0B3'
   1214   #bleopt vim_airline_symbol_branch=$'\uE0A0'
   1215   #bleopt vim_airline_symbol_dirty=$'\u26A1'
   1216 }
   1217 blehook/eval-after-load keymap_vi blerc/vim-load-hook
   1218 
   1219 ##-----------------------------------------------------------------------------
   1220 ## Internal settings
   1221 
   1222 ## This option sets the interval of checking new user inputs.  The value is
   1223 ## evaluated as an arithmetic expression.  On the evaluation, a shell variable
   1224 ## "ble_util_idle_elapsed" is provided for the time since the last user input
   1225 ## in millisecond.  This option is used for the polling for the background
   1226 ## execution when there is no user inputs.
   1227 
   1228 #bleopt idle_interval='ble_util_idle_elapsed>600000?500:(ble_util_idle_elapsed>60000?200:(ble_util_idle_elapsed>5000?100:20))'
   1229 
   1230 
   1231 ## This option specifies a colon-separated list of custom search paths of "ble-import".
   1232 
   1233 #bleopt import_path="${XDG_DATA_HOME:-$HOME/.local/share}/blesh/local"
   1234 
   1235 
   1236 ## When a non-empty value is specified to this option, displays the internal
   1237 ## syntax analysis information and the syntax tree.  This is only effective in
   1238 ## devel versions.
   1239 
   1240 #bleopt syntax_debug=
   1241 
   1242 
   1243 ## When the option "debug_xtrace" contains a non-empty value, xtrace (set -x)
   1244 ## is enabled for the internal processing of ble.sh.  The value is used for the
   1245 ## xtrace output log filename. [ Caution: The file size of the log file can
   1246 ## soon grow up to hundred megabytes or to gigabytes. ]  The option
   1247 ## "debug_xtrace_ps4" specifies the value of PS4 for xtrace enabled by
   1248 ## "debug_xtrace".
   1249 
   1250 #bleopt debug_xtrace=~/blesh.xtrace
   1251 #bleopt debug_xtrace_ps4='+ '
   1252 
   1253 
   1254 ## When the option "debug_idle" contains a non-empty value, the background
   1255 ## tasks currently running are shown in the info panel.
   1256 
   1257 #bleopt debug_idle=1
   1258 
   1259 
   1260 ## [The setting "openat_base" needs to be set before ble.sh is loaded or
   1261 ## specified in the source options.  Therefore the value should be assigned
   1262 ## directly to the shell variable "bleopt_openat_base" instead of using
   1263 ## "bleopt" command.]
   1264 ##
   1265 ## This setting "openat_base" specifies the starting number of the file
   1266 ## descriptors which ble.sh internally uses in Bash 4.0 or lower.  The value of
   1267 ## this setting is used as the number for the first file descriptor of internal
   1268 ## use, and the next value is used for the second file descriptor, and so on.
   1269 ## When you want to use the default value 30 and succeeding number 31, 32,
   1270 ## etc. for other purposes, please set to this settings another value which
   1271 ## does not conflict with file descriptors of other purposes.
   1272 
   1273 # echo "usage: e.g. source out/ble.sh -o openat_base=30"
   1274 
   1275 
   1276 ## It specifies the context of the command execution.  The value "gexec"
   1277 ## specifies that the user command is evaluated in global contexts.  The value
   1278 ## "exec" (ble-0.3 and before) specified that the user command is evaluated in
   1279 ## a function, but the support is removed in ble-0.4 because this is only
   1280 ## remained for a debugging purpose and not tested well.
   1281 
   1282 #bleopt internal_exec_type=gexec
   1283 
   1284 
   1285 ## This option sets the message that Bash outputs when "C-d" is input by user.
   1286 ## This value is used to detect that the user inputs "C-d" in Bash 3.
   1287 
   1288 #bleopt internal_ignoreeof_trap='Use "exit" to leave the shell.'
   1289 
   1290 
   1291 ## This option controls the output of stack dump when assertion is failed in
   1292 ## ble.sh.  When the value is evaluated to be non-zero, the stack dump is
   1293 ## printed for assertion failures.
   1294 
   1295 #bleopt internal_stackdump_enabled=0
   1296 
   1297 
   1298 ## When a non-empty value is specified to this option, the standard output and
   1299 ## standard error from Bash is not output to the terminal.  When the value is
   1300 ## empty, ble.sh tries to realize the line editing allowing Bash to output its
   1301 ## own standard output and error.  This setting has a flickering problem and
   1302 ## only left for debugging purpose, so it is not tested.  Normally a non-empty
   1303 ## value should be specified so as to suppress the standard output and error
   1304 ## from Bash.
   1305 
   1306 #bleopt internal_suppress_bash_output=1