1
0
forked from aniani/vim

Update runtime files

This commit is contained in:
Bram Moolenaar
2022-10-16 13:11:12 +01:00
parent bd053f894b
commit 3c053a1a5a
40 changed files with 653 additions and 223 deletions

7
.github/CODEOWNERS vendored
View File

@@ -171,6 +171,7 @@ runtime/ftplugin/pbtxt.vim @lakshayg
runtime/ftplugin/pdf.vim @tpope runtime/ftplugin/pdf.vim @tpope
runtime/ftplugin/perl.vim @petdance @dkearns runtime/ftplugin/perl.vim @petdance @dkearns
runtime/ftplugin/pod.vim @petdance @dkearns runtime/ftplugin/pod.vim @petdance @dkearns
runtime/ftplugin/poefilter.vim @ObserverOfTime
runtime/ftplugin/postscr.vim @mrdubya runtime/ftplugin/postscr.vim @mrdubya
runtime/ftplugin/ps1.vim @heaths runtime/ftplugin/ps1.vim @heaths
runtime/ftplugin/ps1xml.vim @heaths runtime/ftplugin/ps1xml.vim @heaths
@@ -192,6 +193,7 @@ runtime/ftplugin/sdoc.vim @gpanders
runtime/ftplugin/sh.vim @dkearns runtime/ftplugin/sh.vim @dkearns
runtime/ftplugin/solution.vim @dkearns runtime/ftplugin/solution.vim @dkearns
runtime/ftplugin/spec.vim @ignatenkobrain runtime/ftplugin/spec.vim @ignatenkobrain
runtime/ftplugin/ssa.vim @ObserverOfTime
runtime/ftplugin/swayconfig.vim @jamespeapen runtime/ftplugin/swayconfig.vim @jamespeapen
runtime/ftplugin/systemverilog.vim @Kocha runtime/ftplugin/systemverilog.vim @Kocha
runtime/ftplugin/tap.vim @petdance runtime/ftplugin/tap.vim @petdance
@@ -397,6 +399,7 @@ runtime/syntax/perl.vim @petdance
runtime/syntax/php.vim @TysonAndre runtime/syntax/php.vim @TysonAndre
runtime/syntax/plsql.vim @lee-lindley runtime/syntax/plsql.vim @lee-lindley
runtime/syntax/pod.vim @petdance runtime/syntax/pod.vim @petdance
runtime/syntax/poefilter.vim @ObserverOfTime
runtime/syntax/postscr.vim @mrdubya runtime/syntax/postscr.vim @mrdubya
runtime/syntax/privoxy.vim @dkearns runtime/syntax/privoxy.vim @dkearns
runtime/syntax/prolog.vim @XVilka runtime/syntax/prolog.vim @XVilka
@@ -424,12 +427,14 @@ runtime/syntax/sass.vim @tpope
runtime/syntax/scala.vim @derekwyatt runtime/syntax/scala.vim @derekwyatt
runtime/syntax/scss.vim @tpope runtime/syntax/scss.vim @tpope
runtime/syntax/sdoc.vim @gpanders runtime/syntax/sdoc.vim @gpanders
runtime/syntax/sed.vim @dkearns
runtime/syntax/sh.vim @cecamp runtime/syntax/sh.vim @cecamp
runtime/syntax/sm.vim @cecamp runtime/syntax/sm.vim @cecamp
runtime/syntax/spec.vim @ignatenkobrain runtime/syntax/spec.vim @ignatenkobrain
runtime/syntax/srt.vim @ObserverOfTime
runtime/syntax/sqloracle.vim @chrisbra runtime/syntax/sqloracle.vim @chrisbra
runtime/syntax/squirrel.vim @zenmatic runtime/syntax/squirrel.vim @zenmatic
runtime/syntax/srt.vim @ObserverOfTime
runtime/syntax/ssa.vim @ObserverOfTime
runtime/syntax/sshconfig.vim @Jakuje runtime/syntax/sshconfig.vim @Jakuje
runtime/syntax/sshdconfig.vim @Jakuje runtime/syntax/sshdconfig.vim @Jakuje
runtime/syntax/sudoers.vim @e-kwsm runtime/syntax/sudoers.vim @e-kwsm

View File

@@ -2,7 +2,7 @@ vim9script
# Language: Vim script # Language: Vim script
# Maintainer: github user lacygoill # Maintainer: github user lacygoill
# Last Change: 2022 Sep 24 # Last Change: 2022 Oct 15
# NOTE: Whenever you change the code, make sure the tests are still passing: # NOTE: Whenever you change the code, make sure the tests are still passing:
# #
@@ -156,7 +156,7 @@ const ASSIGNS_HEREDOC: string = $'^\%({COMMENT}\)\@!.*\%({HEREDOC_OPERATOR}\)\s\
# CD_COMMAND {{{3 # CD_COMMAND {{{3
const CD_COMMAND: string = $'[lt]\=cd!\=\s\+-{END_OF_COMMAND}' const CD_COMMAND: string = $'\<[lt]\=cd!\=\s\+-{END_OF_COMMAND}'
# HIGHER_ORDER_COMMAND {{{3 # HIGHER_ORDER_COMMAND {{{3
@@ -178,7 +178,7 @@ const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%(' .. patt
# MAPPING_COMMAND {{{3 # MAPPING_COMMAND {{{3
const MAPPING_COMMAND: string = '\%(\<sil\%[ent]!\=\s\+\)\=[nvxsoilct]\=\%(nore\|un\)map!\=\s' const MAPPING_COMMAND: string = '\%(\<sil\%[ent]!\=\s\+\)\=\<[nvxsoilct]\=\%(nore\|un\)map!\=\s'
# NORMAL_COMMAND {{{3 # NORMAL_COMMAND {{{3
@@ -222,7 +222,7 @@ END
const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}' const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}'
.. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}' .. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}'
.. $'\|^\s*elseif\=\s\+\%({OPERATOR}\)\@!' .. $'\|^\s*elseif\=\>\%({OPERATOR}\)\@!'
# STARTS_CURLY_BLOCK {{{3 # STARTS_CURLY_BLOCK {{{3
@@ -354,7 +354,7 @@ const LINE_CONTINUATION_AT_SOL: string = '^\s*\%('
const RANGE_AT_SOL: string = '^\s*:\S' const RANGE_AT_SOL: string = '^\s*:\S'
# }}}1 # }}}1
# Interface {{{1 # Interface {{{1
export def Expr(lnum: number): number # {{{2 export def Expr(lnum = v:lnum): number # {{{2
# line which is indented # line which is indented
var line_A: dict<any> = {text: getline(lnum), lnum: lnum} var line_A: dict<any> = {text: getline(lnum), lnum: lnum}
# line above, on which we'll base the indent of line A # line above, on which we'll base the indent of line A
@@ -409,6 +409,7 @@ export def Expr(lnum: number): number # {{{2
line_A->CacheBracketBlock() line_A->CacheBracketBlock()
endif endif
if line_A.lnum->IsInside('BracketBlock') if line_A.lnum->IsInside('BracketBlock')
var is_in_curly_block: bool = IsInCurlyBlock()
for block: dict<any> in b:vimindent.block_stack for block: dict<any> in b:vimindent.block_stack
if line_A.lnum <= block.startlnum if line_A.lnum <= block.startlnum
continue continue
@@ -416,8 +417,7 @@ export def Expr(lnum: number): number # {{{2
if !block->has_key('startindent') if !block->has_key('startindent')
block.startindent = Indent(block.startlnum) block.startindent = Indent(block.startlnum)
endif endif
if !block.is_curly_block if !is_in_curly_block
&& !b:vimindent.block_stack[0].is_curly_block
return BracketBlockIndent(line_A, block) return BracketBlockIndent(line_A, block)
endif endif
endfor endfor
@@ -520,7 +520,7 @@ enddef
def g:GetVimIndent(): number # {{{2 def g:GetVimIndent(): number # {{{2
# for backward compatibility # for backward compatibility
return Expr(v:lnum) return Expr()
enddef enddef
# }}}1 # }}}1
# Core {{{1 # Core {{{1
@@ -997,6 +997,11 @@ def IsRightBelow(lnum: number, syntax: string): bool # {{{3
&& lnum > b:vimindent.endlnum && lnum > b:vimindent.endlnum
enddef enddef
def IsInCurlyBlock(): bool # {{{3
return b:vimindent.block_stack
->indexof((_, block: dict<any>): bool => block.is_curly_block) >= 0
enddef
def IsInThisBlock(line_A: dict<any>, lnum: number): bool # {{{3 def IsInThisBlock(line_A: dict<any>, lnum: number): bool # {{{3
var pos: list<number> = getcurpos() var pos: list<number> = getcurpos()
cursor(lnum, [lnum, '$']->col()) cursor(lnum, [lnum, '$']->col())

View File

@@ -1791,8 +1791,10 @@ fun! s:NetrwOptionsRestore(vt)
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
if !exists("{a:vt}netrw_optionsave") if !exists("{a:vt}netrw_optionsave")
" call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>")) " call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>"))
" call Decho("..doing filetype detect anyway") if !isdirectory(expand('%'))
filetype detect " call Decho("..doing filetype detect anyway")
filetype detect
endif
" call Decho("..settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) " call Decho("..settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
" call Decho("..ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) " call Decho("..ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
" call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist") " call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
@@ -1904,9 +1906,11 @@ fun! s:NetrwOptionsRestore(vt)
" were having their filetype detect-generated settings overwritten by " were having their filetype detect-generated settings overwritten by
" NetrwOptionRestore. " NetrwOptionRestore.
if &ft != "netrw" if &ft != "netrw"
" call Decho("before: filetype detect (ft=".&ft.")",'~'.expand("<slnum>")) if !isdirectory(expand('%'))
filetype detect " call Decho("before: filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
" call Decho("after : filetype detect (ft=".&ft.")",'~'.expand("<slnum>")) filetype detect
" call Decho("after : filetype detect (ft=".&ft.")",'~'.expand("<slnum>"))
endif
endif endif
" call Decho("(s:NetrwOptionsRestore) lines=".&lines) " call Decho("(s:NetrwOptionsRestore) lines=".&lines)
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))

View File

@@ -1,4 +1,4 @@
*builtin.txt* For Vim version 9.0. Last change: 2022 Oct 10 *builtin.txt* For Vim version 9.0. Last change: 2022 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5404,7 +5404,8 @@ listener_add({callback} [, {buf}]) *listener_add()*
the change; one if unknown or the whole line the change; one if unknown or the whole line
was affected; this is a byte index, first was affected; this is a byte index, first
character has a value of one. character has a value of one.
When lines are inserted the values are: When lines are inserted (not when a line is split, e.g. by
typing CR in Insert mode) the values are:
lnum line above which the new line is added lnum line above which the new line is added
end equal to "lnum" end equal to "lnum"
added number of lines inserted added number of lines inserted

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 9.0. Last change: 2022 May 21 *indent.txt* For Vim version 9.0. Last change: 2022 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -982,9 +982,12 @@ indentation: >
PYTHON *ft-python-indent* PYTHON *ft-python-indent*
The amount of indent can be set for the following situations. The examples The amount of indent can be set with the `g:python_indent` |Dictionary|, which
given are the defaults. Note that the dictionary values are set to an needs to be created before adding the items: >
expression, so that you can change the value of 'shiftwidth' later. let g:python_indent = {}
The examples given are the defaults. Note that the dictionary values are set
to an expression, so that you can change the value of 'shiftwidth' later
without having to update these values.
Indent after an open paren: > Indent after an open paren: >
let g:python_indent.open_paren = 'shiftwidth() * 2' let g:python_indent.open_paren = 'shiftwidth() * 2'

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 9.0. Last change: 2022 Jun 11 *index.txt* For Vim version 9.0. Last change: 2022 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 9.0. Last change: 2022 Sep 12 *intro.txt* For Vim version 9.0. Last change: 2022 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -122,10 +122,10 @@ http://www.vim.org/maillist.php
Bug reports: *bugs* *bug-reports* *bugreport.vim* Bug reports: *bugs* *bug-reports* *bugreport.vim*
There are three ways to report bugs: There are three ways to report bugs:
1. Open an issue on GitHub: https://github.com/vim/vim/issues 1. For issues with runtime files, look in the header for an email address or
The text will be forwarded to the vim-dev maillist.
2. For issues with runtime files, look in the header for an email address or
any other way to report it to the maintainer. any other way to report it to the maintainer.
2. Open an issue on GitHub: https://github.com/vim/vim/issues
The text will be forwarded to the vim-dev maillist.
3. Send bug reports to: Vim Developers <vim-dev@vim.org> 3. Send bug reports to: Vim Developers <vim-dev@vim.org>
This is a maillist, you need to become a member first and many people will This is a maillist, you need to become a member first and many people will
see the message. If you don't want that, e.g. because it is a security see the message. If you don't want that, e.g. because it is a security

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.0. Last change: 2022 Oct 03 *options.txt* For Vim version 9.0. Last change: 2022 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7534,7 +7534,7 @@ A jump table for the options with a short description can be found at |Q_op|.
When on, splitting a window will put the new window below the current When on, splitting a window will put the new window below the current
one. |:split| one. |:split|
*'splitkeep'* *'spk' *'splitkeep'* *'spk'*
'splitkeep' 'spk' string (default "cursor") 'splitkeep' 'spk' string (default "cursor")
global global
The value of this option determines the scroll behavior when opening, The value of this option determines the scroll behavior when opening,
@@ -7548,7 +7548,7 @@ A jump table for the options with a short description can be found at |Q_op|.
For the "screen" and "topline" values, the cursor position will be For the "screen" and "topline" values, the cursor position will be
changed when necessary. In this case, the jumplist will be populated changed when necessary. In this case, the jumplist will be populated
with the previous cursor position. For "screen", the text cannot always with the previous cursor position. For "screen", the text cannot always
be kept on the same screen line when 'wrap' is enabled. be kept on the same screen line when 'wrap' is enabled.
*'splitright'* *'spr'* *'nosplitright'* *'nospr'* *'splitright'* *'spr'* *'nosplitright'* *'nospr'*
'splitright' 'spr' boolean (default off) 'splitright' 'spr' boolean (default off)

View File

@@ -47,7 +47,7 @@ features you can enable/disable.
Haiku uses "ncurses6" as its terminal library, therefore you need to have Haiku uses "ncurses6" as its terminal library, therefore you need to have
"ncurses6_devel" package installed from HaikuDepot in order to configure "ncurses6_devel" package installed from HaikuDepot in order to configure
the Haiku build. Just append "--with-tlib=ncurses6" to ./configure command the Haiku build. Just append "--with-tlib=ncurses" to ./configure command.
Now you should use "make" to compile Vim, then "make install" to install it. Now you should use "make" to compile Vim, then "make install" to install it.
For seamless integration into Haiku, the GUI-less vim binary should be For seamless integration into Haiku, the GUI-less vim binary should be
@@ -56,12 +56,14 @@ additionally installed over the GUI version. Typical build commands are:
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \ ./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \ --datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \ --mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
--with-tlib=ncurses \
make clean make clean
make install make install
./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \ ./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
--datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \ --datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
--mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \ --mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
--with-tlib=ncurses \
--disable-gui --disable-gui
make clean make clean
make install make install

View File

@@ -1,4 +1,4 @@
*popup.txt* For Vim version 9.0. Last change: 2022 Jun 16 *popup.txt* For Vim version 9.0. Last change: 2022 Oct 07
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -366,7 +366,6 @@ popup_findpreview() *popup_findpreview()*
Get the |window-ID| for the popup preview window. Get the |window-ID| for the popup preview window.
Return zero if there is none. Return zero if there is none.
popup_getoptions({id}) *popup_getoptions()* popup_getoptions({id}) *popup_getoptions()*
Return the {options} for popup {id} in a Dict. Return the {options} for popup {id} in a Dict.
A zero value means the option was not set. For "zindex" the A zero value means the option was not set. For "zindex" the

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 9.0. Last change: 2022 Oct 02 *quickref.txt* For Vim version 9.0. Last change: 2022 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -785,6 +785,7 @@ Short explanation of each option: *option-list*
'lines' number of lines in the display 'lines' number of lines in the display
'linespace' 'lsp' number of pixel lines to use between characters 'linespace' 'lsp' number of pixel lines to use between characters
'lisp' automatic indenting for Lisp 'lisp' automatic indenting for Lisp
'lispoptions' 'lop' changes how Lisp indenting is done
'lispwords' 'lw' words that change how lisp indenting works 'lispwords' 'lw' words that change how lisp indenting works
'list' show <Tab> and <EOL> 'list' show <Tab> and <EOL>
'listchars' 'lcs' characters for displaying in list mode 'listchars' 'lcs' characters for displaying in list mode

View File

@@ -628,6 +628,11 @@ When Vim starts up, after processing your .vimrc, it scans all directories in
directories are added to 'runtimepath'. Then all the plugins are loaded. directories are added to 'runtimepath'. Then all the plugins are loaded.
See |packload-two-steps| for how these two steps can be useful. See |packload-two-steps| for how these two steps can be useful.
To allow for calling into package functionality while parsing your .vimrc,
|:colorscheme| and |autoload| will both automatically search under 'packpath'
as well in addition to 'runtimepath'. See the documentation for each for
details.
In the example Vim will find "pack/foo/start/foobar/plugin/foo.vim" and adds In the example Vim will find "pack/foo/start/foobar/plugin/foo.vim" and adds
"~/.vim/pack/foo/start/foobar" to 'runtimepath'. "~/.vim/pack/foo/start/foobar" to 'runtimepath'.

View File

@@ -1,4 +1,4 @@
*rileft.txt* For Vim version 9.0. Last change: 2022 Apr 03 *rileft.txt* For Vim version 9.0. Last change: 2022 Oct 12
VIM REFERENCE MANUAL by Avner Lottem VIM REFERENCE MANUAL by Avner Lottem

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 9.0. Last change: 2022 Oct 03 *syntax.txt* For Vim version 9.0. Last change: 2022 Oct 14
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3021,16 +3021,25 @@ satisfied with it for my own projects.
SED *sed.vim* *ft-sed-syntax* SED *sed.vim* *ft-sed-syntax*
To make tabs stand out from regular blanks (accomplished by using Todo To make tabs stand out from regular blanks (accomplished by using Todo
highlighting on the tabs), define "highlight_sedtabs" by putting > highlighting on the tabs), define "g:sed_highlight_tabs" by putting >
:let highlight_sedtabs = 1
:let g:sed_highlight_tabs = 1
<
in the vimrc file. (This special highlighting only applies for tabs in the vimrc file. (This special highlighting only applies for tabs
inside search patterns, replacement texts, addresses or text included inside search patterns, replacement texts, addresses or text included
by an Append/Change/Insert command.) If you enable this option, it is by an Append/Change/Insert command.) If you enable this option, it is
also a good idea to set the tab width to one character; by doing that, also a good idea to set the tab width to one character; by doing that,
you can easily count the number of tabs in a string. you can easily count the number of tabs in a string.
GNU sed allows comments after text on the same line. BSD sed only allows
comments where "#" is the first character of the line. To enforce BSD-style
comments, i.e. mark end-of-line comments as errors, use: >
:let g:sed_dialect = "bsd"
<
Note that there are other differences between GNU sed and BSD sed which are
not (yet) affected by this setting.
Bugs: Bugs:
The transform command (y) is treated exactly like the substitute The transform command (y) is treated exactly like the substitute

View File

@@ -451,6 +451,7 @@ $quote eval.txt /*$quote*
'lines' options.txt /*'lines'* 'lines' options.txt /*'lines'*
'linespace' options.txt /*'linespace'* 'linespace' options.txt /*'linespace'*
'lisp' options.txt /*'lisp'* 'lisp' options.txt /*'lisp'*
'lispoptions' options.txt /*'lispoptions'*
'lispwords' options.txt /*'lispwords'* 'lispwords' options.txt /*'lispwords'*
'list' options.txt /*'list'* 'list' options.txt /*'list'*
'listchars' options.txt /*'listchars'* 'listchars' options.txt /*'listchars'*
@@ -458,6 +459,7 @@ $quote eval.txt /*$quote*
'lmap' options.txt /*'lmap'* 'lmap' options.txt /*'lmap'*
'lnr' options.txt /*'lnr'* 'lnr' options.txt /*'lnr'*
'loadplugins' options.txt /*'loadplugins'* 'loadplugins' options.txt /*'loadplugins'*
'lop' options.txt /*'lop'*
'lpl' options.txt /*'lpl'* 'lpl' options.txt /*'lpl'*
'lrm' options.txt /*'lrm'* 'lrm' options.txt /*'lrm'*
'ls' options.txt /*'ls'* 'ls' options.txt /*'ls'*
@@ -954,6 +956,7 @@ $quote eval.txt /*$quote*
'spelloptions' options.txt /*'spelloptions'* 'spelloptions' options.txt /*'spelloptions'*
'spellsuggest' options.txt /*'spellsuggest'* 'spellsuggest' options.txt /*'spellsuggest'*
'spf' options.txt /*'spf'* 'spf' options.txt /*'spf'*
'spk' options.txt /*'spk'*
'spl' options.txt /*'spl'* 'spl' options.txt /*'spl'*
'splitbelow' options.txt /*'splitbelow'* 'splitbelow' options.txt /*'splitbelow'*
'splitkeep' options.txt /*'splitkeep'* 'splitkeep' options.txt /*'splitkeep'*
@@ -5547,6 +5550,7 @@ TerminalWinOpen autocmd.txt /*TerminalWinOpen*
TextChanged autocmd.txt /*TextChanged* TextChanged autocmd.txt /*TextChanged*
TextChangedI autocmd.txt /*TextChangedI* TextChangedI autocmd.txt /*TextChangedI*
TextChangedP autocmd.txt /*TextChangedP* TextChangedP autocmd.txt /*TextChangedP*
TextChangedT autocmd.txt /*TextChangedT*
TextYankPost autocmd.txt /*TextYankPost* TextYankPost autocmd.txt /*TextYankPost*
Transact-SQL ft_sql.txt /*Transact-SQL* Transact-SQL ft_sql.txt /*Transact-SQL*
U undo.txt /*U* U undo.txt /*U*
@@ -5574,7 +5578,6 @@ VimResume autocmd.txt /*VimResume*
VimSuspend autocmd.txt /*VimSuspend* VimSuspend autocmd.txt /*VimSuspend*
Vimball-copyright pi_vimball.txt /*Vimball-copyright* Vimball-copyright pi_vimball.txt /*Vimball-copyright*
Virtual-Replace-mode insert.txt /*Virtual-Replace-mode* Virtual-Replace-mode insert.txt /*Virtual-Replace-mode*
VisVim if_ole.txt /*VisVim*
Visual visual.txt /*Visual* Visual visual.txt /*Visual*
Visual-mode visual.txt /*Visual-mode* Visual-mode visual.txt /*Visual-mode*
W motion.txt /*W* W motion.txt /*W*
@@ -9034,6 +9037,7 @@ popup_dialog() popup.txt /*popup_dialog()*
popup_dialog-example popup.txt /*popup_dialog-example* popup_dialog-example popup.txt /*popup_dialog-example*
popup_filter_menu() popup.txt /*popup_filter_menu()* popup_filter_menu() popup.txt /*popup_filter_menu()*
popup_filter_yesno() popup.txt /*popup_filter_yesno()* popup_filter_yesno() popup.txt /*popup_filter_yesno()*
popup_findecho() popup.txt /*popup_findecho()*
popup_findinfo() popup.txt /*popup_findinfo()* popup_findinfo() popup.txt /*popup_findinfo()*
popup_findpreview() popup.txt /*popup_findpreview()* popup_findpreview() popup.txt /*popup_findpreview()*
popup_getoptions() popup.txt /*popup_getoptions()* popup_getoptions() popup.txt /*popup_getoptions()*

View File

@@ -1,4 +1,4 @@
*terminal.txt* For Vim version 9.0. Last change: 2022 Jun 09 *terminal.txt* For Vim version 9.0. Last change: 2022 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,4 +1,4 @@
*textprop.txt* For Vim version 9.0. Last change: 2022 Sep 21 *textprop.txt* For Vim version 9.0. Last change: 2022 Oct 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -172,6 +172,9 @@ prop_add({lnum}, {col}, {props})
wrap wrap the text to the next line wrap wrap the text to the next line
truncate truncate the text to make it fit truncate truncate the text to make it fit
When omitted "truncate" is used. When omitted "truncate" is used.
Note that this applies to the individual text
property, the 'wrap' option sets the overall
behavior
All fields except "type" are optional. All fields except "type" are optional.
It is an error when both "length" and "end_lnum" or "end_col" It is an error when both "length" and "end_lnum" or "end_col"

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 9.0. Last change: 2022 Oct 03 *todo.txt* For Vim version 9.0. Last change: 2022 Oct 16
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -39,22 +39,12 @@ browser use: https://github.com/vim/vim/issues/1234
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
'smoothscroll': 'smoothscroll':
- CTRL-E and gj in long line with 'scrolloff' 5 not working well yet.
- computing 'scrolloff' position row use w_skipcol - computing 'scrolloff' position row use w_skipcol
Add a string to the 'display' option ("smoothscroll" ?) to make CTRL-E and Check textprop right/above/below with 'number' set and "n" in 'cpo'.
CTRL-Y scroll one screen line, also if this means the first line doesn't start
with the first character (like what happens with a last line that doesn't
fit). Display "<<<" at the start of the first visible line (like "@@@" is
displayed in the last line). (Arseny Nasokin, #5154)
Neovim PR: https://github.com/neovim/neovim/pull/11014
Use :defer command: Don't do anything for ":!". #11372
- Use "D" flag of writefile() and mkdir() in tests.
(testdir/test_p*.vim done)
Fix for powershell: #11257
Change boolean 'splitscroll' into string 'splitkeep'. #11258
Further Vim9 improvements, possibly after launch: Further Vim9 improvements, possibly after launch:
@@ -70,7 +60,8 @@ Further Vim9 improvements, possibly after launch:
Popup windows: Popup windows:
- Add a function to redraw a specific popup window. Esp. to be used when - Add a function to redraw a specific popup window. Esp. to be used when
editing the command line, when screen updating doesn't happen. (Shougo) editing the command line, when screen updating doesn't happen. (Shougo)
#10210 Probably need to update all popup windows (they may overlap) #10210 Example that shows the need on the issue.
Probably need to update all popup windows (they may overlap)
If the display is scrolled need to redraw everything later. If the display is scrolled need to redraw everything later.
- Add a flag to make a popup window focusable? - Add a flag to make a popup window focusable?
CTRL-W P cycle over any preview window or focusable popup, end up back in CTRL-W P cycle over any preview window or focusable popup, end up back in
@@ -174,7 +165,10 @@ Terminal emulator window:
conversions. conversions.
Autoconf: must use autoconf 2.69, later version generates lots of warnings Autoconf: must use autoconf 2.69, later version generates lots of warnings
- try using autoconf 2.71 and fix all "obsolete" warnings - try using autoconf 2.71 and fix all "obsolete" warnings #11322
Problem with Visual highlight when 'linebreak' and 'showbreak' are set.
#11272
Can deref_func_name() and deref_function_name() be merged? Can deref_func_name() and deref_function_name() be merged?
@@ -196,10 +190,17 @@ feature is supported or not. Replaces the xterm mechanism to request each
entry separately. #6609 entry separately. #6609
Multiplexers (screen, tmux) can request it to the underlying terminal, and Multiplexers (screen, tmux) can request it to the underlying terminal, and
pass it on with modifications. pass it on with modifications.
How to get all the text quickly (also over ssh)? Can we use a side channel?
Using "A" and "o" in manually created fold (in empty buffer) does not behave Using "A" and "o" in manually created fold (in empty buffer) does not behave
consistenly (James McCoy, #10698) consistenly (James McCoy, #10698)
In a timer callback, when using ":echo" and then input() the message is
overwritten. Could use ":echowin" and call redraw_cmd() in get_user_input().
#11299
Syntax include problem: #11277. Related to Patch 8.2.2761
To avoid flicker: add an option that when a screen clear is requested, instead To avoid flicker: add an option that when a screen clear is requested, instead
of clearing it draws everything and uses "clear to end of line" for every line. of clearing it draws everything and uses "clear to end of line" for every line.
Resetting 't_ut' already causes this? Resetting 't_ut' already causes this?
@@ -233,11 +234,10 @@ MS-Windows: did path modifier :p:8 stop working? #8600
Version of getchar() that does not move the cursor - #10603 Use a separate Version of getchar() that does not move the cursor - #10603 Use a separate
argument for the new flag. argument for the new flag.
Add "lastline" entry to 'fillchars' to specify a character instead of '@'.
#10963
test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows. test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
Can we add highlighting to ":echowindow"?
Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is Information for a specific terminal (e.g. gnome, tmux, konsole, alacritty) is
spread out. Make a section with copy/paste examples of script and pointers to spread out. Make a section with copy/paste examples of script and pointers to
more information. more information.
@@ -450,8 +450,6 @@ find them. (Max Kukartsev, #6218)
Enable 'termbidi' if $VTE_VERSION >= 5703 ? Enable 'termbidi' if $VTE_VERSION >= 5703 ?
Sound: support on Mac? Or does libcanberra work there?
Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509) Python 3.8 doesn't work. (Antonios Hadjigeorgalis, #5509)
"--cleanFOO" does not result in an error. (#5537) "--cleanFOO" does not result in an error. (#5537)
@@ -601,6 +599,11 @@ negative. (see #4326)
tab page. (Ingo Karkat, #4324) tab page. (Ingo Karkat, #4324)
:call settabwinvar(1, 1, '&cmdheight', 2) also doesn't work well. :call settabwinvar(1, 1, '&cmdheight', 2) also doesn't work well.
When opening a file, allow for specifying the initial column position:
vim +12:5 file.txt line 12 column 5
:edit +12:5 file.txt
Should probably use the column as the character index.
This modeline throws unexpected errors: (#4165) This modeline throws unexpected errors: (#4165)
vim: syn=nosyntax vim: syn=nosyntax
@@ -3074,9 +3077,6 @@ Macintosh:
line is too short. Add a word in 'scrollopt' to allow moving the cursor line is too short. Add a word in 'scrollopt' to allow moving the cursor
to longer line that is visible. A similar thing is done for the GUI when to longer line that is visible. A similar thing is done for the GUI when
using the horizontal scrollbar. using the horizontal scrollbar.
7 VisVim can only open one file. Hard to solve: each opened file is passed
with a separate invocation, would need to use timestamps to know the
invocations belong together.
8 When giving a ":bwipeout" command a file-changed dialog may popup for this 8 When giving a ":bwipeout" command a file-changed dialog may popup for this
buffer, which is pointless. (Mike Williams) buffer, which is pointless. (Mike Williams)
8 On MS-Windows ":make" doesn't show output while it is working. Use the 8 On MS-Windows ":make" doesn't show output while it is working. Use the

View File

@@ -482,6 +482,10 @@ then define the function like this: >
echo "Done!" echo "Done!"
endfunction endfunction
If the file doesn't exist, Vim will also search in 'packpath' (under "start")
to allow calling packages' functions from your .vimrc when the packages have
not been added to 'runtimepath' yet (see |packages|).
The file name and the name used before the # in the function must match The file name and the name used before the # in the function must match
exactly, and the defined function must have the name exactly as it will be exactly, and the defined function must have the name exactly as it will be
called. In Vim9 script the "g:" prefix must be used: > called. In Vim9 script the "g:" prefix must be used: >

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 9.0. Last change: 2022 Jun 23 *usr_41.txt* For Vim version 9.0. Last change: 2022 Oct 07
VIM USER MANUAL - by Bram Moolenaar VIM USER MANUAL - by Bram Moolenaar

View File

@@ -159,6 +159,7 @@ relative path: >
This will search for the script "monthlib.vim" in the autoload directories of This will search for the script "monthlib.vim" in the autoload directories of
'runtimepath'. With Unix one of the directories often is "~/.vim/autoload". 'runtimepath'. With Unix one of the directories often is "~/.vim/autoload".
It will also search under 'packpath', under "start".
The main advantage of this is that this script can be easily shared with other The main advantage of this is that this script can be easily shared with other
scripts. You do need to make sure that the script name is unique, since Vim scripts. You do need to make sure that the script name is unique, since Vim

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 9.0. Last change: 2022 Sep 19 *various.txt* For Vim version 9.0. Last change: 2022 Oct 13
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Sep 27 " Last Change: 2022 Oct 12
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Abaqus finite element input file (www.abaqus.com) " Language: Abaqus finite element input file (www.abaqus.com)
" Maintainer: Carl Osterwisch <costerwi@gmail.com> " Maintainer: Carl Osterwisch <costerwi@gmail.com>
" Last Change: 2022 Aug 03 " Last Change: 2022 Oct 08
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
@@ -66,25 +66,44 @@ if exists("loaded_matchit") && !exists("b:match_words")
endif endif
if !exists("no_plugin_maps") && !exists("no_abaqus_maps") if !exists("no_plugin_maps") && !exists("no_abaqus_maps")
" Define keys used to move [count] keywords backward or forward. " Map [[ and ]] keys to move [count] keywords backward or forward
noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR> nnoremap <silent><buffer> ]] :call <SID>Abaqus_NextKeyword(1)<CR>
noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR> nnoremap <silent><buffer> [[ :call <SID>Abaqus_NextKeyword(-1)<CR>
function! <SID>Abaqus_NextKeyword(direction)
.mark '
if a:direction < 0
let flags = 'b'
else
let flags = ''
endif
let l:count = abs(a:direction) * v:count1
while l:count > 0 && search("^\\*\\a", flags)
let l:count -= 1
endwhile
endfunction
" Define key to toggle commenting of the current line or range " Map \\ to toggle commenting of the current line or range
noremap <silent><buffer> <LocalLeader><LocalLeader> noremap <silent><buffer> <LocalLeader><LocalLeader>
\ :call <SID>Abaqus_ToggleComment()<CR>j \ :call <SID>Abaqus_ToggleComment()<CR>j
function! <SID>Abaqus_ToggleComment() range function! <SID>Abaqus_ToggleComment() range
if strpart(getline(a:firstline), 0, 2) == "**" if strpart(getline(a:firstline), 0, 2) == "**"
" Un-comment all lines in range " Un-comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^\*\*//' silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
else else
" Comment all lines in range " Comment all lines in range
silent execute a:firstline . ',' . a:lastline . 's/^/**/' silent execute a:firstline . ',' . a:lastline . 's/^/**/'
endif endif
endfunction
" Map \s to swap first two comma separated fields
noremap <silent><buffer> <LocalLeader>s :call <SID>Abaqus_Swap()<CR>
function! <SID>Abaqus_Swap() range
silent execute a:firstline . ',' . a:lastline . 's/\([^*,]*\),\([^,]*\)/\2,\1/'
endfunction endfunction
let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]" let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
\ . "|unmap <buffer> <LocalLeader><LocalLeader>" \ . "|unmap <buffer> <LocalLeader><LocalLeader>"
\ . "|unmap <buffer> <LocalLeader>s"
endif endif
" Undo must be done in nocompatible mode for <LocalLeader>. " Undo must be done in nocompatible mode for <LocalLeader>.

View File

@@ -3,7 +3,8 @@
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Max Ischenko <mfi@ukr.net> " Previous Maintainer: Max Ischenko <mfi@ukr.net>
" Contributor: Dorai Sitaram <ds26@gte.com> " Contributor: Dorai Sitaram <ds26@gte.com>
" Last Change: 2022 Sep 05 " C.D. MacEachern <craig.daniel.maceachern@gmail.com>
" Last Change: 2022 Oct 15
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
@@ -19,9 +20,11 @@ setlocal formatoptions-=t formatoptions+=croql
let &l:define = '\<function\|\<local\%(\s\+function\)\=' let &l:define = '\<function\|\<local\%(\s\+function\)\='
" TODO: handle init.lua
setlocal includeexpr=substitute(v:fname,'\\.','/','g')
setlocal suffixesadd=.lua setlocal suffixesadd=.lua
let b:undo_ftplugin = "setlocal cms< com< def< fo< sua<" let b:undo_ftplugin = "setlocal cms< com< def< fo< inex< sua<"
if exists("loaded_matchit") && !exists("b:match_words") if exists("loaded_matchit") && !exists("b:match_words")
let b:match_ignorecase = 0 let b:match_ignorecase = 0

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: Markdown " Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <https://github.com/tpope/vim-markdown>
" Last Change: 2019 Dec 05 " Last Change: 2022 Oct 13
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
@@ -9,18 +9,33 @@ endif
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
let s:keepcpo= &cpo
set cpo&vim
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=<!--%s--> setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=<!--%s-->
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]: setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:\\&^.\\{4\\}
if exists('b:undo_ftplugin') if exists('b:undo_ftplugin')
let b:undo_ftplugin .= "|setl cms< com< fo< flp<" let b:undo_ftplugin .= "|setl cms< com< fo< flp< et< ts< sts< sw<"
else else
let b:undo_ftplugin = "setl cms< com< fo< flp<" let b:undo_ftplugin = "setl cms< com< fo< flp< et< ts< sts< sw<"
endif
if get(g:, 'markdown_recommended_style', 1)
setlocal expandtab tabstop=4 softtabstop=4 shiftwidth=4
endif
if !exists("g:no_plugin_maps") && !exists("g:no_markdown_maps")
nnoremap <silent><buffer> [[ :<C-U>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "bsW")<CR>
nnoremap <silent><buffer> ]] :<C-U>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "sW")<CR>
xnoremap <silent><buffer> [[ :<C-U>exe "normal! gv"<Bar>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "bsW")<CR>
xnoremap <silent><buffer> ]] :<C-U>exe "normal! gv"<Bar>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "sW")<CR>
let b:undo_ftplugin .= '|sil! nunmap <buffer> [[|sil! nunmap <buffer> ]]|sil! xunmap <buffer> [[|sil! xunmap <buffer> ]]'
endif endif
function! s:NotCodeBlock(lnum) abort function! s:NotCodeBlock(lnum) abort
return synIDattr(synID(v:lnum, 1, 1), 'name') !=# 'markdownCode' return synIDattr(synID(a:lnum, 1, 1), 'name') !=# 'markdownCode'
endfunction endfunction
function! MarkdownFold() abort function! MarkdownFold() abort
@@ -64,11 +79,14 @@ function! MarkdownFoldText() abort
return hash_indent.' '.title.' '.linecount return hash_indent.' '.title.' '.linecount
endfunction endfunction
if has("folding") && exists("g:markdown_folding") if has("folding") && get(g:, "markdown_folding", 0)
setlocal foldexpr=MarkdownFold() setlocal foldexpr=MarkdownFold()
setlocal foldmethod=expr setlocal foldmethod=expr
setlocal foldtext=MarkdownFoldText() setlocal foldtext=MarkdownFoldText()
let b:undo_ftplugin .= " foldexpr< foldmethod< foldtext<" let b:undo_ftplugin .= "|setl foldexpr< foldmethod< foldtext<"
endif endif
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:set sw=2: " vim:set sw=2:

View File

@@ -0,0 +1,13 @@
" Vim filetype plugin
" Language: PoE item filter
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Last Change: 2022 Oct 07
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setlocal comments=:# commentstring=#\ %s
let b:undo_ftplugin = 'setl com< cms<'

13
runtime/ftplugin/ssa.vim Normal file
View File

@@ -0,0 +1,13 @@
" Vim filetype plugin
" Language: SubStation Alpha
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Last Change: 2022 Oct 10
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
setlocal comments=:;,:!: commentstring=;\ %s
let b:undo_ftplugin = 'setl com< cms<'

View File

@@ -869,3 +869,21 @@ echo
}) })
enddef enddef
" END_INDENT " END_INDENT
" START_INDENT
echo {
k: () => {
if true
echo
popup_setoptions(id,
{title: 'title'})
endif
}
}
" END_INDENT
" START_INDENT
if true
elseif
endif
" END_INDENT

View File

@@ -849,7 +849,7 @@ endfor
echo [] echo []
+ [] + []
+ [{a: 1, + [{a: 1,
b: 2}] b: 2}]
} }
" END_INDENT " END_INDENT
@@ -869,3 +869,21 @@ def Foo()
}) })
enddef enddef
" END_INDENT " END_INDENT
" START_INDENT
echo {
k: () => {
if true
echo
popup_setoptions(id,
{title: 'title'})
endif
}
}
" END_INDENT
" START_INDENT
if true
elseif
endif
" END_INDENT

View File

@@ -3,7 +3,7 @@ vim9script
# Vim indent file # Vim indent file
# Language: Vim script # Language: Vim script
# Maintainer: Bram Moolenaar <Bram@vim.org> # Maintainer: Bram Moolenaar <Bram@vim.org>
# Last Change: 2022 Sep 27 # Last Change: 2022 Oct 5
# Only load this indent file when no other was loaded. # Only load this indent file when no other was loaded.
if exists('b:did_indent') if exists('b:did_indent')
@@ -15,7 +15,7 @@ b:undo_indent = 'setlocal indentkeys< indentexpr<'
import autoload '../autoload/dist/vimindent.vim' import autoload '../autoload/dist/vimindent.vim'
setlocal indentexpr=vimindent.Expr(v:lnum) setlocal indentexpr=vimindent.Expr()
setlocal indentkeys+==endif,=enddef,=endfu,=endfor,=endwh,=endtry,=},=else,=cat,=finall,=END,0\\ setlocal indentkeys+==endif,=enddef,=endfu,=endfor,=endwh,=endtry,=},=else,=cat,=finall,=END,0\\
execute('setlocal indentkeys+=0=\"\\\ ,0=#\\\ ') execute('setlocal indentkeys+=0=\"\\\ ,0=#\\\ ')
setlocal indentkeys-=0# setlocal indentkeys-=0#

View File

@@ -1,7 +1,7 @@
" These commands create the option window. " These commands create the option window.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Oct 02 " Last Change: 2022 Oct 15
" If there already is an option window, jump to that one. " If there already is an option window, jump to that one.
let buf = bufnr('option-window') let buf = bufnr('option-window')
@@ -956,6 +956,8 @@ if has("lispindent")
call <SID>BinOptionL("lisp") call <SID>BinOptionL("lisp")
call <SID>AddOption("lispwords", gettext("words that change how lisp indenting works")) call <SID>AddOption("lispwords", gettext("words that change how lisp indenting works"))
call <SID>OptionL("lw") call <SID>OptionL("lw")
call <SID>AddOption("lispoptions", gettext("options for Lisp indenting"))
call <SID>OptionL("lop")
endif endif

View File

@@ -2,7 +2,7 @@
" This file is normally sourced from menu.vim. " This file is normally sourced from menu.vim.
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Feb 04 " Last Change: 2022 Oct 04
" Define the SetSyn function, used for the Syntax menu entries. " Define the SetSyn function, used for the Syntax menu entries.
" Set 'filetype' and also 'syntax' if it is manually selected. " Set 'filetype' and also 'syntax' if it is manually selected.

View File

@@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: C " Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2022 Apr 24 " Last Change: 2022 Oct 05
" Quit when a (custom) syntax file was already loaded " Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")

View File

@@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Markdown " Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <https://github.com/tpope/vim-markdown>
" Filenames: *.markdown " Filenames: *.markdown
" Last Change: 2020 Jan 14 " Last Change: 2022 Oct 13
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@@ -12,6 +12,12 @@ if !exists('main_syntax')
let main_syntax = 'markdown' let main_syntax = 'markdown'
endif endif
if has('folding')
let s:foldmethod = &l:foldmethod
let s:foldtext = &l:foldtext
endif
let s:iskeyword = &l:iskeyword
runtime! syntax/html.vim runtime! syntax/html.vim
unlet! b:current_syntax unlet! b:current_syntax
@@ -26,17 +32,33 @@ for s:type in map(copy(g:markdown_fenced_languages),'matchstr(v:val,"[^=]*$")')
if s:type =~ '\.' if s:type =~ '\.'
let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*') let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*')
endif endif
exe 'syn include @markdownHighlight'.substitute(s:type,'\.','','g').' syntax/'.matchstr(s:type,'[^.]*').'.vim' syn case match
exe 'syn include @markdownHighlight_'.tr(s:type,'.','_').' syntax/'.matchstr(s:type,'[^.]*').'.vim'
unlet! b:current_syntax unlet! b:current_syntax
let s:done_include[matchstr(s:type,'[^.]*')] = 1 let s:done_include[matchstr(s:type,'[^.]*')] = 1
endfor endfor
unlet! s:type unlet! s:type
unlet! s:done_include unlet! s:done_include
syn spell toplevel
if exists('s:foldmethod') && s:foldmethod !=# &l:foldmethod
let &l:foldmethod = s:foldmethod
unlet s:foldmethod
endif
if exists('s:foldtext') && s:foldtext !=# &l:foldtext
let &l:foldtext = s:foldtext
unlet s:foldtext
endif
if s:iskeyword !=# &l:iskeyword
let &l:iskeyword = s:iskeyword
endif
unlet s:iskeyword
if !exists('g:markdown_minlines') if !exists('g:markdown_minlines')
let g:markdown_minlines = 50 let g:markdown_minlines = 50
endif endif
execute 'syn sync minlines=' . g:markdown_minlines execute 'syn sync minlines=' . g:markdown_minlines
syn sync linebreaks=1
syn case ignore syn case ignore
syn match markdownValid '[<>]\c[a-z/$!]\@!' transparent contains=NONE syn match markdownValid '[<>]\c[a-z/$!]\@!' transparent contains=NONE
@@ -52,16 +74,16 @@ syn match markdownH2 "^.\+\n-\+$" contained contains=@markdownInline,markdownHea
syn match markdownHeadingRule "^[=-]\+$" contained syn match markdownHeadingRule "^[=-]\+$" contained
syn region markdownH1 matchgroup=markdownH1Delimiter start="##\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained syn region markdownH1 matchgroup=markdownH1Delimiter start=" \{,3}#\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH2 matchgroup=markdownH2Delimiter start="###\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained syn region markdownH2 matchgroup=markdownH2Delimiter start=" \{,3}##\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH3 matchgroup=markdownH3Delimiter start="####\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained syn region markdownH3 matchgroup=markdownH3Delimiter start=" \{,3}###\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH4 matchgroup=markdownH4Delimiter start="#####\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained syn region markdownH4 matchgroup=markdownH4Delimiter start=" \{,3}####\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH5 matchgroup=markdownH5Delimiter start="######\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained syn region markdownH5 matchgroup=markdownH5Delimiter start=" \{,3}#####\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH6 matchgroup=markdownH6Delimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained syn region markdownH6 matchgroup=markdownH6Delimiter start=" \{,3}######\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn match markdownBlockquote ">\%(\s\|$\)" contained nextgroup=@markdownBlock syn match markdownBlockquote ">\%(\s\|$\)" contained nextgroup=@markdownBlock
syn region markdownCodeBlock start=" \|\t" end="$" contained syn region markdownCodeBlock start="^\n\( \{4,}\|\t\)" end="^\ze \{,3}\S.*$" keepend
" TODO: real nesting " TODO: real nesting
syn match markdownListMarker "\%(\t\| \{0,4\}\)[-*+]\%(\s\+\S\)\@=" contained syn match markdownListMarker "\%(\t\| \{0,4\}\)[-*+]\%(\s\+\S\)\@=" contained
@@ -79,7 +101,7 @@ syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained
syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained
syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\%(\_[^][]\|\[\_[^][]*\]\)*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^][]*\%(\[\_[^][]*\]\_[^][]*\)*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart
syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained
syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained
syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline
@@ -88,31 +110,38 @@ let s:concealends = ''
if has('conceal') && get(g:, 'markdown_syntax_conceal', 1) == 1 if has('conceal') && get(g:, 'markdown_syntax_conceal', 1) == 1
let s:concealends = ' concealends' let s:concealends = ' concealends'
endif endif
exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\*\S\@=" end="\S\@<=\*\|^$" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends
exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\w\@<!_\S\@=" end="\S\@<=_\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\w\@<!_\S\@=" end="\S\@<=_\w\@!\|^$" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends
exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" skip="\\\*" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\*\*\S\@=" end="\S\@<=\*\*\|^$" skip="\\\*" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends
exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\w\@<!__\S\@=" end="\S\@<=__\w\@!" skip="\\_" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\w\@<!__\S\@=" end="\S\@<=__\w\@!\|^$" skip="\\_" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends
exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\*\*\*\S\@=" end="\S\@<=\*\*\*\|^$" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends
exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\w\@<!___\S\@=" end="\S\@<=___\w\@!" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\w\@<!___\S\@=" end="\S\@<=___\w\@!\|^$" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends
exe 'syn region markdownStrike matchgroup=markdownStrikeDelimiter start="\~\~\S\@=" end="\S\@<=\~\~\|^$" contains=markdownLineStart,@Spell' . s:concealends
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*````*.*$" end="^\s*````*\ze\s*$" keepend syn region markdownCodeBlock matchgroup=markdownCodeDelimiter start="^\s*\z(`\{3,\}\).*$" end="^\s*\z1\ze\s*$" keepend
syn region markdownCodeBlock matchgroup=markdownCodeDelimiter start="^\s*\z(\~\{3,\}\).*$" end="^\s*\z1\ze\s*$" keepend
syn match markdownFootnote "\[^[^\]]\+\]" syn match markdownFootnote "\[^[^\]]\+\]"
syn match markdownFootnoteDefinition "^\[^[^\]]\+\]:" syn match markdownFootnoteDefinition "^\[^[^\]]\+\]:"
if main_syntax ==# 'markdown' let s:done_include = {}
let s:done_include = {} for s:type in g:markdown_fenced_languages
for s:type in g:markdown_fenced_languages if has_key(s:done_include, matchstr(s:type,'[^.]*'))
if has_key(s:done_include, matchstr(s:type,'[^.]*')) continue
continue endif
endif exe 'syn region markdownHighlight_'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*\z(`\{3,\}\)\s*\%({.\{-}\.\)\='.matchstr(s:type,'[^=]*').'}\=\S\@!.*$" end="^\s*\z1\ze\s*$" keepend contains=@markdownHighlight_'.tr(matchstr(s:type,'[^=]*$'),'.','_') . s:concealends
exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*````*\s*\%({.\{-}\.\)\='.matchstr(s:type,'[^=]*').'}\=\S\@!.*$" end="^\s*````*\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g') . s:concealends exe 'syn region markdownHighlight_'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*\z(\~\{3,\}\)\s*\%({.\{-}\.\)\='.matchstr(s:type,'[^=]*').'}\=\S\@!.*$" end="^\s*\z1\ze\s*$" keepend contains=@markdownHighlight_'.tr(matchstr(s:type,'[^=]*$'),'.','_') . s:concealends
let s:done_include[matchstr(s:type,'[^.]*')] = 1 let s:done_include[matchstr(s:type,'[^.]*')] = 1
endfor endfor
unlet! s:type unlet! s:type
unlet! s:done_include unlet! s:done_include
if get(b:, 'markdown_yaml_head', get(g:, 'markdown_yaml_head', main_syntax ==# 'markdown'))
syn include @markdownYamlTop syntax/yaml.vim
unlet! b:current_syntax
syn region markdownYamlHead start="\%^---$" end="^\%(---\|\.\.\.\)\s*$" keepend contains=@markdownYamlTop,@Spell
endif endif
syn match markdownEscape "\\[][\\`*_{}()<>#+.!-]" syn match markdownEscape "\\[][\\`*_{}()<>#+.!-]"
@@ -156,6 +185,8 @@ hi def link markdownBold htmlBold
hi def link markdownBoldDelimiter markdownBold hi def link markdownBoldDelimiter markdownBold
hi def link markdownBoldItalic htmlBoldItalic hi def link markdownBoldItalic htmlBoldItalic
hi def link markdownBoldItalicDelimiter markdownBoldItalic hi def link markdownBoldItalicDelimiter markdownBoldItalic
hi def link markdownStrike htmlStrike
hi def link markdownStrikeDelimiter markdownStrike
hi def link markdownCodeDelimiter Delimiter hi def link markdownCodeDelimiter Delimiter
hi def link markdownEscape Special hi def link markdownEscape Special

View File

@@ -0,0 +1,167 @@
" Vim syntax file
" Language: PoE item filter
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Filenames: *.filter
" Last Change: 2022 Oct 07
if exists('b:current_syntax')
finish
endif
let s:cpo_save = &cpoptions
set cpoptions&vim
" Comment
syn keyword poefilterTodo TODO NOTE XXX contained
syn match poefilterCommentTag /\[[0-9A-Z\[\]]\+\]/ contained
syn match poefilterComment /#.*$/ contains=poefilterTodo,poefilterCommentTag,@Spell
" Blocks
syn keyword poefilterBlock Show Hide
" Conditions
syn keyword poefilterCondition
\ AlternateQuality
\ AnyEnchantment
\ BlightedMap
\ Corrupted
\ ElderItem
\ ElderMap
\ FracturedItem
\ Identified
\ Mirrored
\ Replica
\ Scourged
\ ShapedMap
\ ShaperItem
\ SynthesisedItem
\ UberBlightedMap
\ skipwhite nextgroup=poefilterBoolean
syn keyword poefilterCondition
\ ArchnemesisMod
\ BaseType
\ Class
\ EnchantmentPassiveNode
\ HasEnchantment
\ HasExplicitMod
\ ItemLevel
\ SocketGroup
\ Sockets
\ skipwhite nextgroup=poefilterOperator,poefilterString
syn keyword poefilterCondition
\ AreaLevel
\ BaseArmour
\ BaseDefencePercentile
\ BaseEnergyShield
\ BaseEvasion
\ BaseWard
\ CorruptedMods
\ DropLevel
\ EnchantmentPassiveNum
\ GemLevel
\ HasEaterOfWorldsImplicit
\ HasSearingExarchImplicit
\ Height
\ LinkedSockets
\ MapTier
\ Quality
\ StackSize
\ Width
\ skipwhite nextgroup=poefilterOperator,poefilterNumber
syn keyword poefilterCondition
\ GemQualityType
\ skipwhite nextgroup=poefilterString,poefilterQuality
syn keyword poefilterCondition
\ HasInfluence
\ skipwhite nextgroup=poefilterString,poefilterInfluence
syn keyword poefilterCondition
\ Rarity
\ skipwhite nextgroup=poefilterString,poefilterRarity
" Actions
syn keyword poefilterAction
\ PlayAlertSound
\ PlayAlertSoundPositional
\ skipwhite nextgroup=poefilterNumber,poefilterDisable
syn keyword poefilterAction
\ CustomAlertSound
\ CustomAlertSoundOptional
\ skipwhite nextgroup=poefilterString
syn keyword poefilterAction
\ DisableDropSound
\ EnableDropSound
\ DisableDropSoundIfAlertSound
\ EnableDropSoundIfAlertSound
\ skipwhite nextgroup=poefilterBoolean
syn keyword poefilterAction
\ MinimapIcon
\ SetBackgroundColor
\ SetBorderColor
\ SetFontSize
\ SetTextColor
\ skipwhite nextgroup=poefilterNumber
syn keyword poefilterAction
\ PlayEffect
\ skipwhite nextgroup=poefilterColour
" Operators
syn match poefilterOperator /!\|[<>=]=\?/ contained
\ skipwhite nextgroup=poefilterString,poefilterNumber,
\ poefilterQuality,poefilterRarity,poefilterInfluence
" Arguments
syn match poefilterString /[-a-zA-Z0-9:,']/ contained contains=@Spell
\ skipwhite nextgroup=poefilterString,poefilterNumber,
\ poefilterQuality,poefilterRarity,poefilterInfluence
syn region poefilterString matchgroup=poefilterQuote keepend
\ start=/"/ end=/"/ concealends contained contains=@Spell
\ skipwhite nextgroup=poefilterString,poefilterNumber,
\ poefilterQuality,poefilterRarity,poefilterInfluence
syn match poefilterNumber /-1\|0\|[1-9][0-9]*/ contained
\ skipwhite nextgroup=poefilterString,poefilterNumber,
\ poefilterQuality,poefilterRarity,poefilterInfluence,poefilterColour
syn keyword poefilterBoolean True False contained
" Special arguments (conditions)
syn keyword poefilterQuality Superior Divergent Anomalous Phantasmal
\ contained skipwhite nextgroup=poefilterString,poefilterQuality
syn keyword poefilterRarity Normal Magic Rare Unique
\ contained skipwhite nextgroup=poefilterString,poefilterRarity
syn keyword poefilterInfluence Shaper Elder
\ Crusader Hunter Redeemer Warlord None
\ contained skipwhite nextgroup=poefilterString,poefilterInfluence
" Special arguments (actions)
syn keyword poefilterColour Red Green Blue Brown
\ White Yellow Cyan Grey Orange Pink Purple
\ contained skipwhite nextgroup=poefilterShape,poefilterTemp
syn keyword poefilterShape Circle Diamond Hecagon Square Star Triangle
\ Cross Moon Raindrop Kite Pentagon UpsideDownHouse contained
syn keyword poefilterDisable None contained
syn keyword poefilterTemp Temp contained
" Colours
hi def link poefilterAction Statement
hi def link poefilterBlock Structure
hi def link poefilterBoolean Boolean
hi def link poefilterColour Special
hi def link poefilterComment Comment
hi def link poefilterCommentTag SpecialComment
hi def link poefilterCondition Conditional
hi def link poefilterDisable Constant
hi def link poefilterInfluence Special
hi def link poefilterNumber Number
hi def link poefilterOperator Operator
hi def link poefilterQuality Special
hi def link poefilterQuote Delimiter
hi def link poefilterRarity Special
hi def link poefilterShape Special
hi def link poefilterString String
hi def link poefilterTemp StorageClass
hi def link poefilterTodo Todo
let b:current_syntax = 'poefilter'
let &cpoptions = s:cpo_save
unlet s:cpo_save

View File

@@ -1,30 +1,42 @@
" Vim syntax file " Vim syntax file
" Language: sed " Language: sed
" Maintainer: Haakon Riiser <hakonrk@fys.uio.no> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" URL: http://folk.uio.no/hakonrk/vim/syntax/sed.vim " Previous Maintainer: Haakon Riiser <hakonrk@fys.uio.no>
" Last Change: 2010 May 29 " Contributor: Jack Haden-Enneking
" Last Change: 2022 Oct 15
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
endif endif
syn keyword sedTodo contained TODO FIXME XXX
syn match sedError "\S" syn match sedError "\S"
syn match sedWhitespace "\s\+" contained syn match sedWhitespace "\s\+" contained
syn match sedSemicolon ";" syn match sedSemicolon ";"
syn match sedAddress "[[:digit:]$]" syn match sedAddress "[[:digit:]$]"
syn match sedAddress "\d\+\~\d\+" syn match sedAddress "\d\+\~\d\+"
syn region sedAddress matchgroup=Special start="[{,;]\s*/\(\\/\)\="lc=1 skip="[^\\]\(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta syn region sedAddress matchgroup=Special start="[{,;]\s*/\%(\\/\)\="lc=1 skip="[^\\]\%(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta
syn region sedAddress matchgroup=Special start="^\s*/\(\\/\)\=" skip="[^\\]\(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta syn region sedAddress matchgroup=Special start="^\s*/\%(\\/\)\=" skip="[^\\]\%(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta
syn match sedComment "^\s*#.*$" syn match sedFunction "[dDgGhHlnNpPqQx=]\s*\%($\|;\)" contains=sedSemicolon,sedWhitespace
syn match sedFunction "[dDgGhHlnNpPqQx=]\s*\($\|;\)" contains=sedSemicolon,sedWhitespace if exists("g:sed_dialect") && g:sed_dialect ==? "bsd"
syn match sedComment "^\s*#.*$" contains=sedTodo
else
syn match sedFunction "[dDgGhHlnNpPqQx=]\s*\ze#" contains=sedSemicolon,sedWhitespace
syn match sedComment "#.*$" contains=sedTodo
endif
syn match sedLabel ":[^;]*" syn match sedLabel ":[^;]*"
syn match sedLineCont "^\(\\\\\)*\\$" contained syn match sedLineCont "^\%(\\\\\)*\\$" contained
syn match sedLineCont "[^\\]\(\\\\\)*\\$"ms=e contained syn match sedLineCont "[^\\]\%(\\\\\)*\\$"ms=e contained
syn match sedSpecial "[{},!]" syn match sedSpecial "[{},!]"
if exists("highlight_sedtabs")
syn match sedTab "\t" contained " continue to silently support the old name
let s:highlight_tabs = v:false
if exists("g:highlight_sedtabs") || get(g:, "sed_highlight_tabs", 0)
let s:highlight_tabs = v:true
syn match sedTab "\t" contained
endif endif
" Append/Change/Insert " Append/Change/Insert
@@ -34,39 +46,39 @@ syn region sedBranch matchgroup=sedFunction start="[bt]" matchgroup=sedSemicolon
syn region sedRW matchgroup=sedFunction start="[rw]" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace syn region sedRW matchgroup=sedFunction start="[rw]" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace
" Substitution/transform with various delimiters " Substitution/transform with various delimiters
syn region sedFlagwrite matchgroup=sedFlag start="w" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace contained syn region sedFlagWrite matchgroup=sedFlag start="w" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace contained
syn match sedFlag "[[:digit:]gpI]*w\=" contains=sedFlagwrite contained syn match sedFlag "[[:digit:]gpI]*w\=" contains=sedFlagWrite contained
syn match sedRegexpMeta "[.*^$]" contained syn match sedRegexpMeta "[.*^$]" contained
syn match sedRegexpMeta "\\." contains=sedTab contained syn match sedRegexpMeta "\\." contains=sedTab contained
syn match sedRegexpMeta "\[.\{-}\]" contains=sedTab contained syn match sedRegexpMeta "\[.\{-}\]" contains=sedTab contained
syn match sedRegexpMeta "\\{\d\*,\d*\\}" contained syn match sedRegexpMeta "\\{\d\*,\d*\\}" contained
syn match sedRegexpMeta "\\(.\{-}\\)" contains=sedTab contained syn match sedRegexpMeta "\\%(.\{-}\\)" contains=sedTab contained
syn match sedReplaceMeta "&\|\\\($\|.\)" contains=sedTab contained syn match sedReplaceMeta "&\|\\\%($\|.\)" contains=sedTab contained
" Metacharacters: $ * . \ ^ [ ~ " Metacharacters: $ * . \ ^ [ ~
" @ is used as delimiter and treated on its own below " @ is used as delimiter and treated on its own below
let __at = char2nr("@") let s:at = char2nr("@")
let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64 let s:i = char2nr(" ") " ASCII: 32, EBCDIC: 64
if has("ebcdic") if has("ebcdic")
let __sed_last = 255 let s:last = 255
else else
let __sed_last = 126 let s:last = 126
endif endif
let __sed_metacharacters = '$*.\^[~' let s:metacharacters = '$*.\^[~'
while __sed_i <= __sed_last while s:i <= s:last
let __sed_delimiter = escape(nr2char(__sed_i), __sed_metacharacters) let s:delimiter = escape(nr2char(s:i), s:metacharacters)
if __sed_i != __at if s:i != s:at
exe 'syn region sedAddress matchgroup=Special start=@\\'.__sed_delimiter.'\(\\'.__sed_delimiter.'\)\=@ skip=@[^\\]\(\\\\\)*\\'.__sed_delimiter.'@ end=@'.__sed_delimiter.'I\=@ contains=sedTab' exe 'syn region sedAddress matchgroup=Special start=@\\'.s:delimiter.'\%(\\'.s:delimiter.'\)\=@ skip=@[^\\]\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'[IM]\=@ contains=sedTab'
exe 'syn region sedRegexp'.__sed_i 'matchgroup=Special start=@'.__sed_delimiter.'\(\\\\\|\\'.__sed_delimiter.'\)*@ skip=@[^\\'.__sed_delimiter.']\(\\\\\)*\\'.__sed_delimiter.'@ end=@'.__sed_delimiter.'@me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement'.__sed_i exe 'syn region sedRegexp'.s:i 'matchgroup=Special start=@'.s:delimiter.'\%(\\\\\|\\'.s:delimiter.'\)*@ skip=@[^\\'.s:delimiter.']\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'@me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement'.s:i
exe 'syn region sedReplacement'.__sed_i 'matchgroup=Special start=@'.__sed_delimiter.'\(\\\\\|\\'.__sed_delimiter.'\)*@ skip=@[^\\'.__sed_delimiter.']\(\\\\\)*\\'.__sed_delimiter.'@ end=@'.__sed_delimiter.'@ contains=sedTab,sedReplaceMeta keepend contained nextgroup=sedFlag' exe 'syn region sedReplacement'.s:i 'matchgroup=Special start=@'.s:delimiter.'\%(\\\\\|\\'.s:delimiter.'\)*@ skip=@[^\\'.s:delimiter.']\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'@ contains=sedTab,sedReplaceMeta keepend contained nextgroup=@sedFlags'
endif endif
let __sed_i = __sed_i + 1 let s:i = s:i + 1
endwhile endwhile
syn region sedAddress matchgroup=Special start=+\\@\(\\@\)\=+ skip=+[^\\]\(\\\\\)*\\@+ end=+@I\=+ contains=sedTab,sedRegexpMeta syn region sedAddress matchgroup=Special start=+\\@\%(\\@\)\=+ skip=+[^\\]\%(\\\\\)*\\@+ end=+@I\=+ contains=sedTab,sedRegexpMeta
syn region sedRegexp64 matchgroup=Special start=+@\(\\\\\|\\@\)*+ skip=+[^\\@]\(\\\\\)*\\@+ end=+@+me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement64 syn region sedRegexp64 matchgroup=Special start=+@\%(\\\\\|\\@\)*+ skip=+[^\\@]\%(\\\\\)*\\@+ end=+@+me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement64
syn region sedReplacement64 matchgroup=Special start=+@\(\\\\\|\\@\)*+ skip=+[^\\@]\(\\\\\)*\\@+ end=+@+ contains=sedTab,sedReplaceMeta keepend contained nextgroup=sedFlag syn region sedReplacement64 matchgroup=Special start=+@\%(\\\\\|\\@\)*+ skip=+[^\\@]\%(\\\\\)*\\@+ end=+@+ contains=sedTab,sedReplaceMeta keepend contained nextgroup=sedFlag
" Since the syntax for the substituion command is very similar to the " Since the syntax for the substitution command is very similar to the
" syntax for the transform command, I use the same pattern matching " syntax for the transform command, I use the same pattern matching
" for both commands. There is one problem -- the transform command " for both commands. There is one problem -- the transform command
" (y) does not allow any flags. To save memory, I ignore this problem. " (y) does not allow any flags. To save memory, I ignore this problem.
@@ -80,7 +92,7 @@ hi def link sedComment Comment
hi def link sedDelete Function hi def link sedDelete Function
hi def link sedError Error hi def link sedError Error
hi def link sedFlag Type hi def link sedFlag Type
hi def link sedFlagwrite Constant hi def link sedFlagWrite Constant
hi def link sedFunction Function hi def link sedFunction Function
hi def link sedLabel Label hi def link sedLabel Label
hi def link sedLineCont Special hi def link sedLineCont Special
@@ -88,23 +100,24 @@ hi def link sedPutHoldspc Function
hi def link sedReplaceMeta Special hi def link sedReplaceMeta Special
hi def link sedRegexpMeta Special hi def link sedRegexpMeta Special
hi def link sedRW Constant hi def link sedRW Constant
hi def link sedSemicolon Special hi def link sedSemicolon Special
hi def link sedST Function hi def link sedST Function
hi def link sedSpecial Special hi def link sedSpecial Special
hi def link sedTodo Todo
hi def link sedWhitespace NONE hi def link sedWhitespace NONE
if exists("highlight_sedtabs") if s:highlight_tabs
hi def link sedTab Todo hi def link sedTab Todo
endif endif
let __sed_i = char2nr(" ") " ASCII: 32, EBCDIC: 64 let s:i = char2nr(" ") " ASCII: 32, EBCDIC: 64
while __sed_i <= __sed_last while s:i <= s:last
exe "hi def link sedRegexp".__sed_i "Macro" exe "hi def link sedRegexp".s:i "Macro"
exe "hi def link sedReplacement".__sed_i "NONE" exe "hi def link sedReplacement".s:i "NONE"
let __sed_i = __sed_i + 1 let s:i = s:i + 1
endwhile endwhile
unlet s:i s:last s:delimiter s:metacharacters s:at
unlet __sed_i __sed_last __sed_delimiter __sed_metacharacters unlet s:highlight_tabs
let b:current_syntax = "sed" let b:current_syntax = "sed"
" vim: sts=4 sw=4 ts=8 " vim: nowrap sw=2 sts=2 ts=8 noet:

63
runtime/syntax/ssa.vim Normal file
View File

@@ -0,0 +1,63 @@
" Vim syntax file
" Language: SubStation Alpha
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Filenames: *.ass,*.ssa
" Last Change: 2022 Oct 10
if exists('b:current_syntax')
finish
endif
" Comments
syn keyword ssaTodo TODO FIXME NOTE XXX contained
syn match ssaComment /^\(;\|!:\).*$/ contains=ssaTodo,@Spell
syn match ssaTextComment /{[^}]*}/ contained contains=@Spell
" Sections
syn match ssaSection /^\[[a-zA-Z0-9+ ]\+\]$/
" Headers
syn match ssaHeader /^[^;!:]\+:/ skipwhite nextgroup=ssaField
" Fields
syn match ssaField /[^,]*/ contained skipwhite nextgroup=ssaDelimiter
" Time
syn match ssaTime /\d:\d\d:\d\d\.\d\d/ contained skipwhite nextgroup=ssaDelimiter
" Delimiter
syn match ssaDelimiter /,/ contained skipwhite nextgroup=ssaField,ssaTime,ssaText
" Text
syn match ssaText /\(^Dialogue:\(.*,\)\{9}\)\@<=.*$/ contained contains=@ssaTags,@Spell
syn cluster ssaTags contains=ssaOverrideTag,ssaEscapeChar,ssaTextComment,ssaItalics,ssaBold,ssaUnderline,ssaStrikeout
" Override tags
syn match ssaOverrideTag /{\\[^}]\+}/ contained contains=@NoSpell
" Special characters
syn match ssaEscapeChar /\\[nNh{}]/ contained contains=@NoSpell
" Markup
syn region ssaItalics start=/{\\i1}/ end=/{\\i0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell
syn region ssaBold start=/{\\b1}/ end=/{\\b0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell
syn region ssaUnderline start=/{\\u1}/ end=/{\\u0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell
syn region ssaStrikeout start=/{\\s1}/ end=/{\\s0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell
hi def link ssaDelimiter Delimiter
hi def link ssaComment Comment
hi def link ssaEscapeChar SpecialChar
hi def link ssaField String
hi def link ssaHeader Label
hi def link ssaSection StorageClass
hi def link ssaOverrideTag Special
hi def link ssaTextComment Comment
hi def link ssaTime Number
hi def link ssaTodo Todo
hi ssaBold cterm=bold gui=bold
hi ssaItalics cterm=italic gui=italic
hi ssaStrikeout cterm=strikethrough gui=strikethrough
hi ssaUnderline cterm=underline gui=underline
let b:current_syntax = 'srt'

View File

@@ -91,7 +91,7 @@ NOTA: A medida que vaya avanzando en este tutor no intente memorizar,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lecci<EFBFBD>n 1.4: EDITAR TEXTO - BORRAR Lecci<EFBFBD>n 1.4: EDITAR TEXTO - INSERTAR
** Pulse i para insertar texto. ** ** Pulse i para insertar texto. **
@@ -248,9 +248,12 @@ Ahora contin
Una lista resumida de movimientos: Una lista resumida de movimientos:
w - hasta el comienzo de la siguiente palabra, EXCLUYENDO su primer w - hasta el comienzo de la siguiente palabra, EXCLUYENDO su primer
car<EFBFBD>cter. car<EFBFBD>cter.
e - hasta el final de la palabra actual, INCLUYENDO su primer car<EFBFBD>cter. e - hasta el final de la palabra actual, INCLUYENDO el <EFBFBD>ltimo car<EFBFBD>cter.
$ - hasta el final de la l<EFBFBD>nea, INCLUYENDO el <EFBFBD>ltimo car<EFBFBD>cter. $ - hasta el final de la l<EFBFBD>nea, INCLUYENDO el <EFBFBD>ltimo car<EFBFBD>cter.
Por tanto, al escribir de borrar<EFBFBD> desde la posici<EFBFBD>n del cursor, hasta
el final de la palabra.
NOTA: Pulsando <EFBFBD>nicamente el movimiento estando en el modo Normal sin un NOTA: Pulsando <EFBFBD>nicamente el movimiento estando en el modo Normal sin un
operador, mover<EFBFBD> el cursor como se especifica en la lista anterior. operador, mover<EFBFBD> el cursor como se especifica en la lista anterior.
@@ -262,7 +265,7 @@ NOTA: Pulsando
1. Mueva el cursor al comienzo de la l<EFBFBD>nea marcada con --->. 1. Mueva el cursor al comienzo de la l<EFBFBD>nea marcada con --->.
2. Escriba 2w para mover el cursor dos palabras hacia adelante. 2. Escriba 2w para mover el cursor dos palabras hacia adelante.
3. Escriba 3e para mover el cursor al final de la tercera palabra hacia 3. Escriba 3e para mover el cursor al final de la tercera palabra hacia
adelante. adelante.
@@ -271,7 +274,7 @@ NOTA: Pulsando
5. Repita el paso 2 y 3 con diferentes n<EFBFBD>meros. 5. Repita el paso 2 y 3 con diferentes n<EFBFBD>meros.
---> Esto es solo una l<EFBFBD>nea con palabra donde poder moverse. ---> Esto es solo una l<EFBFBD>nea con palabras donde poder moverse.
6. Pase a la lecci<EFBFBD>n 2.5. 6. Pase a la lecci<EFBFBD>n 2.5.
@@ -288,15 +291,15 @@ NOTA: Pulsando
anteriormente, a<EFBFBD>ada un contador antes del movimiento para eliminar m<EFBFBD>s: anteriormente, a<EFBFBD>ada un contador antes del movimiento para eliminar m<EFBFBD>s:
d n<EFBFBD>mero movimiento d n<EFBFBD>mero movimiento
1. Mueva el cursos a la primera palabra en MAY<EFBFBD>SCULAS en la l<EFBFBD>nea 1. Mueva el cursor al inicio de la primera palabra en MAY<EFBFBD>SCULAS en la
marcada con --->. l<EFBFBD>nea marcada con --->.
2. Escriba d2w para eliminar las dos palabras en MAY<EFBFBD>SCULAS. 2. Escriba d2w para eliminar las dos palabras en MAY<EFBFBD>SCULAS.
3. Repita los pasos 1 y 2 con diferentes contadores para eliminar 3. Repita los pasos 1 y 2 con diferentes contadores para eliminar
las siguientes palabras en MAY<EFBFBD>SCULAS con un comando. las siguientes palabras en MAY<EFBFBD>SCULAS con un comando.
---> esta ABC DE serie FGHI JK LMN OP de palabras ha sido Q RS TUV limpiada. ---> Esta ABC DE serie FGHI JK LMN OP de palabras ha sido Q RS TUV limpiada.
@@ -319,7 +322,7 @@ NOTA: Pulsando
---> 1) Las rosas son rojas, ---> 1) Las rosas son rojas,
---> 2) El barro es divertido, ---> 2) El barro es divertido,
---> 3) Las violetas son azules, ---> 3) La violeta es azul,
---> 4) Tengo un coche, ---> 4) Tengo un coche,
---> 5) Los relojes dan la hora, ---> 5) Los relojes dan la hora,
---> 6) El az<EFBFBD>car es dulce ---> 6) El az<EFBFBD>car es dulce
@@ -362,7 +365,7 @@ mencionados anteriormente.
3. Para borrar desde el cursor hasta el final de una l<EFBFBD>nea pulse: d$ 3. Para borrar desde el cursor hasta el final de una l<EFBFBD>nea pulse: d$
4. Para borrar una l<EFBFBD>nea entera pulse: dd 4. Para borrar una l<EFBFBD>nea entera pulse: dd
5. Para repetir un movimiento prec<EFBFBD>dalo con un n<EFBFBD>mero: 2w 5. Para repetir un movimiento anteponga un n<EFBFBD>mero: 2w
6. El formato para un comando de cambio es: 6. El formato para un comando de cambio es:
operador [n<EFBFBD>mero] movimiento operador [n<EFBFBD>mero] movimiento
donde: donde:
@@ -394,7 +397,7 @@ mencionados anteriormente.
5. Repita los pasos 2 a 4 para poner todas las l<EFBFBD>neas en el orden correcto. 5. Repita los pasos 2 a 4 para poner todas las l<EFBFBD>neas en el orden correcto.
---> d) <EFBFBD>Puedes aprenderla t<EFBFBD>? ---> d) <EFBFBD>Puedes aprenderla t<EFBFBD>?
---> b) Las violetas son azules, ---> b) La violeta es azul,
---> c) La inteligencia se aprende, ---> c) La inteligencia se aprende,
---> a) Las rosas son rojas, ---> a) Las rosas son rojas,
@@ -426,7 +429,7 @@ NOTA: Recuerde que deber
Lecci<EFBFBD>n 3.3: EL COMANDO CAMBIAR Lecci<EFBFBD>n 3.3: EL COMANDO CAMBIAR
** Para cambiar hasta el final de una l<EFBFBD>nea, escriba ce . ** ** Para cambiar hasta el final de una palabra, escriba ce . **
1. Mueva el cursor a la primera l<EFBFBD>nea inferior marcada con --->. 1. Mueva el cursor a la primera l<EFBFBD>nea inferior marcada con --->.
@@ -477,7 +480,7 @@ NOTA: Puede utilizar el retorno de carro para corregir errores mientras escribe.
escriba p . Esto pega el texto despu<EFBFBD>s del cursor (si se borr<EFBFBD> una escriba p . Esto pega el texto despu<EFBFBD>s del cursor (si se borr<EFBFBD> una
l<EFBFBD>nea, al pegarla, esta se situar<EFBFBD> en la l<EFBFBD>nea debajo del cursor). l<EFBFBD>nea, al pegarla, esta se situar<EFBFBD> en la l<EFBFBD>nea debajo del cursor).
2. Para sustituir el car<EFBFBD>cter bajo el cursor, pulse r y luego el 2. Para reemplazar el car<EFBFBD>cter bajo el cursor, pulse r y luego el
car<EFBFBD>cter que quiere que est<EFBFBD> en ese lugar. car<EFBFBD>cter que quiere que est<EFBFBD> en ese lugar.
3. El operador change le permite cambiar desde la posici<EFBFBD>n del cursor 3. El operador change le permite cambiar desde la posici<EFBFBD>n del cursor
@@ -585,11 +588,11 @@ NOTA:
---> Laas mejores <20>pocas para ver laas flores son laas primaveras. ---> Laas mejores <20>pocas para ver laas flores son laas primaveras.
4. Para cambiar cada ocurrencia de la cadena de caracteres entre dos l<>neas, 4. Para cambiar cada ocurrencia de la cadena de caracteres entre dos l<>neas,
Pulse :#,#s/viejo/nuevo/g donde #,# son los n<>meros de l<>nea del rango Escriba :#,#s/viejo/nuevo/g donde #,# son los n<>meros de l<>nea del rango
de l<>neas donde se realizar<61> la sustituci<63>n. de l<>neas donde se realizar<61> la sustituci<63>n.
Pulse :%s/old/new/g para cambiar cada ocurrencia en todo el Escriba :%s/old/new/g para cambiar cada ocurrencia en todo el
archivo. archivo.
Pulse :%s/old/new/gc para encontrar cada ocurrencia en todo el Escriba :%s/old/new/gc para encontrar cada ocurrencia en todo el
archivo, pidiendo confirmaci<63>n para archivo, pidiendo confirmaci<63>n para
realizar la sustituci<63>n o no. realizar la sustituci<63>n o no.
@@ -602,19 +605,19 @@ NOTA:
n<>mero G mueve el cursor a ese n<>mero de l<>nea. n<>mero G mueve el cursor a ese n<>mero de l<>nea.
gg mueve el cursor a la primera l<>nea del archivo. gg mueve el cursor a la primera l<>nea del archivo.
2. Pulsando / seguido de una frase busca la frase hacia ADELANTE. 2. Escribiendo / seguido de una frase busca la frase hacia ADELANTE.
Pulsando ? seguido de una frase busca la frase hacia ATR<54>S. Escribiendo ? seguido de una frase busca la frase hacia ATR<54>S.
Despu<70>s de una b<>squeda pulse n para encontrar la aparici<63>n Despu<70>s de una b<>squeda pulse n para encontrar la aparici<63>n
siguiente en la misma direcci<63>n o N para buscar en direcci<63>n opuesta. siguiente en la misma direcci<63>n o N para buscar en direcci<63>n opuesta.
3. Pulsando % cuando el cursor esta sobre (,), [,], { o } localiza 3. Pulsando % cuando el cursor esta sobre (,), [,], { o } localiza
la pareja correspondiente. la pareja correspondiente.
4. Para cambiar viejo en el primer nuevo en una l<>nea pulse :s/viejo/nuevo 4. Para cambiar viejo en el primer nuevo en una l<>nea escriba :s/viejo/nuevo
Para cambiar todos los viejo por nuevo en una l<>nea pulse :s/viejo/nuevo/g Para cambiar todos los viejo por nuevo en una l<>nea escriba :s/viejo/nuevo/g
Para cambiar frases entre dos n<>meros de l<>neas pulse :#,#s/viejo/nuevo/g Para cambiar frases entre dos n<>meros de l<>neas escriba :#,#s/viejo/nuevo/g
Para cambiar viejo por nuevo en todo el fichero pulse :%s/viejo/nuevo/g Para cambiar viejo por nuevo en todo el fichero escriba :%s/viejo/nuevo/g
Para pedir confirmaci<63>n en cada caso a<>ada 'c' :%s/viejo/nuevo/gc Para pedir confirmaci<63>n en cada caso a<>ada 'c' :%s/viejo/nuevo/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -631,7 +634,7 @@ NOTA:
3. Como ejemplo escriba ls despu<70>s del ! y luego pulse <INTRO>. Esto 3. Como ejemplo escriba ls despu<70>s del ! y luego pulse <INTRO>. Esto
le mostrar<61> una lista de su directorio, igual que si estuviera en el le mostrar<61> una lista de su directorio, igual que si estuviera en el
s<>mbolo del sistema. Si ls no funciona utilice !:dir . s<>mbolo del sistema. Si ls no funciona utilice :!dir .
NOTA: De esta manera es posible ejecutar cualquier comando externo, NOTA: De esta manera es posible ejecutar cualquier comando externo,
tambi<62>n incluyendo argumentos. tambi<62>n incluyendo argumentos.
@@ -680,7 +683,7 @@ NOTA: Si saliera de Vim y volviera a entrar de nuevo con vim TEST , el
:'<,'> :'<,'>
4. Pulse w TEST , donde TEST es un nombre de archivo que a<>n no existe. 4. Pulse w TEST , donde TEST es un nombre de archivo que a<>n no existe.
Verifique que :'<,'>w TEST antes de pulsar <INTRO>. Verifique que ve :'<,'>w TEST antes de pulsar <INTRO>.
5. Vim escribir<69> las l<>neas seleccionadas en el archivo TEST. Utilice 5. Vim escribir<69> las l<>neas seleccionadas en el archivo TEST. Utilice
:!dir o :!ls para verlo. <20>No lo elimine todav<61>a! Lo utilizaremos :!dir o :!ls para verlo. <20>No lo elimine todav<61>a! Lo utilizaremos
@@ -759,7 +762,7 @@ NOTA: Tambi
---> Despu<70>s de pulsar o el cursor se sit<69>a en la l<>nea abierta en modo Insertar. ---> Despu<70>s de pulsar o el cursor se sit<69>a en la l<>nea abierta en modo Insertar.
4. Para abrir una l<>nea por ENCIMA del cursor, simplemente pulse una O 4. Para abrir una l<>nea por ENCIMA del cursor, simplemente pulse una O
may<61>scula, en lugar de una o min<69>scula. Pruebe este en la l<>nea siguiente. may<61>scula, en lugar de una o min<69>scula. Pruebe esto en la l<>nea siguiente.
---> Abra una l<>nea sobre esta pulsando O cuando el cursor est<73> en esta l<>nea. ---> Abra una l<>nea sobre esta pulsando O cuando el cursor est<73> en esta l<>nea.
@@ -893,7 +896,7 @@ NOTA: Si quiere ignorar las may
'hls' 'hlsearch' resalta todas las coincidencias de la frases 'hls' 'hlsearch' resalta todas las coincidencias de la frases
Puedes utilizar tanto los nombre largos o cortos de las opciones. Puedes utilizar tanto los nombre largos o cortos de las opciones.
7. A<>ade "no" para inhabilitar una opci<63>n: :set noic 7. A<>ada "no" para inhabilitar una opci<63>n: :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lecci<63>n 7: OBTENER AYUDA Lecci<63>n 7: OBTENER AYUDA

View File

@@ -91,7 +91,7 @@ NOTA: A medida que vaya avanzando en este tutor no intente memorizar,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lección 1.4: EDITAR TEXTO - BORRAR Lección 1.4: EDITAR TEXTO - INSERTAR
** Pulse i para insertar texto. ** ** Pulse i para insertar texto. **
@@ -248,9 +248,12 @@ Ahora continúe con la Lección 2.
Una lista resumida de movimientos: Una lista resumida de movimientos:
w - hasta el comienzo de la siguiente palabra, EXCLUYENDO su primer w - hasta el comienzo de la siguiente palabra, EXCLUYENDO su primer
carácter. carácter.
e - hasta el final de la palabra actual, INCLUYENDO su primer carácter. e - hasta el final de la palabra actual, INCLUYENDO el último carácter.
$ - hasta el final de la línea, INCLUYENDO el último carácter. $ - hasta el final de la línea, INCLUYENDO el último carácter.
Por tanto, al escribir de borrará desde la posición del cursor, hasta
el final de la palabra.
NOTA: Pulsando únicamente el movimiento estando en el modo Normal sin un NOTA: Pulsando únicamente el movimiento estando en el modo Normal sin un
operador, moverá el cursor como se especifica en la lista anterior. operador, moverá el cursor como se especifica en la lista anterior.
@@ -262,7 +265,7 @@ NOTA: Pulsando únicamente el movimiento estando en el modo Normal sin un
1. Mueva el cursor al comienzo de la línea marcada con --->. 1. Mueva el cursor al comienzo de la línea marcada con --->.
2. Escriba 2w para mover el cursor dos palabras hacia adelante. 2. Escriba 2w para mover el cursor dos palabras hacia adelante.
3. Escriba 3e para mover el cursor al final de la tercera palabra hacia 3. Escriba 3e para mover el cursor al final de la tercera palabra hacia
adelante. adelante.
@@ -271,7 +274,7 @@ NOTA: Pulsando únicamente el movimiento estando en el modo Normal sin un
5. Repita el paso 2 y 3 con diferentes números. 5. Repita el paso 2 y 3 con diferentes números.
---> Esto es solo una línea con palabra donde poder moverse. ---> Esto es solo una línea con palabras donde poder moverse.
6. Pase a la lección 2.5. 6. Pase a la lección 2.5.
@@ -288,15 +291,15 @@ NOTA: Pulsando únicamente el movimiento estando en el modo Normal sin un
anteriormente, añada un contador antes del movimiento para eliminar más: anteriormente, añada un contador antes del movimiento para eliminar más:
d número movimiento d número movimiento
1. Mueva el cursos a la primera palabra en MAYÚSCULAS en la línea 1. Mueva el cursor al inicio de la primera palabra en MAYÚSCULAS en la
marcada con --->. línea marcada con --->.
2. Escriba d2w para eliminar las dos palabras en MAYÚSCULAS. 2. Escriba d2w para eliminar las dos palabras en MAYÚSCULAS.
3. Repita los pasos 1 y 2 con diferentes contadores para eliminar 3. Repita los pasos 1 y 2 con diferentes contadores para eliminar
las siguientes palabras en MAYÚSCULAS con un comando. las siguientes palabras en MAYÚSCULAS con un comando.
---> esta ABC DE serie FGHI JK LMN OP de palabras ha sido Q RS TUV limpiada. ---> Esta ABC DE serie FGHI JK LMN OP de palabras ha sido Q RS TUV limpiada.
@@ -319,7 +322,7 @@ NOTA: Pulsando únicamente el movimiento estando en el modo Normal sin un
---> 1) Las rosas son rojas, ---> 1) Las rosas son rojas,
---> 2) El barro es divertido, ---> 2) El barro es divertido,
---> 3) Las violetas son azules, ---> 3) La violeta es azul,
---> 4) Tengo un coche, ---> 4) Tengo un coche,
---> 5) Los relojes dan la hora, ---> 5) Los relojes dan la hora,
---> 6) El azúcar es dulce ---> 6) El azúcar es dulce
@@ -362,7 +365,7 @@ mencionados anteriormente.
3. Para borrar desde el cursor hasta el final de una línea pulse: d$ 3. Para borrar desde el cursor hasta el final de una línea pulse: d$
4. Para borrar una línea entera pulse: dd 4. Para borrar una línea entera pulse: dd
5. Para repetir un movimiento precédalo con un número: 2w 5. Para repetir un movimiento anteponga un número: 2w
6. El formato para un comando de cambio es: 6. El formato para un comando de cambio es:
operador [número] movimiento operador [número] movimiento
donde: donde:
@@ -394,7 +397,7 @@ mencionados anteriormente.
5. Repita los pasos 2 a 4 para poner todas las líneas en el orden correcto. 5. Repita los pasos 2 a 4 para poner todas las líneas en el orden correcto.
---> d) ¿Puedes aprenderla tú? ---> d) ¿Puedes aprenderla tú?
---> b) Las violetas son azules, ---> b) La violeta es azul,
---> c) La inteligencia se aprende, ---> c) La inteligencia se aprende,
---> a) Las rosas son rojas, ---> a) Las rosas son rojas,
@@ -426,7 +429,7 @@ NOTA: Recuerde que debería aprender practicando.
Lección 3.3: EL COMANDO CAMBIAR Lección 3.3: EL COMANDO CAMBIAR
** Para cambiar hasta el final de una línea, escriba ce . ** ** Para cambiar hasta el final de una palabra, escriba ce . **
1. Mueva el cursor a la primera línea inferior marcada con --->. 1. Mueva el cursor a la primera línea inferior marcada con --->.
@@ -477,7 +480,7 @@ NOTA: Puede utilizar el retorno de carro para corregir errores mientras escribe.
escriba p . Esto pega el texto después del cursor (si se borró una escriba p . Esto pega el texto después del cursor (si se borró una
línea, al pegarla, esta se situará en la línea debajo del cursor). línea, al pegarla, esta se situará en la línea debajo del cursor).
2. Para sustituir el carácter bajo el cursor, pulse r y luego el 2. Para reemplazar el carácter bajo el cursor, pulse r y luego el
carácter que quiere que esté en ese lugar. carácter que quiere que esté en ese lugar.
3. El operador change le permite cambiar desde la posición del cursor 3. El operador change le permite cambiar desde la posición del cursor
@@ -585,11 +588,11 @@ NOTA: ¡Esto es muy útil en la detección de errores en un programa con
---> Laas mejores épocas para ver laas flores son laas primaveras. ---> Laas mejores épocas para ver laas flores son laas primaveras.
4. Para cambiar cada ocurrencia de la cadena de caracteres entre dos líneas, 4. Para cambiar cada ocurrencia de la cadena de caracteres entre dos líneas,
Pulse :#,#s/viejo/nuevo/g donde #,# son los números de línea del rango Escriba :#,#s/viejo/nuevo/g donde #,# son los números de línea del rango
de líneas donde se realizará la sustitución. de líneas donde se realizará la sustitución.
Pulse :%s/old/new/g para cambiar cada ocurrencia en todo el Escriba :%s/old/new/g para cambiar cada ocurrencia en todo el
archivo. archivo.
Pulse :%s/old/new/gc para encontrar cada ocurrencia en todo el Escriba :%s/old/new/gc para encontrar cada ocurrencia en todo el
archivo, pidiendo confirmación para archivo, pidiendo confirmación para
realizar la sustitución o no. realizar la sustitución o no.
@@ -602,19 +605,19 @@ NOTA: ¡Esto es muy útil en la detección de errores en un programa con
número G mueve el cursor a ese número de línea. número G mueve el cursor a ese número de línea.
gg mueve el cursor a la primera línea del archivo. gg mueve el cursor a la primera línea del archivo.
2. Pulsando / seguido de una frase busca la frase hacia ADELANTE. 2. Escribiendo / seguido de una frase busca la frase hacia ADELANTE.
Pulsando ? seguido de una frase busca la frase hacia ATRÁS. Escribiendo ? seguido de una frase busca la frase hacia ATRÁS.
Después de una búsqueda pulse n para encontrar la aparición Después de una búsqueda pulse n para encontrar la aparición
siguiente en la misma dirección o N para buscar en dirección opuesta. siguiente en la misma dirección o N para buscar en dirección opuesta.
3. Pulsando % cuando el cursor esta sobre (,), [,], { o } localiza 3. Pulsando % cuando el cursor esta sobre (,), [,], { o } localiza
la pareja correspondiente. la pareja correspondiente.
4. Para cambiar viejo en el primer nuevo en una línea pulse :s/viejo/nuevo 4. Para cambiar viejo en el primer nuevo en una línea escriba :s/viejo/nuevo
Para cambiar todos los viejo por nuevo en una línea pulse :s/viejo/nuevo/g Para cambiar todos los viejo por nuevo en una línea escriba :s/viejo/nuevo/g
Para cambiar frases entre dos números de líneas pulse :#,#s/viejo/nuevo/g Para cambiar frases entre dos números de líneas escriba :#,#s/viejo/nuevo/g
Para cambiar viejo por nuevo en todo el fichero pulse :%s/viejo/nuevo/g Para cambiar viejo por nuevo en todo el fichero escriba :%s/viejo/nuevo/g
Para pedir confirmación en cada caso añada 'c' :%s/viejo/nuevo/gc Para pedir confirmación en cada caso añada 'c' :%s/viejo/nuevo/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -631,7 +634,7 @@ NOTA: ¡Esto es muy útil en la detección de errores en un programa con
3. Como ejemplo escriba ls después del ! y luego pulse <INTRO>. Esto 3. Como ejemplo escriba ls después del ! y luego pulse <INTRO>. Esto
le mostrará una lista de su directorio, igual que si estuviera en el le mostrará una lista de su directorio, igual que si estuviera en el
símbolo del sistema. Si ls no funciona utilice !:dir . símbolo del sistema. Si ls no funciona utilice :!dir .
NOTA: De esta manera es posible ejecutar cualquier comando externo, NOTA: De esta manera es posible ejecutar cualquier comando externo,
también incluyendo argumentos. también incluyendo argumentos.
@@ -680,7 +683,7 @@ NOTA: Si saliera de Vim y volviera a entrar de nuevo con vim TEST , el
:'<,'> :'<,'>
4. Pulse w TEST , donde TEST es un nombre de archivo que aún no existe. 4. Pulse w TEST , donde TEST es un nombre de archivo que aún no existe.
Verifique que :'<,'>w TEST antes de pulsar <INTRO>. Verifique que ve :'<,'>w TEST antes de pulsar <INTRO>.
5. Vim escribirá las líneas seleccionadas en el archivo TEST. Utilice 5. Vim escribirá las líneas seleccionadas en el archivo TEST. Utilice
:!dir o :!ls para verlo. ¡No lo elimine todavía! Lo utilizaremos :!dir o :!ls para verlo. ¡No lo elimine todavía! Lo utilizaremos
@@ -759,7 +762,7 @@ NOTA: También puede leer la salida de un comando externo. Por ejemplo,
---> Después de pulsar o el cursor se sitúa en la línea abierta en modo Insertar. ---> Después de pulsar o el cursor se sitúa en la línea abierta en modo Insertar.
4. Para abrir una línea por ENCIMA del cursor, simplemente pulse una O 4. Para abrir una línea por ENCIMA del cursor, simplemente pulse una O
mayúscula, en lugar de una o minúscula. Pruebe este en la línea siguiente. mayúscula, en lugar de una o minúscula. Pruebe esto en la línea siguiente.
---> Abra una línea sobre esta pulsando O cuando el cursor está en esta línea. ---> Abra una línea sobre esta pulsando O cuando el cursor está en esta línea.
@@ -893,7 +896,7 @@ NOTA: Si quiere ignorar las mayúsculas y minúsculas, solo para un comando
'hls' 'hlsearch' resalta todas las coincidencias de la frases 'hls' 'hlsearch' resalta todas las coincidencias de la frases
Puedes utilizar tanto los nombre largos o cortos de las opciones. Puedes utilizar tanto los nombre largos o cortos de las opciones.
7. Añade "no" para inhabilitar una opción: :set noic 7. Añada "no" para inhabilitar una opción: :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lección 7: OBTENER AYUDA Lección 7: OBTENER AYUDA