aboutsummaryrefslogtreecommitdiff
path: root/examples/tmux.vim
blob: bff9cd1e35efacd4eef1208db83dbfa9e9be602d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
" Vim syntax file
" Language: tmux(1) configuration file
" Maintainer: Tiago Cunha <tcunha@users.sourceforge.net>
" Last Change: $Date: 2010-07-27 18:29:07 $
" License: This file is placed in the public domain.
"
" To install this file:
"
" - Drop the file in the syntax directory into runtimepath (such as
"  ~/.vim/syntax/tmux.vim).
" - Make the filetype recognisable by adding the following to filetype.vim
"   (~/.vim/filetype.vim):
"
"	augroup filetypedetect
"		au BufNewFile,BufRead .tmux.conf*,tmux.conf* setf tmux
"	augroup END
"
" - Switch on syntax highlighting by adding "syntax enable" to .vimrc.
"

if version < 600
	syntax clear
elseif exists("b:current_syntax")
	finish
endif

setlocal iskeyword+=-
syntax case match

syn keyword tmuxAction	any current none
syn keyword tmuxBoolean	off on

syn keyword tmuxCmds
	\ attach[-session] bind[-key] break-pane breakp capture-pane capturep
	\ choose-buffer choose-client choose-list choose-session choose-tree
	\ choose-window clear-history clearhist clock-mode command-prompt
	\ confirm[-before] copy-mode delete-buffer deleteb detach[-client]
	\ display[-message] display-panes displayp find-window findw
	\ has[-session] if[-shell] join-pane joinp kill-pane killp kill-server
	\ kill-session kill-window killw last-pane lastp last[-window]
	\ link-window linkw list-buffers lsb list-clients lsc
	\ list-commands lscm list-keys lsk list-panes lsp list-sessions ls
	\ list-windows lsw load-buffer loadb lock-client lockc lock[-server]
	\ lock-session locks move-pane movep move-window movew new[-session]
	\ next-layout nextl next[-window] paste-buffer pasteb pipe-pane pipep
	\ previous-layout prevl prev[ious-window] refresh[-client]
	\ rename[-session] rename-window renamew resize-pane resizep
	\ respawn-pane respawnp respawn-window respawnw rotate-window rotatew
	\ run[-shell] save-buffer saveb select-layout selectl
	\ select-pane selectp select-window selectw send[-keys] send-prefix
	\ server-info info set-buffer setb set-environment setenv set[-option]
	\ set-window-option setw show-buffer showb show-environment showenv
	\ show-messages showmsgs show[-options] show-window-options showw
	\ source[-file] split-window splitw start[-server]
	\ suspend-client suspendc swap-pane swapp swap-window swapw
	\ switch-client switchc unbind[-key] unlink-window unlinkw wait[-for]

syn keyword tmuxOptsSet
	\ buffer-limit escape-time exit-unattached exit-unattached quiet
	\ set-clipboard
	\ base-index bell-action bell-on-alert default-command default-path
	\ default-shell default-terminal destroy-unattached detach-on-destroy
	\ display-panes-active-colour display-panes-colour display-panes-time
	\ display-time history-limit
	\ lock-after-time lock-command lock-server
	\ message-command-attr message-attr message-command-bg message-bg
	\ message-command-fg message-fg message-limit
	\ mouse-resize-pane mouse-select-pane mouse-select-window mouse-utf8
	\ pane-active-border-bg pane-border-bg pane-active-border-fg
	\ pane-border-fg prefix prefix2
	\ renumber-windows repeat-time set-remain-on-exit set-titles
	\ set-titles-string status status-attr status-bg status-fg
	\ status-interval status-justify status-keys status-left
	\ status-left-attr status-left-bg status-left-fg status-left-length
	\ status-position status-right status-right-attr status-right-bg
	\ status-right-fg status-right-length status-utf8 terminal-overrides
	\ update-environment visual-activity visual-bell visual-content
	\ visual-silence word-separators

syn keyword tmuxOptsSetw
	\ aggressive-resize alternate-screen automatic-rename
	\ c0-change-interval c0-change-trigger clock-mode-colour
	\ clock-mode-style force-height force-width layout-history-limit
	\ main-pane-height main-pane-width mode-attr mode-bg mode-fg move-keys
	\ mode-mouse monitor-activity monitor-content monitor-silence
	\ other-pane-height other-pane-width pane-base-index remain-on-exit
	\ synchronize-panes utf8 window-status-bell-attr window-status-bell-bg
	\ window-status-bell-fg window-status-content-attr
	\ window-status-content-bg window-status-content-fg
	\ window-status-activity-attr window-status-activity-bg
	\ window-status-activity-fg window-status-attr
	\ window-status-current-attr window-status-attr window-status-current-bg
	\ window-status-bg window-status-current-fg window-status-fg
	\ window-status-current-format window-status-format
	\ window-status-separator xterm-keys wrap-search

syn keyword tmuxTodo FIXME NOTE TODO XXX contained

syn match tmuxKey		/\(C-\|M-\|\^\)\+\S\+/	display
syn match tmuxNumber 		/\d\+/			display
syn match tmuxOptions		/\s-\a\+/		display
syn match tmuxVariable		/\w\+=/			display
syn match tmuxVariableExpansion	/\${\=\w\+}\=/		display

syn region tmuxComment	start=/#/ end=/$/ contains=tmuxTodo display oneline
syn region tmuxString	start=/"/ end=/"/ display oneline
syn region tmuxString	start=/'/ end=/'/ display oneline

hi def link tmuxAction			Boolean
hi def link tmuxBoolean			Boolean
hi def link tmuxCmds			Keyword
hi def link tmuxComment			Comment
hi def link tmuxKey			Special
hi def link tmuxNumber			Number
hi def link tmuxOptions			Identifier
hi def link tmuxOptsSet			Function
hi def link tmuxOptsSetw		Function
hi def link tmuxString			String
hi def link tmuxTodo			Todo
hi def link tmuxVariable		Constant
hi def link tmuxVariableExpansion	Constant

let b:current_syntax = "tmux"