Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
54055c45
Commit
54055c45
authored
Aug 03, 2018
by
Marc Cornellà
Browse files
Merge branch 'apjanke/tmux-detabify-source'
Closes #4412 Fixes #4425
parents
106f8260
f584de59
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/tmux/tmux.plugin.zsh
View file @
54055c45
#
if
!
((
$+
commands[tmux]
))
;
then
# Aliases
print
"zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
>
&2
#
return
1
fi
# ALIASES
alias
ta
=
'tmux attach -t'
alias
ta
=
'tmux attach -t'
alias
tad
=
'tmux attach -d -t'
alias
tad
=
'tmux attach -d -t'
...
@@ -9,90 +12,79 @@ alias tl='tmux list-sessions'
...
@@ -9,90 +12,79 @@ alias tl='tmux list-sessions'
alias
tksv
=
'tmux kill-server'
alias
tksv
=
'tmux kill-server'
alias
tkss
=
'tmux kill-session -t'
alias
tkss
=
'tmux kill-session -t'
# Only run if tmux is actually installed
# CONFIGURATION VARIABLES
if
which tmux &> /dev/null
# Automatically start tmux
then
:
${
ZSH_TMUX_AUTOSTART
:
=false
}
# Configuration variables
# Only autostart once. If set to false, tmux will attempt to
#
# autostart every time your zsh configs are reloaded.
# Automatically start tmux
:
${
ZSH_TMUX_AUTOSTART_ONCE
:
=true
}
[[
-n
"
$ZSH_TMUX_AUTOSTART
"
]]
||
ZSH_TMUX_AUTOSTART
=
false
# Automatically connect to a previous session if it exists
# Only autostart once. If set to false, tmux will attempt to
:
${
ZSH_TMUX_AUTOCONNECT
:
=true
}
# autostart every time your zsh configs are reloaded.
# Automatically close the terminal when tmux exits
[[
-n
"
$ZSH_TMUX_AUTOSTART_ONCE
"
]]
||
ZSH_TMUX_AUTOSTART_ONCE
=
true
:
${
ZSH_TMUX_AUTOQUIT
:
=
$ZSH_TMUX_AUTOSTART
}
# Automatically connect to a previous session if it exists
# Set term to screen or screen-256color based on current terminal support
[[
-n
"
$ZSH_TMUX_AUTOCONNECT
"
]]
||
ZSH_TMUX_AUTOCONNECT
=
true
:
${
ZSH_TMUX_FIXTERM
:
=true
}
# Automatically close the terminal when tmux exits
# Set '-CC' option for iTerm2 tmux integration
[[
-n
"
$ZSH_TMUX_AUTOQUIT
"
]]
||
ZSH_TMUX_AUTOQUIT
=
$ZSH_TMUX_AUTOSTART
:
${
ZSH_TMUX_ITERM2
:
=false
}
# Set term to screen or screen-256color based on current terminal support
# The TERM to use for non-256 color terminals.
[[
-n
"
$ZSH_TMUX_FIXTERM
"
]]
||
ZSH_TMUX_FIXTERM
=
true
# Tmux states this should be screen, but you may need to change it on
# Set '-CC' option for iTerm2 tmux integration
# systems without the proper terminfo
[[
-n
"
$ZSH_TMUX_ITERM2
"
]]
||
ZSH_TMUX_ITERM2
=
false
:
${
ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
:
=screen
}
# The TERM to use for non-256 color terminals.
# The TERM to use for 256 color terminals.
# Tmux states this should be screen, but you may need to change it on
# Tmux states this should be screen-256color, but you may need to change it on
# systems without the proper terminfo
# systems without the proper terminfo
[[
-n
"
$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
"
]]
||
ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
=
"screen"
:
${
ZSH_TMUX_FIXTERM_WITH_256COLOR
:
=screen-256color
}
# The TERM to use for 256 color terminals.
# Tmux states this should be screen-256color, but you may need to change it on
# Determine if the terminal supports 256 colors
# systems without the proper terminfo
if
[[
$(
tput colors
)
==
256
]]
;
then
[[
-n
"
$ZSH_TMUX_FIXTERM_WITH_256COLOR
"
]]
||
ZSH_TMUX_FIXTERM_WITH_256COLOR
=
"screen-256color"
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITH_256COLOR
else
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
fi
# Set the correct local config file to use.
if
[[
"
$ZSH_TMUX_ITERM2
"
==
"false"
&&
-e
"
$HOME
/.tmux.conf"
]]
;
then
export
_ZSH_TMUX_FIXED_CONFIG
=
"
${
0
:h:a
}
/tmux.extra.conf"
else
export
_ZSH_TMUX_FIXED_CONFIG
=
"
${
0
:h:a
}
/tmux.only.conf"
fi
# Get the absolute path to the current directory
# Wrapper function for tmux.
local
zsh_tmux_plugin_path
=
"
$(
cd
"
$(
dirname
"
$0
"
)
"
&&
pwd
)
"
function
_zsh_tmux_plugin_run
()
{
if
[[
-n
"
$@
"
]]
;
then
command
tmux
"
$@
"
return
$?
fi
# Determine if the terminal supports 256 colors
local
-a
tmux_cmd
=(
command
tmux
)
if
[[
`
tput colors
`
==
"256"
]]
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
tmux_cmd+
=(
-CC
)
then
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITH_256COLOR
else
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
fi
# Set the correct local config file to use.
# Try to connect to an existing session.
if
[[
"
$ZSH_TMUX_ITERM2
"
==
"false"
]]
&&
[[
-f
$HOME
/.tmux.conf
||
-h
$HOME
/.tmux.conf
]]
if
[[
"
$ZSH_TMUX_AUTOCONNECT
"
==
"true"
]]
;
then
then
$tmux_cmd
attach
#use this when they have a ~/.tmux.conf
fi
export
_ZSH_TMUX_FIXED_CONFIG
=
"
$zsh_tmux_plugin_path
/tmux.extra.conf"
else
#use this when they don't have a ~/.tmux.conf
export
_ZSH_TMUX_FIXED_CONFIG
=
"
$zsh_tmux_plugin_path
/tmux.only.conf"
fi
# Wrapper function for tmux.
# If failed, just run tmux, fixing the TERM variable if requested.
function
_zsh_tmux_plugin_run
()
if
[[
$?
-ne
0
]]
;
then
{
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
tmux_cmd+
=(
-f
"
$_ZSH_TMUX_FIXED_CONFIG
"
)
# We have other arguments, just run them
$tmux_cmd
new-session
if
[[
-n
"
$@
"
]]
fi
then
\t
mux
$@
# Try to connect to an existing session.
elif
[[
"
$ZSH_TMUX_AUTOCONNECT
"
==
"true"
]]
then
\t
mux
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
attach
||
\t
mux
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$_ZSH_TMUX_FIXED_CONFIG
`
new-session
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
# Just run tmux, fixing the TERM variable if requested.
else
\t
mux
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$_ZSH_TMUX_FIXED_CONFIG
`
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
fi
}
# Use the completions for tmux for our function
if
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
;
then
compdef _tmux _zsh_tmux_plugin_run
exit
fi
}
# Alias tmux to our wrapper function.
# Use the completions for tmux for our function
alias
tmux
=
_zsh_tmux_plugin_run
compdef _tmux _zsh_tmux_plugin_run
# Alias tmux to our wrapper function.
alias
tmux
=
_zsh_tmux_plugin_run
# Autostart if not already in tmux and enabled.
# Autostart if not already in tmux and enabled.
if
[[
!
-n
"
$TMUX
"
&&
"
$ZSH_TMUX_AUTOSTART
"
==
"true"
]]
if
[[
-z
"
$TMUX
"
&&
"
$ZSH_TMUX_AUTOSTART
"
==
"true"
]]
;
then
then
# Actually don't autostart if we already did and multiple autostarts are disabled.
# Actually don't autostart if we already did and multiple autostarts are disabled.
if
[[
"
$ZSH_TMUX_AUTOSTART_ONCE
"
==
"false"
||
"
$ZSH_TMUX_AUTOSTARTED
"
!=
"true"
]]
;
then
if
[[
"
$ZSH_TMUX_AUTOSTART_ONCE
"
==
"false"
||
"
$ZSH_TMUX_AUTOSTARTED
"
!=
"true"
]]
export
ZSH_TMUX_AUTOSTARTED
=
true
then
_zsh_tmux_plugin_run
export
ZSH_TMUX_AUTOSTARTED
=
true
fi
_zsh_tmux_plugin_run
fi
fi
else
print
"zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
fi
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment