tmuxSpec top-level property
Completion spec for tmux CLI
Implementation
final FigSpec tmuxSpec =
FigSpec(name: 'tmux', description: 'A terminal multiplexer', subcommands: [
Subcommand(
name: ['a', 'at', 'attach', 'attach-session'],
description: 'Attach to last session',
options: [
Option(
name: '-d',
description: 'Detach all others clients to the session'),
Option(
name: '-x',
description:
'Send SIGHUP to the parent process and detach the client'),
flagsOption,
Option(
name: '-c',
description: 'Set the session\'s working directory',
args: [
Arg(
name: 'working-directory',
description: 'The session\'s working directory',
template: 'folders')
]),
Option(name: '-E', description: 'Don\'t use update-environment option'),
Option(
name: '-t',
description: 'Attach to a session with the given name',
args: sessionsArg)
]),
Subcommand(
name: ['bind', 'bind-key'],
description: 'Bind a key to a command',
args: [
Arg(name: 'key', description: 'The key to bind'),
Arg(name: 'command', description: 'The command to bind to the key'),
Arg(
name: 'arguments',
description: 'Arguments for the command',
isVariadic: true,
isOptional: true)
],
options: [
Option(name: '-n', description: 'Alias for -T root'),
Option(name: '-r', description: 'Indicate that this key may repeat'),
Option(
name: '-N',
description: 'Attach a note to the key',
args: [Arg(name: 'note')]),
Option(
name: '-T',
description: 'The key table to use',
args: [Arg(name: 'key-table')])
]),
Subcommand(
name: ['breakp', 'break-pane'],
description: 'Break a pane from an exiting into a new window',
options: [
Option(
name: '-a', description: 'Move the window to the next index after'),
Option(
name: '-b',
description: 'Move the window to the next index before'),
Option(
name: '-d',
description: 'The new windows does not become the current window'),
Option(
name: '-P', description: 'Print information about the new window'),
formatOption,
Option(name: '-n', description: 'The target window', args: windowsArg),
Option(name: '-s', description: 'The source pane', args: panesArg),
Option(
name: '-t', description: 'The destination window', args: windowsArg)
]),
Subcommand(
name: ['capturep', 'capture-pane'],
description: 'Capture the contents of a pane to a buffer',
options: [
Option(
name: '-a',
description:
'Use the alternate screen and history is not accessible'),
Option(
name: '-e',
description:
'Include escape sequences for text and background attributes'),
Option(name: '-p', description: 'Redirect output to stdout'),
Option(
name: '-P',
description:
'Capture only outputs that is the beginning of an as-yet incomplete escape sequence'),
Option(
name: '-q',
description:
'Do not throw an error if not alternate screen is found'),
Option(
name: '-C',
description: 'Escape non-printable characters as octal'),
Option(
name: '-J',
description: 'Preserve trailing spaces and join any wrapped lines'),
Option(
name: '-N',
description: 'Preserve trailing spaces at each line\'s end'),
Option(name: '-b', description: 'The buffer name', args: buffersArg),
Option(
name: '-E',
description: 'Ending line number',
args: [Arg(name: 'end-line')]),
Option(
name: '-S',
description: 'Starting line number',
args: [Arg(name: 'start-line')]),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: 'choose-buffer',
description: 'Put a pane into buffer choice mode',
args: [
Arg(
name: 'template',
isOptional: true,
defaultValue: 'paste-buffer -b \'%%\'')
],
options: [
Option(name: '-N', description: 'Start without the preview'),
Option(name: '-Z', description: 'Zoom the pane'),
Option(name: '-r', description: 'Reverse the sort order'),
formatOption,
Option(
name: '-f',
description: 'Specify an initial filter',
args: [Arg(name: 'filter')]),
Option(name: '-O', description: 'Specify the sort order', args: [
Arg(name: 'sort-order', suggestions: [
FigSuggestion(name: 'time'),
FigSuggestion(name: 'name'),
FigSuggestion(name: 'size')
])
]),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: 'choose-client',
description: 'Put a pane into buffer client mode',
args: [
Arg(
name: 'template',
isOptional: true,
defaultValue: 'detach-client -t \'%%\'')
],
options: [
Option(name: '-N', description: 'Start without the preview'),
Option(name: '-r', description: 'Reserve the sort order'),
Option(name: '-Z', description: 'Zoom the pane'),
formatOption,
Option(
name: '-f',
description: 'Specify an initial filter',
args: [Arg(name: 'filter')]),
Option(
name: '-O',
description: 'Specify the initial sort field',
args: [
Arg(name: 'sort', suggestions: [
FigSuggestion(name: 'name'),
FigSuggestion(name: 'size'),
FigSuggestion(name: 'creation'),
FigSuggestion(name: 'activity')
])
]),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: 'choose-tree',
description: 'Put a pane into buffer tree mode',
args: [
Arg(
name: 'template',
isOptional: true,
defaultValue: 'switch-client -t \'%%\'')
],
options: [
Option(
name: '-G',
description:
'Include all sessions in any session group in the tree'),
Option(name: '-N', description: 'Start without the preview'),
Option(name: '-r', description: 'Reserve the sort order'),
Option(name: '-s', description: 'Start with sessions collapsed'),
Option(name: '-w', description: 'Start with windows collapsed'),
Option(name: '-Z', description: 'Zoom the pane'),
formatOption,
Option(
name: '-f',
description: 'Specify an initial filter',
args: [Arg(name: 'filter')]),
Option(
name: '-O',
description: 'Specify the initial sort field',
args: [
Arg(name: 'sort', suggestions: [
FigSuggestion(name: 'name'),
FigSuggestion(name: 'size'),
FigSuggestion(name: 'creation'),
FigSuggestion(name: 'activity')
])
]),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['clearhist', 'clear-history'],
description: 'Remove and clear history for a pane'),
Subcommand(name: 'clock-mode', description: 'Enter clock mode'),
Subcommand(
name: 'command-prompt',
description: 'Open the tmux command prompt in a client',
args: [
Arg(
name: 'template',
description: 'If specified, used as a command',
isOptional: true)
],
options: [
Option(name: '-l', description: 'The prompt only accept one key press'),
Option(
name: '-i',
description:
'Execute the command every time the prompt input changes'),
Option(
name: '-k',
description:
'Like -l but the key press is translated to a key name'),
Option(
name: '-N',
description: 'The prompt only accept numeric key press'),
Option(name: '-T', description: 'Tell that the prompt is for a target'),
Option(name: '-W', description: 'Tell that the prompt is for a window'),
Option(
name: '-I',
description:
'Comma-separated list of the initial text for each prompt',
args: [Arg(name: 'inputs')]),
Option(
name: '-p',
description:
'Comma-separated list of prompts which are displayed in order',
args: [Arg(name: 'prompts')]),
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(
name: ['confirm', 'confirm-before'],
description: 'Run a command but ask for confirmation before',
args: [
Arg(
name: 'command',
description: 'The command to run',
isVariadic: true)
],
options: [
Option(
name: '-p',
description: 'A prompt to display for confirmation',
args: [Arg(name: 'prompt')]),
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(name: 'copy-mode', description: 'Enter copy mode', options: [
Option(
name: '-e',
description: 'Scrolling to the bottom should exit copy mode'),
Option(name: '-H', description: 'Hide the position indicator'),
Option(name: '-M', description: 'Begin a mouse drag'),
Option(name: '-q', description: 'Cancel copy mode and any other modes'),
Option(name: '-u', description: 'Scroll one page up'),
Option(name: '-s', description: 'The source pane', args: panesArg),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['deleteb', 'delete-buffer'],
description: 'Delete a paste buffer',
options: [
Option(name: '-b', description: 'The target buffer', args: buffersArg)
]),
Subcommand(
name: ['detach', 'detach-client'],
description: 'Detach a client from the server',
options: [
Option(
name: '-a', description: 'Kills all but the client given with -t'),
Option(name: '-P', description: 'Send SIGHUP to the parent process'),
Option(
name: '-E',
description: 'Run the given shell-command to replace the client',
args: [
Arg(
name: 'shell-command',
description: 'The shell-command to run')
]),
Option(name: '-t', description: 'The target client', args: clientsArg),
Option(
name: '-s',
description: 'Detach all clients attached to the specified session',
args: sessionsArg)
]),
Subcommand(
name: ['menu', 'display-menu'],
description: 'Display menu on target-client',
args: [
Arg(name: 'name', description: 'The name of the menu'),
Arg(name: 'key', description: 'The key to press to open the menu'),
Arg(
name: 'command',
description: 'Commands to execute',
isVariadic: true)
],
options: [
Option(
name: '-O',
description:
'Do not close the menu when the mouse button is released'),
Option(name: '-c', description: 'The target client', args: clientsArg),
Option(name: '-t', description: 'The target pane', args: panesArg),
Option(
name: '-T',
description: 'Specify a title',
args: [Arg(name: 'title')]),
Option(
name: '-x',
description: 'Give the x position of the menu',
args: [Arg(name: 'position')]),
Option(
name: '-y',
description: 'Give the y position of the menu',
args: [Arg(name: 'position')])
]),
Subcommand(
name: ['display', 'display-message'],
description: 'Display a message in the status line',
args: [
Arg(
name: 'message',
description: 'The message to display',
isOptional: true)
],
options: [
Option(
name: '-a',
description: 'List the format variables and their values'),
Option(
name: '-I',
description:
'Forward any input read from stdin to the empty pane target-pane'),
Option(name: '-p', description: 'Print output to stdout'),
Option(
name: '-v',
description: 'Print verbose logging as the format is parsed',
args: clientsArg),
Option(
name: '-d',
description: 'A delay for the message',
args: [Arg(name: 'delay')]),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['displayp', 'display-panes'],
description: 'Display an indicator for each visible pane',
args: [
Arg(
name: 'template',
defaultValue: '\'select-pane -t %%\'',
isOptional: true)
],
options: [
Option(
name: '-b',
description:
'Do not block other commands from running until the indicator is closed'),
Option(
name: '-N',
description: 'Do not close the indicator when a key is pressed'),
Option(name: '-d', description: 'Specify the duration', args: [
Arg(
name: 'duration',
description:
'The duration to close the indicator after in milliseconds')
]),
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(
name: ['findw', 'find-window'],
description: 'Search for a pattern in windows',
args: [Arg(name: 'match-string', description: 'A string to search for')],
options: [
Option(name: '-i', description: 'Make the search ignore cases'),
Option(name: '-C', description: 'Match only visible window contents'),
Option(name: '-N', description: 'Match only the window name'),
Option(name: '-r', description: 'Search a regular expression'),
Option(name: '-T', description: 'Match only the window\'s title'),
Option(name: '-Z', description: 'Zoom the pane'),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['has', 'has-session'],
description: 'Check and report if a session exists on the server',
options: [
Option(
name: '-t',
description: 'Specify the target session',
args: sessionsArg)
]),
Subcommand(
name: ['if', 'if-shell'],
description: 'Execute a tmux command if a shell-command succeeded'),
Subcommand(
name: ['joinp', 'join-pane', 'movep', 'move-pane'],
description: 'Split a pane and move an existing one into the new space',
options: [
Option(
name: '-b',
description: 'Src-pane will be joined to left of or above dst-pane',
args: panesArg),
Option(name: '-l', description: 'Set the size of the new space', args: [
Arg(name: 'size', description: 'The size of the new space')
]),
Option(name: '-s', description: 'The source pane', args: panesArg),
Option(name: '-t', description: 'The destination pane', args: panesArg)
]),
Subcommand(
name: ['killp', 'kill-pane'],
description: 'Destroy a given pane',
options: [
Option(name: '-a', description: 'Kill all but the target-pane'),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: 'kill-server', description: 'Kill clients, session and server'),
Subcommand(
name: ['kill-ses', 'kill-session'],
description: 'Kill/delete sessions',
options: [
Option(
name: '-t',
description: 'Kill/delete session with the given name',
args: sessionsArg),
Option(
name: '-a', description: 'Kill/delete all session but the current'),
Option(
name: '-C',
description:
'Clear alerts (bell, activity, or silence) in all windows linked to the session')
]),
Subcommand(
name: ['killw', 'kill-window'],
description: 'Destroy a given window',
options: [
Option(name: '-a', description: 'Kill all but the target-window'),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['lastp', 'last-pane'],
description: 'Select the previously selected pane',
options: [
Option(name: '-d', description: 'Disable input to the pane'),
Option(name: '-e', description: 'Enable input to the pane'),
Option(
name: '-Z', description: 'Keep the window zoomed if it was zoomed'),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['last', 'last-window'],
description: 'Select the previously selected window',
options: [
Option(
name: '-t',
description:
'Select the previously select window of the target-session',
args: sessionsArg)
]),
Subcommand(
name: ['linkw', 'link-window'],
description: 'Link a window to another',
options: [
Option(
name: '-a',
description: 'Move the window to the next index after dst-window'),
Option(
name: '-b',
description: 'Move the window to the next index before dst-window'),
Option(
name: '-d', description: 'Do not select the newly linked window'),
Option(name: '-k', description: 'Kill dst-window if exist'),
Option(name: '-s', description: 'The source window', args: windowsArg),
Option(
name: '-t', description: 'The destination window', args: windowsArg)
]),
Subcommand(
name: ['lsb', 'list-buffers'],
description: 'List paste buffers of a session'),
Subcommand(
name: ['lsc', 'list-clients'],
description: 'List clients attached to a server',
options: [
formatOption,
Option(
name: '-t',
description: 'List only clients connected to that session',
args: sessionsArg)
]),
Subcommand(
name: ['lscm', 'list-commands'],
description: 'List supported sub-commands',
args: [
Arg(
name: 'command',
description: 'The command to list syntax of',
isOptional: true)
],
options: [formatOption]),
Subcommand(name: ['lsk', 'list-keys'], description: 'List all key-bindings'),
Subcommand(
name: ['lsp', 'list-panes'],
description: 'List panes of a window',
options: [
Option(
name: '-a', description: 'Ignore target-window and list all panes'),
Option(name: '-s', description: 'Target-window becomes a session'),
formatOption,
Option(
name: '-f',
description: 'Specify a filter',
args: [Arg(name: 'filter')]),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['ls', 'list-sessions'],
description: 'List sessions managed by a server',
options: [
formatOption,
Option(
name: '-f',
description: 'Filter the sessions',
args: [Arg(name: 'filter')])
]),
Subcommand(
name: ['lsw', 'list-windows'],
description: 'List windows of a session',
options: [
Option(
name: '-a',
description: 'Ignore target-session and list all windows'),
formatOption,
Option(
name: '-f',
description: 'Specify a filter',
args: [Arg(name: 'filter')]),
Option(name: '-t', description: 'The target session', args: sessionsArg)
]),
Subcommand(
name: ['loadb', 'load-buffer'],
description: 'Load a file into a paste buffer',
args: [Arg(name: 'path', description: 'Load from this path')],
options: [
Option(name: '-w', description: 'Send the buffer to the clipboard'),
Option(name: '-b', description: 'The target buffer', args: buffersArg),
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(
name: ['lockc', 'lock-client'],
description: 'Lock a client',
options: [
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(
name: ['lock', 'lock-server'],
description: 'Lock all clients attached to the server'),
Subcommand(
name: ['locks', 'lock-session'],
description: 'Lock all clients attached to a session',
options: [
Option(
name: '-t',
description: 'Lock all clients attached to target-session',
args: sessionsArg)
]),
Subcommand(
name: ['movew', 'move-window'],
description: 'Move a window to another',
options: [
Option(
name: '-a',
description: 'Move the window to the next index after dst-window'),
Option(
name: '-b',
description: 'Move the window to the next index before dst-window'),
Option(
name: '-r',
description:
'Renumber all windows in the session in sequential order'),
Option(
name: '-d', description: 'Do not select the newly linked window'),
Option(name: '-k', description: 'Kill dst-window if exist'),
Option(name: '-s', description: 'The source window', args: windowsArg),
Option(
name: '-t', description: 'The destination window', args: windowsArg)
]),
Subcommand(
name: ['new', 'new-session'],
description: 'Create a new session',
args: [
Arg(
name: 'shell-command',
description: 'A shell command to run when creating the session')
],
options: [
Option(
name: '-A',
description:
'Behave like attach-session if session-name already exist'),
Option(
name: '-d', description: 'Use the initial size from default-size'),
Option(name: '-D', description: 'Behave like -d if -A is set'),
Option(name: '-E', description: 'Do not use update-environment option'),
Option(
name: '-P', description: 'Print information about the new session'),
Option(name: '-X', description: 'Behave like -x if -A is set'),
Option(
name: '-c',
description: 'Specify a start directory for the session',
args: [
Arg(
name: 'start-directory',
description: 'The start directory',
template: 'folders')
]),
Option(name: '-e', description: 'Set environment variables', args: [
Arg(
name: 'environment',
description: 'Environment variables with the form VARIABLE=VALUE')
]),
flagsOption,
formatOption,
Option(
name: '-n',
description: 'Start a new session with the given name',
args: [Arg(name: 'window-name')]),
Option(
name: '-s',
description: 'Start a new session with the given name',
args: [Arg(name: 'session-name')]),
Option(
name: '-t',
description: 'The name of the group',
args: [Arg(name: 'group-name')]),
Option(
name: '-x',
description: 'The width of the session',
args: [Arg(name: 'width')]),
Option(
name: '-y',
description: 'The height of the session',
args: [Arg(name: 'height')])
]),
Subcommand(
name: ['neww', 'new-window'],
description: 'Create a new window',
args: [
Arg(
name: 'shell-command',
description: 'A shell command to run when creating the window')
],
options: [
Option(
name: '-a',
description:
'Insert the new window at the next index after target-window'),
Option(
name: '-b',
description:
'Insert the new window at the next index before target-window'),
Option(
name: '-d',
description:
'The session does not make the new window the current window'),
Option(name: '-k', description: 'Kill the target-window if exist'),
Option(
name: '-P', description: 'Print information about the new window'),
Option(name: '-S', description: 'Select window-name if exist'),
Option(
name: '-c',
description: 'Specify a start directory for the window',
args: [
Arg(
name: 'start-directory',
description: 'The start directory',
template: 'folders')
]),
Option(name: '-e', description: 'Set environment variables', args: [
Arg(
name: 'environment',
description: 'Environment variables with the form VARIABLE=VALUE')
]),
formatOption,
Option(
name: '-n',
description: 'Start a new window with the given name',
args: [Arg(name: 'window-name')]),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['nextl', 'next-layout'],
description: 'Move a window to the next layout',
options: [
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['next', 'next-window'],
description: 'Move to the next window in a session',
options: [
Option(
name: '-a', description: 'Move to the next window with an alert'),
Option(
name: '-t',
description: 'Move to the next window of the target-session',
args: sessionsArg)
]),
Subcommand(
name: ['pasteb', 'paste-buffer'],
description: 'Insert a paste buffer into the window'),
Subcommand(
name: ['pipep', 'pipe-pane'],
description: 'Pipe output from a pane to a shell command',
args: [
Arg(
name: 'shell-command',
description: 'The shell-command to run',
isOptional: true)
],
options: [
Option(name: '-I', description: 'Connect stdout to shell-command'),
Option(name: '-O', description: 'Connect stdin to shell-command'),
Option(
name: '-o',
description: 'Only open a new pipe if no previous pipe exists'),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['prevl', 'previous-layout'],
description: 'Move a window to the previous layout',
options: [
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['prev', 'previous-window'],
description: 'Move to the previous window in a session',
options: [
Option(name: '-a', description: 'Move with an alert'),
Option(
name: '-t',
description: 'Move to the previous window of the target-session',
args: sessionsArg)
]),
Subcommand(
name: ['refresh', 'refresh-client'],
description: 'Refresh a client',
args: [
Arg(
name: 'adjustment',
description: 'An adjustment value to use',
isOptional: true)
],
options: [
Option(name: '-c', description: 'Return the tracking cursor'),
Option(
name: '-D',
description: 'Allow the visible portion of a window to be changed'),
Option(
name: '-l', description: 'Request the clipboard from the client'),
Option(
name: '-L',
description: 'Allow the visible portion of a window to be changed'),
Option(
name: '-R',
description: 'Allow the visible portion of a window to be changed'),
Option(
name: '-S', description: 'Only update the client\'s status line'),
Option(
name: '-U',
description: 'Allow the visible portion of a window to be changed'),
Option(name: '-A', description: 'The target pane', args: panesArg),
Option(
name: '-B',
description: 'A subscription to a format for a control mode',
args: [Arg(name: 'subscription')]),
Option(
name: '-C',
description: 'Set the width and height',
args: [Arg(name: 'XxY')]),
flagsOption,
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(
name: ['rename', 'rename-session'],
description: 'Rename a session',
options: [
Option(
name: '-t',
description: 'Rename the target-session',
args: sessionsArg)
],
args: [
Arg(name: 'new-name', description: 'The new name of the session')
]),
Subcommand(
name: ['renamew', 'rename-window'],
description: 'Rename a window',
args: [Arg(name: 'new-name', description: 'The new name of the window')],
options: [
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['resizep', 'resize-pane'],
description: 'Resize a pane',
args: [
Arg(name: 'adjustment', description: 'Adjustment used with -ULDR')
],
options: [
Option(name: '-D', description: 'Resize down by adjustment'),
Option(name: '-L', description: 'Resize left by adjustment'),
Option(name: '-M', description: 'Begin mouse resizing'),
Option(name: '-R', description: 'Resize right by adjustment'),
Option(
name: '-T',
description: 'Trim all lines below the current cursor position'),
Option(name: '-U', description: 'Resize up by adjustment'),
Option(
name: '-Z',
description: 'Toggle the active pane between zoomed and unzoomed'),
Option(name: '-t', description: 'The target pane', args: panesArg),
Option(
name: '-x',
description: 'The width of the pane',
args: [Arg(name: 'width')]),
Option(
name: '-y',
description: 'The height of the pane',
args: [Arg(name: 'height')])
]),
Subcommand(
name: ['resizew', 'resize-window'],
description: 'Resize a window',
args: [
Arg(name: 'adjustment', description: 'Adjustment used with -ULDR')
],
options: [
Option(
name: '-a',
description:
'Set the size of the smallest session containing the window'),
Option(
name: '-A',
description:
'Set the size of the largest session containing the window'),
Option(name: '-D', description: 'Resize down by adjustment'),
Option(name: '-L', description: 'Resize left by adjustment'),
Option(name: '-R', description: 'Resize right by adjustment'),
Option(name: '-U', description: 'Resize up by adjustment'),
Option(name: '-t', description: 'The target window', args: windowsArg),
Option(
name: '-x',
description: 'The width of the pane',
args: [Arg(name: 'width')]),
Option(
name: '-y',
description: 'The height of the pane',
args: [Arg(name: 'height')])
]),
Subcommand(
name: ['respawnp', 'respawn-pane'],
description: 'Reactivate a pane in which a command has exited',
args: [
Arg(
name: 'shell-command',
description: 'A shell command to run when creating the pane',
isOptional: true)
],
options: [
Option(name: '-k', description: 'Kill the target-pane if exist'),
Option(
name: '-c',
description: 'Specify a start directory for the pane',
args: [
Arg(
name: 'start-directory',
description: 'The start directory',
template: 'folders')
]),
Option(name: '-e', description: 'Set environment variables', args: [
Arg(
name: 'environment',
description: 'Environment variables with the form VARIABLE=VALUE')
]),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['respawnw', 'respawn-window'],
description: 'Reactivate a window in which a command has exited',
args: [
Arg(
name: 'shell-command',
description: 'A shell command to run when creating the window',
isOptional: true)
],
options: [
Option(name: '-k', description: 'Kill the target-window if exist'),
Option(
name: '-c',
description: 'Specify a start directory for the window',
args: [
Arg(
name: 'start-directory',
description: 'The start directory',
template: 'folders')
]),
Option(name: '-e', description: 'Set environment variables', args: [
Arg(
name: 'environment',
description: 'Environment variables with the form VARIABLE=VALUE')
]),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['rotatew', 'rotate-window'],
description: 'Rotate positions of panes in a window',
options: [
Option(name: '-D', description: 'Rotate upward'),
Option(name: '-U', description: 'Rotate downward'),
Option(
name: '-Z', description: 'Keep the window zoomed if it was zoomed'),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['run', 'run-shell'],
description: 'Execute a command without create a new window'),
Subcommand(
name: ['saveb', 'save-buffer'],
description: 'Save a paste buffer to a file'),
Subcommand(
name: ['selectl', 'select-layout'],
description: 'Choose a layout for a pane',
args: [
Arg(
name: 'layout-name',
description: 'Use the last preset layout used if not specified',
isOptional: true)
],
options: [
Option(
name: '-E',
description:
'Spread the current pane and any panes next to it evenly'),
Option(name: '-n', description: 'Equivalent to next-layout'),
Option(
name: '-o', description: 'Apply the last set layout if possible'),
Option(name: '-p', description: 'Equivalent to previous-layout'),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['selectp', 'select-pane'],
description: 'Make a pane the active one in the window',
options: [
Option(name: '-D', description: 'Use the down pane'),
Option(name: '-d', description: 'Disable input to the pane'),
Option(name: '-e', description: 'Enable input to the pane'),
Option(name: '-L', description: 'Use the left pane'),
Option(name: '-l', description: 'Same as last-pane command'),
Option(name: '-M', description: 'Clear the marked pane'),
Option(name: '-m', description: 'Set the market pane'),
Option(name: '-R', description: 'Use the right pane'),
Option(name: '-U', description: 'Use the up pane'),
Option(name: '-Z', description: 'Set the pane\'s title'),
Option(
name: '-T',
description: 'Set the pane title',
args: [Arg(name: 'title')]),
Option(name: '-t', description: 'The target pane', args: panesArg)
]),
Subcommand(
name: ['selectw', 'select-window'],
description: 'Select a window',
options: [
Option(name: '-l', description: 'Same as last-window'),
Option(name: '-n', description: 'Same as next-window'),
Option(name: '-p', description: 'Same as previous-window'),
Option(
name: '-T',
description:
'Same as last-window if the selected window is already the current window'),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['send', 'send-keys'], description: 'Send key(s) to a window'),
Subcommand(
name: 'send-prefix', description: 'Send the prefix key to a window'),
Subcommand(
name: ['info', 'server-info'],
description: 'Show every session, window, pane, etc'),
Subcommand(
name: ['setb', 'set-buffer'],
description: 'Set content of a paste buffer',
args: [Arg(name: 'data', description: 'The data to set in the buffer')],
options: [
Option(
name: '-a',
description: 'Append to rather than overwriting the buffer'),
Option(name: '-w', description: 'Send the buffer to the clipboard'),
Option(
name: '-b',
description: 'The name of the buffer',
args: buffersArg),
Option(name: '-t', description: 'The target client', args: clientsArg),
Option(
name: '-n',
description: 'The new name of the buffer',
args: [Arg(name: 'new-buffer-name')])
]),
Subcommand(
name: ['setenv', 'set-environment'],
description: '(Un)set an environment variable'),
Subcommand(name: 'set-hook', description: 'Set a hook to a command'),
Subcommand(name: ['set', 'set-option'], description: 'Set a session option'),
Subcommand(
name: ['setw', 'set-window-option'], description: 'Set a window option'),
Subcommand(
name: ['showb', 'show-buffer'],
description: 'Display the contents of a paste buffer'),
Subcommand(
name: ['showenv', 'show-environment'],
description: 'Display the environment',
options: [
Option(
name: '-t',
description: 'Display the environment of the target-session',
args: sessionsArg)
]),
Subcommand(name: 'show-hooks', description: 'Show the global list of hooks'),
Subcommand(
name: ['showmsgs', 'show-messages'],
description: 'Show client\'s message log',
options: [
Option(
name: '-T',
description: 'Show debugging information about terminals'),
Option(
name: '-J', description: 'Show debugging information about jobs'),
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(
name: ['show', 'show-options'], description: 'Show session options'),
Subcommand(
name: ['showw', 'show-winsow-options'],
description: 'Show window options'),
Subcommand(
name: ['source', 'source-file'],
description: 'Execute tmux commands from a file',
args: [Arg(name: 'path', isVariadic: true)],
options: [
Option(name: '-F', description: 'Expand path as a format'),
Option(
name: '-n', description: 'Parse the file but don\'t run commands'),
Option(
name: '-q',
description: 'Don\'t return any error if path does not exist'),
Option(
name: '-v',
description: 'Show the parsed command and line numbers if possible')
]),
Subcommand(
name: ['splitw', 'split-window'],
description: 'Splits a pane into two',
args: [
Arg(
name: 'shell-command',
description: 'A shell command to run when creating the pane',
isOptional: true)
],
options: [
Option(
name: '-b',
description:
'Create the new pane to the left of or above target-pane'),
Option(
name: '-f',
description:
'Create a new pane spanning the full window height with -h or width with -v'),
Option(name: '-h', description: 'Set the pane take full height'),
Option(
name: '-I',
description: 'Create an empty pane and forward stdin to it'),
Option(name: '-v', description: 'Set the pane take full width'),
Option(name: '-Z', description: 'Zoom if the window is not zoomed'),
Option(
name: '-c',
description: 'Specify a start directory for the pane',
args: [
Arg(
name: 'start-directory',
description: 'The start directory',
template: 'folders')
]),
Option(name: '-e', description: 'Set environment variables', args: [
Arg(
name: 'environment',
description: 'Environment variables with the form VARIABLE=VALUE')
]),
Option(
name: '-l',
description:
'Set the size in columns (horizontal split) or rows (vertical split)',
args: [Arg(name: 'size')]),
Option(name: '-t', description: 'The target pane', args: panesArg),
formatOption
]),
Subcommand(
name: ['start', 'start-server'], description: 'Start a tmux server'),
Subcommand(
name: ['suspendc', 'suspend-client'],
description: 'Suspend a client',
options: [
Option(name: '-t', description: 'The target client', args: clientsArg)
]),
Subcommand(
name: ['swapp', 'swap-pane'],
description: 'Swap two panes',
options: [
Option(name: '-d', description: 'Do not change the active pane'),
Option(name: '-D', description: 'Swap with the next pane'),
Option(name: '-U', description: 'Swap dst-pane with the previous pane'),
Option(
name: '-Z', description: 'Keep the window zoomed if it was zoomed'),
Option(name: '-s', description: 'The source pane', args: panesArg),
Option(name: '-t', description: 'The destination pane', args: panesArg)
]),
Subcommand(
name: ['swapw', 'swap-window'],
description: 'Swap two windows',
options: [
Option(
name: '-d',
description: 'The new window does not become the current window'),
Option(name: '-s', description: 'The source window', args: windowsArg),
Option(
name: '-t', description: 'The destination window', args: windowsArg)
]),
Subcommand(
name: ['switchc', 'switch-client'],
description: 'Switch the client to another session',
options: [
Option(name: '-E', description: 'Do not use update-environment option'),
Option(name: '-l', description: 'Move the client to the last session'),
Option(name: '-n', description: 'Move the client to the next session'),
Option(
name: '-p', description: 'Move the client to the previous session'),
Option(
name: '-r',
description: 'Toggle the client read-only and ignore-size flags'),
Option(
name: '-Z', description: 'Keep the window zoomed if it was zoomed'),
Option(name: '-c', description: 'The target client', args: clientsArg),
Option(
name: '-t',
description: 'Switch the client to the target-session',
args: sessionsArg),
Option(
name: '-T',
description: 'Set the client\'s key table',
args: [Arg(name: 'key-table')])
]),
Subcommand(
name: ['unbind', 'unbind-key'],
description: 'Unbind a key',
args: [Arg(name: 'key', description: 'The key to unbind')],
options: [
Option(name: '-a', description: 'Remove all key-bindings'),
Option(name: '-n', description: 'Alias for -T root'),
Option(name: '-q', description: 'Prevent errors being returned'),
Option(
name: '-T',
description: 'The key table to use',
args: [Arg(name: 'key-table')])
]),
Subcommand(
name: ['unlinkw', 'unlink-window'],
description: 'Unlink a window',
options: [
Option(name: '-k', description: 'Destroy the window'),
Option(name: '-t', description: 'The target window', args: windowsArg)
]),
Subcommand(
name: ['wait', 'wait-for'],
description: 'Wait for an event or trigger it',
args: [Arg(name: 'channel', description: 'Wait for this channel')],
options: [
Option(
name: '-L', description: 'Lock the channel', exclusiveOn: ['-U']),
Option(
name: '-U', description: 'Unlock the channel', exclusiveOn: ['-L'])
])
], additionalSuggestions: [
FigSuggestion(
name: 'new -s \'name\'',
description: 'Create a new session shortcut',
insertValue: 'new -s \'{cursor}\'',
icon: 'fig://template?color=2ecc71&badge=🔥')
]);