From 766562c1d1dc5728e7dec0f8422569c4cd371885 Mon Sep 17 00:00:00 2001 From: "Wu, Zhenyu" Date: Fri, 22 Dec 2023 19:32:28 +0800 Subject: [PATCH] :bento: Improve json schema --- README.md | 12 +- .../assets/json/tmux.json | 1153 +++++++++-------- src/tmux_language_server/misc/__init__.py | 42 +- src/tmux_language_server/server.py | 12 +- 4 files changed, 667 insertions(+), 552 deletions(-) diff --git a/README.md b/README.md index f6e3cf9..564bb0e 100644 --- a/README.md +++ b/README.md @@ -37,14 +37,16 @@ [![pypi/implementation](https://shields.io/pypi/implementation/tmux-language-server)](https://pypi.org/project/tmux-language-server/#files) [![pypi/pyversions](https://shields.io/pypi/pyversions/tmux-language-server)](https://pypi.org/project/tmux-language-server/#files) -A language server for (neo)tmux's tmuxrc. +A language server for [tmux](https://github.com/tmux/tmux)'s tmux.conf. -- [x] document hover -- [x] completion +- [ ] [Diagnostic](https://microsoft.github.io/language-server-protocol/specifications/specification-current#diagnostic) +- [ ] [Document Link](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_documentLink) +- [x] [Hover](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_hover) +- [x] [Completion](https://microsoft.github.io/language-server-protocol/specifications/specification-current#textDocument_completion) -![Document hover](https://github.com/Freed-Wu/tmux-language-server/assets/32936898/87776386-0d88-4fd1-815f-45f37ed1ed18) +![Document hover](https://github.com/Freed-Wu/tmux-language-server/assets/32936898/631db877-4cde-4b87-9548-c0a66335a83d) -![Completion](https://github.com/Freed-Wu/tmux-language-server/assets/32936898/8f5a7a78-a0d9-43a0-bcc3-8217cd78f8cf) +![Completion](https://github.com/Freed-Wu/tmux-language-server/assets/32936898/a9793a05-7da6-4fcb-88bf-4ca82ccfbfc1) See [![readthedocs](https://shields.io/readthedocs/tmux-language-server)](https://tmux-language-server.readthedocs.io) diff --git a/src/tmux_language_server/assets/json/tmux.json b/src/tmux_language_server/assets/json/tmux.json index af5bbf9..da9729f 100644 --- a/src/tmux_language_server/assets/json/tmux.json +++ b/src/tmux_language_server/assets/json/tmux.json @@ -5,880 +5,957 @@ "type": "object", "properties": { "attach-session": { - "description": "attach-session [\u2212dErx] [\u2212c working-directory] [\u2212f flags] [\u2212t target-session]\nattach\nIf run from outside tmux, create a new client in the current terminal and attach it to target-session. If used from inside, switch the current client. If \u2212d is specified, any other clients attached to the session are detached. If \u2212x is given, send SIGHUP to the parent process of the client as well as detaching the client, typically causing it to exit. \u2212f sets a comma-separated list of client flags. The flags are:" + "description": "```tmux\nattach-session [-dErx] [-c working-directory] [-f flags] [-t target-session]\nattach [-dErx] [-c working-directory] [-f flags] [-t target-session]\n```\n\nIf run from outside tmux, create a new client in the current terminal and attach it to target-session. If used from inside, switch the current client. If -d is specified, any other clients attached to the session are detached. If -x is given, send SIGHUP to the parent process of the client as well as detaching the client, typically causing it to exit. -f sets a comma-separated list of client flags. The flags are:" }, "attach": { - "description": "attach-session [\u2212dErx] [\u2212c working-directory] [\u2212f flags] [\u2212t target-session]\nattach\nIf run from outside tmux, create a new client in the current terminal and attach it to target-session. If used from inside, switch the current client. If \u2212d is specified, any other clients attached to the session are detached. If \u2212x is given, send SIGHUP to the parent process of the client as well as detaching the client, typically causing it to exit. \u2212f sets a comma-separated list of client flags. The flags are:" + "description": "```tmux\nattach-session [-dErx] [-c working-directory] [-f flags] [-t target-session]\nattach [-dErx] [-c working-directory] [-f flags] [-t target-session]\n```\n\nIf run from outside tmux, create a new client in the current terminal and attach it to target-session. If used from inside, switch the current client. If -d is specified, any other clients attached to the session are detached. If -x is given, send SIGHUP to the parent process of the client as well as detaching the client, typically causing it to exit. -f sets a comma-separated list of client flags. The flags are:" }, "detach-client": { - "description": "detach-client [\u2212aP] [\u2212E shell-command] [\u2212s target-session] [\u2212t target-client]\ndetach\nDetach the current client if bound to a key, the client specified with \u2212t, or all clients currently attached to the session specified by \u2212s. The \u2212a option kills all but the client given with \u2212t. If \u2212P is given, send SIGHUP to the parent process of the client, typically causing it to exit. With \u2212E, run shell-command to replace the client." + "description": "```tmux\ndetach-client [-aP] [-E shell-command] [-s target-session] [-t target-client]\ndetach [-aP] [-E shell-command] [-s target-session] [-t target-client]\n```\n\nDetach the current client if bound to a key, the client specified with -t, or all clients currently attached to the session specified by -s. The -a option kills all but the client given with -t. If -P is given, send SIGHUP to the parent process of the client, typically causing it to exit. With -E, run shell-command to replace the client." }, "detach": { - "description": "detach-client [\u2212aP] [\u2212E shell-command] [\u2212s target-session] [\u2212t target-client]\ndetach\nDetach the current client if bound to a key, the client specified with \u2212t, or all clients currently attached to the session specified by \u2212s. The \u2212a option kills all but the client given with \u2212t. If \u2212P is given, send SIGHUP to the parent process of the client, typically causing it to exit. With \u2212E, run shell-command to replace the client." + "description": "```tmux\ndetach-client [-aP] [-E shell-command] [-s target-session] [-t target-client]\ndetach [-aP] [-E shell-command] [-s target-session] [-t target-client]\n```\n\nDetach the current client if bound to a key, the client specified with -t, or all clients currently attached to the session specified by -s. The -a option kills all but the client given with -t. If -P is given, send SIGHUP to the parent process of the client, typically causing it to exit. With -E, run shell-command to replace the client." }, "has-session": { - "description": "has-session [\u2212t target-session]\nhas\nReport an error and exit with 1 if the specified session does not exist. If it does exist, exit with 0." + "description": "```tmux\nhas-session [-t target-session]\nhas [-t target-session]\n```\n\nReport an error and exit with 1 if the specified session does not exist. If it does exist, exit with 0." }, "has": { - "description": "has-session [\u2212t target-session]\nhas\nReport an error and exit with 1 if the specified session does not exist. If it does exist, exit with 0." + "description": "```tmux\nhas-session [-t target-session]\nhas [-t target-session]\n```\n\nReport an error and exit with 1 if the specified session does not exist. If it does exist, exit with 0." }, "kill-server": { - "description": "kill-server\nKill the tmux server and clients and destroy all sessions." + "description": "```tmux\nkill-server\n```\n\nKill the tmux server and clients and destroy all sessions." }, "kill-session": { - "description": "kill-session [\u2212aC] [\u2212t target-session]\nDestroy the given session, closing any windows linked to it and no other sessions, and detaching all clients attached to it. If \u2212a is given, all sessions but the specified one is killed. The \u2212C flag clears alerts (bell, activity, or silence) in all windows linked to the session." + "description": "```tmux\nkill-session [-aC] [-t target-session]\n```\n\nDestroy the given session, closing any windows linked to it and no other sessions, and detaching all clients attached to it. If -a is given, all sessions but the specified one is killed. The -C flag clears alerts (bell, activity, or silence) in all windows linked to the session." }, "list-clients": { - "description": "list-clients [\u2212F format] [\u2212t target-session]\nlsc\nList all clients attached to the server. For the meaning of the \u2212F flag, see the \u201cFORMATS\u201d section. If target-session is specified, list only clients connected to that session." + "description": "```tmux\nlist-clients [-F format] [-t target-session]\nlsc [-F format] [-t target-session]\n```\n\nList all clients attached to the server. For the meaning of the -F flag, see the \u201cFORMATS\u201d section. If target-session is specified, list only clients connected to that session." }, "lsc": { - "description": "list-clients [\u2212F format] [\u2212t target-session]\nlsc\nList all clients attached to the server. For the meaning of the \u2212F flag, see the \u201cFORMATS\u201d section. If target-session is specified, list only clients connected to that session." + "description": "```tmux\nlist-clients [-F format] [-t target-session]\nlsc [-F format] [-t target-session]\n```\n\nList all clients attached to the server. For the meaning of the -F flag, see the \u201cFORMATS\u201d section. If target-session is specified, list only clients connected to that session." }, "list-commands": { - "description": "list-commands [\u2212F format] [command]\nlscm\nList the syntax of command or - if omitted - of all commands supported by tmux." + "description": "```tmux\nlist-commands [-F format] [command]\nlscm [-F format] [command]\n```\n\nList the syntax of command or - if omitted - of all commands supported by tmux." }, "lscm": { - "description": "list-commands [\u2212F format] [command]\nlscm\nList the syntax of command or - if omitted - of all commands supported by tmux." + "description": "```tmux\nlist-commands [-F format] [command]\nlscm [-F format] [command]\n```\n\nList the syntax of command or - if omitted - of all commands supported by tmux." }, "list-sessions": { - "description": "list-sessions [\u2212F format] [\u2212f filter]\nls\nList all sessions managed by the server. \u2212F specifies the format of each line and \u2212f a filter. Only sessions for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-sessions [-F format] [-f filter]\nls [-F format] [-f filter]\n```\n\nList all sessions managed by the server. -F specifies the format of each line and -f a filter. Only sessions for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "ls": { - "description": "list-sessions [\u2212F format] [\u2212f filter]\nls\nList all sessions managed by the server. \u2212F specifies the format of each line and \u2212f a filter. Only sessions for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-sessions [-F format] [-f filter]\nls [-F format] [-f filter]\n```\n\nList all sessions managed by the server. -F specifies the format of each line and -f a filter. Only sessions for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "lock-client": { - "description": "lock-client [\u2212t target-client]\nlockc\nLock target-client, see the lock-server command." + "description": "```tmux\nlock-client [-t target-client]\nlockc [-t target-client]\n```\n\nLock target-client, see the lock-server command." }, "lockc": { - "description": "lock-client [\u2212t target-client]\nlockc\nLock target-client, see the lock-server command." + "description": "```tmux\nlock-client [-t target-client]\nlockc [-t target-client]\n```\n\nLock target-client, see the lock-server command." }, "lock-session": { - "description": "lock-session [\u2212t target-session]\nlocks\nLock all clients attached to target-session." + "description": "```tmux\nlock-session [-t target-session]\nlocks [-t target-session]\n```\n\nLock all clients attached to target-session." }, "locks": { - "description": "lock-session [\u2212t target-session]\nlocks\nLock all clients attached to target-session." + "description": "```tmux\nlock-session [-t target-session]\nlocks [-t target-session]\n```\n\nLock all clients attached to target-session." }, "new-session": { - "description": "new-session [\u2212AdDEPX] [\u2212c start-directory] [\u2212e environment] [\u2212f flags] [\u2212F format] [\u2212n window-name] [\u2212s session-name] [\u2212t group-name] [\u2212x width] [\u2212y height] [shell-command]\nnew\nCreate a new session with name session-name." + "description": "```tmux\nnew-session [-AdDEPX] [-c start-directory] [-e environment] [-f flags] [-F format] [-n window-name] [-s session-name] [-t group-name] [-x width] [-y height] [shell-command]\nnew [-AdDEPX] [-c start-directory] [-e environment] [-f flags] [-F format] [-n window-name] [-s session-name] [-t group-name] [-x width] [-y height] [shell-command]\n```\n\nCreate a new session with name session-name." }, "new": { - "description": "new-session [\u2212AdDEPX] [\u2212c start-directory] [\u2212e environment] [\u2212f flags] [\u2212F format] [\u2212n window-name] [\u2212s session-name] [\u2212t group-name] [\u2212x width] [\u2212y height] [shell-command]\nnew\nCreate a new session with name session-name." + "description": "```tmux\nnew-session [-AdDEPX] [-c start-directory] [-e environment] [-f flags] [-F format] [-n window-name] [-s session-name] [-t group-name] [-x width] [-y height] [shell-command]\nnew [-AdDEPX] [-c start-directory] [-e environment] [-f flags] [-F format] [-n window-name] [-s session-name] [-t group-name] [-x width] [-y height] [shell-command]\n```\n\nCreate a new session with name session-name." }, "refresh-client": { - "description": "refresh-client [\u2212cDLRSU] [\u2212A pane:state] [\u2212B name:what:format] [\u2212C size] [\u2212f flags] [\u2212l [target-pane]] [\u2212t target-client] [adjustment]\nrefresh\nRefresh the current client if bound to a key, or a single client if one is given with \u2212t. If \u2212S is specified, only update the client\u2019s status line." + "description": "```tmux\nrefresh-client [-cDLRSU] [-A pane:state] [-B name:what:format] [-C size] [-f flags] [-l [target-pane]] [-t target-client] [adjustment]\nrefresh [-cDLRSU] [-A pane:state] [-B name:what:format] [-C size] [-f flags] [-l [target-pane]] [-t target-client] [adjustment]\n```\n\nRefresh the current client if bound to a key, or a single client if one is given with -t. If -S is specified, only update the client\u2019s status line." }, "refresh": { - "description": "refresh-client [\u2212cDLRSU] [\u2212A pane:state] [\u2212B name:what:format] [\u2212C size] [\u2212f flags] [\u2212l [target-pane]] [\u2212t target-client] [adjustment]\nrefresh\nRefresh the current client if bound to a key, or a single client if one is given with \u2212t. If \u2212S is specified, only update the client\u2019s status line." + "description": "```tmux\nrefresh-client [-cDLRSU] [-A pane:state] [-B name:what:format] [-C size] [-f flags] [-l [target-pane]] [-t target-client] [adjustment]\nrefresh [-cDLRSU] [-A pane:state] [-B name:what:format] [-C size] [-f flags] [-l [target-pane]] [-t target-client] [adjustment]\n```\n\nRefresh the current client if bound to a key, or a single client if one is given with -t. If -S is specified, only update the client\u2019s status line." }, "rename-session": { - "description": "rename-session [\u2212t target-session] new-name\nrename\nRename the session to new-name." + "description": "```tmux\nrename-session [-t target-session] new-name\nrename [-t target-session] new-name\n```\n\nRename the session to new-name." }, "rename": { - "description": "rename-session [\u2212t target-session] new-name\nrename\nRename the session to new-name." + "description": "```tmux\nrename-session [-t target-session] new-name\nrename [-t target-session] new-name\n```\n\nRename the session to new-name." }, "server-access": { - "description": "server-access [\u2212adlrw] [user]\nChange the access or read/write permission of user. The user running the tmux server (its owner) and the root user cannot be changed and are always permitted access." + "description": "```tmux\nserver-access [-adlrw] [user]\n```\n\nChange the access or read/write permission of user. The user running the tmux server (its owner) and the root user cannot be changed and are always permitted access." }, "show-messages": { - "description": "show-messages [\u2212JT] [\u2212t target-client]\nshowmsgs\nShow server messages or information. Messages are stored, up to a maximum of the limit set by the message-limit server option. \u2212J and \u2212T show debugging information about jobs and terminals." + "description": "```tmux\nshow-messages [-JT] [-t target-client]\nshowmsgs [-JT] [-t target-client]\n```\n\nShow server messages or information. Messages are stored, up to a maximum of the limit set by the message-limit server option. -J and -T show debugging information about jobs and terminals." }, "showmsgs": { - "description": "show-messages [\u2212JT] [\u2212t target-client]\nshowmsgs\nShow server messages or information. Messages are stored, up to a maximum of the limit set by the message-limit server option. \u2212J and \u2212T show debugging information about jobs and terminals." + "description": "```tmux\nshow-messages [-JT] [-t target-client]\nshowmsgs [-JT] [-t target-client]\n```\n\nShow server messages or information. Messages are stored, up to a maximum of the limit set by the message-limit server option. -J and -T show debugging information about jobs and terminals." }, "source-file": { - "description": "source-file [\u2212Fnqv] path ...\nsource\nExecute commands from one or more files specified by path (which may be glob(7) patterns). If \u2212F is present, then path is expanded as a format. If \u2212q is given, no error will be returned if path does not exist. With \u2212n, the file is parsed but no commands are executed. \u2212v shows the parsed commands and line numbers if possible." + "description": "```tmux\nsource-file [-Fnqv] path ...\nsource [-Fnqv] path ...\n```\n\nExecute commands from one or more files specified by path (which may be glob(7) patterns). If -F is present, then path is expanded as a format. If -q is given, no error will be returned if path does not exist. With -n, the file is parsed but no commands are executed. -v shows the parsed commands and line numbers if possible." }, "source": { - "description": "source-file [\u2212Fnqv] path ...\nsource\nExecute commands from one or more files specified by path (which may be glob(7) patterns). If \u2212F is present, then path is expanded as a format. If \u2212q is given, no error will be returned if path does not exist. With \u2212n, the file is parsed but no commands are executed. \u2212v shows the parsed commands and line numbers if possible." + "description": "```tmux\nsource-file [-Fnqv] path ...\nsource [-Fnqv] path ...\n```\n\nExecute commands from one or more files specified by path (which may be glob(7) patterns). If -F is present, then path is expanded as a format. If -q is given, no error will be returned if path does not exist. With -n, the file is parsed but no commands are executed. -v shows the parsed commands and line numbers if possible." }, "start-server": { - "description": "start-server\nstart\nStart the tmux server, if not already running, without creating any sessions." + "description": "```tmux\nstart-server\nstart\n```\n\nStart the tmux server, if not already running, without creating any sessions." }, "start": { - "description": "start-server\nstart\nStart the tmux server, if not already running, without creating any sessions." + "description": "```tmux\nstart-server\nstart\n```\n\nStart the tmux server, if not already running, without creating any sessions." }, "suspend-client": { - "description": "suspend-client [\u2212t target-client]\nsuspendc\nSuspend a client by sending SIGTSTP (tty stop)." + "description": "```tmux\nsuspend-client [-t target-client]\nsuspendc [-t target-client]\n```\n\nSuspend a client by sending SIGTSTP (tty stop)." }, "suspendc": { - "description": "suspend-client [\u2212t target-client]\nsuspendc\nSuspend a client by sending SIGTSTP (tty stop)." + "description": "```tmux\nsuspend-client [-t target-client]\nsuspendc [-t target-client]\n```\n\nSuspend a client by sending SIGTSTP (tty stop)." }, "switch-client": { - "description": "switch-client [\u2212ElnprZ] [\u2212c target-client] [\u2212t target-session] [\u2212T key-table]\nswitchc\nSwitch the current session for client target-client to target-session. As a special case, \u2212t may refer to a pane (a target that contains \u2018:\u2019, \u2018.\u2019 or \u2018%\u2019), to change session, window and pane. In that case, \u2212Z keeps the window zoomed if it was zoomed. If \u2212l, \u2212n or \u2212p is used, the client is moved to the last, next or previous session respectively. \u2212r toggles the client read-only and ignore-size flags (see the attach-session command)." + "description": "```tmux\nswitch-client [-ElnprZ] [-c target-client] [-t target-session] [-T key-table]\nswitchc [-ElnprZ] [-c target-client] [-t target-session] [-T key-table]\n```\n\nSwitch the current session for client target-client to target-session. As a special case, -t may refer to a pane (a target that contains \u2018:\u2019, \u2018.\u2019 or \u2018%\u2019), to change session, window and pane. In that case, -Z keeps the window zoomed if it was zoomed. If -l, -n or -p is used, the client is moved to the last, next or previous session respectively. -r toggles the client read-only and ignore-size flags (see the attach-session command)." }, "switchc": { - "description": "switch-client [\u2212ElnprZ] [\u2212c target-client] [\u2212t target-session] [\u2212T key-table]\nswitchc\nSwitch the current session for client target-client to target-session. As a special case, \u2212t may refer to a pane (a target that contains \u2018:\u2019, \u2018.\u2019 or \u2018%\u2019), to change session, window and pane. In that case, \u2212Z keeps the window zoomed if it was zoomed. If \u2212l, \u2212n or \u2212p is used, the client is moved to the last, next or previous session respectively. \u2212r toggles the client read-only and ignore-size flags (see the attach-session command)." - }, - "\u2212": { - "description": "\u2212\nChoose mode, which allows an item to be chosen from a list. This may be a client, a session or window or pane, or a buffer. This mode is entered with the choose-buffer, choose-client and choose-tree commands." + "description": "```tmux\nswitch-client [-ElnprZ] [-c target-client] [-t target-session] [-T key-table]\nswitchc [-ElnprZ] [-c target-client] [-t target-session] [-T key-table]\n```\n\nSwitch the current session for client target-client to target-session. As a special case, -t may refer to a pane (a target that contains \u2018:\u2019, \u2018.\u2019 or \u2018%\u2019), to change session, window and pane. In that case, -Z keeps the window zoomed if it was zoomed. If -l, -n or -p is used, the client is moved to the last, next or previous session respectively. -r toggles the client read-only and ignore-size flags (see the attach-session command)." }, "copy-mode": { - "description": "copy-mode [\u2212eHMqu] [\u2212s src-pane] [\u2212t target-pane]\nEnter copy mode. The \u2212u option scrolls one page up. \u2212M begins a mouse drag (only valid if bound to a mouse key binding, see \u201cMOUSE SUPPORT\u201d). \u2212H hides the position indicator in the top right. \u2212q cancels copy mode and any other modes. \u2212s copies from src-pane instead of target-pane." + "description": "```tmux\ncopy-mode [-eHMqu] [-s src-pane] [-t target-pane]\n```\n\nEnter copy mode. The -u option scrolls one page up. -M begins a mouse drag (only valid if bound to a mouse key binding, see \u201cMOUSE SUPPORT\u201d). -H hides the position indicator in the top right. -q cancels copy mode and any other modes. -s copies from src-pane instead of target-pane." }, "even-horizontal": { - "description": "even-horizontal\nPanes are spread out evenly from left to right across the window." + "description": "```tmux\neven-horizontal\n```\n\nPanes are spread out evenly from left to right across the window." }, "even-vertical": { - "description": "even-vertical\nPanes are spread evenly from top to bottom." + "description": "```tmux\neven-vertical\n```\n\nPanes are spread evenly from top to bottom." }, "main-horizontal": { - "description": "main-horizontal\nA large (main) pane is shown at the top of the window and the remaining panes are spread from left to right in the leftover space at the bottom. Use the main-pane-height window option to specify the height of the top pane." + "description": "```tmux\nmain-horizontal\n```\n\nA large (main) pane is shown at the top of the window and the remaining panes are spread from left to right in the leftover space at the bottom. Use the main-pane-height window option to specify the height of the top pane." }, "main-vertical": { - "description": "main-vertical\nSimilar to main-horizontal but the large pane is placed on the left and the others spread from top to bottom along the right. See the main-pane-width window option." + "description": "```tmux\nmain-vertical\n```\n\nSimilar to main-horizontal but the large pane is placed on the left and the others spread from top to bottom along the right. See the main-pane-width window option." }, "tiled": { - "description": "tiled\nPanes are spread out as evenly as possible over the window in both rows and columns." + "description": "```tmux\ntiled\n```\n\nPanes are spread out as evenly as possible over the window in both rows and columns." }, "break-pane": { - "description": "break-pane [\u2212abdP] [\u2212F format] [\u2212n window-name] [\u2212s src-pane] [\u2212t dst-window]\nbreakp\nBreak src-pane off from its containing window to make it the only pane in dst-window. With \u2212a or \u2212b, the window is moved to the next index after or before (existing windows are moved if necessary). If \u2212d is given, the new window does not become the current window. The \u2212P option prints information about the new window after it has been created. By default, it uses the format \u2018#{session_name}:#{window_index}.#{pane_index}\u2019 but a different format may be specified with \u2212F." + "description": "```tmux\nbreak-pane [-abdP] [-F format] [-n window-name] [-s src-pane] [-t dst-window]\nbreakp [-abdP] [-F format] [-n window-name] [-s src-pane] [-t dst-window]\n```\n\nBreak src-pane off from its containing window to make it the only pane in dst-window. With -a or -b, the window is moved to the next index after or before (existing windows are moved if necessary). If -d is given, the new window does not become the current window. The -P option prints information about the new window after it has been created. By default, it uses the format \u2018#{session_name}:#{window_index}.#{pane_index}\u2019 but a different format may be specified with -F." }, "breakp": { - "description": "break-pane [\u2212abdP] [\u2212F format] [\u2212n window-name] [\u2212s src-pane] [\u2212t dst-window]\nbreakp\nBreak src-pane off from its containing window to make it the only pane in dst-window. With \u2212a or \u2212b, the window is moved to the next index after or before (existing windows are moved if necessary). If \u2212d is given, the new window does not become the current window. The \u2212P option prints information about the new window after it has been created. By default, it uses the format \u2018#{session_name}:#{window_index}.#{pane_index}\u2019 but a different format may be specified with \u2212F." + "description": "```tmux\nbreak-pane [-abdP] [-F format] [-n window-name] [-s src-pane] [-t dst-window]\nbreakp [-abdP] [-F format] [-n window-name] [-s src-pane] [-t dst-window]\n```\n\nBreak src-pane off from its containing window to make it the only pane in dst-window. With -a or -b, the window is moved to the next index after or before (existing windows are moved if necessary). If -d is given, the new window does not become the current window. The -P option prints information about the new window after it has been created. By default, it uses the format \u2018#{session_name}:#{window_index}.#{pane_index}\u2019 but a different format may be specified with -F." }, "capture-pane": { - "description": "capture-pane [\u2212aepPqCJN] [\u2212b buffer-name] [\u2212E end-line] [\u2212S start-line] [\u2212t target-pane]\ncapturep\nCapture the contents of a pane. If \u2212p is given, the output goes to stdout, otherwise to the buffer specified with \u2212b or a new buffer if omitted. If \u2212a is given, the alternate screen is used, and the history is not accessible. If no alternate screen exists, an error will be returned unless \u2212q is given. If \u2212e is given, the output includes escape sequences for text and background attributes. \u2212C also escapes non-printable characters as octal \\xxx. \u2212N preserves trailing spaces at each line\u2019s end and \u2212J preserves trailing spaces and joins any wrapped lines. \u2212P captures only any output that the pane has received that is the beginning of an as-yet incomplete escape sequence." + "description": "```tmux\ncapture-pane [-aepPqCJN] [-b buffer-name] [-E end-line] [-S start-line] [-t target-pane]\ncapturep [-aepPqCJN] [-b buffer-name] [-E end-line] [-S start-line] [-t target-pane]\n```\n\nCapture the contents of a pane. If -p is given, the output goes to stdout, otherwise to the buffer specified with -b or a new buffer if omitted. If -a is given, the alternate screen is used, and the history is not accessible. If no alternate screen exists, an error will be returned unless -q is given. If -e is given, the output includes escape sequences for text and background attributes. -C also escapes non-printable characters as octal \\xxx. -N preserves trailing spaces at each line\u2019s end and -J preserves trailing spaces and joins any wrapped lines. -P captures only any output that the pane has received that is the beginning of an as-yet incomplete escape sequence." }, "capturep": { - "description": "capture-pane [\u2212aepPqCJN] [\u2212b buffer-name] [\u2212E end-line] [\u2212S start-line] [\u2212t target-pane]\ncapturep\nCapture the contents of a pane. If \u2212p is given, the output goes to stdout, otherwise to the buffer specified with \u2212b or a new buffer if omitted. If \u2212a is given, the alternate screen is used, and the history is not accessible. If no alternate screen exists, an error will be returned unless \u2212q is given. If \u2212e is given, the output includes escape sequences for text and background attributes. \u2212C also escapes non-printable characters as octal \\xxx. \u2212N preserves trailing spaces at each line\u2019s end and \u2212J preserves trailing spaces and joins any wrapped lines. \u2212P captures only any output that the pane has received that is the beginning of an as-yet incomplete escape sequence." + "description": "```tmux\ncapture-pane [-aepPqCJN] [-b buffer-name] [-E end-line] [-S start-line] [-t target-pane]\ncapturep [-aepPqCJN] [-b buffer-name] [-E end-line] [-S start-line] [-t target-pane]\n```\n\nCapture the contents of a pane. If -p is given, the output goes to stdout, otherwise to the buffer specified with -b or a new buffer if omitted. If -a is given, the alternate screen is used, and the history is not accessible. If no alternate screen exists, an error will be returned unless -q is given. If -e is given, the output includes escape sequences for text and background attributes. -C also escapes non-printable characters as octal \\xxx. -N preserves trailing spaces at each line\u2019s end and -J preserves trailing spaces and joins any wrapped lines. -P captures only any output that the pane has received that is the beginning of an as-yet incomplete escape sequence." }, "choose-client": { - "description": "choose-client [\u2212NrZ] [\u2212F format] [\u2212f filter] [\u2212K key-format] [\u2212O sort-order] [\u2212t target-pane] [template]\nPut a pane into client mode, allowing a client to be selected interactively from a list. Each client is shown on one line. A shortcut key is shown on the left in brackets allowing for immediate choice, or the list may be navigated and an item chosen or otherwise manipulated using the keys below. \u2212Z zooms the pane. The following keys may be used in client mode:" + "description": "```tmux\nchoose-client [-NrZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane] [template]\n```\n\nPut a pane into client mode, allowing a client to be selected interactively from a list. Each client is shown on one line. A shortcut key is shown on the left in brackets allowing for immediate choice, or the list may be navigated and an item chosen or otherwise manipulated using the keys below. -Z zooms the pane. The following keys may be used in client mode:" }, "choose-tree": { - "description": "choose-tree [\u2212GNrswZ] [\u2212F format] [\u2212f filter] [\u2212K key-format] [\u2212O sort-order] [\u2212t target-pane] [template]\nPut a pane into tree mode, where a session, window or pane may be chosen interactively from a tree. Each session, window or pane is shown on one line. A shortcut key is shown on the left in brackets allowing for immediate choice, or the tree may be navigated and an item chosen or otherwise manipulated using the keys below. \u2212s starts with sessions collapsed and \u2212w with windows collapsed. \u2212Z zooms the pane. The following keys may be used in tree mode:" + "description": "```tmux\nchoose-tree [-GNrswZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane] [template]\n```\n\nPut a pane into tree mode, where a session, window or pane may be chosen interactively from a tree. Each session, window or pane is shown on one line. A shortcut key is shown on the left in brackets allowing for immediate choice, or the tree may be navigated and an item chosen or otherwise manipulated using the keys below. -s starts with sessions collapsed and -w with windows collapsed. -Z zooms the pane. The following keys may be used in tree mode:" }, "customize-mode": { - "description": "customize-mode [\u2212NZ] [\u2212F format] [\u2212f filter] [\u2212t target-pane] [template]\nPut a pane into customize mode, where options and key bindings may be browsed and modified from a list. Option values in the list are shown for the active pane in the current window. \u2212Z zooms the pane. The following keys may be used in customize mode:" + "description": "```tmux\ncustomize-mode [-NZ] [-F format] [-f filter] [-t target-pane] [template]\n```\n\nPut a pane into customize mode, where options and key bindings may be browsed and modified from a list. Option values in the list are shown for the active pane in the current window. -Z zooms the pane. The following keys may be used in customize mode:" }, "display-panes": { - "description": "display-panes [\u2212bN] [\u2212d duration] [\u2212t target-client] [template]\ndisplayp\nDisplay a visible indicator of each pane shown by target-client. See the display-panes-colour and display-panes-active-colour session options. The indicator is closed when a key is pressed (unless \u2212N is given) or duration milliseconds have passed. If \u2212d is not given, display-panes-time is used. A duration of zero means the indicator stays until a key is pressed. While the indicator is on screen, a pane may be chosen with the \u20180\u2019 to \u20189\u2019 keys, which will cause template to be executed as a command with \u2018%%\u2019 substituted by the pane ID. The default template is \"select-pane -t \u2019%%\u2019\". With \u2212b, other commands are not blocked from running until the indicator is closed." + "description": "```tmux\ndisplay-panes [-bN] [-d duration] [-t target-client] [template]\ndisplayp [-bN] [-d duration] [-t target-client] [template]\n```\n\nDisplay a visible indicator of each pane shown by target-client. See the display-panes-colour and display-panes-active-colour session options. The indicator is closed when a key is pressed (unless -N is given) or duration milliseconds have passed. If -d is not given, display-panes-time is used. A duration of zero means the indicator stays until a key is pressed. While the indicator is on screen, a pane may be chosen with the \u20180\u2019 to \u20189\u2019 keys, which will cause template to be executed as a command with \u2018%%\u2019 substituted by the pane ID. The default template is \"select-pane -t \u2019%%\u2019\". With -b, other commands are not blocked from running until the indicator is closed." }, "displayp": { - "description": "display-panes [\u2212bN] [\u2212d duration] [\u2212t target-client] [template]\ndisplayp\nDisplay a visible indicator of each pane shown by target-client. See the display-panes-colour and display-panes-active-colour session options. The indicator is closed when a key is pressed (unless \u2212N is given) or duration milliseconds have passed. If \u2212d is not given, display-panes-time is used. A duration of zero means the indicator stays until a key is pressed. While the indicator is on screen, a pane may be chosen with the \u20180\u2019 to \u20189\u2019 keys, which will cause template to be executed as a command with \u2018%%\u2019 substituted by the pane ID. The default template is \"select-pane -t \u2019%%\u2019\". With \u2212b, other commands are not blocked from running until the indicator is closed." + "description": "```tmux\ndisplay-panes [-bN] [-d duration] [-t target-client] [template]\ndisplayp [-bN] [-d duration] [-t target-client] [template]\n```\n\nDisplay a visible indicator of each pane shown by target-client. See the display-panes-colour and display-panes-active-colour session options. The indicator is closed when a key is pressed (unless -N is given) or duration milliseconds have passed. If -d is not given, display-panes-time is used. A duration of zero means the indicator stays until a key is pressed. While the indicator is on screen, a pane may be chosen with the \u20180\u2019 to \u20189\u2019 keys, which will cause template to be executed as a command with \u2018%%\u2019 substituted by the pane ID. The default template is \"select-pane -t \u2019%%\u2019\". With -b, other commands are not blocked from running until the indicator is closed." }, "find-window": { - "description": "find-window [\u2212iCNrTZ] [\u2212t target-pane] match-string\nfindw\nSearch for a fnmatch(3) pattern or, with \u2212r, regular expression match-string in window names, titles, and visible content (but not history). The flags control matching behavior: \u2212C matches only visible window contents, \u2212N matches only the window name and \u2212T matches only the window title. \u2212i makes the search ignore case. The default is \u2212CNT. \u2212Z zooms the pane." + "description": "```tmux\nfind-window [-iCNrTZ] [-t target-pane] match-string\nfindw [-iCNrTZ] [-t target-pane] match-string\n```\n\nSearch for a fnmatch(3) pattern or, with -r, regular expression match-string in window names, titles, and visible content (but not history). The flags control matching behavior: -C matches only visible window contents, -N matches only the window name and -T matches only the window title. -i makes the search ignore case. The default is -CNT. -Z zooms the pane." }, "findw": { - "description": "find-window [\u2212iCNrTZ] [\u2212t target-pane] match-string\nfindw\nSearch for a fnmatch(3) pattern or, with \u2212r, regular expression match-string in window names, titles, and visible content (but not history). The flags control matching behavior: \u2212C matches only visible window contents, \u2212N matches only the window name and \u2212T matches only the window title. \u2212i makes the search ignore case. The default is \u2212CNT. \u2212Z zooms the pane." + "description": "```tmux\nfind-window [-iCNrTZ] [-t target-pane] match-string\nfindw [-iCNrTZ] [-t target-pane] match-string\n```\n\nSearch for a fnmatch(3) pattern or, with -r, regular expression match-string in window names, titles, and visible content (but not history). The flags control matching behavior: -C matches only visible window contents, -N matches only the window name and -T matches only the window title. -i makes the search ignore case. The default is -CNT. -Z zooms the pane." }, "join-pane": { - "description": "join-pane [\u2212bdfhv] [\u2212l size] [\u2212s src-pane] [\u2212t dst-pane]\njoinp\nLike split-window, but instead of splitting dst-pane and creating a new pane, split it and move src-pane into the space. This can be used to reverse break-pane. The \u2212b option causes src-pane to be joined to left of or above dst-pane." + "description": "```tmux\njoin-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\njoinp [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\n```\n\nLike split-window, but instead of splitting dst-pane and creating a new pane, split it and move src-pane into the space. This can be used to reverse break-pane. The -b option causes src-pane to be joined to left of or above dst-pane." }, "joinp": { - "description": "join-pane [\u2212bdfhv] [\u2212l size] [\u2212s src-pane] [\u2212t dst-pane]\njoinp\nLike split-window, but instead of splitting dst-pane and creating a new pane, split it and move src-pane into the space. This can be used to reverse break-pane. The \u2212b option causes src-pane to be joined to left of or above dst-pane." + "description": "```tmux\njoin-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\njoinp [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\n```\n\nLike split-window, but instead of splitting dst-pane and creating a new pane, split it and move src-pane into the space. This can be used to reverse break-pane. The -b option causes src-pane to be joined to left of or above dst-pane." }, "kill-pane": { - "description": "kill-pane [\u2212a] [\u2212t target-pane]\nkillp\nDestroy the given pane. If no panes remain in the containing window, it is also destroyed. The \u2212a option kills all but the pane given with \u2212t." + "description": "```tmux\nkill-pane [-a] [-t target-pane]\nkillp [-a] [-t target-pane]\n```\n\nDestroy the given pane. If no panes remain in the containing window, it is also destroyed. The -a option kills all but the pane given with -t." }, "killp": { - "description": "kill-pane [\u2212a] [\u2212t target-pane]\nkillp\nDestroy the given pane. If no panes remain in the containing window, it is also destroyed. The \u2212a option kills all but the pane given with \u2212t." + "description": "```tmux\nkill-pane [-a] [-t target-pane]\nkillp [-a] [-t target-pane]\n```\n\nDestroy the given pane. If no panes remain in the containing window, it is also destroyed. The -a option kills all but the pane given with -t." }, "kill-window": { - "description": "kill-window [\u2212a] [\u2212t target-window]\nkillw\nKill the current window or the window at target-window, removing it from any sessions to which it is linked. The \u2212a option kills all but the window given with \u2212t." + "description": "```tmux\nkill-window [-a] [-t target-window]\nkillw [-a] [-t target-window]\n```\n\nKill the current window or the window at target-window, removing it from any sessions to which it is linked. The -a option kills all but the window given with -t." }, "killw": { - "description": "kill-window [\u2212a] [\u2212t target-window]\nkillw\nKill the current window or the window at target-window, removing it from any sessions to which it is linked. The \u2212a option kills all but the window given with \u2212t." + "description": "```tmux\nkill-window [-a] [-t target-window]\nkillw [-a] [-t target-window]\n```\n\nKill the current window or the window at target-window, removing it from any sessions to which it is linked. The -a option kills all but the window given with -t." }, "last-pane": { - "description": "last-pane [\u2212deZ] [\u2212t target-window]\nlastp\nSelect the last (previously selected) pane. \u2212Z keeps the window zoomed if it was zoomed. \u2212e enables or \u2212d disables input to the pane." + "description": "```tmux\nlast-pane [-deZ] [-t target-window]\nlastp [-deZ] [-t target-window]\n```\n\nSelect the last (previously selected) pane. -Z keeps the window zoomed if it was zoomed. -e enables or -d disables input to the pane." }, "lastp": { - "description": "last-pane [\u2212deZ] [\u2212t target-window]\nlastp\nSelect the last (previously selected) pane. \u2212Z keeps the window zoomed if it was zoomed. \u2212e enables or \u2212d disables input to the pane." + "description": "```tmux\nlast-pane [-deZ] [-t target-window]\nlastp [-deZ] [-t target-window]\n```\n\nSelect the last (previously selected) pane. -Z keeps the window zoomed if it was zoomed. -e enables or -d disables input to the pane." }, "last-window": { - "description": "last-window [\u2212t target-session]\nlast\nSelect the last (previously selected) window. If no target-session is specified, select the last window of the current session." + "description": "```tmux\nlast-window [-t target-session]\nlast [-t target-session]\n```\n\nSelect the last (previously selected) window. If no target-session is specified, select the last window of the current session." }, "last": { - "description": "last-window [\u2212t target-session]\nlast\nSelect the last (previously selected) window. If no target-session is specified, select the last window of the current session." + "description": "```tmux\nlast-window [-t target-session]\nlast [-t target-session]\n```\n\nSelect the last (previously selected) window. If no target-session is specified, select the last window of the current session." }, "link-window": { - "description": "link-window [\u2212abdk] [\u2212s src-window] [\u2212t dst-window]\nlinkw\nLink the window at src-window to the specified dst-window. If dst-window is specified and no such window exists, the src-window is linked there. With \u2212a or \u2212b the window is moved to the next index after or before dst-window (existing windows are moved if necessary). If \u2212k is given and dst-window exists, it is killed, otherwise an error is generated. If \u2212d is given, the newly linked window is not selected." + "description": "```tmux\nlink-window [-abdk] [-s src-window] [-t dst-window]\nlinkw [-abdk] [-s src-window] [-t dst-window]\n```\n\nLink the window at src-window to the specified dst-window. If dst-window is specified and no such window exists, the src-window is linked there. With -a or -b the window is moved to the next index after or before dst-window (existing windows are moved if necessary). If -k is given and dst-window exists, it is killed, otherwise an error is generated. If -d is given, the newly linked window is not selected." }, "linkw": { - "description": "link-window [\u2212abdk] [\u2212s src-window] [\u2212t dst-window]\nlinkw\nLink the window at src-window to the specified dst-window. If dst-window is specified and no such window exists, the src-window is linked there. With \u2212a or \u2212b the window is moved to the next index after or before dst-window (existing windows are moved if necessary). If \u2212k is given and dst-window exists, it is killed, otherwise an error is generated. If \u2212d is given, the newly linked window is not selected." + "description": "```tmux\nlink-window [-abdk] [-s src-window] [-t dst-window]\nlinkw [-abdk] [-s src-window] [-t dst-window]\n```\n\nLink the window at src-window to the specified dst-window. If dst-window is specified and no such window exists, the src-window is linked there. With -a or -b the window is moved to the next index after or before dst-window (existing windows are moved if necessary). If -k is given and dst-window exists, it is killed, otherwise an error is generated. If -d is given, the newly linked window is not selected." }, "list-panes": { - "description": "list-panes [\u2212as] [\u2212F format] [\u2212f filter] [\u2212t target]\nlsp\nIf \u2212a is given, target is ignored and all panes on the server are listed. If \u2212s is given, target is a session (or the current session). If neither is given, target is a window (or the current window). \u2212F specifies the format of each line and \u2212f a filter. Only panes for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-panes [-as] [-F format] [-f filter] [-t target]\nlsp [-as] [-F format] [-f filter] [-t target]\n```\n\nIf -a is given, target is ignored and all panes on the server are listed. If -s is given, target is a session (or the current session). If neither is given, target is a window (or the current window). -F specifies the format of each line and -f a filter. Only panes for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "lsp": { - "description": "list-panes [\u2212as] [\u2212F format] [\u2212f filter] [\u2212t target]\nlsp\nIf \u2212a is given, target is ignored and all panes on the server are listed. If \u2212s is given, target is a session (or the current session). If neither is given, target is a window (or the current window). \u2212F specifies the format of each line and \u2212f a filter. Only panes for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-panes [-as] [-F format] [-f filter] [-t target]\nlsp [-as] [-F format] [-f filter] [-t target]\n```\n\nIf -a is given, target is ignored and all panes on the server are listed. If -s is given, target is a session (or the current session). If neither is given, target is a window (or the current window). -F specifies the format of each line and -f a filter. Only panes for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "list-windows": { - "description": "list-windows [\u2212a] [\u2212F format] [\u2212f filter] [\u2212t target-session]\nlsw\nIf \u2212a is given, list all windows on the server. Otherwise, list windows in the current session or in target-session. \u2212F specifies the format of each line and \u2212f a filter. Only windows for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-windows [-a] [-F format] [-f filter] [-t target-session]\nlsw [-a] [-F format] [-f filter] [-t target-session]\n```\n\nIf -a is given, list all windows on the server. Otherwise, list windows in the current session or in target-session. -F specifies the format of each line and -f a filter. Only windows for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "lsw": { - "description": "list-windows [\u2212a] [\u2212F format] [\u2212f filter] [\u2212t target-session]\nlsw\nIf \u2212a is given, list all windows on the server. Otherwise, list windows in the current session or in target-session. \u2212F specifies the format of each line and \u2212f a filter. Only windows for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-windows [-a] [-F format] [-f filter] [-t target-session]\nlsw [-a] [-F format] [-f filter] [-t target-session]\n```\n\nIf -a is given, list all windows on the server. Otherwise, list windows in the current session or in target-session. -F specifies the format of each line and -f a filter. Only windows for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "move-pane": { - "description": "move-pane [\u2212bdfhv] [\u2212l size] [\u2212s src-pane] [\u2212t dst-pane]\nmovep\nDoes the same as join-pane." + "description": "```tmux\nmove-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\nmovep [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\n```\n\nDoes the same as join-pane." }, "movep": { - "description": "move-pane [\u2212bdfhv] [\u2212l size] [\u2212s src-pane] [\u2212t dst-pane]\nmovep\nDoes the same as join-pane." + "description": "```tmux\nmove-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\nmovep [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]\n```\n\nDoes the same as join-pane." }, "move-window": { - "description": "move-window [\u2212abrdk] [\u2212s src-window] [\u2212t dst-window]\nmovew\nThis is similar to link-window, except the window at src-window is moved to dst-window. With \u2212r, all windows in the session are renumbered in sequential order, respecting the base-index option." + "description": "```tmux\nmove-window [-abrdk] [-s src-window] [-t dst-window]\nmovew [-abrdk] [-s src-window] [-t dst-window]\n```\n\nThis is similar to link-window, except the window at src-window is moved to dst-window. With -r, all windows in the session are renumbered in sequential order, respecting the base-index option." }, "movew": { - "description": "move-window [\u2212abrdk] [\u2212s src-window] [\u2212t dst-window]\nmovew\nThis is similar to link-window, except the window at src-window is moved to dst-window. With \u2212r, all windows in the session are renumbered in sequential order, respecting the base-index option." + "description": "```tmux\nmove-window [-abrdk] [-s src-window] [-t dst-window]\nmovew [-abrdk] [-s src-window] [-t dst-window]\n```\n\nThis is similar to link-window, except the window at src-window is moved to dst-window. With -r, all windows in the session are renumbered in sequential order, respecting the base-index option." }, "new-window": { - "description": "new-window [\u2212abdkPS] [\u2212c start-directory] [\u2212e environment] [\u2212F format] [\u2212n window-name] [\u2212t target-window] [shell-command]\nneww\nCreate a new window. With \u2212a or \u2212b, the new window is inserted at the next index after or before the specified target-window, moving windows up if necessary; otherwise target-window is the new window location." + "description": "```tmux\nnew-window [-abdkPS] [-c start-directory] [-e environment] [-F format] [-n window-name] [-t target-window] [shell-command]\nneww [-abdkPS] [-c start-directory] [-e environment] [-F format] [-n window-name] [-t target-window] [shell-command]\n```\n\nCreate a new window. With -a or -b, the new window is inserted at the next index after or before the specified target-window, moving windows up if necessary; otherwise target-window is the new window location." }, "neww": { - "description": "new-window [\u2212abdkPS] [\u2212c start-directory] [\u2212e environment] [\u2212F format] [\u2212n window-name] [\u2212t target-window] [shell-command]\nneww\nCreate a new window. With \u2212a or \u2212b, the new window is inserted at the next index after or before the specified target-window, moving windows up if necessary; otherwise target-window is the new window location." + "description": "```tmux\nnew-window [-abdkPS] [-c start-directory] [-e environment] [-F format] [-n window-name] [-t target-window] [shell-command]\nneww [-abdkPS] [-c start-directory] [-e environment] [-F format] [-n window-name] [-t target-window] [shell-command]\n```\n\nCreate a new window. With -a or -b, the new window is inserted at the next index after or before the specified target-window, moving windows up if necessary; otherwise target-window is the new window location." }, "next-layout": { - "description": "next-layout [\u2212t target-window]\nnextl\nMove a window to the next layout and rearrange the panes to fit." + "description": "```tmux\nnext-layout [-t target-window]\nnextl [-t target-window]\n```\n\nMove a window to the next layout and rearrange the panes to fit." }, "nextl": { - "description": "next-layout [\u2212t target-window]\nnextl\nMove a window to the next layout and rearrange the panes to fit." + "description": "```tmux\nnext-layout [-t target-window]\nnextl [-t target-window]\n```\n\nMove a window to the next layout and rearrange the panes to fit." }, "next-window": { - "description": "next-window [\u2212a] [\u2212t target-session]\nnext\nMove to the next window in the session. If \u2212a is used, move to the next window with an alert." + "description": "```tmux\nnext-window [-a] [-t target-session]\nnext [-a] [-t target-session]\n```\n\nMove to the next window in the session. If -a is used, move to the next window with an alert." }, "next": { - "description": "next-window [\u2212a] [\u2212t target-session]\nnext\nMove to the next window in the session. If \u2212a is used, move to the next window with an alert." + "description": "```tmux\nnext-window [-a] [-t target-session]\nnext [-a] [-t target-session]\n```\n\nMove to the next window in the session. If -a is used, move to the next window with an alert." }, "pipe-pane": { - "description": "pipe-pane [\u2212IOo] [\u2212t target-pane] [shell-command]\npipep\nPipe output sent by the program in target-pane to a shell command or vice versa. A pane may only be connected to one command at a time, any existing pipe is closed before shell-command is executed. The shell-command string may contain the special character sequences supported by the status-left option. If no shell-command is given, the current pipe (if any) is closed." + "description": "```tmux\npipe-pane [-IOo] [-t target-pane] [shell-command]\npipep [-IOo] [-t target-pane] [shell-command]\n```\n\nPipe output sent by the program in target-pane to a shell command or vice versa. A pane may only be connected to one command at a time, any existing pipe is closed before shell-command is executed. The shell-command string may contain the special character sequences supported by the status-left option. If no shell-command is given, the current pipe (if any) is closed." }, "pipep": { - "description": "pipe-pane [\u2212IOo] [\u2212t target-pane] [shell-command]\npipep\nPipe output sent by the program in target-pane to a shell command or vice versa. A pane may only be connected to one command at a time, any existing pipe is closed before shell-command is executed. The shell-command string may contain the special character sequences supported by the status-left option. If no shell-command is given, the current pipe (if any) is closed." + "description": "```tmux\npipe-pane [-IOo] [-t target-pane] [shell-command]\npipep [-IOo] [-t target-pane] [shell-command]\n```\n\nPipe output sent by the program in target-pane to a shell command or vice versa. A pane may only be connected to one command at a time, any existing pipe is closed before shell-command is executed. The shell-command string may contain the special character sequences supported by the status-left option. If no shell-command is given, the current pipe (if any) is closed." }, "previous-layout": { - "description": "previous-layout [\u2212t target-window]\nprevl\nMove to the previous layout in the session." + "description": "```tmux\nprevious-layout [-t target-window]\nprevl [-t target-window]\n```\n\nMove to the previous layout in the session." }, "prevl": { - "description": "previous-layout [\u2212t target-window]\nprevl\nMove to the previous layout in the session." + "description": "```tmux\nprevious-layout [-t target-window]\nprevl [-t target-window]\n```\n\nMove to the previous layout in the session." }, "previous-window": { - "description": "previous-window [\u2212a] [\u2212t target-session]\nprev\nMove to the previous window in the session. With \u2212a, move to the previous window with an alert." + "description": "```tmux\nprevious-window [-a] [-t target-session]\nprev [-a] [-t target-session]\n```\n\nMove to the previous window in the session. With -a, move to the previous window with an alert." }, "prev": { - "description": "previous-window [\u2212a] [\u2212t target-session]\nprev\nMove to the previous window in the session. With \u2212a, move to the previous window with an alert." + "description": "```tmux\nprevious-window [-a] [-t target-session]\nprev [-a] [-t target-session]\n```\n\nMove to the previous window in the session. With -a, move to the previous window with an alert." }, "rename-window": { - "description": "rename-window [\u2212t target-window] new-name\nrenamew\nRename the current window, or the window at target-window if specified, to new-name." + "description": "```tmux\nrename-window [-t target-window] new-name\nrenamew [-t target-window] new-name\n```\n\nRename the current window, or the window at target-window if specified, to new-name." }, "renamew": { - "description": "rename-window [\u2212t target-window] new-name\nrenamew\nRename the current window, or the window at target-window if specified, to new-name." + "description": "```tmux\nrename-window [-t target-window] new-name\nrenamew [-t target-window] new-name\n```\n\nRename the current window, or the window at target-window if specified, to new-name." }, "resize-pane": { - "description": "resize-pane [\u2212DLMRTUZ] [\u2212t target-pane] [\u2212x width] [\u2212y height] [adjustment]\nresizep\nResize a pane, up, down, left or right by adjustment with \u2212U, \u2212D, \u2212L or \u2212R, or to an absolute size with \u2212x or \u2212y. The adjustment is given in lines or columns (the default is 1); \u2212x and \u2212y may be a given as a number of lines or columns or followed by \u2018%\u2019 for a percentage of the window size (for example \u2018-x 10%\u2019). With \u2212Z, the active pane is toggled between zoomed (occupying the whole of the window) and unzoomed (its normal position in the layout)." + "description": "```tmux\nresize-pane [-DLMRTUZ] [-t target-pane] [-x width] [-y height] [adjustment]\nresizep [-DLMRTUZ] [-t target-pane] [-x width] [-y height] [adjustment]\n```\n\nResize a pane, up, down, left or right by adjustment with -U, -D, -L or -R, or to an absolute size with -x or -y. The adjustment is given in lines or columns (the default is 1); -x and -y may be a given as a number of lines or columns or followed by \u2018%\u2019 for a percentage of the window size (for example \u2018-x 10%\u2019). With -Z, the active pane is toggled between zoomed (occupying the whole of the window) and unzoomed (its normal position in the layout)." }, "resizep": { - "description": "resize-pane [\u2212DLMRTUZ] [\u2212t target-pane] [\u2212x width] [\u2212y height] [adjustment]\nresizep\nResize a pane, up, down, left or right by adjustment with \u2212U, \u2212D, \u2212L or \u2212R, or to an absolute size with \u2212x or \u2212y. The adjustment is given in lines or columns (the default is 1); \u2212x and \u2212y may be a given as a number of lines or columns or followed by \u2018%\u2019 for a percentage of the window size (for example \u2018-x 10%\u2019). With \u2212Z, the active pane is toggled between zoomed (occupying the whole of the window) and unzoomed (its normal position in the layout)." + "description": "```tmux\nresize-pane [-DLMRTUZ] [-t target-pane] [-x width] [-y height] [adjustment]\nresizep [-DLMRTUZ] [-t target-pane] [-x width] [-y height] [adjustment]\n```\n\nResize a pane, up, down, left or right by adjustment with -U, -D, -L or -R, or to an absolute size with -x or -y. The adjustment is given in lines or columns (the default is 1); -x and -y may be a given as a number of lines or columns or followed by \u2018%\u2019 for a percentage of the window size (for example \u2018-x 10%\u2019). With -Z, the active pane is toggled between zoomed (occupying the whole of the window) and unzoomed (its normal position in the layout)." }, "resize-window": { - "description": "resize-window [\u2212aADLRU] [\u2212t target-window] [\u2212x width] [\u2212y height] [adjustment]\nresizew\nResize a window, up, down, left or right by adjustment with \u2212U, \u2212D, \u2212L or \u2212R, or to an absolute size with \u2212x or \u2212y. The adjustment is given in lines or cells (the default is 1). \u2212A sets the size of the largest session containing the window; \u2212a the size of the smallest. This command will automatically set window-size to manual in the window options." + "description": "```tmux\nresize-window [-aADLRU] [-t target-window] [-x width] [-y height] [adjustment]\nresizew [-aADLRU] [-t target-window] [-x width] [-y height] [adjustment]\n```\n\nResize a window, up, down, left or right by adjustment with -U, -D, -L or -R, or to an absolute size with -x or -y. The adjustment is given in lines or cells (the default is 1). -A sets the size of the largest session containing the window; -a the size of the smallest. This command will automatically set window-size to manual in the window options." }, "resizew": { - "description": "resize-window [\u2212aADLRU] [\u2212t target-window] [\u2212x width] [\u2212y height] [adjustment]\nresizew\nResize a window, up, down, left or right by adjustment with \u2212U, \u2212D, \u2212L or \u2212R, or to an absolute size with \u2212x or \u2212y. The adjustment is given in lines or cells (the default is 1). \u2212A sets the size of the largest session containing the window; \u2212a the size of the smallest. This command will automatically set window-size to manual in the window options." + "description": "```tmux\nresize-window [-aADLRU] [-t target-window] [-x width] [-y height] [adjustment]\nresizew [-aADLRU] [-t target-window] [-x width] [-y height] [adjustment]\n```\n\nResize a window, up, down, left or right by adjustment with -U, -D, -L or -R, or to an absolute size with -x or -y. The adjustment is given in lines or cells (the default is 1). -A sets the size of the largest session containing the window; -a the size of the smallest. This command will automatically set window-size to manual in the window options." }, "respawn-pane": { - "description": "respawn-pane [\u2212k] [\u2212c start-directory] [\u2212e environment] [\u2212t target-pane] [shell-command]\nrespawnp\nReactivate a pane in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the pane was created or last respawned is executed. The pane must be already inactive, unless \u2212k is given, in which case any existing command is killed. \u2212c specifies a new working directory for the pane. The \u2212e option has the same meaning as for the new-window command." + "description": "```tmux\nrespawn-pane [-k] [-c start-directory] [-e environment] [-t target-pane] [shell-command]\nrespawnp [-k] [-c start-directory] [-e environment] [-t target-pane] [shell-command]\n```\n\nReactivate a pane in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the pane was created or last respawned is executed. The pane must be already inactive, unless -k is given, in which case any existing command is killed. -c specifies a new working directory for the pane. The -e option has the same meaning as for the new-window command." }, "respawnp": { - "description": "respawn-pane [\u2212k] [\u2212c start-directory] [\u2212e environment] [\u2212t target-pane] [shell-command]\nrespawnp\nReactivate a pane in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the pane was created or last respawned is executed. The pane must be already inactive, unless \u2212k is given, in which case any existing command is killed. \u2212c specifies a new working directory for the pane. The \u2212e option has the same meaning as for the new-window command." + "description": "```tmux\nrespawn-pane [-k] [-c start-directory] [-e environment] [-t target-pane] [shell-command]\nrespawnp [-k] [-c start-directory] [-e environment] [-t target-pane] [shell-command]\n```\n\nReactivate a pane in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the pane was created or last respawned is executed. The pane must be already inactive, unless -k is given, in which case any existing command is killed. -c specifies a new working directory for the pane. The -e option has the same meaning as for the new-window command." }, "respawn-window": { - "description": "respawn-window [\u2212k] [\u2212c start-directory] [\u2212e environment] [\u2212t target-window] [shell-command]\nrespawnw\nReactivate a window in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the window was created or last respawned is executed. The window must be already inactive, unless \u2212k is given, in which case any existing command is killed. \u2212c specifies a new working directory for the window. The \u2212e option has the same meaning as for the new-window command." + "description": "```tmux\nrespawn-window [-k] [-c start-directory] [-e environment] [-t target-window] [shell-command]\nrespawnw [-k] [-c start-directory] [-e environment] [-t target-window] [shell-command]\n```\n\nReactivate a window in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the window was created or last respawned is executed. The window must be already inactive, unless -k is given, in which case any existing command is killed. -c specifies a new working directory for the window. The -e option has the same meaning as for the new-window command." }, "respawnw": { - "description": "respawn-window [\u2212k] [\u2212c start-directory] [\u2212e environment] [\u2212t target-window] [shell-command]\nrespawnw\nReactivate a window in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the window was created or last respawned is executed. The window must be already inactive, unless \u2212k is given, in which case any existing command is killed. \u2212c specifies a new working directory for the window. The \u2212e option has the same meaning as for the new-window command." + "description": "```tmux\nrespawn-window [-k] [-c start-directory] [-e environment] [-t target-window] [shell-command]\nrespawnw [-k] [-c start-directory] [-e environment] [-t target-window] [shell-command]\n```\n\nReactivate a window in which the command has exited (see the remain-on-exit window option). If shell-command is not given, the command used when the window was created or last respawned is executed. The window must be already inactive, unless -k is given, in which case any existing command is killed. -c specifies a new working directory for the window. The -e option has the same meaning as for the new-window command." }, "rotate-window": { - "description": "rotate-window [\u2212DUZ] [\u2212t target-window]\nrotatew\nRotate the positions of the panes within a window, either upward (numerically lower) with \u2212U or downward (numerically higher). \u2212Z keeps the window zoomed if it was zoomed." + "description": "```tmux\nrotate-window [-DUZ] [-t target-window]\nrotatew [-DUZ] [-t target-window]\n```\n\nRotate the positions of the panes within a window, either upward (numerically lower) with -U or downward (numerically higher). -Z keeps the window zoomed if it was zoomed." }, "rotatew": { - "description": "rotate-window [\u2212DUZ] [\u2212t target-window]\nrotatew\nRotate the positions of the panes within a window, either upward (numerically lower) with \u2212U or downward (numerically higher). \u2212Z keeps the window zoomed if it was zoomed." + "description": "```tmux\nrotate-window [-DUZ] [-t target-window]\nrotatew [-DUZ] [-t target-window]\n```\n\nRotate the positions of the panes within a window, either upward (numerically lower) with -U or downward (numerically higher). -Z keeps the window zoomed if it was zoomed." }, "select-layout": { - "description": "select-layout [\u2212Enop] [\u2212t target-pane] [layout-name]\nselectl\nChoose a specific layout for a window. If layout-name is not given, the last preset layout used (if any) is reapplied. \u2212n and \u2212p are equivalent to the next-layout and previous-layout commands. \u2212o applies the last set layout if possible (undoes the most recent layout change). \u2212E spreads the current pane and any panes next to it out evenly." + "description": "```tmux\nselect-layout [-Enop] [-t target-pane] [layout-name]\nselectl [-Enop] [-t target-pane] [layout-name]\n```\n\nChoose a specific layout for a window. If layout-name is not given, the last preset layout used (if any) is reapplied. -n and -p are equivalent to the next-layout and previous-layout commands. -o applies the last set layout if possible (undoes the most recent layout change). -E spreads the current pane and any panes next to it out evenly." }, "selectl": { - "description": "select-layout [\u2212Enop] [\u2212t target-pane] [layout-name]\nselectl\nChoose a specific layout for a window. If layout-name is not given, the last preset layout used (if any) is reapplied. \u2212n and \u2212p are equivalent to the next-layout and previous-layout commands. \u2212o applies the last set layout if possible (undoes the most recent layout change). \u2212E spreads the current pane and any panes next to it out evenly." + "description": "```tmux\nselect-layout [-Enop] [-t target-pane] [layout-name]\nselectl [-Enop] [-t target-pane] [layout-name]\n```\n\nChoose a specific layout for a window. If layout-name is not given, the last preset layout used (if any) is reapplied. -n and -p are equivalent to the next-layout and previous-layout commands. -o applies the last set layout if possible (undoes the most recent layout change). -E spreads the current pane and any panes next to it out evenly." }, "select-pane": { - "description": "select-pane [\u2212DdeLlMmRUZ] [\u2212T title] [\u2212t target-pane]\nselectp\nMake pane target-pane the active pane in its window. If one of \u2212D, \u2212L, \u2212R, or \u2212U is used, respectively the pane below, to the left, to the right, or above the target pane is used. \u2212Z keeps the window zoomed if it was zoomed. \u2212l is the same as using the last-pane command. \u2212e enables or \u2212d disables input to the pane. \u2212T sets the pane title." + "description": "```tmux\nselect-pane [-DdeLlMmRUZ] [-T title] [-t target-pane]\nselectp [-DdeLlMmRUZ] [-T title] [-t target-pane]\n```\n\nMake pane target-pane the active pane in its window. If one of -D, -L, -R, or -U is used, respectively the pane below, to the left, to the right, or above the target pane is used. -Z keeps the window zoomed if it was zoomed. -l is the same as using the last-pane command. -e enables or -d disables input to the pane. -T sets the pane title." }, "selectp": { - "description": "select-pane [\u2212DdeLlMmRUZ] [\u2212T title] [\u2212t target-pane]\nselectp\nMake pane target-pane the active pane in its window. If one of \u2212D, \u2212L, \u2212R, or \u2212U is used, respectively the pane below, to the left, to the right, or above the target pane is used. \u2212Z keeps the window zoomed if it was zoomed. \u2212l is the same as using the last-pane command. \u2212e enables or \u2212d disables input to the pane. \u2212T sets the pane title." + "description": "```tmux\nselect-pane [-DdeLlMmRUZ] [-T title] [-t target-pane]\nselectp [-DdeLlMmRUZ] [-T title] [-t target-pane]\n```\n\nMake pane target-pane the active pane in its window. If one of -D, -L, -R, or -U is used, respectively the pane below, to the left, to the right, or above the target pane is used. -Z keeps the window zoomed if it was zoomed. -l is the same as using the last-pane command. -e enables or -d disables input to the pane. -T sets the pane title." }, "select-window": { - "description": "select-window [\u2212lnpT] [\u2212t target-window]\nselectw\nSelect the window at target-window. \u2212l, \u2212n and \u2212p are equivalent to the last-window, next-window and previous-window commands. If \u2212T is given and the selected window is already the current window, the command behaves like last-window." + "description": "```tmux\nselect-window [-lnpT] [-t target-window]\nselectw [-lnpT] [-t target-window]\n```\n\nSelect the window at target-window. -l, -n and -p are equivalent to the last-window, next-window and previous-window commands. If -T is given and the selected window is already the current window, the command behaves like last-window." }, "selectw": { - "description": "select-window [\u2212lnpT] [\u2212t target-window]\nselectw\nSelect the window at target-window. \u2212l, \u2212n and \u2212p are equivalent to the last-window, next-window and previous-window commands. If \u2212T is given and the selected window is already the current window, the command behaves like last-window." + "description": "```tmux\nselect-window [-lnpT] [-t target-window]\nselectw [-lnpT] [-t target-window]\n```\n\nSelect the window at target-window. -l, -n and -p are equivalent to the last-window, next-window and previous-window commands. If -T is given and the selected window is already the current window, the command behaves like last-window." }, "split-window": { - "description": "split-window [\u2212bdfhIvPZ] [\u2212c start-directory] [\u2212e environment] [\u2212l size] [\u2212t target-pane] [shell-command] [\u2212F format]\nsplitw\nCreate a new pane by splitting target-pane: \u2212h does a horizontal split and \u2212v a vertical split; if neither is specified, \u2212v is assumed. The \u2212l option specifies the size of the new pane in lines (for vertical split) or in columns (for horizontal split); size may be followed by \u2018%\u2019 to specify a percentage of the available space. The \u2212b option causes the new pane to be created to the left of or above target-pane. The \u2212f option creates a new pane spanning the full window height (with \u2212h) or full window width (with \u2212v), instead of splitting the active pane. \u2212Z zooms if the window is not zoomed, or keeps it zoomed if already zoomed." + "description": "```tmux\nsplit-window [-bdfhIvPZ] [-c start-directory] [-e environment] [-l size] [-t target-pane] [shell-command] [-F format]\nsplitw [-bdfhIvPZ] [-c start-directory] [-e environment] [-l size] [-t target-pane] [shell-command] [-F format]\n```\n\nCreate a new pane by splitting target-pane: -h does a horizontal split and -v a vertical split; if neither is specified, -v is assumed. The -l option specifies the size of the new pane in lines (for vertical split) or in columns (for horizontal split); size may be followed by \u2018%\u2019 to specify a percentage of the available space. The -b option causes the new pane to be created to the left of or above target-pane. The -f option creates a new pane spanning the full window height (with -h) or full window width (with -v), instead of splitting the active pane. -Z zooms if the window is not zoomed, or keeps it zoomed if already zoomed." }, "splitw": { - "description": "split-window [\u2212bdfhIvPZ] [\u2212c start-directory] [\u2212e environment] [\u2212l size] [\u2212t target-pane] [shell-command] [\u2212F format]\nsplitw\nCreate a new pane by splitting target-pane: \u2212h does a horizontal split and \u2212v a vertical split; if neither is specified, \u2212v is assumed. The \u2212l option specifies the size of the new pane in lines (for vertical split) or in columns (for horizontal split); size may be followed by \u2018%\u2019 to specify a percentage of the available space. The \u2212b option causes the new pane to be created to the left of or above target-pane. The \u2212f option creates a new pane spanning the full window height (with \u2212h) or full window width (with \u2212v), instead of splitting the active pane. \u2212Z zooms if the window is not zoomed, or keeps it zoomed if already zoomed." + "description": "```tmux\nsplit-window [-bdfhIvPZ] [-c start-directory] [-e environment] [-l size] [-t target-pane] [shell-command] [-F format]\nsplitw [-bdfhIvPZ] [-c start-directory] [-e environment] [-l size] [-t target-pane] [shell-command] [-F format]\n```\n\nCreate a new pane by splitting target-pane: -h does a horizontal split and -v a vertical split; if neither is specified, -v is assumed. The -l option specifies the size of the new pane in lines (for vertical split) or in columns (for horizontal split); size may be followed by \u2018%\u2019 to specify a percentage of the available space. The -b option causes the new pane to be created to the left of or above target-pane. The -f option creates a new pane spanning the full window height (with -h) or full window width (with -v), instead of splitting the active pane. -Z zooms if the window is not zoomed, or keeps it zoomed if already zoomed." }, "swap-pane": { - "description": "swap-pane [\u2212dDUZ] [\u2212s src-pane] [\u2212t dst-pane]\nswapp\nSwap two panes. If \u2212U is used and no source pane is specified with \u2212s, dst-pane is swapped with the previous pane (before it numerically); \u2212D swaps with the next pane (after it numerically). \u2212d instructs tmux not to change the active pane and \u2212Z keeps the window zoomed if it was zoomed." + "description": "```tmux\nswap-pane [-dDUZ] [-s src-pane] [-t dst-pane]\nswapp [-dDUZ] [-s src-pane] [-t dst-pane]\n```\n\nSwap two panes. If -U is used and no source pane is specified with -s, dst-pane is swapped with the previous pane (before it numerically); -D swaps with the next pane (after it numerically). -d instructs tmux not to change the active pane and -Z keeps the window zoomed if it was zoomed." }, "swapp": { - "description": "swap-pane [\u2212dDUZ] [\u2212s src-pane] [\u2212t dst-pane]\nswapp\nSwap two panes. If \u2212U is used and no source pane is specified with \u2212s, dst-pane is swapped with the previous pane (before it numerically); \u2212D swaps with the next pane (after it numerically). \u2212d instructs tmux not to change the active pane and \u2212Z keeps the window zoomed if it was zoomed." + "description": "```tmux\nswap-pane [-dDUZ] [-s src-pane] [-t dst-pane]\nswapp [-dDUZ] [-s src-pane] [-t dst-pane]\n```\n\nSwap two panes. If -U is used and no source pane is specified with -s, dst-pane is swapped with the previous pane (before it numerically); -D swaps with the next pane (after it numerically). -d instructs tmux not to change the active pane and -Z keeps the window zoomed if it was zoomed." }, "swap-window": { - "description": "swap-window [\u2212d] [\u2212s src-window] [\u2212t dst-window]\nswapw\nThis is similar to link-window, except the source and destination windows are swapped. It is an error if no window exists at src-window. If \u2212d is given, the new window does not become the current window." + "description": "```tmux\nswap-window [-d] [-s src-window] [-t dst-window]\nswapw [-d] [-s src-window] [-t dst-window]\n```\n\nThis is similar to link-window, except the source and destination windows are swapped. It is an error if no window exists at src-window. If -d is given, the new window does not become the current window." }, "swapw": { - "description": "swap-window [\u2212d] [\u2212s src-window] [\u2212t dst-window]\nswapw\nThis is similar to link-window, except the source and destination windows are swapped. It is an error if no window exists at src-window. If \u2212d is given, the new window does not become the current window." + "description": "```tmux\nswap-window [-d] [-s src-window] [-t dst-window]\nswapw [-d] [-s src-window] [-t dst-window]\n```\n\nThis is similar to link-window, except the source and destination windows are swapped. It is an error if no window exists at src-window. If -d is given, the new window does not become the current window." }, "unlink-window": { - "description": "unlink-window [\u2212k] [\u2212t target-window]\nunlinkw\nUnlink target-window. Unless \u2212k is given, a window may be unlinked only if it is linked to multiple sessions - windows may not be linked to no sessions; if \u2212k is specified and the window is linked to only one session, it is unlinked and destroyed." + "description": "```tmux\nunlink-window [-k] [-t target-window]\nunlinkw [-k] [-t target-window]\n```\n\nUnlink target-window. Unless -k is given, a window may be unlinked only if it is linked to multiple sessions - windows may not be linked to no sessions; if -k is specified and the window is linked to only one session, it is unlinked and destroyed." }, "unlinkw": { - "description": "unlink-window [\u2212k] [\u2212t target-window]\nunlinkw\nUnlink target-window. Unless \u2212k is given, a window may be unlinked only if it is linked to multiple sessions - windows may not be linked to no sessions; if \u2212k is specified and the window is linked to only one session, it is unlinked and destroyed." + "description": "```tmux\nunlink-window [-k] [-t target-window]\nunlinkw [-k] [-t target-window]\n```\n\nUnlink target-window. Unless -k is given, a window may be unlinked only if it is linked to multiple sessions - windows may not be linked to no sessions; if -k is specified and the window is linked to only one session, it is unlinked and destroyed." }, "bind-key": { - "description": "bind-key [\u2212nr] [\u2212N note] [\u2212T key-table] key command [arguments]\nbind\nBind key key to command. Keys are bound in a key table. By default (without -T), the key is bound in the prefix key table. This table is used for keys pressed after the prefix key (for example, by default \u2018c\u2019 is bound to new-window in the prefix table, so \u2018C-b c\u2019 creates a new window). The root table is used for keys pressed without the prefix key: binding \u2018c\u2019 to new-window in the root table (not recommended) means a plain \u2018c\u2019 will create a new window. \u2212n is an alias for \u2212T root. Keys may also be bound in custom key tables and the switch-client \u2212T command used to switch to them from a key binding. The \u2212r flag indicates this key may repeat, see the repeat-time option. \u2212N attaches a note to the key (shown with list-keys \u2212N)." + "description": "```tmux\nbind-key [-nr] [-N note] [-T key-table] key command [arguments]\nbind [-nr] [-N note] [-T key-table] key command [arguments]\n```\n\nBind key key to command. Keys are bound in a key table. By default (without -T), the key is bound in the prefix key table. This table is used for keys pressed after the prefix key (for example, by default \u2018c\u2019 is bound to new-window in the prefix table, so \u2018C-b c\u2019 creates a new window). The root table is used for keys pressed without the prefix key: binding \u2018c\u2019 to new-window in the root table (not recommended) means a plain \u2018c\u2019 will create a new window. -n is an alias for -T root. Keys may also be bound in custom key tables and the switch-client -T command used to switch to them from a key binding. The -r flag indicates this key may repeat, see the repeat-time option. -N attaches a note to the key (shown with list-keys -N)." }, "bind": { - "description": "bind-key [\u2212nr] [\u2212N note] [\u2212T key-table] key command [arguments]\nbind\nBind key key to command. Keys are bound in a key table. By default (without -T), the key is bound in the prefix key table. This table is used for keys pressed after the prefix key (for example, by default \u2018c\u2019 is bound to new-window in the prefix table, so \u2018C-b c\u2019 creates a new window). The root table is used for keys pressed without the prefix key: binding \u2018c\u2019 to new-window in the root table (not recommended) means a plain \u2018c\u2019 will create a new window. \u2212n is an alias for \u2212T root. Keys may also be bound in custom key tables and the switch-client \u2212T command used to switch to them from a key binding. The \u2212r flag indicates this key may repeat, see the repeat-time option. \u2212N attaches a note to the key (shown with list-keys \u2212N)." + "description": "```tmux\nbind-key [-nr] [-N note] [-T key-table] key command [arguments]\nbind [-nr] [-N note] [-T key-table] key command [arguments]\n```\n\nBind key key to command. Keys are bound in a key table. By default (without -T), the key is bound in the prefix key table. This table is used for keys pressed after the prefix key (for example, by default \u2018c\u2019 is bound to new-window in the prefix table, so \u2018C-b c\u2019 creates a new window). The root table is used for keys pressed without the prefix key: binding \u2018c\u2019 to new-window in the root table (not recommended) means a plain \u2018c\u2019 will create a new window. -n is an alias for -T root. Keys may also be bound in custom key tables and the switch-client -T command used to switch to them from a key binding. The -r flag indicates this key may repeat, see the repeat-time option. -N attaches a note to the key (shown with list-keys -N)." }, "list-keys": { - "description": "list-keys [\u22121aN] [\u2212P prefix-string \u2212T key-table] [key]\nlsk\nList key bindings. There are two forms: the default lists keys as bind-key commands; \u2212N lists only keys with attached notes and shows only the key and note for each key." + "description": "```tmux\nlist-keys [-1aN] [-P prefix-string -T key-table] [key]\nlsk [-1aN] [-P prefix-string -T key-table] [key]\n```\n\nList key bindings. There are two forms: the default lists keys as bind-key commands; -N lists only keys with attached notes and shows only the key and note for each key." }, "lsk": { - "description": "list-keys [\u22121aN] [\u2212P prefix-string \u2212T key-table] [key]\nlsk\nList key bindings. There are two forms: the default lists keys as bind-key commands; \u2212N lists only keys with attached notes and shows only the key and note for each key." + "description": "```tmux\nlist-keys [-1aN] [-P prefix-string -T key-table] [key]\nlsk [-1aN] [-P prefix-string -T key-table] [key]\n```\n\nList key bindings. There are two forms: the default lists keys as bind-key commands; -N lists only keys with attached notes and shows only the key and note for each key." }, "send-keys": { - "description": "send-keys [\u2212FHlMRX] [\u2212N repeat-count] [\u2212t target-pane] key ...\nsend\nSend a key or keys to a window. Each argument key is the name of the key (such as \u2018C-a\u2019 or \u2018NPage\u2019) to send; if the string is not recognised as a key, it is sent as a series of characters. All arguments are sent sequentially from first to last. If no keys are given and the command is bound to a key, then that key is used." + "description": "```tmux\nsend-keys [-FHlMRX] [-N repeat-count] [-t target-pane] key ...\nsend [-FHlMRX] [-N repeat-count] [-t target-pane] key ...\n```\n\nSend a key or keys to a window. Each argument key is the name of the key (such as \u2018C-a\u2019 or \u2018NPage\u2019) to send; if the string is not recognised as a key, it is sent as a series of characters. All arguments are sent sequentially from first to last. If no keys are given and the command is bound to a key, then that key is used." }, "send": { - "description": "send-keys [\u2212FHlMRX] [\u2212N repeat-count] [\u2212t target-pane] key ...\nsend\nSend a key or keys to a window. Each argument key is the name of the key (such as \u2018C-a\u2019 or \u2018NPage\u2019) to send; if the string is not recognised as a key, it is sent as a series of characters. All arguments are sent sequentially from first to last. If no keys are given and the command is bound to a key, then that key is used." + "description": "```tmux\nsend-keys [-FHlMRX] [-N repeat-count] [-t target-pane] key ...\nsend [-FHlMRX] [-N repeat-count] [-t target-pane] key ...\n```\n\nSend a key or keys to a window. Each argument key is the name of the key (such as \u2018C-a\u2019 or \u2018NPage\u2019) to send; if the string is not recognised as a key, it is sent as a series of characters. All arguments are sent sequentially from first to last. If no keys are given and the command is bound to a key, then that key is used." }, "send-prefix": { - "description": "send-prefix [\u22122] [\u2212t target-pane]\nSend the prefix key, or with \u22122 the secondary prefix key, to a window as if it was pressed." + "description": "```tmux\nsend-prefix [-2] [-t target-pane]\n```\n\nSend the prefix key, or with -2 the secondary prefix key, to a window as if it was pressed." }, "unbind-key": { - "description": "unbind-key [\u2212anq] [\u2212T key-table] key\nunbind\nUnbind the command bound to key. \u2212n and \u2212T are the same as for bind-key. If \u2212a is present, all key bindings are removed. The \u2212q option prevents errors being returned." + "description": "```tmux\nunbind-key [-anq] [-T key-table] key\nunbind [-anq] [-T key-table] key\n```\n\nUnbind the command bound to key. -n and -T are the same as for bind-key. If -a is present, all key bindings are removed. The -q option prevents errors being returned." }, "unbind": { - "description": "unbind-key [\u2212anq] [\u2212T key-table] key\nunbind\nUnbind the command bound to key. \u2212n and \u2212T are the same as for bind-key. If \u2212a is present, all key bindings are removed. The \u2212q option prevents errors being returned." - }, - "OPTIONS": { - "description": "OPTIONS\nThe appearance and behaviour of tmux may be modified by changing the value of various options. There are four types of option: server options, session options, window options, and pane options." + "description": "```tmux\nunbind-key [-anq] [-T key-table] key\nunbind [-anq] [-T key-table] key\n```\n\nUnbind the command bound to key. -n and -T are the same as for bind-key. If -a is present, all key bindings are removed. The -q option prevents errors being returned." }, "set-option": { - "description": "set-option [\u2212aFgopqsuUw] [\u2212t target-pane] option value\nset\nSet a pane option with \u2212p, a window option with \u2212w, a server option with \u2212s, otherwise a session option. If the option is not a user option, \u2212w or \u2212s may be unnecessary - tmux will infer the type from the option name, assuming \u2212w for pane options. If \u2212g is given, the global session or window option is set." + "description": "```tmux\nset-option [-aFgopqsuUw] [-t target-pane] option value\nset [-aFgopqsuUw] [-t target-pane] option value\n```\n\nSet a pane option with -p, a window option with -w, a server option with -s, otherwise a session option. If the option is not a user option, -w or -s may be unnecessary - tmux will infer the type from the option name, assuming -w for pane options. If -g is given, the global session or window option is set." }, "set": { - "description": "set-option [\u2212aFgopqsuUw] [\u2212t target-pane] option value\nset\nSet a pane option with \u2212p, a window option with \u2212w, a server option with \u2212s, otherwise a session option. If the option is not a user option, \u2212w or \u2212s may be unnecessary - tmux will infer the type from the option name, assuming \u2212w for pane options. If \u2212g is given, the global session or window option is set." + "description": "```tmux\nset-option [-aFgopqsuUw] [-t target-pane] option value\nset [-aFgopqsuUw] [-t target-pane] option value\n```\n\nSet a pane option with -p, a window option with -w, a server option with -s, otherwise a session option. If the option is not a user option, -w or -s may be unnecessary - tmux will infer the type from the option name, assuming -w for pane options. If -g is given, the global session or window option is set.", + "properties": { + "backspace": { + "description": "```tmux\nset backspace key\n```\n\nSet the key sent by tmux for backspace.", + "type": "string" + }, + "buffer-limit": { + "description": "```tmux\nset buffer-limit number\n```\n\nSet the number of buffers; as new buffers are added to the top of the stack, old ones are removed from the bottom if necessary to maintain this maximum length.", + "type": "string" + }, + "command-alias": { + "description": "```tmux\nset command-alias[] name=value\n```\n\nThis is an array of custom aliases for commands. If an unknown command matches name, it is replaced with value. For example, after:", + "type": "array" + }, + "default-terminal": { + "description": "```tmux\nset default-terminal terminal\n```\n\nSet the default terminal for new windows created in this session - the default value of the TERM environment variable. For tmux to work correctly, this must be set to \u2018screen\u2019, \u2018tmux\u2019 or a derivative of them.", + "type": "string" + }, + "copy-command": { + "description": "```tmux\nset copy-command shell-command\n```\n\nGive the command to pipe to if the copy-pipe copy mode command is used without arguments.", + "type": "string" + }, + "escape-time": { + "description": "```tmux\nset escape-time time\n```\n\nSet the time in milliseconds for which tmux waits after an escape is input to determine if it is part of a function or meta key sequences. The default is 500 milliseconds.", + "type": "string" + }, + "editor": { + "description": "```tmux\nset editor shell-command\n```\n\nSet the command used when tmux runs an editor.", + "type": "string" + }, + "exit-empty": { + "description": "```tmux\nset exit-empty [on | off]\n```\n\nIf enabled (the default), the server will exit when there are no active sessions.", + "type": "string" + }, + "exit-unattached": { + "description": "```tmux\nset exit-unattached [on | off]\n```\n\nIf enabled, the server will exit when there are no attached clients.", + "type": "string" + }, + "extended-keys": { + "description": "```tmux\nset extended-keys [on | off | always]\n```\n\nWhen on or always, the escape sequence to enable extended keys is sent to the terminal, if tmux knows that it is supported. tmux always recognises extended keys itself. If this option is on, tmux will only forward extended keys to applications when they request them; if always, tmux will always forward the keys.", + "type": "string" + }, + "focus-events": { + "description": "```tmux\nset focus-events [on | off]\n```\n\nWhen enabled, focus events are requested from the terminal if supported and passed through to applications running in tmux. Attached clients should be detached and attached again after changing this option.", + "type": "string" + }, + "history-file": { + "description": "```tmux\nset history-file path\n```\n\nIf not empty, a file to which tmux will write command prompt history on exit and load it from on start.", + "type": "string" + }, + "message-limit": { + "description": "```tmux\nset message-limit number\n```\n\nSet the number of error or information messages to save in the message log for each client.", + "type": "string" + }, + "prompt-history-limit": { + "description": "```tmux\nset prompt-history-limit number\n```\n\nSet the number of history items to save in the history file for each type of command prompt.", + "type": "string" + }, + "set-clipboard": { + "description": "```tmux\nset set-clipboard [on | external | off]\n```\n\nAttempt to set the terminal clipboard content using the xterm(1) escape sequence, if there is an Ms entry in the terminfo(5) description (see the \u201cTERMINFO EXTENSIONS\u201d section).", + "type": "string" + }, + "terminal-features": { + "description": "```tmux\nset terminal-features[] string\n```\n\nSet terminal features for terminal types read from terminfo(5). tmux has a set of named terminal features. Each will apply appropriate changes to the terminfo(5) entry in use.", + "type": "array" + }, + "terminal-overrides": { + "description": "```tmux\nset terminal-overrides[] string\n```\n\nAllow terminal descriptions read using terminfo(5) to be overridden. Each entry is a colon-separated string made up of a terminal type pattern (matched using fnmatch(3)) and a set of name=value entries.", + "type": "array" + }, + "user-keys": { + "description": "```tmux\nset user-keys[] key\n```\n\nSet list of user-defined key escape sequences. Each item is associated with a key named \u2018User0\u2019, \u2018User1\u2019, and so on.", + "type": "array" + }, + "activity-action": { + "description": "```tmux\nset activity-action [any | none | current | other]\n```\n\nSet action on window activity when monitor-activity is on. any means activity in any window linked to a session causes a bell or message (depending on visual-activity) in the current window of that session, none means all activity is ignored (equivalent to monitor-activity being off), current means only activity in windows other than the current window are ignored and other means activity in the current window is ignored but not those in other windows.", + "type": "string" + }, + "assume-paste-time": { + "description": "```tmux\nset assume-paste-time milliseconds\n```\n\nIf keys are entered faster than one in milliseconds, they are assumed to have been pasted rather than typed and tmux key bindings are not processed. The default is one millisecond and zero disables.", + "type": "string" + }, + "base-index": { + "description": "```tmux\nset base-index index\n```\n\nSet the base index from which an unused index should be searched when a new window is created. The default is zero.", + "type": "string" + }, + "bell-action": { + "description": "```tmux\nset bell-action [any | none | current | other]\n```\n\nSet action on a bell in a window when monitor-bell is on. The values are the same as those for activity-action.", + "type": "string" + }, + "default-command": { + "description": "```tmux\nset default-command shell-command\n```\n\nSet the command used for new windows (if not specified when the window is created) to shell-command, which may be any sh(1) command. The default is an empty string, which instructs tmux to create a login shell using the value of the default-shell option.", + "type": "string" + }, + "default-shell": { + "description": "```tmux\nset default-shell path\n```\n\nSpecify the default shell. This is used as the login shell for new windows when the default-command option is set to empty, and must be the full path of the executable. When started tmux tries to set a default value from the first suitable of the SHELL environment variable, the shell returned by getpwuid(3), or /bin/sh. This option should be configured when tmux is used as a login shell.", + "type": "string" + }, + "default-size": { + "description": "```tmux\nset default-size XxY\n```\n\nSet the default size of new windows when the window-size option is set to manual or when a session is created with new-session -d. The value is the width and height separated by an \u2018x\u2019 character. The default is 80x24.", + "type": "string" + }, + "destroy-unattached": { + "description": "```tmux\nset destroy-unattached [on | off]\n```\n\nIf enabled and the session is no longer attached to any clients, it is destroyed.", + "type": "string" + }, + "detach-on-destroy": { + "description": "```tmux\nset detach-on-destroy [off | on | no-detached]\n```\n\nIf on (the default), the client is detached when the session it is attached to is destroyed. If off, the client is switched to the most recently active of the remaining sessions. If no-detached, the client is detached only if there are no detached sessions; if detached sessions exist, the client is switched to the most recently active.", + "type": "string" + }, + "display-panes-active-colour": { + "description": "```tmux\nset display-panes-active-colour colour\n```\n\nSet the colour used by the display-panes command to show the indicator for the active pane.", + "type": "string" + }, + "display-panes-colour": { + "description": "```tmux\nset display-panes-colour colour\n```\n\nSet the colour used by the display-panes command to show the indicators for inactive panes.", + "type": "string" + }, + "display-panes-time": { + "description": "```tmux\nset display-panes-time time\n```\n\nSet the time in milliseconds for which the indicators shown by the display-panes command appear.", + "type": "string" + }, + "display-time": { + "description": "```tmux\nset display-time time\n```\n\nSet the amount of time for which status line messages and other on-screen indicators are displayed. If set to 0, messages and indicators are displayed until a key is pressed. time is in milliseconds.", + "type": "string" + }, + "history-limit": { + "description": "```tmux\nset history-limit lines\n```\n\nSet the maximum number of lines held in window history. This setting applies only to new windows - existing window histories are not resized and retain the limit at the point they were created.", + "type": "string" + }, + "key-table": { + "description": "```tmux\nset key-table key-table\n```\n\nSet the default key table to key-table instead of root.", + "type": "string" + }, + "lock-after-time": { + "description": "```tmux\nset lock-after-time number\n```\n\nLock the session (like the lock-session command) after number seconds of inactivity. The default is not to lock (set to 0).", + "type": "string" + }, + "lock-command": { + "description": "```tmux\nset lock-command shell-command\n```\n\nCommand to run when locking each client. The default is to run lock(1) with -np.", + "type": "string" + }, + "message-command-style": { + "description": "```tmux\nset message-command-style style\n```\n\nSet status line message command style. This is used for the command prompt with vi(1) keys when in command mode. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "message-style": { + "description": "```tmux\nset message-style style\n```\n\nSet status line message style. This is used for messages and for the command prompt. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "mouse": { + "description": "```tmux\nset mouse [on | off]\n```\n\nIf on, tmux captures the mouse and allows mouse events to be bound as key bindings. See the \u201cMOUSE SUPPORT\u201d section for details.", + "type": "string" + }, + "prefix": { + "description": "```tmux\nset prefix key\n```\n\nSet the key accepted as a prefix key. In addition to the standard keys described under \u201cKEY BINDINGS\u201d, prefix can be set to the special key \u2018None\u2019 to set no prefix.", + "type": "string" + }, + "renumber-windows": { + "description": "```tmux\nset renumber-windows [on | off]\n```\n\nIf on, when a window is closed in a session, automatically renumber the other windows in numerical order. This respects the base-index option if it has been set. If off, do not renumber the windows.", + "type": "string" + }, + "repeat-time": { + "description": "```tmux\nset repeat-time time\n```\n\nAllow multiple commands to be entered without pressing the prefix-key again in the specified time milliseconds (the default is 500). Whether a key repeats may be set when it is bound using the -r flag to bind-key. Repeat is enabled for the default keys bound to the resize-pane command.", + "type": "string" + }, + "set-titles": { + "description": "```tmux\nset set-titles [on | off]\n```\n\nAttempt to set the client terminal title using the tsl and fsl terminfo(5) entries if they exist. tmux automatically sets these to the \\e]0;...\\007 sequence if the terminal appears to be xterm(1). This option is off by default.", + "type": "string" + }, + "set-titles-string": { + "description": "```tmux\nset set-titles-string string\n```\n\nString used to set the client terminal title if set-titles is on. Formats are expanded, see the \u201cFORMATS\u201d section.", + "type": "string" + }, + "silence-action": { + "description": "```tmux\nset silence-action [any | none | current | other]\n```\n\nSet action on window silence when monitor-silence is on. The values are the same as those for activity-action.", + "type": "string" + }, + "status": { + "description": "```tmux\nset status [off | on | 2 | 3 | 4 | 5]\n```\n\nShow or hide the status line or specify its size. Using on gives a status line one row in height; 2, 3, 4 or 5 more rows.", + "type": "string" + }, + "status-format": { + "description": "```tmux\nset status-format[] format\n```\n\nSpecify the format to be used for each line of the status line. The default builds the top status line from the various individual status options below.", + "type": "array" + }, + "status-interval": { + "description": "```tmux\nset status-interval interval\n```\n\nUpdate the status line every interval seconds. By default, updates will occur every 15 seconds. A setting of zero disables redrawing at interval.", + "type": "string" + }, + "status-justify": { + "description": "```tmux\nset status-justify [left | centre | right | absolute-centre]\n```\n\nSet the position of the window list in the status line: left, centre or right. centre puts the window list in the relative centre of the available free space; absolute-centre uses the centre of the entire horizontal space.", + "type": "string" + }, + "status-keys": { + "description": "```tmux\nset status-keys [vi | emacs]\n```\n\nUse vi or emacs-style key bindings in the status line, for example at the command prompt. The default is emacs, unless the VISUAL or EDITOR environment variables are set and contain the string \u2018vi\u2019.", + "type": "string" + }, + "status-left": { + "description": "```tmux\nset status-left string\n```\n\nDisplay string (by default the session name) to the left of the status line. string will be passed through strftime(3). Also see the \u201cFORMATS\u201d and \u201cSTYLES\u201d sections.", + "type": "string" + }, + "status-left-length": { + "description": "```tmux\nset status-left-length length\n```\n\nSet the maximum length of the left component of the status line. The default is 10.", + "type": "string" + }, + "status-left-style": { + "description": "```tmux\nset status-left-style style\n```\n\nSet the style of the left part of the status line. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "status-position": { + "description": "```tmux\nset status-position [top | bottom]\n```\n\nSet the position of the status line.", + "type": "string" + }, + "status-right": { + "description": "```tmux\nset status-right string\n```\n\nDisplay string to the right of the status line. By default, the current pane title in double quotes, the date and the time are shown. As with status-left, string will be passed to strftime(3) and character pairs are replaced.", + "type": "string" + }, + "status-right-length": { + "description": "```tmux\nset status-right-length length\n```\n\nSet the maximum length of the right component of the status line. The default is 40.", + "type": "string" + }, + "status-right-style": { + "description": "```tmux\nset status-right-style style\n```\n\nSet the style of the right part of the status line. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "status-style": { + "description": "```tmux\nset status-style style\n```\n\nSet status line style. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "update-environment": { + "description": "```tmux\nset update-environment[] variable\n```\n\nSet list of environment variables to be copied into the session environment when a new session is created or an existing session is attached. Any variables that do not exist in the source environment are set to be removed from the session environment (as if -r was given to the set-environment command).", + "type": "array" + }, + "visual-activity": { + "description": "```tmux\nset visual-activity [on | off | both]\n```\n\nIf on, display a message instead of sending a bell when activity occurs in a window for which the monitor-activity window option is enabled. If set to both, a bell and a message are produced.", + "type": "string" + }, + "visual-bell": { + "description": "```tmux\nset visual-bell [on | off | both]\n```\n\nIf on, a message is shown on a bell in a window for which the monitor-bell window option is enabled instead of it being passed through to the terminal (which normally makes a sound). If set to both, a bell and a message are produced. Also see the bell-action option.", + "type": "string" + }, + "visual-silence": { + "description": "```tmux\nset visual-silence [on | off | both]\n```\n\nIf monitor-silence is enabled, prints a message after the interval has expired on a given window instead of sending a bell. If set to both, a bell and a message are produced.", + "type": "string" + }, + "word-separators": { + "description": "```tmux\nset word-separators string\n```\n\nSets the session\u2019s conception of what characters are considered word separators, for the purposes of the next and previous word commands in copy mode.", + "type": "string" + }, + "aggressive-resize": { + "description": "```tmux\nset aggressive-resize [on | off]\n```\n\nAggressively resize the chosen window. This means that tmux will resize the window to the size of the smallest or largest session (see the window-size option) for which it is the current window, rather than the session to which it is attached. The window may resize when the current window is changed on another session; this option is good for full-screen programs which support SIGWINCH and poor for interactive programs such as shells.", + "type": "string" + }, + "automatic-rename": { + "description": "```tmux\nset automatic-rename [on | off]\n```\n\nControl automatic window renaming. When this setting is enabled, tmux will rename the window automatically using the format specified by automatic-rename-format. This flag is automatically disabled for an individual window when a name is specified at creation with new-window or new-session, or later with rename-window, or with a terminal escape sequence. It may be switched off globally with:", + "type": "string" + }, + "automatic-rename-format": { + "description": "```tmux\nset automatic-rename-format format\n```\n\nThe format (see \u201cFORMATS\u201d) used when the automatic-rename option is enabled.", + "type": "string" + }, + "clock-mode-colour": { + "description": "```tmux\nset clock-mode-colour colour\n```\n\nSet clock colour.", + "type": "string" + }, + "clock-mode-style": { + "description": "```tmux\nset clock-mode-style [12 | 24]\n```\n\nSet clock hour format.", + "type": "string" + }, + "fill-character": { + "description": "```tmux\nset fill-character character\n```\n\nSet the character used to fill areas of the terminal unused by a window.", + "type": "string" + }, + "main-pane-height": { + "description": "```tmux\nset main-pane-height height main-pane-width width\n```\n\nSet the width or height of the main (left or top) pane in the main-horizontal or main-vertical layouts. If suffixed by \u2018%\u2019, this is a percentage of the window size.", + "type": "string" + }, + "copy-mode-match-style": { + "description": "```tmux\nset copy-mode-match-style style\n```\n\nSet the style of search matches in copy mode. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "copy-mode-mark-style": { + "description": "```tmux\nset copy-mode-mark-style style\n```\n\nSet the style of the line containing the mark in copy mode. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "copy-mode-current-match-style": { + "description": "```tmux\nset copy-mode-current-match-style style\n```\n\nSet the style of the current search match in copy mode. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "mode-keys": { + "description": "```tmux\nset mode-keys [vi | emacs]\n```\n\nUse vi or emacs-style key bindings in copy mode. The default is emacs, unless VISUAL or EDITOR contains \u2018vi\u2019.", + "type": "string" + }, + "mode-style": { + "description": "```tmux\nset mode-style style\n```\n\nSet window modes style. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "monitor-activity": { + "description": "```tmux\nset monitor-activity [on | off]\n```\n\nMonitor for activity in the window. Windows with activity are highlighted in the status line.", + "type": "string" + }, + "monitor-bell": { + "description": "```tmux\nset monitor-bell [on | off]\n```\n\nMonitor for a bell in the window. Windows with a bell are highlighted in the status line.", + "type": "string" + }, + "monitor-silence": { + "description": "```tmux\nset monitor-silence [interval]\n```\n\nMonitor for silence (no activity) in the window within interval seconds. Windows that have been silent for the interval are highlighted in the status line. An interval of zero disables the monitoring.", + "type": "string" + }, + "other-pane-height": { + "description": "```tmux\nset other-pane-height height\n```\n\nSet the height of the other panes (not the main pane) in the main-horizontal layout. If this option is set to 0 (the default), it will have no effect. If both the main-pane-height and other-pane-height options are set, the main pane will grow taller to make the other panes the specified height, but will never shrink to do so. If suffixed by \u2018%\u2019, this is a percentage of the window size.", + "type": "string" + }, + "other-pane-width": { + "description": "```tmux\nset other-pane-width width\n```\n\nLike other-pane-height, but set the width of other panes in the main-vertical layout.", + "type": "string" + }, + "pane-active-border-style": { + "description": "```tmux\nset pane-active-border-style style\n```\n\nSet the pane border style for the currently active pane. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored.", + "type": "string" + }, + "pane-base-index": { + "description": "```tmux\nset pane-base-index index\n```\n\nLike base-index, but set the starting index for pane numbers.", + "type": "string" + }, + "pane-border-format": { + "description": "```tmux\nset pane-border-format format\n```\n\nSet the text shown in pane border status lines.", + "type": "string" + }, + "pane-border-indicators": { + "description": "```tmux\nset pane-border-indicators [off | colour | arrows | both]\n```\n\nIndicate active pane by colouring only half of the border in windows with exactly two panes, by displaying arrow markers, by drawing both or neither.", + "type": "string" + }, + "pane-border-lines": { + "description": "```tmux\nset pane-border-lines type\n```\n\nSet the type of characters used for drawing pane borders. type may be one of:", + "type": "string" + }, + "pane-border-status": { + "description": "```tmux\nset pane-border-status [off | top | bottom]\n```\n\nTurn pane border status lines off or set their position.", + "type": "string" + }, + "pane-border-style": { + "description": "```tmux\nset pane-border-style style\n```\n\nSet the pane border style for panes aside from the active pane. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored.", + "type": "string" + }, + "popup-style": { + "description": "```tmux\nset popup-style style\n```\n\nSet the popup style. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored.", + "type": "string" + }, + "popup-border-style": { + "description": "```tmux\nset popup-border-style style\n```\n\nSet the popup border style. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored.", + "type": "string" + }, + "popup-border-lines": { + "description": "```tmux\nset popup-border-lines type\n```\n\nSet the type of characters used for drawing popup borders. type may be one of:", + "type": "string" + }, + "window-status-activity-style": { + "description": "```tmux\nset window-status-activity-style style\n```\n\nSet status line style for windows with an activity alert. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "window-status-bell-style": { + "description": "```tmux\nset window-status-bell-style style\n```\n\nSet status line style for windows with a bell alert. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "window-status-current-format": { + "description": "```tmux\nset window-status-current-format string\n```\n\nLike window-status-format, but is the format used when the window is the current window.", + "type": "string" + }, + "window-status-current-style": { + "description": "```tmux\nset window-status-current-style style\n```\n\nSet status line style for the currently active window. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "window-status-format": { + "description": "```tmux\nset window-status-format string\n```\n\nSet the format in which the window is displayed in the status line window list. See the \u201cFORMATS\u201d and \u201cSTYLES\u201d sections.", + "type": "string" + }, + "window-status-last-style": { + "description": "```tmux\nset window-status-last-style style\n```\n\nSet status line style for the last active window. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "window-status-separator": { + "description": "```tmux\nset window-status-separator string\n```\n\nSets the separator drawn between windows in the status line. The default is a single space character.", + "type": "string" + }, + "window-status-style": { + "description": "```tmux\nset window-status-style style\n```\n\nSet status line style for a single window. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "window-size": { + "description": "```tmux\nset window-size largest | smallest | manual | latest\n```\n\nConfigure how tmux determines the window size. If set to largest, the size of the largest attached session is used; if smallest, the size of the smallest. If manual, the size of a new window is set from the default-size option and windows are resized automatically. With latest, tmux uses the size of the client that had the most recent activity. See also the resize-window command and the aggressive-resize option.", + "type": "string" + }, + "wrap-search": { + "description": "```tmux\nset wrap-search [on | off]\n```\n\nIf this option is set, searches will wrap around the end of the pane contents. The default is on.", + "type": "string" + }, + "allow-passthrough": { + "description": "```tmux\nset allow-passthrough [on | off]\n```\n\nAllow programs in the pane to bypass tmux using a terminal escape sequence (\\ePtmux;...\\e\\\\).", + "type": "string" + }, + "allow-rename": { + "description": "```tmux\nset allow-rename [on | off]\n```\n\nAllow programs in the pane to change the window name using a terminal escape sequence (\\ek...\\e\\\\).", + "type": "string" + }, + "alternate-screen": { + "description": "```tmux\nset alternate-screen [on | off]\n```\n\nThis option configures whether programs running inside the pane may use the terminal alternate screen feature, which allows the smcup and rmcup terminfo(5) capabilities. The alternate screen feature preserves the contents of the window when an interactive application starts and restores it on exit, so that any output visible before the application starts reappears unchanged after it exits.", + "type": "string" + }, + "cursor-colour": { + "description": "```tmux\nset cursor-colour colour\n```\n\nSet the colour of the cursor.", + "type": "string" + }, + "pane-colours": { + "description": "```tmux\nset pane-colours[] colour\n```\n\nThe default colour palette. Each entry in the array defines the colour tmux uses when the colour with that index is requested. The index may be from zero to 255.", + "type": "array" + }, + "cursor-style": { + "description": "```tmux\nset cursor-style style\n```\n\nSet the style of the cursor. Available styles are: default, blinking-block, block, blinking-underline, underline, blinking-bar, bar.", + "type": "string" + }, + "remain-on-exit": { + "description": "```tmux\nset remain-on-exit [on | off | failed]\n```\n\nA pane with this flag set is not destroyed when the program running in it exits. If set to failed, then only when the program exit status is not zero. The pane may be reactivated with the respawn-pane command.", + "type": "string" + }, + "remain-on-exit-format": { + "description": "```tmux\nset remain-on-exit-format string\n```\n\nSet the text shown at the bottom of exited panes when remain-on-exit is enabled.", + "type": "string" + }, + "scroll-on-clear": { + "description": "```tmux\nset scroll-on-clear [on | off]\n```\n\nWhen the entire screen is cleared and this option is on, scroll the contents of the screen into history before clearing it.", + "type": "string" + }, + "synchronize-panes": { + "description": "```tmux\nset synchronize-panes [on | off]\n```\n\nDuplicate input to all other panes in the same window where this option is also on (only for panes that are not in any mode).", + "type": "string" + }, + "window-active-style": { + "description": "```tmux\nset window-active-style style\n```\n\nSet the pane style when it is the active pane. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + }, + "window-style": { + "description": "```tmux\nset window-style style\n```\n\nSet the pane style. For how to specify style, see the \u201cSTYLES\u201d section.", + "type": "string" + } + } }, "show-options": { - "description": "show-options [\u2212AgHpqsvw] [\u2212t target-pane] [option]\nshow\nShow the pane options (or a single option if option is provided) with \u2212p, the window options with \u2212w, the server options with \u2212s, otherwise the session options. If the option is not a user option, \u2212w or \u2212s may be unnecessary - tmux will infer the type from the option name, assuming \u2212w for pane options. Global session or window options are listed if \u2212g is used. \u2212v shows only the option value, not the name. If \u2212q is set, no error will be returned if option is unset. \u2212H includes hooks (omitted by default). \u2212A includes options inherited from a parent set of options, such options are marked with an asterisk." + "description": "```tmux\nshow-options [-AgHpqsvw] [-t target-pane] [option]\nshow [-AgHpqsvw] [-t target-pane] [option]\n```\n\nShow the pane options (or a single option if option is provided) with -p, the window options with -w, the server options with -s, otherwise the session options. If the option is not a user option, -w or -s may be unnecessary - tmux will infer the type from the option name, assuming -w for pane options. Global session or window options are listed if -g is used. -v shows only the option value, not the name. If -q is set, no error will be returned if option is unset. -H includes hooks (omitted by default). -A includes options inherited from a parent set of options, such options are marked with an asterisk." }, "show": { - "description": "show-options [\u2212AgHpqsvw] [\u2212t target-pane] [option]\nshow\nShow the pane options (or a single option if option is provided) with \u2212p, the window options with \u2212w, the server options with \u2212s, otherwise the session options. If the option is not a user option, \u2212w or \u2212s may be unnecessary - tmux will infer the type from the option name, assuming \u2212w for pane options. Global session or window options are listed if \u2212g is used. \u2212v shows only the option value, not the name. If \u2212q is set, no error will be returned if option is unset. \u2212H includes hooks (omitted by default). \u2212A includes options inherited from a parent set of options, such options are marked with an asterisk." - }, - "backspace": { - "description": "backspace key\nSet the key sent by tmux for backspace." - }, - "buffer-limit": { - "description": "buffer-limit number\nSet the number of buffers; as new buffers are added to the top of the stack, old ones are removed from the bottom if necessary to maintain this maximum length." - }, - "command-alias[]": { - "description": "command-alias[] name=value\nThis is an array of custom aliases for commands. If an unknown command matches name, it is replaced with value. For example, after:" - }, - "default-terminal": { - "description": "default-terminal terminal\nSet the default terminal for new windows created in this session - the default value of the TERM environment variable. For tmux to work correctly, this must be set to \u2018screen\u2019, \u2018tmux\u2019 or a derivative of them." - }, - "copy-command": { - "description": "copy-command shell-command\nGive the command to pipe to if the copy-pipe copy mode command is used without arguments." - }, - "escape-time": { - "description": "escape-time time\nSet the time in milliseconds for which tmux waits after an escape is input to determine if it is part of a function or meta key sequences. The default is 500 milliseconds." - }, - "editor": { - "description": "editor shell-command\nSet the command used when tmux runs an editor." - }, - "exit-empty": { - "description": "exit-empty [on | off]\nIf enabled (the default), the server will exit when there are no active sessions." - }, - "exit-unattached": { - "description": "exit-unattached [on | off]\nIf enabled, the server will exit when there are no attached clients." - }, - "extended-keys": { - "description": "extended-keys [on | off | always]\nWhen on or always, the escape sequence to enable extended keys is sent to the terminal, if tmux knows that it is supported. tmux always recognises extended keys itself. If this option is on, tmux will only forward extended keys to applications when they request them; if always, tmux will always forward the keys." - }, - "focus-events": { - "description": "focus-events [on | off]\nWhen enabled, focus events are requested from the terminal if supported and passed through to applications running in tmux. Attached clients should be detached and attached again after changing this option." - }, - "history-file": { - "description": "history-file path\nIf not empty, a file to which tmux will write command prompt history on exit and load it from on start." - }, - "message-limit": { - "description": "message-limit number\nSet the number of error or information messages to save in the message log for each client." - }, - "prompt-history-limit": { - "description": "prompt-history-limit number\nSet the number of history items to save in the history file for each type of command prompt." - }, - "set-clipboard": { - "description": "set-clipboard [on | external | off]\nAttempt to set the terminal clipboard content using the xterm(1) escape sequence, if there is an Ms entry in the terminfo(5) description (see the \u201cTERMINFO EXTENSIONS\u201d section)." - }, - "terminal-features[]": { - "description": "terminal-features[] string\nSet terminal features for terminal types read from terminfo(5). tmux has a set of named terminal features. Each will apply appropriate changes to the terminfo(5) entry in use." - }, - "terminal-overrides[]": { - "description": "terminal-overrides[] string\nAllow terminal descriptions read using terminfo(5) to be overridden. Each entry is a colon-separated string made up of a terminal type pattern (matched using fnmatch(3)) and a set of name=value entries." - }, - "user-keys[]": { - "description": "user-keys[] key\nSet list of user-defined key escape sequences. Each item is associated with a key named \u2018User0\u2019, \u2018User1\u2019, and so on." - }, - "activity-action": { - "description": "activity-action [any | none | current | other]\nSet action on window activity when monitor-activity is on. any means activity in any window linked to a session causes a bell or message (depending on visual-activity) in the current window of that session, none means all activity is ignored (equivalent to monitor-activity being off), current means only activity in windows other than the current window are ignored and other means activity in the current window is ignored but not those in other windows." - }, - "assume-paste-time": { - "description": "assume-paste-time milliseconds\nIf keys are entered faster than one in milliseconds, they are assumed to have been pasted rather than typed and tmux key bindings are not processed. The default is one millisecond and zero disables." - }, - "base-index": { - "description": "base-index index\nSet the base index from which an unused index should be searched when a new window is created. The default is zero." - }, - "bell-action": { - "description": "bell-action [any | none | current | other]\nSet action on a bell in a window when monitor-bell is on. The values are the same as those for activity-action." - }, - "default-command": { - "description": "default-command shell-command\nSet the command used for new windows (if not specified when the window is created) to shell-command, which may be any sh(1) command. The default is an empty string, which instructs tmux to create a login shell using the value of the default-shell option." - }, - "default-shell": { - "description": "default-shell path\nSpecify the default shell. This is used as the login shell for new windows when the default-command option is set to empty, and must be the full path of the executable. When started tmux tries to set a default value from the first suitable of the SHELL environment variable, the shell returned by getpwuid(3), or /bin/sh. This option should be configured when tmux is used as a login shell." - }, - "default-size": { - "description": "default-size XxY\nSet the default size of new windows when the window-size option is set to manual or when a session is created with new-session \u2212d. The value is the width and height separated by an \u2018x\u2019 character. The default is 80x24." - }, - "destroy-unattached": { - "description": "destroy-unattached [on | off]\nIf enabled and the session is no longer attached to any clients, it is destroyed." - }, - "detach-on-destroy": { - "description": "detach-on-destroy [off | on | no-detached]\nIf on (the default), the client is detached when the session it is attached to is destroyed. If off, the client is switched to the most recently active of the remaining sessions. If no-detached, the client is detached only if there are no detached sessions; if detached sessions exist, the client is switched to the most recently active." - }, - "display-panes-active-colour": { - "description": "display-panes-active-colour colour\nSet the colour used by the display-panes command to show the indicator for the active pane." - }, - "display-panes-colour": { - "description": "display-panes-colour colour\nSet the colour used by the display-panes command to show the indicators for inactive panes." - }, - "display-panes-time": { - "description": "display-panes-time time\nSet the time in milliseconds for which the indicators shown by the display-panes command appear." - }, - "display-time": { - "description": "display-time time\nSet the amount of time for which status line messages and other on-screen indicators are displayed. If set to 0, messages and indicators are displayed until a key is pressed. time is in milliseconds." - }, - "history-limit": { - "description": "history-limit lines\nSet the maximum number of lines held in window history. This setting applies only to new windows - existing window histories are not resized and retain the limit at the point they were created." - }, - "key-table": { - "description": "key-table key-table\nSet the default key table to key-table instead of root." - }, - "lock-after-time": { - "description": "lock-after-time number\nLock the session (like the lock-session command) after number seconds of inactivity. The default is not to lock (set to 0)." - }, - "lock-command": { - "description": "lock-command shell-command\nCommand to run when locking each client. The default is to run lock(1) with \u2212np." - }, - "message-command-style": { - "description": "message-command-style style\nSet status line message command style. This is used for the command prompt with vi(1) keys when in command mode. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "message-style": { - "description": "message-style style\nSet status line message style. This is used for messages and for the command prompt. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "mouse": { - "description": "mouse [on | off]\nIf on, tmux captures the mouse and allows mouse events to be bound as key bindings. See the \u201cMOUSE SUPPORT\u201d section for details." - }, - "prefix": { - "description": "prefix key\nSet the key accepted as a prefix key. In addition to the standard keys described under \u201cKEY BINDINGS\u201d, prefix can be set to the special key \u2018None\u2019 to set no prefix." - }, - "prefix2": { - "description": "prefix2 key\nSet a secondary key accepted as a prefix key. Like prefix, prefix2 can be set to \u2018None\u2019." - }, - "renumber-windows": { - "description": "renumber-windows [on | off]\nIf on, when a window is closed in a session, automatically renumber the other windows in numerical order. This respects the base-index option if it has been set. If off, do not renumber the windows." - }, - "repeat-time": { - "description": "repeat-time time\nAllow multiple commands to be entered without pressing the prefix-key again in the specified time milliseconds (the default is 500). Whether a key repeats may be set when it is bound using the \u2212r flag to bind-key. Repeat is enabled for the default keys bound to the resize-pane command." - }, - "set-titles": { - "description": "set-titles [on | off]\nAttempt to set the client terminal title using the tsl and fsl terminfo(5) entries if they exist. tmux automatically sets these to the \\e]0;...\\007 sequence if the terminal appears to be xterm(1). This option is off by default." - }, - "set-titles-string": { - "description": "set-titles-string string\nString used to set the client terminal title if set-titles is on. Formats are expanded, see the \u201cFORMATS\u201d section." - }, - "silence-action": { - "description": "silence-action [any | none | current | other]\nSet action on window silence when monitor-silence is on. The values are the same as those for activity-action." - }, - "status": { - "description": "status [off | on | 2 | 3 | 4 | 5]\nShow or hide the status line or specify its size. Using on gives a status line one row in height; 2, 3, 4 or 5 more rows." - }, - "status-format[]": { - "description": "status-format[] format\nSpecify the format to be used for each line of the status line. The default builds the top status line from the various individual status options below." - }, - "status-interval": { - "description": "status-interval interval\nUpdate the status line every interval seconds. By default, updates will occur every 15 seconds. A setting of zero disables redrawing at interval." - }, - "status-justify": { - "description": "status-justify [left | centre | right | absolute-centre]\nSet the position of the window list in the status line: left, centre or right. centre puts the window list in the relative centre of the available free space; absolute-centre uses the centre of the entire horizontal space." - }, - "status-keys": { - "description": "status-keys [vi | emacs]\nUse vi or emacs-style key bindings in the status line, for example at the command prompt. The default is emacs, unless the VISUAL or EDITOR environment variables are set and contain the string \u2018vi\u2019." - }, - "status-left": { - "description": "status-left string\nDisplay string (by default the session name) to the left of the status line. string will be passed through strftime(3). Also see the \u201cFORMATS\u201d and \u201cSTYLES\u201d sections." - }, - "status-left-length": { - "description": "status-left-length length\nSet the maximum length of the left component of the status line. The default is 10." - }, - "status-left-style": { - "description": "status-left-style style\nSet the style of the left part of the status line. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "status-position": { - "description": "status-position [top | bottom]\nSet the position of the status line." - }, - "status-right": { - "description": "status-right string\nDisplay string to the right of the status line. By default, the current pane title in double quotes, the date and the time are shown. As with status-left, string will be passed to strftime(3) and character pairs are replaced." - }, - "status-right-length": { - "description": "status-right-length length\nSet the maximum length of the right component of the status line. The default is 40." - }, - "status-right-style": { - "description": "status-right-style style\nSet the style of the right part of the status line. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "status-style": { - "description": "status-style style\nSet status line style. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "update-environment[]": { - "description": "update-environment[] variable\nSet list of environment variables to be copied into the session environment when a new session is created or an existing session is attached. Any variables that do not exist in the source environment are set to be removed from the session environment (as if \u2212r was given to the set-environment command)." - }, - "visual-activity": { - "description": "visual-activity [on | off | both]\nIf on, display a message instead of sending a bell when activity occurs in a window for which the monitor-activity window option is enabled. If set to both, a bell and a message are produced." - }, - "visual-bell": { - "description": "visual-bell [on | off | both]\nIf on, a message is shown on a bell in a window for which the monitor-bell window option is enabled instead of it being passed through to the terminal (which normally makes a sound). If set to both, a bell and a message are produced. Also see the bell-action option." - }, - "visual-silence": { - "description": "visual-silence [on | off | both]\nIf monitor-silence is enabled, prints a message after the interval has expired on a given window instead of sending a bell. If set to both, a bell and a message are produced." - }, - "word-separators": { - "description": "word-separators string\nSets the session\u2019s conception of what characters are considered word separators, for the purposes of the next and previous word commands in copy mode." - }, - "aggressive-resize": { - "description": "aggressive-resize [on | off]\nAggressively resize the chosen window. This means that tmux will resize the window to the size of the smallest or largest session (see the window-size option) for which it is the current window, rather than the session to which it is attached. The window may resize when the current window is changed on another session; this option is good for full-screen programs which support SIGWINCH and poor for interactive programs such as shells." - }, - "automatic-rename": { - "description": "automatic-rename [on | off]\nControl automatic window renaming. When this setting is enabled, tmux will rename the window automatically using the format specified by automatic-rename-format. This flag is automatically disabled for an individual window when a name is specified at creation with new-window or new-session, or later with rename-window, or with a terminal escape sequence. It may be switched off globally with:" - }, - "automatic-rename-format": { - "description": "automatic-rename-format format\nThe format (see \u201cFORMATS\u201d) used when the automatic-rename option is enabled." - }, - "clock-mode-colour": { - "description": "clock-mode-colour colour\nSet clock colour." - }, - "clock-mode-style": { - "description": "clock-mode-style [12 | 24]\nSet clock hour format." - }, - "fill-character": { - "description": "fill-character character\nSet the character used to fill areas of the terminal unused by a window." - }, - "main-pane-height": { - "description": "main-pane-height height main-pane-width width\nSet the width or height of the main (left or top) pane in the main-horizontal or main-vertical layouts. If suffixed by \u2018%\u2019, this is a percentage of the window size." - }, - "copy-mode-match-style": { - "description": "copy-mode-match-style style\nSet the style of search matches in copy mode. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "copy-mode-mark-style": { - "description": "copy-mode-mark-style style\nSet the style of the line containing the mark in copy mode. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "copy-mode-current-match-style": { - "description": "copy-mode-current-match-style style\nSet the style of the current search match in copy mode. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "mode-keys": { - "description": "mode-keys [vi | emacs]\nUse vi or emacs-style key bindings in copy mode. The default is emacs, unless VISUAL or EDITOR contains \u2018vi\u2019." - }, - "mode-style": { - "description": "mode-style style\nSet window modes style. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "monitor-activity": { - "description": "monitor-activity [on | off]\nMonitor for activity in the window. Windows with activity are highlighted in the status line." - }, - "monitor-bell": { - "description": "monitor-bell [on | off]\nMonitor for a bell in the window. Windows with a bell are highlighted in the status line." - }, - "monitor-silence": { - "description": "monitor-silence [interval]\nMonitor for silence (no activity) in the window within interval seconds. Windows that have been silent for the interval are highlighted in the status line. An interval of zero disables the monitoring." - }, - "other-pane-height": { - "description": "other-pane-height height\nSet the height of the other panes (not the main pane) in the main-horizontal layout. If this option is set to 0 (the default), it will have no effect. If both the main-pane-height and other-pane-height options are set, the main pane will grow taller to make the other panes the specified height, but will never shrink to do so. If suffixed by \u2018%\u2019, this is a percentage of the window size." - }, - "other-pane-width": { - "description": "other-pane-width width\nLike other-pane-height, but set the width of other panes in the main-vertical layout." - }, - "pane-active-border-style": { - "description": "pane-active-border-style style\nSet the pane border style for the currently active pane. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored." - }, - "pane-base-index": { - "description": "pane-base-index index\nLike base-index, but set the starting index for pane numbers." - }, - "pane-border-format": { - "description": "pane-border-format format\nSet the text shown in pane border status lines." - }, - "pane-border-indicators": { - "description": "pane-border-indicators [off | colour | arrows | both]\nIndicate active pane by colouring only half of the border in windows with exactly two panes, by displaying arrow markers, by drawing both or neither." - }, - "pane-border-lines": { - "description": "pane-border-lines type\nSet the type of characters used for drawing pane borders. type may be one of:" - }, - "pane-border-status": { - "description": "pane-border-status [off | top | bottom]\nTurn pane border status lines off or set their position." - }, - "pane-border-style": { - "description": "pane-border-style style\nSet the pane border style for panes aside from the active pane. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored." - }, - "popup-style": { - "description": "popup-style style\nSet the popup style. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored." - }, - "popup-border-style": { - "description": "popup-border-style style\nSet the popup border style. For how to specify style, see the \u201cSTYLES\u201d section. Attributes are ignored." - }, - "popup-border-lines": { - "description": "popup-border-lines type\nSet the type of characters used for drawing popup borders. type may be one of:" - }, - "window-status-activity-style": { - "description": "window-status-activity-style style\nSet status line style for windows with an activity alert. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "window-status-bell-style": { - "description": "window-status-bell-style style\nSet status line style for windows with a bell alert. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "window-status-current-format": { - "description": "window-status-current-format string\nLike window-status-format, but is the format used when the window is the current window." - }, - "window-status-current-style": { - "description": "window-status-current-style style\nSet status line style for the currently active window. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "window-status-format": { - "description": "window-status-format string\nSet the format in which the window is displayed in the status line window list. See the \u201cFORMATS\u201d and \u201cSTYLES\u201d sections." - }, - "window-status-last-style": { - "description": "window-status-last-style style\nSet status line style for the last active window. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "window-status-separator": { - "description": "window-status-separator string\nSets the separator drawn between windows in the status line. The default is a single space character." - }, - "window-status-style": { - "description": "window-status-style style\nSet status line style for a single window. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "window-size": { - "description": "window-size largest | smallest | manual | latest\nConfigure how tmux determines the window size. If set to largest, the size of the largest attached session is used; if smallest, the size of the smallest. If manual, the size of a new window is set from the default-size option and windows are resized automatically. With latest, tmux uses the size of the client that had the most recent activity. See also the resize-window command and the aggressive-resize option." - }, - "wrap-search": { - "description": "wrap-search [on | off]\nIf this option is set, searches will wrap around the end of the pane contents. The default is on." - }, - "allow-passthrough": { - "description": "allow-passthrough [on | off]\nAllow programs in the pane to bypass tmux using a terminal escape sequence (\\ePtmux;...\\e\\\\)." - }, - "allow-rename": { - "description": "allow-rename [on | off]\nAllow programs in the pane to change the window name using a terminal escape sequence (\\ek...\\e\\\\)." - }, - "alternate-screen": { - "description": "alternate-screen [on | off]\nThis option configures whether programs running inside the pane may use the terminal alternate screen feature, which allows the smcup and rmcup terminfo(5) capabilities. The alternate screen feature preserves the contents of the window when an interactive application starts and restores it on exit, so that any output visible before the application starts reappears unchanged after it exits." - }, - "cursor-colour": { - "description": "cursor-colour colour\nSet the colour of the cursor." - }, - "pane-colours[]": { - "description": "pane-colours[] colour\nThe default colour palette. Each entry in the array defines the colour tmux uses when the colour with that index is requested. The index may be from zero to 255." - }, - "cursor-style": { - "description": "cursor-style style\nSet the style of the cursor. Available styles are: default, blinking-block, block, blinking-underline, underline, blinking-bar, bar." - }, - "remain-on-exit": { - "description": "remain-on-exit [on | off | failed]\nA pane with this flag set is not destroyed when the program running in it exits. If set to failed, then only when the program exit status is not zero. The pane may be reactivated with the respawn-pane command." - }, - "remain-on-exit-format": { - "description": "remain-on-exit-format string\nSet the text shown at the bottom of exited panes when remain-on-exit is enabled." - }, - "scroll-on-clear": { - "description": "scroll-on-clear [on | off]\nWhen the entire screen is cleared and this option is on, scroll the contents of the screen into history before clearing it." - }, - "synchronize-panes": { - "description": "synchronize-panes [on | off]\nDuplicate input to all other panes in the same window where this option is also on (only for panes that are not in any mode)." - }, - "window-active-style": { - "description": "window-active-style style\nSet the pane style when it is the active pane. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "window-style": { - "description": "window-style style\nSet the pane style. For how to specify style, see the \u201cSTYLES\u201d section." - }, - "HOOKS": { - "description": "HOOKS\ntmux allows commands to run on various triggers, called hooks. Most tmux commands have an after hook and there are a number of hooks not associated with commands." + "description": "```tmux\nshow-options [-AgHpqsvw] [-t target-pane] [option]\nshow [-AgHpqsvw] [-t target-pane] [option]\n```\n\nShow the pane options (or a single option if option is provided) with -p, the window options with -w, the server options with -s, otherwise the session options. If the option is not a user option, -w or -s may be unnecessary - tmux will infer the type from the option name, assuming -w for pane options. Global session or window options are listed if -g is used. -v shows only the option value, not the name. If -q is set, no error will be returned if option is unset. -H includes hooks (omitted by default). -A includes options inherited from a parent set of options, such options are marked with an asterisk." }, "set-hook": { - "description": "set-hook [\u2212agpRuw] [\u2212t target-pane] hook-name command\nWithout \u2212R, sets (or with \u2212u unsets) hook hook-name to command. The flags are the same as for set-option." + "description": "```tmux\nset-hook [-agpRuw] [-t target-pane] hook-name command\n```\n\nWithout -R, sets (or with -u unsets) hook hook-name to command. The flags are the same as for set-option." }, "show-hooks": { - "description": "show-hooks [\u2212gpw] [\u2212t target-pane]\nShows hooks. The flags are the same as for show-options." - }, - "FORMATS": { - "description": "FORMATS\nCertain commands accept the \u2212F flag with a format argument. This is a string which controls the output format of the command. Format variables are enclosed in \u2018#{\u2019 and \u2018}\u2019, for example \u2018#{session_name}\u2019. The possible variables are listed in the table below, or the name of a tmux option may be used for an option\u2019s value. Some variables have a shorter alias such as \u2018#S\u2019; \u2018##\u2019 is replaced by a single \u2018#\u2019, \u2018#,\u2019 by a \u2018,\u2019 and \u2018#}\u2019 by a \u2018}\u2019." - }, - "STYLES": { - "description": "STYLES\ntmux offers various options to specify the colour and attributes of aspects of the interface, for example status-style for the status line. In addition, embedded styles may be specified in format options, such as status-left, by enclosing them in \u2018#[\u2019 and \u2018]\u2019." - }, - "fg=colour": { - "description": "fg=colour\nSet the foreground colour. The colour is one of: black, red, green, yellow, blue, magenta, cyan, white; if supported the bright variants brightred, brightgreen, brightyellow; colour0 to colour255 from the 256-colour set; default for the default colour; terminal for the terminal default colour; or a hexadecimal RGB string such as \u2018#ffffff\u2019." - }, - "bg=colour": { - "description": "bg=colour\nSet the background colour." + "description": "```tmux\nshow-hooks [-gpw] [-t target-pane]\n```\n\nShows hooks. The flags are the same as for show-options." }, "none": { - "description": "none\nSet no attributes (turn off any active attributes)." - }, - "align=left": { - "description": "align=left (or noalign), align=centre, align=right\nAlign text to the left, centre or right of the available space if appropriate." - }, - "fill=colour": { - "description": "fill=colour\nFill the available space with a background colour if appropriate." + "description": "```tmux\nnone\n```\n\nSet no attributes (turn off any active attributes)." }, "set-environment": { - "description": "set-environment [\u2212Fhgru] [\u2212t target-session] name [value]\nsetenv\nSet or unset an environment variable. If \u2212g is used, the change is made in the global environment; otherwise, it is applied to the session environment for target-session. If \u2212F is present, then value is expanded as a format. The \u2212u flag unsets a variable. \u2212r indicates the variable is to be removed from the environment before starting a new process. \u2212h marks the variable as hidden." + "description": "```tmux\nset-environment [-Fhgru] [-t target-session] name [value]\nsetenv [-Fhgru] [-t target-session] name [value]\n```\n\nSet or unset an environment variable. If -g is used, the change is made in the global environment; otherwise, it is applied to the session environment for target-session. If -F is present, then value is expanded as a format. The -u flag unsets a variable. -r indicates the variable is to be removed from the environment before starting a new process. -h marks the variable as hidden." }, "setenv": { - "description": "set-environment [\u2212Fhgru] [\u2212t target-session] name [value]\nsetenv\nSet or unset an environment variable. If \u2212g is used, the change is made in the global environment; otherwise, it is applied to the session environment for target-session. If \u2212F is present, then value is expanded as a format. The \u2212u flag unsets a variable. \u2212r indicates the variable is to be removed from the environment before starting a new process. \u2212h marks the variable as hidden." + "description": "```tmux\nset-environment [-Fhgru] [-t target-session] name [value]\nsetenv [-Fhgru] [-t target-session] name [value]\n```\n\nSet or unset an environment variable. If -g is used, the change is made in the global environment; otherwise, it is applied to the session environment for target-session. If -F is present, then value is expanded as a format. The -u flag unsets a variable. -r indicates the variable is to be removed from the environment before starting a new process. -h marks the variable as hidden." }, "show-environment": { - "description": "show-environment [\u2212hgs] [\u2212t target-session] [variable]\nshowenv\nDisplay the environment for target-session or the global environment with \u2212g. If variable is omitted, all variables are shown. Variables removed from the environment are prefixed with \u2018-\u2019. If \u2212s is used, the output is formatted as a set of Bourne shell commands. \u2212h shows hidden variables (omitted by default)." + "description": "```tmux\nshow-environment [-hgs] [-t target-session] [variable]\nshowenv [-hgs] [-t target-session] [variable]\n```\n\nDisplay the environment for target-session or the global environment with -g. If variable is omitted, all variables are shown. Variables removed from the environment are prefixed with \u2018-\u2019. If -s is used, the output is formatted as a set of Bourne shell commands. -h shows hidden variables (omitted by default)." }, "showenv": { - "description": "show-environment [\u2212hgs] [\u2212t target-session] [variable]\nshowenv\nDisplay the environment for target-session or the global environment with \u2212g. If variable is omitted, all variables are shown. Variables removed from the environment are prefixed with \u2018-\u2019. If \u2212s is used, the output is formatted as a set of Bourne shell commands. \u2212h shows hidden variables (omitted by default)." + "description": "```tmux\nshow-environment [-hgs] [-t target-session] [variable]\nshowenv [-hgs] [-t target-session] [variable]\n```\n\nDisplay the environment for target-session or the global environment with -g. If variable is omitted, all variables are shown. Variables removed from the environment are prefixed with \u2018-\u2019. If -s is used, the output is formatted as a set of Bourne shell commands. -h shows hidden variables (omitted by default)." }, "clear-prompt-history": { - "description": "clear-prompt-history [\u2212T prompt-type]\nclearphist\nClear status prompt history for prompt type prompt-type. If \u2212T is omitted, then clear history for all types. See command-prompt for possible values for prompt-type." + "description": "```tmux\nclear-prompt-history [-T prompt-type]\nclearphist [-T prompt-type]\n```\n\nClear status prompt history for prompt type prompt-type. If -T is omitted, then clear history for all types. See command-prompt for possible values for prompt-type." }, "clearphist": { - "description": "clear-prompt-history [\u2212T prompt-type]\nclearphist\nClear status prompt history for prompt type prompt-type. If \u2212T is omitted, then clear history for all types. See command-prompt for possible values for prompt-type." + "description": "```tmux\nclear-prompt-history [-T prompt-type]\nclearphist [-T prompt-type]\n```\n\nClear status prompt history for prompt type prompt-type. If -T is omitted, then clear history for all types. See command-prompt for possible values for prompt-type." }, "command-prompt": { - "description": "command-prompt [\u22121bFikN] [\u2212I inputs] [\u2212p prompts] [\u2212t target-client] [\u2212T prompt-type] [template]\nOpen the command prompt in a client. This may be used from inside tmux to execute commands interactively." + "description": "```tmux\ncommand-prompt [-1bFikN] [-I inputs] [-p prompts] [-t target-client] [-T prompt-type] [template]\n```\n\nOpen the command prompt in a client. This may be used from inside tmux to execute commands interactively." }, "confirm-before": { - "description": "confirm-before [\u2212b] [\u2212p prompt] [\u2212t target-client] command\nconfirm\nAsk for confirmation before executing command. If \u2212p is given, prompt is the prompt to display; otherwise a prompt is constructed from command. It may contain the special character sequences supported by the status-left option. With \u2212b, the prompt is shown in the background and the invoking client does not exit until it is dismissed." + "description": "```tmux\nconfirm-before [-b] [-p prompt] [-t target-client] command\nconfirm [-b] [-p prompt] [-t target-client] command\n```\n\nAsk for confirmation before executing command. If -p is given, prompt is the prompt to display; otherwise a prompt is constructed from command. It may contain the special character sequences supported by the status-left option. With -b, the prompt is shown in the background and the invoking client does not exit until it is dismissed." }, "confirm": { - "description": "confirm-before [\u2212b] [\u2212p prompt] [\u2212t target-client] command\nconfirm\nAsk for confirmation before executing command. If \u2212p is given, prompt is the prompt to display; otherwise a prompt is constructed from command. It may contain the special character sequences supported by the status-left option. With \u2212b, the prompt is shown in the background and the invoking client does not exit until it is dismissed." + "description": "```tmux\nconfirm-before [-b] [-p prompt] [-t target-client] command\nconfirm [-b] [-p prompt] [-t target-client] command\n```\n\nAsk for confirmation before executing command. If -p is given, prompt is the prompt to display; otherwise a prompt is constructed from command. It may contain the special character sequences supported by the status-left option. With -b, the prompt is shown in the background and the invoking client does not exit until it is dismissed." }, "display-menu": { - "description": "display-menu [\u2212O] [\u2212c target-client] [\u2212t target-pane] [\u2212T title] [\u2212x position] [\u2212y position] name key command ...\nmenu\nDisplay a menu on target-client. target-pane gives the target for any commands run from the menu." + "description": "```tmux\ndisplay-menu [-O] [-c target-client] [-t target-pane] [-T title] [-x position] [-y position] name key command ...\nmenu [-O] [-c target-client] [-t target-pane] [-T title] [-x position] [-y position] name key command ...\n```\n\nDisplay a menu on target-client. target-pane gives the target for any commands run from the menu." }, "menu": { - "description": "display-menu [\u2212O] [\u2212c target-client] [\u2212t target-pane] [\u2212T title] [\u2212x position] [\u2212y position] name key command ...\nmenu\nDisplay a menu on target-client. target-pane gives the target for any commands run from the menu." + "description": "```tmux\ndisplay-menu [-O] [-c target-client] [-t target-pane] [-T title] [-x position] [-y position] name key command ...\nmenu [-O] [-c target-client] [-t target-pane] [-T title] [-x position] [-y position] name key command ...\n```\n\nDisplay a menu on target-client. target-pane gives the target for any commands run from the menu." }, "display-message": { - "description": "display-message [\u2212aINpv] [\u2212c target-client] [\u2212d delay] [\u2212t target-pane] [message]\ndisplay\nDisplay a message. If \u2212p is given, the output is printed to stdout, otherwise it is displayed in the target-client status line for up to delay milliseconds. If delay is not given, the display-time option is used; a delay of zero waits for a key press. \u2018N\u2019 ignores key presses and closes only after the delay expires. The format of message is described in the \u201cFORMATS\u201d section; information is taken from target-pane if \u2212t is given, otherwise the active pane." + "description": "```tmux\ndisplay-message [-aINpv] [-c target-client] [-d delay] [-t target-pane] [message]\ndisplay [-aINpv] [-c target-client] [-d delay] [-t target-pane] [message]\n```\n\nDisplay a message. If -p is given, the output is printed to stdout, otherwise it is displayed in the target-client status line for up to delay milliseconds. If delay is not given, the display-time option is used; a delay of zero waits for a key press. \u2018N\u2019 ignores key presses and closes only after the delay expires. The format of message is described in the \u201cFORMATS\u201d section; information is taken from target-pane if -t is given, otherwise the active pane." }, "display": { - "description": "display-message [\u2212aINpv] [\u2212c target-client] [\u2212d delay] [\u2212t target-pane] [message]\ndisplay\nDisplay a message. If \u2212p is given, the output is printed to stdout, otherwise it is displayed in the target-client status line for up to delay milliseconds. If delay is not given, the display-time option is used; a delay of zero waits for a key press. \u2018N\u2019 ignores key presses and closes only after the delay expires. The format of message is described in the \u201cFORMATS\u201d section; information is taken from target-pane if \u2212t is given, otherwise the active pane." + "description": "```tmux\ndisplay-message [-aINpv] [-c target-client] [-d delay] [-t target-pane] [message]\ndisplay [-aINpv] [-c target-client] [-d delay] [-t target-pane] [message]\n```\n\nDisplay a message. If -p is given, the output is printed to stdout, otherwise it is displayed in the target-client status line for up to delay milliseconds. If delay is not given, the display-time option is used; a delay of zero waits for a key press. \u2018N\u2019 ignores key presses and closes only after the delay expires. The format of message is described in the \u201cFORMATS\u201d section; information is taken from target-pane if -t is given, otherwise the active pane." }, "display-popup": { - "description": "display-popup [\u2212BCE] [\u2212b border-lines] [\u2212c target-client] [\u2212d start-directory] [\u2212e environment] [\u2212h height] [\u2212s style] [\u2212S border-style] [\u2212t target-pane] [\u2212T title] [\u2212w width] [\u2212x position] [\u2212y position] [shell-command]\npopup\nDisplay a popup running shell-command on target-client. A popup is a rectangular box drawn over the top of any panes. Panes are not updated while a popup is present." + "description": "```tmux\ndisplay-popup [-BCE] [-b border-lines] [-c target-client] [-d start-directory] [-e environment] [-h height] [-s style] [-S border-style] [-t target-pane] [-T title] [-w width] [-x position] [-y position] [shell-command]\npopup [-BCE] [-b border-lines] [-c target-client] [-d start-directory] [-e environment] [-h height] [-s style] [-S border-style] [-t target-pane] [-T title] [-w width] [-x position] [-y position] [shell-command]\n```\n\nDisplay a popup running shell-command on target-client. A popup is a rectangular box drawn over the top of any panes. Panes are not updated while a popup is present." }, "popup": { - "description": "display-popup [\u2212BCE] [\u2212b border-lines] [\u2212c target-client] [\u2212d start-directory] [\u2212e environment] [\u2212h height] [\u2212s style] [\u2212S border-style] [\u2212t target-pane] [\u2212T title] [\u2212w width] [\u2212x position] [\u2212y position] [shell-command]\npopup\nDisplay a popup running shell-command on target-client. A popup is a rectangular box drawn over the top of any panes. Panes are not updated while a popup is present." + "description": "```tmux\ndisplay-popup [-BCE] [-b border-lines] [-c target-client] [-d start-directory] [-e environment] [-h height] [-s style] [-S border-style] [-t target-pane] [-T title] [-w width] [-x position] [-y position] [shell-command]\npopup [-BCE] [-b border-lines] [-c target-client] [-d start-directory] [-e environment] [-h height] [-s style] [-S border-style] [-t target-pane] [-T title] [-w width] [-x position] [-y position] [shell-command]\n```\n\nDisplay a popup running shell-command on target-client. A popup is a rectangular box drawn over the top of any panes. Panes are not updated while a popup is present." }, "show-prompt-history": { - "description": "show-prompt-history [\u2212T prompt-type]\nshowphist\nDisplay status prompt history for prompt type prompt-type. If \u2212T is omitted, then show history for all types. See command-prompt for possible values for prompt-type." + "description": "```tmux\nshow-prompt-history [-T prompt-type]\nshowphist [-T prompt-type]\n```\n\nDisplay status prompt history for prompt type prompt-type. If -T is omitted, then show history for all types. See command-prompt for possible values for prompt-type." }, "showphist": { - "description": "show-prompt-history [\u2212T prompt-type]\nshowphist\nDisplay status prompt history for prompt type prompt-type. If \u2212T is omitted, then show history for all types. See command-prompt for possible values for prompt-type." - }, - "BUFFERS": { - "description": "BUFFERS\ntmux maintains a set of named paste buffers. Each buffer may be either explicitly or automatically named. Explicitly named buffers are named when created with the set-buffer or load-buffer commands, or by renaming an automatically named buffer with set-buffer \u2212n. Automatically named buffers are given a name such as \u2018buffer0001\u2019, \u2018buffer0002\u2019 and so on. When the buffer-limit option is reached, the oldest automatically named buffer is deleted. Explicitly named buffers are not subject to buffer-limit and may be deleted with the delete-buffer command." + "description": "```tmux\nshow-prompt-history [-T prompt-type]\nshowphist [-T prompt-type]\n```\n\nDisplay status prompt history for prompt type prompt-type. If -T is omitted, then show history for all types. See command-prompt for possible values for prompt-type." }, "choose-buffer": { - "description": "choose-buffer [\u2212NZr] [\u2212F format] [\u2212f filter] [\u2212K key-format] [\u2212O sort-order] [\u2212t target-pane] [template]\nPut a pane into buffer mode, where a buffer may be chosen interactively from a list. Each buffer is shown on one line. A shortcut key is shown on the left in brackets allowing for immediate choice, or the list may be navigated and an item chosen or otherwise manipulated using the keys below. \u2212Z zooms the pane. The following keys may be used in buffer mode:" + "description": "```tmux\nchoose-buffer [-NZr] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane] [template]\n```\n\nPut a pane into buffer mode, where a buffer may be chosen interactively from a list. Each buffer is shown on one line. A shortcut key is shown on the left in brackets allowing for immediate choice, or the list may be navigated and an item chosen or otherwise manipulated using the keys below. -Z zooms the pane. The following keys may be used in buffer mode:" }, "clear-history": { - "description": "clear-history [\u2212t target-pane]\nclearhist\nRemove and free the history for the specified pane." + "description": "```tmux\nclear-history [-t target-pane]\nclearhist [-t target-pane]\n```\n\nRemove and free the history for the specified pane." }, "clearhist": { - "description": "clear-history [\u2212t target-pane]\nclearhist\nRemove and free the history for the specified pane." + "description": "```tmux\nclear-history [-t target-pane]\nclearhist [-t target-pane]\n```\n\nRemove and free the history for the specified pane." }, "delete-buffer": { - "description": "delete-buffer [\u2212b buffer-name]\ndeleteb\nDelete the buffer named buffer-name, or the most recently added automatically named buffer if not specified." + "description": "```tmux\ndelete-buffer [-b buffer-name]\ndeleteb [-b buffer-name]\n```\n\nDelete the buffer named buffer-name, or the most recently added automatically named buffer if not specified." }, "deleteb": { - "description": "delete-buffer [\u2212b buffer-name]\ndeleteb\nDelete the buffer named buffer-name, or the most recently added automatically named buffer if not specified." + "description": "```tmux\ndelete-buffer [-b buffer-name]\ndeleteb [-b buffer-name]\n```\n\nDelete the buffer named buffer-name, or the most recently added automatically named buffer if not specified." }, "list-buffers": { - "description": "list-buffers [\u2212F format] [\u2212f filter]\nlsb\nList the global buffers. \u2212F specifies the format of each line and \u2212f a filter. Only buffers for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-buffers [-F format] [-f filter]\nlsb [-F format] [-f filter]\n```\n\nList the global buffers. -F specifies the format of each line and -f a filter. Only buffers for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "lsb": { - "description": "list-buffers [\u2212F format] [\u2212f filter]\nlsb\nList the global buffers. \u2212F specifies the format of each line and \u2212f a filter. Only buffers for which the filter is true are shown. See the \u201cFORMATS\u201d section." + "description": "```tmux\nlist-buffers [-F format] [-f filter]\nlsb [-F format] [-f filter]\n```\n\nList the global buffers. -F specifies the format of each line and -f a filter. Only buffers for which the filter is true are shown. See the \u201cFORMATS\u201d section." }, "load-buffer": { - "description": "load-buffer [\u2212w] [\u2212b buffer-name] [\u2212t target-client] path\nloadb\nLoad the contents of the specified paste buffer from path. If \u2212w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible." + "description": "```tmux\nload-buffer [-w] [-b buffer-name] [-t target-client] path\nloadb [-w] [-b buffer-name] [-t target-client] path\n```\n\nLoad the contents of the specified paste buffer from path. If -w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible." }, "loadb": { - "description": "load-buffer [\u2212w] [\u2212b buffer-name] [\u2212t target-client] path\nloadb\nLoad the contents of the specified paste buffer from path. If \u2212w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible." + "description": "```tmux\nload-buffer [-w] [-b buffer-name] [-t target-client] path\nloadb [-w] [-b buffer-name] [-t target-client] path\n```\n\nLoad the contents of the specified paste buffer from path. If -w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible." }, "paste-buffer": { - "description": "paste-buffer [\u2212dpr] [\u2212b buffer-name] [\u2212s separator] [\u2212t target-pane]\npasteb\nInsert the contents of a paste buffer into the specified pane. If not specified, paste into the current one. With \u2212d, also delete the paste buffer. When output, any linefeed (LF) characters in the paste buffer are replaced with a separator, by default carriage return (CR). A custom separator may be specified using the \u2212s flag. The \u2212r flag means to do no replacement (equivalent to a separator of LF). If \u2212p is specified, paste bracket control codes are inserted around the buffer if the application has requested bracketed paste mode." + "description": "```tmux\npaste-buffer [-dpr] [-b buffer-name] [-s separator] [-t target-pane]\npasteb [-dpr] [-b buffer-name] [-s separator] [-t target-pane]\n```\n\nInsert the contents of a paste buffer into the specified pane. If not specified, paste into the current one. With -d, also delete the paste buffer. When output, any linefeed (LF) characters in the paste buffer are replaced with a separator, by default carriage return (CR). A custom separator may be specified using the -s flag. The -r flag means to do no replacement (equivalent to a separator of LF). If -p is specified, paste bracket control codes are inserted around the buffer if the application has requested bracketed paste mode." }, "pasteb": { - "description": "paste-buffer [\u2212dpr] [\u2212b buffer-name] [\u2212s separator] [\u2212t target-pane]\npasteb\nInsert the contents of a paste buffer into the specified pane. If not specified, paste into the current one. With \u2212d, also delete the paste buffer. When output, any linefeed (LF) characters in the paste buffer are replaced with a separator, by default carriage return (CR). A custom separator may be specified using the \u2212s flag. The \u2212r flag means to do no replacement (equivalent to a separator of LF). If \u2212p is specified, paste bracket control codes are inserted around the buffer if the application has requested bracketed paste mode." + "description": "```tmux\npaste-buffer [-dpr] [-b buffer-name] [-s separator] [-t target-pane]\npasteb [-dpr] [-b buffer-name] [-s separator] [-t target-pane]\n```\n\nInsert the contents of a paste buffer into the specified pane. If not specified, paste into the current one. With -d, also delete the paste buffer. When output, any linefeed (LF) characters in the paste buffer are replaced with a separator, by default carriage return (CR). A custom separator may be specified using the -s flag. The -r flag means to do no replacement (equivalent to a separator of LF). If -p is specified, paste bracket control codes are inserted around the buffer if the application has requested bracketed paste mode." }, "save-buffer": { - "description": "save-buffer [\u2212a] [\u2212b buffer-name] path\nsaveb\nSave the contents of the specified paste buffer to path. The \u2212a option appends to rather than overwriting the file." + "description": "```tmux\nsave-buffer [-a] [-b buffer-name] path\nsaveb [-a] [-b buffer-name] path\n```\n\nSave the contents of the specified paste buffer to path. The -a option appends to rather than overwriting the file." }, "saveb": { - "description": "save-buffer [\u2212a] [\u2212b buffer-name] path\nsaveb\nSave the contents of the specified paste buffer to path. The \u2212a option appends to rather than overwriting the file." + "description": "```tmux\nsave-buffer [-a] [-b buffer-name] path\nsaveb [-a] [-b buffer-name] path\n```\n\nSave the contents of the specified paste buffer to path. The -a option appends to rather than overwriting the file." }, "set-buffer": { - "description": "set-buffer [\u2212aw] [\u2212b buffer-name] [\u2212t target-client] [\u2212n new-buffer-name] data\nsetb\nSet the contents of the specified buffer to data. If \u2212w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible. The \u2212a option appends to rather than overwriting the buffer. The \u2212n option renames the buffer to new-buffer-name." + "description": "```tmux\nset-buffer [-aw] [-b buffer-name] [-t target-client] [-n new-buffer-name] data\nsetb [-aw] [-b buffer-name] [-t target-client] [-n new-buffer-name] data\n```\n\nSet the contents of the specified buffer to data. If -w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible. The -a option appends to rather than overwriting the buffer. The -n option renames the buffer to new-buffer-name." }, "setb": { - "description": "set-buffer [\u2212aw] [\u2212b buffer-name] [\u2212t target-client] [\u2212n new-buffer-name] data\nsetb\nSet the contents of the specified buffer to data. If \u2212w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible. The \u2212a option appends to rather than overwriting the buffer. The \u2212n option renames the buffer to new-buffer-name." + "description": "```tmux\nset-buffer [-aw] [-b buffer-name] [-t target-client] [-n new-buffer-name] data\nsetb [-aw] [-b buffer-name] [-t target-client] [-n new-buffer-name] data\n```\n\nSet the contents of the specified buffer to data. If -w is given, the buffer is also sent to the clipboard for target-client using the xterm(1) escape sequence, if possible. The -a option appends to rather than overwriting the buffer. The -n option renames the buffer to new-buffer-name." }, "show-buffer": { - "description": "show-buffer [\u2212b buffer-name]\nshowb\nDisplay the contents of the specified buffer." + "description": "```tmux\nshow-buffer [-b buffer-name]\nshowb [-b buffer-name]\n```\n\nDisplay the contents of the specified buffer." }, "showb": { - "description": "show-buffer [\u2212b buffer-name]\nshowb\nDisplay the contents of the specified buffer." - }, - "MISCELLANEOUS": { - "description": "MISCELLANEOUS\nMiscellaneous commands are as follows:" + "description": "```tmux\nshow-buffer [-b buffer-name]\nshowb [-b buffer-name]\n```\n\nDisplay the contents of the specified buffer." }, "clock-mode": { - "description": "clock-mode [\u2212t target-pane]\nDisplay a large clock." + "description": "```tmux\nclock-mode [-t target-pane]\n```\n\nDisplay a large clock." }, "if-shell": { - "description": "if-shell [\u2212bF] [\u2212t target-pane] shell-command command [command]\nif\nExecute the first command if shell-command (run with /bin/sh) returns success or the second command otherwise. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section, including those relevant to target-pane. With \u2212b, shell-command is run in the background." + "description": "```tmux\nif-shell [-bF] [-t target-pane] shell-command command [command]\nif [-bF] [-t target-pane] shell-command command [command]\n```\n\nExecute the first command if shell-command (run with /bin/sh) returns success or the second command otherwise. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section, including those relevant to target-pane. With -b, shell-command is run in the background." }, "if": { - "description": "if-shell [\u2212bF] [\u2212t target-pane] shell-command command [command]\nif\nExecute the first command if shell-command (run with /bin/sh) returns success or the second command otherwise. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section, including those relevant to target-pane. With \u2212b, shell-command is run in the background." + "description": "```tmux\nif-shell [-bF] [-t target-pane] shell-command command [command]\nif [-bF] [-t target-pane] shell-command command [command]\n```\n\nExecute the first command if shell-command (run with /bin/sh) returns success or the second command otherwise. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section, including those relevant to target-pane. With -b, shell-command is run in the background." }, "lock-server": { - "description": "lock-server\nlock\nLock each client individually by running the command specified by the lock-command option." + "description": "```tmux\nlock-server\nlock\n```\n\nLock each client individually by running the command specified by the lock-command option." }, "lock": { - "description": "lock-server\nlock\nLock each client individually by running the command specified by the lock-command option." + "description": "```tmux\nlock-server\nlock\n```\n\nLock each client individually by running the command specified by the lock-command option." }, "run-shell": { - "description": "run-shell [\u2212bC] [\u2212d delay] [\u2212t target-pane] [shell-command]\nrun\nExecute shell-command using /bin/sh or (with \u2212C) a tmux command in the background without creating a window. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section. With \u2212b, the command is run in the background. \u2212d waits for delay seconds before starting the command. If \u2212C is not given, any output to stdout is displayed in view mode (in the pane specified by \u2212t or the current pane if omitted) after the command finishes. If the command fails, the exit status is also displayed." + "description": "```tmux\nrun-shell [-bC] [-d delay] [-t target-pane] [shell-command]\nrun [-bC] [-d delay] [-t target-pane] [shell-command]\n```\n\nExecute shell-command using /bin/sh or (with -C) a tmux command in the background without creating a window. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section. With -b, the command is run in the background. -d waits for delay seconds before starting the command. If -C is not given, any output to stdout is displayed in view mode (in the pane specified by -t or the current pane if omitted) after the command finishes. If the command fails, the exit status is also displayed." }, "run": { - "description": "run-shell [\u2212bC] [\u2212d delay] [\u2212t target-pane] [shell-command]\nrun\nExecute shell-command using /bin/sh or (with \u2212C) a tmux command in the background without creating a window. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section. With \u2212b, the command is run in the background. \u2212d waits for delay seconds before starting the command. If \u2212C is not given, any output to stdout is displayed in view mode (in the pane specified by \u2212t or the current pane if omitted) after the command finishes. If the command fails, the exit status is also displayed." + "description": "```tmux\nrun-shell [-bC] [-d delay] [-t target-pane] [shell-command]\nrun [-bC] [-d delay] [-t target-pane] [shell-command]\n```\n\nExecute shell-command using /bin/sh or (with -C) a tmux command in the background without creating a window. Before being executed, shell-command is expanded using the rules specified in the \u201cFORMATS\u201d section. With -b, the command is run in the background. -d waits for delay seconds before starting the command. If -C is not given, any output to stdout is displayed in view mode (in the pane specified by -t or the current pane if omitted) after the command finishes. If the command fails, the exit status is also displayed." }, "wait-for": { - "description": "wait-for [\u2212L | \u2212S | \u2212U] channel\nwait\nWhen used without options, prevents the client from exiting until woken using wait-for \u2212S with the same channel. When \u2212L is used, the channel is locked and any clients that try to lock the same channel are made to wait until the channel is unlocked with wait-for \u2212U." + "description": "```tmux\nwait-for [-L | -S | -U] channel\nwait [-L | -S | -U] channel\n```\n\nWhen used without options, prevents the client from exiting until woken using wait-for -S with the same channel. When -L is used, the channel is locked and any clients that try to lock the same channel are made to wait until the channel is unlocked with wait-for -U." }, "wait": { - "description": "wait-for [\u2212L | \u2212S | \u2212U] channel\nwait\nWhen used without options, prevents the client from exiting until woken using wait-for \u2212S with the same channel. When \u2212L is used, the channel is locked and any clients that try to lock the same channel are made to wait until the channel is unlocked with wait-for \u2212U." + "description": "```tmux\nwait-for [-L | -S | -U] channel\nwait [-L | -S | -U] channel\n```\n\nWhen used without options, prevents the client from exiting until woken using wait-for -S with the same channel. When -L is used, the channel is locked and any clients that try to lock the same channel are made to wait until the channel is unlocked with wait-for -U." } } } diff --git a/src/tmux_language_server/misc/__init__.py b/src/tmux_language_server/misc/__init__.py index d631faf..1b14a77 100644 --- a/src/tmux_language_server/misc/__init__.py +++ b/src/tmux_language_server/misc/__init__.py @@ -1,6 +1,7 @@ r"""Misc ======== """ +import re from typing import Any from bs4.element import NavigableString, Tag @@ -9,6 +10,7 @@ from .._metainfo import SOURCE, project ALIAS_PREFIX = "(alias: " +PAT = re.compile(r"[a-z-]+") def get_schema() -> dict[str, Any]: @@ -29,6 +31,7 @@ def get_schema() -> dict[str, Any]: } soup = get_soup("tmux.1", "groff", "mdoc") p = soup.find("p", string="CLIENTS AND SESSIONS") + isoption = 0 while p and p.text != "EXIT MESSAGES": b = p.find("b") if ( @@ -43,17 +46,44 @@ def get_schema() -> dict[str, Any]: if not p: continue b = p.find("b") + alias = None if p.text.startswith(ALIAS_PREFIX) and isinstance(b, Tag): alias = b.text - description += "\n" + alias + description += "\n" + description.replace(name, alias) p = p.find_next("p") - else: - alias = name if not p: continue + _type = "string" + if name.endswith("[]"): + name = name.rstrip("[]") + _type = "array" + if not PAT.fullmatch(name): + continue + if name == "backspace": + isoption = 1 + schema["properties"]["set"]["properties"] = {} + if isoption: + description = f"""```tmux +set {description} +``` +""" + else: + description = f"""```tmux +{description} +``` +""" description += "\n" + p.text.replace("\n", " ") - schema["properties"][name] = schema["properties"][alias] = { - "description": description - } + description = description.replace("\u2212", "-") + if isoption: + schema["properties"]["set"]["properties"][name] = { + "description": description, + "type": _type, + } + else: + schema["properties"][name] = {"description": description} + if alias: + schema["properties"][alias] = {"description": description} + if name == "window-style": + isoption = 0 p = p.find_next("p") return schema diff --git a/src/tmux_language_server/server.py b/src/tmux_language_server/server.py index 1b177f3..9eff27c 100644 --- a/src/tmux_language_server/server.py +++ b/src/tmux_language_server/server.py @@ -49,6 +49,8 @@ def hover(params: TextDocumentPositionParams) -> Hover | None: params.text_document.uri, params.position, True ) properties = get_schema().get("properties", {}) + if _range.start.character != 0: + properties = properties.get("set", {}).get("properties", {}) description = properties.get(word, {}).get("description", "") if not description: return None @@ -64,14 +66,18 @@ def completions(params: CompletionParams) -> CompletionList: :type params: CompletionParams :rtype: CompletionList """ - word, _ = self._cursor_word( + word, _range = self._cursor_word( params.text_document.uri, params.position, False ) properties = get_schema().get("properties", {}) + kind = CompletionItemKind.Function + if _range.start.character != 0: + properties = properties.get("set", {}).get("properties", {}) + kind = CompletionItemKind.Constant items = [ CompletionItem( x, - kind=CompletionItemKind.Function, + kind=kind, documentation=MarkupContent( MarkupKind.Markdown, property.get("description", "") ), @@ -99,7 +105,7 @@ def _cursor_word( uri: str, position: Position, include_all: bool = True, - regex: str = r"\w+", + regex: str = r"[\w-]+", ) -> tuple[str, Range]: """Cursor word.