diff options
| author | Tilman List <tilman.list@posteo.de> | 2020-02-20 14:58:54 +0100 |
|---|---|---|
| committer | Alex Leferry 2 <alexherbo2@gmail.com> | 2020-06-18 14:33:34 +0200 |
| commit | e77dbdbfac630338cb5d52ff143c14c0353f3ac0 (patch) | |
| tree | b8ad6d9237d212158c8b7229dbf2a27e7b29c3e5 | |
| parent | 277c00cfbecd8a313b7e892356343355ca5fb6ed (diff) | |
added an option connect_environment
The option connect_environment is evaluated just after the .env files,
so that the user can change and set environment variables in the connected
shell through this option.
| -rw-r--r-- | README.md | 11 | ||||
| -rw-r--r-- | rc/connect.kak | 9 |
2 files changed, 17 insertions, 3 deletions
@@ -146,6 +146,17 @@ require-module connect-dolphin map global normal <c-t> ': connect-terminal<ret>' ``` +By setting the option `connect_environment` you can specify commands that +are run before the shell is executed. This might be useful, if you want to +change or export environment variables: + +``` kak +set-option global connect_environment %{ + GIT_EDITOR='kak -c $KAKOUNE_SESSION' + export LYEDITOR='edit %(file)s +%(line)s:%(column)s' +} +``` + ## Kakoune commands - [`:connect-terminal`] | [`:t`] diff --git a/rc/connect.kak b/rc/connect.kak index 9f548e9..8684a14 100644 --- a/rc/connect.kak +++ b/rc/connect.kak @@ -1,16 +1,18 @@ declare-option -hidden str connect_path %sh(dirname "$kak_source") +declare-option str connect_environment provide-module connect %{ define-command connect-terminal -params .. -shell-completion -docstring 'Connect a terminal' %{ terminal sh -c %{ - kak_opt_connect_path=$1 kak_session=$2 kak_client=$3 kak_client_env_SHELL=$4 + kak_opt_connect_path=$1 kak_opt_connect_environment=$2 kak_session=$3 kak_client=$4 kak_client_env_SHELL=$5 . "$kak_opt_connect_path/env/default.env" . "$kak_opt_connect_path/env/overrides.env" . "$kak_opt_connect_path/env/kakoune.env" . "$kak_opt_connect_path/env/git.env" - shift 4 + eval "$kak_opt_connect_environment" + shift 5 "${@:-$SHELL}" - } -- %opt{connect_path} %val{session} %val{client} %val{client_env_SHELL} %arg{@} + } -- %opt{connect_path} %opt{connect_environment} %val{session} %val{client} %val{client_env_SHELL} %arg{@} } define-command connect-shell -params 1.. -shell-completion -docstring 'Connect a shell' %{ nop %sh{ @@ -19,6 +21,7 @@ provide-module connect %{ . "$kak_opt_connect_path/env/overrides.env" . "$kak_opt_connect_path/env/kakoune.env" . "$kak_opt_connect_path/env/git.env" + eval "$kak_opt_connect_environment" setsid sh -c "$@" < /dev/null > /dev/null 2>&1 & } } |
