blob: 867c033cb58cfc25ea6356e157ab7310419dde01 [file] [log] [blame]
Bram Moolenaar214641f2017-03-05 17:04:09 +01001" Language: tmux(1) configuration file
Bram Moolenaar22863042021-10-16 15:23:36 +01002" Version: 3.2a (git-44ada9cd)
Bram Moolenaar214641f2017-03-05 17:04:09 +01003" URL: https://github.com/ericpruitt/tmux.vim/
4" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
5" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)
6
Bram Moolenaar036986f2017-03-16 17:41:02 +01007if exists("b:current_syntax")
Bram Moolenaar214641f2017-03-05 17:04:09 +01008 finish
Bram Moolenaar214641f2017-03-05 17:04:09 +01009endif
10
Bram Moolenaar6c391a72021-09-09 21:55:11 +020011" Explicitly change compatibility options to Vim's defaults because this file
Bram Moolenaar036986f2017-03-16 17:41:02 +010012" uses line continuations.
13let s:original_cpo = &cpo
Bram Moolenaar214641f2017-03-05 17:04:09 +010014set cpo&vim
15
Bram Moolenaar036986f2017-03-16 17:41:02 +010016let b:current_syntax = "tmux"
Bram Moolenaar0b0f0992018-05-22 21:41:30 +020017syntax iskeyword @,48-57,_,192-255,-
Bram Moolenaar214641f2017-03-05 17:04:09 +010018syntax case match
19
20syn keyword tmuxAction none any current other
21syn keyword tmuxBoolean off on
22
23syn keyword tmuxTodo FIXME NOTE TODO XXX contained
24
25syn match tmuxColour /\<colour[0-9]\+/ display
26syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display
Bram Moolenaar0b0f0992018-05-22 21:41:30 +020027syn match tmuxNumber /\<\d\+\>/ display
Bram Moolenaar214641f2017-03-05 17:04:09 +010028syn match tmuxFlags /\s-\a\+/ display
29syn match tmuxVariable /\w\+=/ display
30syn match tmuxVariableExpansion /\${\=\w\+}\=/ display
Bram Moolenaar91359012019-11-30 17:57:03 +010031syn match tmuxControl /%\(if\|elif\|else\|endif\)/
Bram Moolenaar214641f2017-03-05 17:04:09 +010032
Bram Moolenaar22863042021-10-16 15:23:36 +010033syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo,@Spell
Bram Moolenaar214641f2017-03-05 17:04:09 +010034
Bram Moolenaar22863042021-10-16 15:23:36 +010035syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString,@Spell
36syn region tmuxString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end='$' contains=tmuxFormatString,@Spell
Bram Moolenaar214641f2017-03-05 17:04:09 +010037
38" TODO: Figure out how escaping works inside of #(...) and #{...} blocks.
39syn region tmuxFormatString start=/#[#DFhHIPSTW]/ end=// contained keepend
Bram Moolenaar22863042021-10-16 15:23:36 +010040syn region tmuxFormatString start=/#{/ skip=/#{.\{-}}/ end=/}/ keepend
Bram Moolenaar214641f2017-03-05 17:04:09 +010041syn region tmuxFormatString start=/#(/ skip=/#(.\{-})/ end=/)/ contained keepend
42
43hi def link tmuxFormatString Identifier
44hi def link tmuxAction Boolean
45hi def link tmuxBoolean Boolean
46hi def link tmuxCommands Keyword
Bram Moolenaar91359012019-11-30 17:57:03 +010047hi def link tmuxControl Keyword
Bram Moolenaar214641f2017-03-05 17:04:09 +010048hi def link tmuxComment Comment
49hi def link tmuxKey Special
50hi def link tmuxNumber Number
51hi def link tmuxFlags Identifier
52hi def link tmuxOptions Function
53hi def link tmuxString String
54hi def link tmuxTodo Todo
55hi def link tmuxVariable Identifier
56hi def link tmuxVariableExpansion Identifier
57
Bram Moolenaar22863042021-10-16 15:23:36 +010058" Make the foreground of colourXXX keywords match the color they represent
59" when g:tmux_syntax_colors is unset or set to a non-zero value.
Bram Moolenaar214641f2017-03-05 17:04:09 +010060" Darker colors have their background set to white.
Bram Moolenaar22863042021-10-16 15:23:36 +010061if get(g:, "tmux_syntax_colors", 1)
62 for s:i in range(0, 255)
63 let s:bg = (!s:i || s:i == 16 || (s:i > 231 && s:i < 235)) ? 15 : "none"
64 exec "syn match tmuxColour" . s:i . " /\\<colour" . s:i . "\\>/ display"
65\ " | highlight tmuxColour" . s:i . " ctermfg=" . s:i . " ctermbg=" . s:bg
66 endfor
67endif
Bram Moolenaar214641f2017-03-05 17:04:09 +010068
69syn keyword tmuxOptions
Bram Moolenaar22863042021-10-16 15:23:36 +010070\ backspace buffer-limit command-alias copy-command default-terminal editor
71\ escape-time exit-empty activity-action assume-paste-time base-index
72\ bell-action default-command default-shell default-size destroy-unattached
Bram Moolenaar91359012019-11-30 17:57:03 +010073\ detach-on-destroy display-panes-active-colour display-panes-colour
Bram Moolenaar22863042021-10-16 15:23:36 +010074\ display-panes-time display-time exit-unattached extended-keys focus-events
75\ history-file history-limit key-table lock-after-time lock-command
76\ message-command-style message-limit message-style aggressive-resize
77\ allow-rename alternate-screen automatic-rename automatic-rename-format
78\ clock-mode-colour clock-mode-style copy-mode-current-match-style
79\ copy-mode-mark-style copy-mode-match-style main-pane-height
80\ main-pane-width mode-keys mode-style monitor-activity monitor-bell
81\ monitor-silence mouse other-pane-height other-pane-width
82\ pane-active-border-style pane-base-index pane-border-format
83\ pane-border-lines pane-border-status pane-border-style pane-colours prefix
84\ prefix2 prompt-history-limit remain-on-exit renumber-windows repeat-time
85\ set-clipboard set-titles set-titles-string silence-action status status-bg
86\ status-fg status-format status-interval status-justify status-keys
87\ status-left status-left-length status-left-style status-position
88\ status-right status-right-length status-right-style status-style
89\ synchronize-panes terminal-features terminal-overrides update-environment
90\ user-keys visual-activity visual-bell visual-silence window-active-style
91\ window-size window-status-activity-style window-status-bell-style
Bram Moolenaar91359012019-11-30 17:57:03 +010092\ window-status-current-format window-status-current-style
93\ window-status-format window-status-last-style window-status-separator
Bram Moolenaar22863042021-10-16 15:23:36 +010094\ window-status-style window-style word-separators wrap-search
Bram Moolenaar214641f2017-03-05 17:04:09 +010095
96syn keyword tmuxCommands
Bram Moolenaar0b0f0992018-05-22 21:41:30 +020097\ attach attach-session bind bind-key break-pane breakp capture-pane
98\ capturep choose-buffer choose-client choose-tree clear-history clearhist
Bram Moolenaar22863042021-10-16 15:23:36 +010099\ clock-mode command-prompt confirm confirm-before copy-mode customize-mode
100\ detach detach-client display display-menu display-message display-panes
101\ display-popup displayp find-window findw if if-shell join-pane joinp
102\ kill-pane kill-server kill-session kill-window killp has has-session killw
103\ link-window linkw list-buffers list-clients list-commands list-keys
104\ list-panes list-sessions list-windows load-buffer loadb lock lock-client
105\ lock-server lock-session lockc last-pane lastp locks ls last last-window
106\ lsb delete-buffer deleteb lsc lscm lsk lsp lsw menu move-pane move-window
107\ clear-prompt-history clearphist movep movew new new-session new-window
108\ neww next next-layout next-window nextl paste-buffer pasteb pipe-pane
109\ pipep popup prev previous-layout previous-window prevl refresh
110\ refresh-client rename rename-session rename-window renamew resize-pane
111\ resize-window resizep resizew respawn-pane respawn-window respawnp
112\ respawnw rotate-window rotatew run run-shell save-buffer saveb
Bram Moolenaar68e65602019-05-26 21:33:31 +0200113\ select-layout select-pane select-window selectl selectp selectw send
114\ send-keys send-prefix set set-buffer set-environment set-hook set-option
115\ set-window-option setb setenv setw show show-buffer show-environment
Bram Moolenaar22863042021-10-16 15:23:36 +0100116\ show-hooks show-messages show-options show-prompt-history
117\ show-window-options showb showenv showmsgs showphist showw source
118\ source-file split-window splitw start start-server suspend-client suspendc
119\ swap-pane swap-window swapp swapw switch-client switchc unbind unbind-key
120\ unlink-window unlinkw wait wait-for
Bram Moolenaar214641f2017-03-05 17:04:09 +0100121
Bram Moolenaar036986f2017-03-16 17:41:02 +0100122let &cpo = s:original_cpo
123unlet! s:original_cpo s:bg s:i