github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/docs/changelog/v4.2.md (about)

     1  # v4.2
     2  
     3  Murex usage has raised considerably in recent weeks. This release addresses a number of feature requests and bugs raised on Github.
     4  
     5  ## Breaking Changes
     6  
     7  none
     8  
     9  ### Features
    10  
    11  * new flag in `foreach`: `--step <int>`. This allows the `foreach` to jump indexes at a time. When used, all the lines jumped are merged into a JSON array and that is passed to the `foreach` nested code block
    12  
    13  * new alias `builtin` => `fexec builtin`. This was added to bring more familiarity to those coming from Bash et al ([#608](https://github.com/lmorg/murex/issues/608))
    14  
    15  * on Darwin, Homebrew defaults are imported, just like you'd expect them to be from any other shell
    16  
    17  * new hotkeys ([#611](https://github.com/lmorg/murex/issues/611)) ([#613](https://github.com/lmorg/murex/issues/613)):
    18  
    19    1. `ctrl`+`a`: jump to beginning of line
    20  
    21    2. `ctrl`+`e`: jump to end of line
    22  
    23    3. `alt`+`f`: jump forwards a word at a time
    24  
    25    4. `alt`+`b`: jump backwards a word at a time
    26  
    27    5. `ctrl`+`k`: clear line after cursor position
    28  
    29    6. `ctrl`+`l`: clear entire screen
    30  
    31    7. `ctrl`+`g`: same as `esc`
    32  
    33  * `open` builtin should fallback to system default if type unknown ([#620](https://github.com/lmorg/murex/issues/620))
    34  
    35  * `pre-prompt-func` added to `config`. Block runs before the interactive prompt is displayed
    36  
    37  * `post-prompt-func` added to `config`. Block runs after the interactive prompt has been exited but before any command lines have been executed
    38  
    39  * **auto-cd** option added to `config`: `config: set shell auto-cd true`. This allows you to traverse directories without having to prefix `cd`. By default it is disabled
    40  
    41  * Meta values added to `foreach`, `formap`, and `while`. Meta values are a `$.` variable that holds meta-information about the running block, such as the number of iterations in a loop
    42  
    43  * `command` alias for `exec` (for familiarity with Bash)
    44  
    45  * `builtin` alias for `fexec builtin` (for familiarity with Bash)
    46  
    47  ## Bug Fixes
    48  
    49  * brace encapsulated variables, eg `$(foobar)`, now autocomplete as expected
    50  
    51  * improvements to inlining images in iTerm2 when shell running on top of `tmux`. It still doesn't work reliably but this is an issue with `tmux` rather than Murex
    52  
    53  * `method` forwards exceptions rather than errors. This behaviour has been changed to surface issues as errors
    54  
    55  * `profile_preload.mx` added to profile defaults. This will be loaded before any of the OS-specific profiles
    56  
    57  * missing rune length check causing the shell to panic ([#617](https://github.com/lmorg/murex/issues/617))
    58  
    59  * fixed deadlock in flag parsing
    60  
    61  * zero length string title bars should be ignored ([#614](https://github.com/lmorg/murex/issues/614))
    62  
    63  * minor improvements to documentation 
    64  
    65  <hr>
    66  
    67  Published: 19.06.2023 at 23:15
    68  
    69  ## See Also
    70  
    71  * [Interactive Shell](../user-guide/interactive-shell.md):
    72    What's different about Murex's interactive shell?
    73  * [Terminal Hotkeys](../user-guide/terminal-keys.md):
    74    A list of all the terminal hotkeys and their uses
    75  * [`alias`](../commands/alias.md):
    76    Create an alias for a command
    77  * [`config`](../commands/config.md):
    78    Query or define Murex runtime settings
    79  * [`exec`](../commands/exec.md):
    80    Runs an executable
    81  * [`fexec` ](../commands/fexec.md):
    82    Execute a command or function, bypassing the usual order of precedence.
    83  * [`foreach`](../commands/foreach.md):
    84    Iterate through an array
    85  * [`formap`](../commands/formap.md):
    86    Iterate through a map or other collection of data
    87  * [`method`](../commands/method.md):
    88    Define a methods supported data-types
    89  * [`open`](../commands/open.md):
    90    Open a file with a preferred handler
    91  * [`while`](../commands/while.md):
    92    Loop until condition false
    93  
    94  <hr/>
    95  
    96  This document was generated from [gen/changelog/v4.2_doc.yaml](https://github.com/lmorg/murex/blob/master/gen/changelog/v4.2_doc.yaml).