1071d4279SBram Moolenaar" Vim syntax file 242eeac35SBram Moolenaar" Language: readline(3) configuration file 340962ec9SBram Moolenaar" Maintainer: Daniel Moch <[email protected]> 4214641f7SBram Moolenaar" Previous Maintainer: Nikolai Weibull <[email protected]> 5*91f84f6eSBram Moolenaar" Latest Revision: 2018-07-26 6*91f84f6eSBram Moolenaar" Add new functions for Readline 7 / Bash 4.4 7*91f84f6eSBram Moolenaar" (credit: Github user bewuethr) 8071d4279SBram Moolenaar 9446beb48SBram Moolenaarif exists('b:current_syntax') 10071d4279SBram Moolenaar finish 11071d4279SBram Moolenaarendif 12071d4279SBram Moolenaar 1342eeac35SBram Moolenaarlet s:cpo_save = &cpo 1442eeac35SBram Moolenaarset cpo&vim 15071d4279SBram Moolenaar 16446cb837SBram Moolenaarsetlocal iskeyword+=- 17071d4279SBram Moolenaar 18446beb48SBram Moolenaarsyn match readlineKey contained 19446beb48SBram Moolenaar \ '\S' 20446beb48SBram Moolenaar \ nextgroup=readlineKeyTerminator 21071d4279SBram Moolenaar 22446beb48SBram Moolenaarsyn match readlineBegin display '^' 23446beb48SBram Moolenaar \ nextgroup=readlineComment, 24446beb48SBram Moolenaar \ readlineConditional, 25446beb48SBram Moolenaar \ readlineInclude, 26446beb48SBram Moolenaar \ readlineKeyName, 27446beb48SBram Moolenaar \ readlineKey, 28446beb48SBram Moolenaar \ readlineKeySeq, 29446beb48SBram Moolenaar \ readlineKeyword 30446beb48SBram Moolenaar \ skipwhite 31071d4279SBram Moolenaar 32446beb48SBram Moolenaarsyn region readlineComment contained display oneline 33446beb48SBram Moolenaar \ start='#' 34446beb48SBram Moolenaar \ end='$' 35446beb48SBram Moolenaar \ contains=readlineTodo, 36446beb48SBram Moolenaar \ @Spell 37446beb48SBram Moolenaar 38446beb48SBram Moolenaarsyn keyword readlineTodo contained 39446beb48SBram Moolenaar \ TODO 40446beb48SBram Moolenaar \ FIXME 41446beb48SBram Moolenaar \ XXX 42446beb48SBram Moolenaar \ NOTE 43446beb48SBram Moolenaar 44446beb48SBram Moolenaarsyn match readlineConditional contained 45446beb48SBram Moolenaar \ '$if\>' 46446beb48SBram Moolenaar \ nextgroup=readlineTest, 47446beb48SBram Moolenaar \ readlineTestApp 48446beb48SBram Moolenaar \ skipwhite 49446beb48SBram Moolenaar 50446beb48SBram Moolenaarsyn keyword readlineTest contained 51446beb48SBram Moolenaar \ mode 52446beb48SBram Moolenaar \ nextgroup=readlineTestModeEq 53446beb48SBram Moolenaar 54446beb48SBram Moolenaarsyn match readlineTestModeEq contained 55446beb48SBram Moolenaar \ '=' 56446beb48SBram Moolenaar \ nextgroup=readlineEditingMode 57446beb48SBram Moolenaar 58446beb48SBram Moolenaarsyn keyword readlineTest contained 59446beb48SBram Moolenaar \ term 60446beb48SBram Moolenaar \ nextgroup=readlineTestTermEq 61446beb48SBram Moolenaar 62446beb48SBram Moolenaarsyn match readlineTestTermEq contained 63446beb48SBram Moolenaar \ '=' 64446beb48SBram Moolenaar \ nextgroup=readlineTestTerm 65446beb48SBram Moolenaar 66446beb48SBram Moolenaarsyn match readlineTestTerm contained 67446beb48SBram Moolenaar \ '\S\+' 68446beb48SBram Moolenaar 69446beb48SBram Moolenaarsyn match readlineTestApp contained 70446beb48SBram Moolenaar \ '\S\+' 71446beb48SBram Moolenaar 72446beb48SBram Moolenaarsyn match readlineConditional contained display 73446beb48SBram Moolenaar \ '$\%(else\|endif\)\>' 74446beb48SBram Moolenaar 75446beb48SBram Moolenaarsyn match readlineInclude contained display 76446beb48SBram Moolenaar \ '$include\>' 77446beb48SBram Moolenaar \ nextgroup=readlinePath 78446beb48SBram Moolenaar 79446beb48SBram Moolenaarsyn match readlinePath contained display 80446beb48SBram Moolenaar \ '.\+' 8142eeac35SBram Moolenaar 82071d4279SBram Moolenaarsyn case ignore 83446beb48SBram Moolenaarsyn match readlineKeyName contained display 84446beb48SBram Moolenaar \ nextgroup=readlineKeySeparator, 85446beb48SBram Moolenaar \ readlineKeyTerminator 86446beb48SBram Moolenaar \ '\%(Control\|Del\|Esc\|Escape\|LFD\|Meta\|Newline\|Ret\|Return\|Rubout\|Space\|Spc\|Tab\)' 87071d4279SBram Moolenaarsyn case match 88071d4279SBram Moolenaar 89446beb48SBram Moolenaarsyn match readlineKeySeparator contained 90446beb48SBram Moolenaar \ '-' 91446beb48SBram Moolenaar \ nextgroup=readlineKeyName, 92446beb48SBram Moolenaar \ readlineKey 93071d4279SBram Moolenaar 94446beb48SBram Moolenaarsyn match readlineKeyTerminator contained 95446beb48SBram Moolenaar \ ':' 96446beb48SBram Moolenaar \ nextgroup=readlineFunction 97446beb48SBram Moolenaar \ skipwhite 98071d4279SBram Moolenaar 99446beb48SBram Moolenaarsyn region readlineKeySeq contained display oneline 100446beb48SBram Moolenaar \ start=+"+ 101446beb48SBram Moolenaar \ skip=+\\\\\|\\"+ 102446beb48SBram Moolenaar \ end=+"+ 103446beb48SBram Moolenaar \ contains=readlineKeyEscape 104446beb48SBram Moolenaar \ nextgroup=readlineKeyTerminator 105071d4279SBram Moolenaar 106446beb48SBram Moolenaarsyn match readlineKeyEscape contained display 107446beb48SBram Moolenaar \ +\\\([CM]-\|[e\\"'abdfnrtv]\|\o\{3}\|x\x\{2}\)+ 108071d4279SBram Moolenaar 109446beb48SBram Moolenaarsyn keyword readlineKeyword contained 110446beb48SBram Moolenaar \ set 111446beb48SBram Moolenaar \ nextgroup=readlineVariable 112446beb48SBram Moolenaar \ skipwhite 113071d4279SBram Moolenaar 114446beb48SBram Moolenaarsyn keyword readlineVariable contained 115446beb48SBram Moolenaar \ nextgroup=readlineBellStyle 116446beb48SBram Moolenaar \ skipwhite 117446beb48SBram Moolenaar \ bell-style 118071d4279SBram Moolenaar 119446beb48SBram Moolenaarsyn keyword readlineVariable contained 120446beb48SBram Moolenaar \ nextgroup=readlineBoolean 121446beb48SBram Moolenaar \ skipwhite 122446beb48SBram Moolenaar \ bind-tty-special-chars 123*91f84f6eSBram Moolenaar \ blink-matching-paren 124*91f84f6eSBram Moolenaar \ colored-completion-prefix 12537c64c78SBram Moolenaar \ colored-stats 126446beb48SBram Moolenaar \ completion-ignore-case 127446beb48SBram Moolenaar \ completion-map-case 128446beb48SBram Moolenaar \ convert-meta 129446beb48SBram Moolenaar \ disable-completion 130446beb48SBram Moolenaar \ echo-control-characters 131*91f84f6eSBram Moolenaar \ enable-bracketed-paste 132446beb48SBram Moolenaar \ enable-keypad 133446beb48SBram Moolenaar \ enable-meta-key 134446beb48SBram Moolenaar \ expand-tilde 135446beb48SBram Moolenaar \ history-preserve-point 136446beb48SBram Moolenaar \ horizontal-scroll-mode 137446beb48SBram Moolenaar \ input-meta 138446beb48SBram Moolenaar \ meta-flag 139446beb48SBram Moolenaar \ mark-directories 140446beb48SBram Moolenaar \ mark-modified-lines 141446beb48SBram Moolenaar \ mark-symlinked-directories 142446beb48SBram Moolenaar \ match-hidden-files 143446beb48SBram Moolenaar \ menu-complete-display-prefix 144446beb48SBram Moolenaar \ output-meta 145446beb48SBram Moolenaar \ page-completions 14642eeac35SBram Moolenaar \ print-completions-horizontally 147446beb48SBram Moolenaar \ revert-all-at-newline 148446beb48SBram Moolenaar \ show-all-if-ambiguous 149446beb48SBram Moolenaar \ show-all-if-unmodified 15037c64c78SBram Moolenaar \ show-mode-in-prompt 151446beb48SBram Moolenaar \ skip-completed-text 152446beb48SBram Moolenaar \ visible-stats 153446beb48SBram Moolenaar 154446beb48SBram Moolenaarsyn keyword readlineVariable contained 155446beb48SBram Moolenaar \ nextgroup=readlineString 156446beb48SBram Moolenaar \ skipwhite 157446beb48SBram Moolenaar \ comment-begin 15842eeac35SBram Moolenaar \ isearch-terminators 15940962ec9SBram Moolenaar \ vi-cmd-mode-string 16040962ec9SBram Moolenaar \ vi-ins-mode-string 16140962ec9SBram Moolenaar \ emacs-mode-string 162071d4279SBram Moolenaar 163446beb48SBram Moolenaarsyn keyword readlineVariable contained 164446beb48SBram Moolenaar \ nextgroup=readlineNumber 165446beb48SBram Moolenaar \ skipwhite 166446beb48SBram Moolenaar \ completion-display-width 167446beb48SBram Moolenaar \ completion-prefix-display-length 168446beb48SBram Moolenaar \ completion-query-items 169446beb48SBram Moolenaar \ history-size 17037c64c78SBram Moolenaar \ keyseq-timeout 171071d4279SBram Moolenaar 172446beb48SBram Moolenaarsyn keyword readlineVariable contained 173446beb48SBram Moolenaar \ nextgroup=readlineEditingMode 174446beb48SBram Moolenaar \ skipwhite 175446beb48SBram Moolenaar \ editing-mode 176446beb48SBram Moolenaar 177446beb48SBram Moolenaarsyn keyword readlineVariable contained 178446beb48SBram Moolenaar \ nextgroup=readlineKeymap 179446beb48SBram Moolenaar \ skipwhite 180446beb48SBram Moolenaar \ keymap 181446beb48SBram Moolenaar 182446beb48SBram Moolenaarsyn keyword readlineBellStyle contained 183446beb48SBram Moolenaar \ audible 184446beb48SBram Moolenaar \ visible 185446beb48SBram Moolenaar \ none 186446beb48SBram Moolenaar 187446beb48SBram Moolenaarsyn case ignore 188446beb48SBram Moolenaarsyn keyword readlineBoolean contained 189446beb48SBram Moolenaar \ on 190446beb48SBram Moolenaar \ off 191446beb48SBram Moolenaarsyn case match 192446beb48SBram Moolenaar 193446beb48SBram Moolenaarsyn region readlineString contained display oneline 194446beb48SBram Moolenaar \ matchgroup=readlineStringDelimiter 195446beb48SBram Moolenaar \ start=+"+ 196446beb48SBram Moolenaar \ skip=+\\\\\|\\"+ 197446beb48SBram Moolenaar \ end=+"+ 198446beb48SBram Moolenaar 199446beb48SBram Moolenaarsyn match readlineNumber contained display 200446beb48SBram Moolenaar \ '[+-]\d\+\>' 201446beb48SBram Moolenaar 202446beb48SBram Moolenaarsyn keyword readlineEditingMode contained 203446beb48SBram Moolenaar \ emacs 204446beb48SBram Moolenaar \ vi 205446beb48SBram Moolenaar 206446beb48SBram Moolenaarsyn match readlineKeymap contained display 207446beb48SBram Moolenaar \ 'emacs\%(-\%(standard\|meta\|ctlx\)\)\=\|vi\%(-\%(move\|command\|insert\)\)\=' 208446beb48SBram Moolenaar 209446beb48SBram Moolenaarsyn keyword readlineFunction contained 210446beb48SBram Moolenaar \ beginning-of-line 211446beb48SBram Moolenaar \ end-of-line 212446beb48SBram Moolenaar \ forward-char 213446beb48SBram Moolenaar \ backward-char 214446beb48SBram Moolenaar \ forward-word 215446beb48SBram Moolenaar \ backward-word 216446beb48SBram Moolenaar \ clear-screen 217446beb48SBram Moolenaar \ redraw-current-line 218446beb48SBram Moolenaar \ 219446beb48SBram Moolenaar \ accept-line 220446beb48SBram Moolenaar \ previous-history 221446beb48SBram Moolenaar \ next-history 222446beb48SBram Moolenaar \ beginning-of-history 223446beb48SBram Moolenaar \ end-of-history 224446beb48SBram Moolenaar \ reverse-search-history 22542eeac35SBram Moolenaar \ forward-search-history 22642eeac35SBram Moolenaar \ non-incremental-reverse-search-history 22742eeac35SBram Moolenaar \ non-incremental-forward-search-history 22842eeac35SBram Moolenaar \ history-search-forward 22942eeac35SBram Moolenaar \ history-search-backward 230446beb48SBram Moolenaar \ yank-nth-arg 231446beb48SBram Moolenaar \ yank-last-arg 232446beb48SBram Moolenaar \ 233446beb48SBram Moolenaar \ delete-char 234446beb48SBram Moolenaar \ backward-delete-char 235446beb48SBram Moolenaar \ forward-backward-delete-char 236446beb48SBram Moolenaar \ quoted-insert 237446beb48SBram Moolenaar \ tab-insert 238446beb48SBram Moolenaar \ self-insert 239446beb48SBram Moolenaar \ transpose-chars 240446beb48SBram Moolenaar \ transpose-words 241446beb48SBram Moolenaar \ upcase-word 242446beb48SBram Moolenaar \ downcase-word 243446beb48SBram Moolenaar \ capitalize-word 244446beb48SBram Moolenaar \ overwrite-mode 245446beb48SBram Moolenaar \ 246446beb48SBram Moolenaar \ kill-line 247446beb48SBram Moolenaar \ backward-kill-line 248446beb48SBram Moolenaar \ unix-line-discard 249446beb48SBram Moolenaar \ kill-whole-line 250446beb48SBram Moolenaar \ kill-word 251446beb48SBram Moolenaar \ backward-kill-word 252446beb48SBram Moolenaar \ unix-word-rubout 253446beb48SBram Moolenaar \ unix-filename-rubout 254446beb48SBram Moolenaar \ delete-horizontal-space 255446beb48SBram Moolenaar \ kill-region 256446beb48SBram Moolenaar \ copy-region-as-kill 257446beb48SBram Moolenaar \ copy-backward-word 258446beb48SBram Moolenaar \ copy-forward-word 259446beb48SBram Moolenaar \ yank 260446beb48SBram Moolenaar \ yank-pop 261446beb48SBram Moolenaar \ 262446beb48SBram Moolenaar \ digit-argument 263446beb48SBram Moolenaar \ universal-argument 264446beb48SBram Moolenaar \ 265446beb48SBram Moolenaar \ complete 266446beb48SBram Moolenaar \ possible-completions 267446beb48SBram Moolenaar \ insert-completions 268446beb48SBram Moolenaar \ menu-complete 269d38b055aSBram Moolenaar \ menu-complete-backward 270446beb48SBram Moolenaar \ delete-char-or-list 271446beb48SBram Moolenaar \ 272446beb48SBram Moolenaar \ start-kbd-macro 273446beb48SBram Moolenaar \ end-kbd-macro 274446beb48SBram Moolenaar \ call-last-kbd-macro 275*91f84f6eSBram Moolenaar \ print-last-kbd-macro 276446beb48SBram Moolenaar \ 277446beb48SBram Moolenaar \ re-read-init-file 278446beb48SBram Moolenaar \ abort 279446beb48SBram Moolenaar \ do-uppercase-version 280446beb48SBram Moolenaar \ prefix-meta 281446beb48SBram Moolenaar \ undo 282446beb48SBram Moolenaar \ revert-line 283446beb48SBram Moolenaar \ tilde-expand 284446beb48SBram Moolenaar \ set-mark 285446beb48SBram Moolenaar \ exchange-point-and-mark 286446beb48SBram Moolenaar \ character-search 287446beb48SBram Moolenaar \ character-search-backward 288446beb48SBram Moolenaar \ skip-csi-sequence 289446beb48SBram Moolenaar \ insert-comment 290446beb48SBram Moolenaar \ dump-functions 291446beb48SBram Moolenaar \ dump-variables 292446beb48SBram Moolenaar \ dump-macros 293446beb48SBram Moolenaar \ emacs-editing-mode 294446beb48SBram Moolenaar \ vi-editing-mode 295446beb48SBram Moolenaar \ 296446beb48SBram Moolenaar \ vi-eof-maybe 2975c73622aSBram Moolenaar \ vi-movement-mode 298446beb48SBram Moolenaar \ vi-undo 299446beb48SBram Moolenaar \ vi-match 300446beb48SBram Moolenaar \ vi-tilde-expand 301446beb48SBram Moolenaar \ vi-complete 302446beb48SBram Moolenaar \ vi-char-search 303446beb48SBram Moolenaar \ vi-redo 304446beb48SBram Moolenaar \ vi-search 305446beb48SBram Moolenaar \ vi-arg-digit 306446beb48SBram Moolenaar \ vi-append-eol 307446beb48SBram Moolenaar \ vi-prev-word 308446beb48SBram Moolenaar \ vi-change-to 309446beb48SBram Moolenaar \ vi-delete-to 310446beb48SBram Moolenaar \ vi-end-word 311446beb48SBram Moolenaar \ vi-char-search 312446beb48SBram Moolenaar \ vi-fetch-history 313446beb48SBram Moolenaar \ vi-insert-beg 314446beb48SBram Moolenaar \ vi-search-again 315446beb48SBram Moolenaar \ vi-put 316446beb48SBram Moolenaar \ vi-replace 317446beb48SBram Moolenaar \ vi-subst 318446beb48SBram Moolenaar \ vi-char-search 319446beb48SBram Moolenaar \ vi-next-word 320446beb48SBram Moolenaar \ vi-yank-to 321446beb48SBram Moolenaar \ vi-first-print 322446beb48SBram Moolenaar \ vi-yank-arg 323446beb48SBram Moolenaar \ vi-goto-mark 324446beb48SBram Moolenaar \ vi-append-mode 325446beb48SBram Moolenaar \ vi-prev-word 326446beb48SBram Moolenaar \ vi-change-to 327446beb48SBram Moolenaar \ vi-delete-to 328446beb48SBram Moolenaar \ vi-end-word 329446beb48SBram Moolenaar \ vi-char-search 330446beb48SBram Moolenaar \ vi-insert-mode 331446beb48SBram Moolenaar \ vi-set-mark 332446beb48SBram Moolenaar \ vi-search-again 333446beb48SBram Moolenaar \ vi-put 334446beb48SBram Moolenaar \ vi-change-char 335446beb48SBram Moolenaar \ vi-subst 336446beb48SBram Moolenaar \ vi-char-search 337446beb48SBram Moolenaar \ vi-undo 338446beb48SBram Moolenaar \ vi-next-word 339446beb48SBram Moolenaar \ vi-delete 340446beb48SBram Moolenaar \ vi-yank-to 341446beb48SBram Moolenaar \ vi-column 342446beb48SBram Moolenaar \ vi-change-case 34342eeac35SBram Moolenaar 344071d4279SBram Moolenaarif exists("readline_has_bash") 345446beb48SBram Moolenaar syn keyword readlineFunction contained 346*91f84f6eSBram Moolenaar \ shell-forward-word 347*91f84f6eSBram Moolenaar \ shell-backward-word 348446beb48SBram Moolenaar \ shell-expand-line 349446beb48SBram Moolenaar \ history-expand-line 350446beb48SBram Moolenaar \ magic-space 351446beb48SBram Moolenaar \ alias-expand-line 35242eeac35SBram Moolenaar \ history-and-alias-expand-line 353446beb48SBram Moolenaar \ insert-last-argument 354446beb48SBram Moolenaar \ operate-and-get-next 35542eeac35SBram Moolenaar \ forward-backward-delete-char 356*91f84f6eSBram Moolenaar \ shell-kill-word 357*91f84f6eSBram Moolenaar \ shell-backward-kill-word 358446beb48SBram Moolenaar \ delete-char-or-list 359446beb48SBram Moolenaar \ complete-filename 36042eeac35SBram Moolenaar \ possible-filename-completions 36142eeac35SBram Moolenaar \ complete-username 36242eeac35SBram Moolenaar \ possible-username-completions 36342eeac35SBram Moolenaar \ complete-variable 36442eeac35SBram Moolenaar \ possible-variable-completions 36542eeac35SBram Moolenaar \ complete-hostname 36642eeac35SBram Moolenaar \ possible-hostname-completions 36742eeac35SBram Moolenaar \ complete-command 36842eeac35SBram Moolenaar \ possible-command-completions 36942eeac35SBram Moolenaar \ dynamic-complete-history 370*91f84f6eSBram Moolenaar \ dabbrev-expand 37142eeac35SBram Moolenaar \ complete-into-braces 372446beb48SBram Moolenaar \ glob-expand-word 373446beb48SBram Moolenaar \ glob-list-expansions 374446beb48SBram Moolenaar \ display-shell-version 375446beb48SBram Moolenaar \ glob-complete-word 37642eeac35SBram Moolenaar \ edit-and-execute-command 377071d4279SBram Moolenaarendif 378071d4279SBram Moolenaar 379446beb48SBram Moolenaarhi def link readlineKey readlineKeySeq 38042eeac35SBram Moolenaarhi def link readlineComment Comment 38142eeac35SBram Moolenaarhi def link readlineTodo Todo 38242eeac35SBram Moolenaarhi def link readlineConditional Conditional 383446beb48SBram Moolenaarhi def link readlineTest Type 384446beb48SBram Moolenaarhi def link readlineDelimiter Delimiter 385446beb48SBram Moolenaarhi def link readlineTestModeEq readlineEq 386446beb48SBram Moolenaarhi def link readlineTestTermEq readlineEq 387446beb48SBram Moolenaarhi def link readlineTestTerm readlineString 388446beb48SBram Moolenaarhi def link readlineTestAppEq readlineEq 389446beb48SBram Moolenaarhi def link readlineTestApp readlineString 39042eeac35SBram Moolenaarhi def link readlineInclude Include 391446beb48SBram Moolenaarhi def link readlinePath String 392446beb48SBram Moolenaarhi def link readlineKeyName SpecialChar 393446beb48SBram Moolenaarhi def link readlineKeySeparator readlineKeySeq 394446beb48SBram Moolenaarhi def link readlineKeyTerminator readlineDelimiter 395446beb48SBram Moolenaarhi def link readlineKeySeq String 396446beb48SBram Moolenaarhi def link readlineKeyEscape SpecialChar 39742eeac35SBram Moolenaarhi def link readlineKeyword Keyword 398446beb48SBram Moolenaarhi def link readlineVariable Identifier 399446beb48SBram Moolenaarhi def link readlineBellStyle Constant 400446beb48SBram Moolenaarhi def link readlineBoolean Boolean 401446beb48SBram Moolenaarhi def link readlineString String 402446beb48SBram Moolenaarhi def link readlineStringDelimiter readlineString 403446beb48SBram Moolenaarhi def link readlineNumber Number 404446beb48SBram Moolenaarhi def link readlineEditingMode Constant 405446beb48SBram Moolenaarhi def link readlineKeymap Constant 406446beb48SBram Moolenaarhi def link readlineFunction Function 407071d4279SBram Moolenaar 408446beb48SBram Moolenaarlet b:current_syntax = 'readline' 409071d4279SBram Moolenaar 41042eeac35SBram Moolenaarlet &cpo = s:cpo_save 41142eeac35SBram Moolenaarunlet s:cpo_save 412