1" Language: tmux(1) configuration file 2" Version: 3.0 (git-48cbbb87) 3" URL: https://github.com/ericpruitt/tmux.vim/ 4" Maintainer: Eric Pruitt <[email protected]> 5" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause) 6 7if exists("b:current_syntax") 8 finish 9endif 10 11" Explicitly change compatiblity options to Vim's defaults because this file 12" uses line continuations. 13let s:original_cpo = &cpo 14set cpo&vim 15 16let b:current_syntax = "tmux" 17syntax iskeyword @,48-57,_,192-255,- 18syntax 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 27syn match tmuxNumber /\<\d\+\>/ display 28syn match tmuxFlags /\s-\a\+/ display 29syn match tmuxVariable /\w\+=/ display 30syn match tmuxVariableExpansion /\${\=\w\+}\=/ display 31syn match tmuxControl /%\(if\|elif\|else\|endif\)/ 32 33syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo 34 35syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString 36syn region tmuxString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end='$' contains=tmuxFormatString 37 38" TODO: Figure out how escaping works inside of #(...) and #{...} blocks. 39syn region tmuxFormatString start=/#[#DFhHIPSTW]/ end=// contained keepend 40syn region tmuxFormatString start=/#{/ skip=/#{.\{-}}/ end=/}/ contained keepend 41syn 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 47hi def link tmuxControl Keyword 48hi 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 58" Make the foreground of colourXXX keywords match the color they represent. 59" Darker colors have their background set to white. 60for s:i in range(0, 255) 61 let s:bg = (!s:i || s:i == 16 || (s:i > 231 && s:i < 235)) ? 15 : "none" 62 exec "syn match tmuxColour" . s:i . " /\\<colour" . s:i . "\\>/ display" 63\ " | highlight tmuxColour" . s:i . " ctermfg=" . s:i . " ctermbg=" . s:bg 64endfor 65 66syn keyword tmuxOptions 67\ backspace buffer-limit command-alias default-terminal escape-time 68\ exit-empty activity-action assume-paste-time base-index bell-action 69\ default-command default-shell default-size destroy-unattached 70\ detach-on-destroy display-panes-active-colour display-panes-colour 71\ display-panes-time display-time exit-unattached focus-events history-file 72\ history-limit key-table lock-after-time lock-command message-command-style 73\ message-limit message-style aggressive-resize allow-rename 74\ alternate-screen automatic-rename automatic-rename-format 75\ clock-mode-colour clock-mode-style main-pane-height main-pane-width 76\ mode-keys mode-style monitor-activity monitor-bell monitor-silence mouse 77\ other-pane-height other-pane-width pane-active-border-style 78\ pane-base-index pane-border-format pane-border-status pane-border-style 79\ prefix prefix2 remain-on-exit renumber-windows repeat-time set-clipboard 80\ set-titles set-titles-string silence-action status status-bg status-fg 81\ status-format status-interval status-justify status-keys status-left 82\ status-left-length status-left-style status-position status-right 83\ status-right-length status-right-style status-style synchronize-panes 84\ terminal-overrides update-environment user-keys visual-activity 85\ visual-bell visual-silence window-active-style window-size 86\ window-status-activity-style window-status-bell-style 87\ window-status-current-format window-status-current-style 88\ window-status-format window-status-last-style window-status-separator 89\ window-status-style window-style word-separators wrap-search xterm-keys 90 91syn keyword tmuxCommands 92\ attach attach-session bind bind-key break-pane breakp capture-pane 93\ capturep choose-buffer choose-client choose-tree clear-history clearhist 94\ clock-mode command-prompt confirm confirm-before copy-mode detach 95\ detach-client display display-menu display-message display-panes displayp 96\ find-window findw if if-shell join-pane joinp kill-pane kill-server 97\ kill-session kill-window killp has-session has killw link-window linkw 98\ list-buffers list-clients list-commands list-keys list-panes list-sessions 99\ list-windows load-buffer loadb lock lock-client lock-server lock-session 100\ lockc last-pane lastp locks ls last-window last lsb lsc delete-buffer 101\ deleteb lscm lsk lsp lsw menu move-pane move-window movep movew new 102\ new-session new-window neww next next-layout next-window nextl 103\ paste-buffer pasteb pipe-pane pipep prev previous-layout previous-window 104\ prevl refresh refresh-client rename rename-session rename-window renamew 105\ resize-pane resize-window resizep resizew respawn-pane respawn-window 106\ respawnp respawnw rotate-window rotatew run run-shell save-buffer saveb 107\ select-layout select-pane select-window selectl selectp selectw send 108\ send-keys send-prefix set set-buffer set-environment set-hook set-option 109\ set-window-option setb setenv setw show show-buffer show-environment 110\ show-hooks show-messages show-options show-window-options showb showenv 111\ showmsgs showw source source-file split-window splitw start start-server 112\ suspend-client suspendc swap-pane swap-window swapp swapw switch-client 113\ switchc unbind unbind-key unlink-window unlinkw wait wait-for 114 115let &cpo = s:original_cpo 116unlet! s:original_cpo s:bg s:i 117