Better handling of escaping in iterm.kak
Thanks eraserhd
This commit is contained in:
parent
84da1911be
commit
3e4f3ed9d2
|
@ -14,8 +14,10 @@ hook global KakBegin .* %sh{
|
||||||
|
|
||||||
define-command -hidden -params 2 iterm-terminal-split-impl %{
|
define-command -hidden -params 2 iterm-terminal-split-impl %{
|
||||||
nop %sh{
|
nop %sh{
|
||||||
|
# replace ' with '\\'' in the command
|
||||||
|
escaped=$(printf %s "$2" | sed -e "s|'|'\\\\\\\\''|g")
|
||||||
direction="$1"
|
direction="$1"
|
||||||
cmd="env PATH='${PATH}' TMPDIR='${TMPDIR}' sh -c '$2'"
|
cmd="env PATH='${PATH}' TMPDIR='${TMPDIR}' sh -c '$escaped'"
|
||||||
osascript \
|
osascript \
|
||||||
-e "tell application \"iTerm\"" \
|
-e "tell application \"iTerm\"" \
|
||||||
-e " tell current session of current window" \
|
-e " tell current session of current window" \
|
||||||
|
@ -45,7 +47,8 @@ iterm-terminal-tab <program>: create a new terminal as an iterm tab
|
||||||
The shell program passed as argument will be executed in the new terminal'\
|
The shell program passed as argument will be executed in the new terminal'\
|
||||||
%{
|
%{
|
||||||
nop %sh{
|
nop %sh{
|
||||||
cmd="env PATH='${PATH}' TMPDIR='${TMPDIR}' sh -c '$1'"
|
escaped=$(printf %s "$1" | sed -e "s|'|'\\\\\\\\''|g")
|
||||||
|
cmd="env PATH='${PATH}' TMPDIR='${TMPDIR}' sh -c '$escaped'"
|
||||||
osascript \
|
osascript \
|
||||||
-e "tell application \"iTerm\"" \
|
-e "tell application \"iTerm\"" \
|
||||||
-e " tell current window" \
|
-e " tell current window" \
|
||||||
|
@ -60,7 +63,8 @@ iterm-terminal-window <program>: create a new terminal as an iterm window
|
||||||
The shell program passed as argument will be executed in the new terminal'\
|
The shell program passed as argument will be executed in the new terminal'\
|
||||||
%{
|
%{
|
||||||
nop %sh{
|
nop %sh{
|
||||||
cmd="env PATH='${PATH}' TMPDIR='${TMPDIR}' sh -c '$1'"
|
escaped=$(printf %s "$1" | sed -e "s|'|'\\\\\\\\''|g")
|
||||||
|
cmd="env PATH='${PATH}' TMPDIR='${TMPDIR}' sh -c '$escaped'"
|
||||||
osascript \
|
osascript \
|
||||||
-e "tell application \"iTerm\"" \
|
-e "tell application \"iTerm\"" \
|
||||||
-e " create window with default profile command \"${cmd}\"" \
|
-e " create window with default profile command \"${cmd}\"" \
|
||||||
|
@ -73,26 +77,26 @@ iterm-new-vertical <program>: create a new kakoune client as an iterm pane
|
||||||
The current pane is split into two, top and bottom
|
The current pane is split into two, top and bottom
|
||||||
The optional arguments are passed as commands to the new client' \
|
The optional arguments are passed as commands to the new client' \
|
||||||
%{
|
%{
|
||||||
iterm-terminal-vertical "kak -c %val{session} -e '%arg{@}'"
|
iterm-terminal-vertical "kak -c '%val{session}' -e '%arg{@}'"
|
||||||
}
|
}
|
||||||
define-command iterm-new-horizontal -params .. -command-completion -docstring '
|
define-command iterm-new-horizontal -params .. -command-completion -docstring '
|
||||||
iterm-new-horizontal <program>: create a new kakoune client as an iterm pane
|
iterm-new-horizontal <program>: create a new kakoune client as an iterm pane
|
||||||
The current pane is split into two, left and right
|
The current pane is split into two, left and right
|
||||||
The optional arguments are passed as commands to the new client' \
|
The optional arguments are passed as commands to the new client' \
|
||||||
%{
|
%{
|
||||||
iterm-terminal-horizontal "kak -c %val{session} -e '%arg{@}'"
|
iterm-terminal-horizontal "kak -c '%val{session}' -e '%arg{@}'"
|
||||||
}
|
}
|
||||||
define-command iterm-new-tab -params .. -command-completion -docstring '
|
define-command iterm-new-tab -params .. -command-completion -docstring '
|
||||||
iterm-new-tab <program>: create a new kakoune client as an iterm tab
|
iterm-new-tab <program>: create a new kakoune client as an iterm tab
|
||||||
The optional arguments are passed as commands to the new client' \
|
The optional arguments are passed as commands to the new client' \
|
||||||
%{
|
%{
|
||||||
iterm-terminal-tab "kak -c %val{session} -e '%arg{@}'"
|
iterm-terminal-tab "kak -c '%val{session}' -e '%arg{@}'"
|
||||||
}
|
}
|
||||||
define-command iterm-new-window -params .. -command-completion -docstring '
|
define-command iterm-new-window -params .. -command-completion -docstring '
|
||||||
iterm-new-window <program>: create a new kakoune client as an iterm window
|
iterm-new-window <program>: create a new kakoune client as an iterm window
|
||||||
The optional arguments are passed as commands to the new client' \
|
The optional arguments are passed as commands to the new client' \
|
||||||
%{
|
%{
|
||||||
iterm-terminal-window "kak -c %val{session} -e '%arg{@}'"
|
iterm-terminal-window "kak -c '%val{session}' -e '%arg{@}'"
|
||||||
}
|
}
|
||||||
|
|
||||||
define-command iterm-focus -params ..1 -client-completion -docstring '
|
define-command iterm-focus -params ..1 -client-completion -docstring '
|
||||||
|
|
Loading…
Reference in New Issue
Block a user