mirror of
https://github.com/zoriya/vim.git
synced 2025-12-27 01:18:14 +00:00
Compare commits
124 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4064e24a0f | ||
|
|
0858917e43 | ||
|
|
4de6a212f9 | ||
|
|
47b8342abd | ||
|
|
251835e14f | ||
|
|
26df092843 | ||
|
|
581966e832 | ||
|
|
f30caaf08d | ||
|
|
a2aa31a926 | ||
|
|
7d311c52ce | ||
|
|
b1d90a3d77 | ||
|
|
631abc35df | ||
|
|
9feaf6206f | ||
|
|
c86438205b | ||
|
|
45e2bcc275 | ||
|
|
06811f33ce | ||
|
|
403b3cf0a1 | ||
|
|
0e4eebd425 | ||
|
|
f92d8a254a | ||
|
|
92dff1827a | ||
|
|
b8e2305656 | ||
|
|
2d5f38ff10 | ||
|
|
cd981f2e0f | ||
|
|
3b5226121d | ||
|
|
12a0f22340 | ||
|
|
4d504a3e11 | ||
|
|
0a36fece92 | ||
|
|
c467d9b274 | ||
|
|
10395d8d6c | ||
|
|
a1a118b159 | ||
|
|
4f943c09a5 | ||
|
|
f31ecce97e | ||
|
|
767568846b | ||
|
|
dd415a6c5a | ||
|
|
f50eb7882e | ||
|
|
09edc46d01 | ||
|
|
4315f26500 | ||
|
|
fcc3f46735 | ||
|
|
361aa50547 | ||
|
|
8af269186c | ||
|
|
b4d587cbd9 | ||
|
|
4a36bcf0d8 | ||
|
|
8d04317104 | ||
|
|
ac8400d483 | ||
|
|
8822a9c367 | ||
|
|
5395e7afe9 | ||
|
|
1028f4d75e | ||
|
|
063a46ba77 | ||
|
|
14177b77bf | ||
|
|
6d977d6c1c | ||
|
|
ca058dc71f | ||
|
|
6cd3aeee4c | ||
|
|
2cd3696c35 | ||
|
|
32b9201f37 | ||
|
|
9d1685d1cf | ||
|
|
e21b6b2a8d | ||
|
|
b0d5c96133 | ||
|
|
78cf3f0de9 | ||
|
|
a02471e295 | ||
|
|
bd2dc34774 | ||
|
|
4ea924e0a5 | ||
|
|
3a69e1135e | ||
|
|
b1cb35f785 | ||
|
|
438f67a004 | ||
|
|
2fda301469 | ||
|
|
5ec8305ea8 | ||
|
|
5f4c8406a2 | ||
|
|
3f1138e8ae | ||
|
|
4b550b4c50 | ||
|
|
dedd1b0aba | ||
|
|
0bd7b3f4ce | ||
|
|
959a143f2e | ||
|
|
207fd75cac | ||
|
|
7c0daf088e | ||
|
|
36c85b2c46 | ||
|
|
dfb18411cf | ||
|
|
175d0704df | ||
|
|
2cc8738f2f | ||
|
|
c8020ee825 | ||
|
|
910cffbb5e | ||
|
|
893b2d73d1 | ||
|
|
fcf94d3990 | ||
|
|
4ffa07081f | ||
|
|
1d633413e5 | ||
|
|
6b10721fa2 | ||
|
|
7ba0741451 | ||
|
|
b011af9696 | ||
|
|
5d7f9df8fa | ||
|
|
73c61633b6 | ||
|
|
b050c64186 | ||
|
|
c2401d62e0 | ||
|
|
ba2d44f338 | ||
|
|
b95186fd36 | ||
|
|
34b466edfe | ||
|
|
9fee7d4729 | ||
|
|
e88a5f3a2c | ||
|
|
dff54ac7e8 | ||
|
|
174a848b67 | ||
|
|
3678208477 | ||
|
|
c62a644eaf | ||
|
|
ace8d8ee2f | ||
|
|
438ee5bf60 | ||
|
|
272fb58236 | ||
|
|
cafaa8a950 | ||
|
|
d07c6e1e82 | ||
|
|
1e42f7ac16 | ||
|
|
ffa2220950 | ||
|
|
49b10273f0 | ||
|
|
49b6a57d19 | ||
|
|
9421bdc2cd | ||
|
|
4b60a6cdb3 | ||
|
|
2593e037c9 | ||
|
|
e874744e94 | ||
|
|
8f5610df73 | ||
|
|
0671de335f | ||
|
|
cc63c647ee | ||
|
|
efe06f4dd8 | ||
|
|
0f8de8dfb2 | ||
|
|
3f75e422be | ||
|
|
d6b8a5253b | ||
|
|
a939e43440 | ||
|
|
8e69b4a319 | ||
|
|
45d3b1454c | ||
|
|
815135e408 |
9
.gitignore
vendored
9
.gitignore
vendored
@@ -36,6 +36,15 @@ src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
|
||||
# Borland C++
|
||||
bcc.cfg
|
||||
*.ilc
|
||||
*.ild
|
||||
*.ilf
|
||||
*.ils
|
||||
*.map
|
||||
*.tds
|
||||
|
||||
# Mac OSX
|
||||
src/xxd/xxd.dSYM
|
||||
|
||||
|
||||
1
Filelist
1
Filelist
@@ -80,6 +80,7 @@ SRC_ALL = \
|
||||
src/main.aap \
|
||||
src/testdir/main.aap \
|
||||
src/testdir/*.in \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test60.vim \
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" ---------------------------------------------------------------------
|
||||
" getscript.vim
|
||||
" Author: Charles E. Campbell
|
||||
" Date: Apr 17, 2013
|
||||
" Version: 35
|
||||
" Date: Jan 21, 2014
|
||||
" Version: 36
|
||||
" Installing: :help glvs-install
|
||||
" Usage: :help glvs
|
||||
"
|
||||
@@ -15,7 +15,7 @@
|
||||
if exists("g:loaded_getscript")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_getscript= "v35"
|
||||
let g:loaded_getscript= "v36"
|
||||
if &cp
|
||||
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
|
||||
finish
|
||||
@@ -208,8 +208,8 @@ fun! getscript#GetLatestVimScripts()
|
||||
let lastline = line("$")
|
||||
" call Decho("lastline#".lastline)
|
||||
let firstdir = substitute(&rtp,',.*$','','')
|
||||
let plugins = split(globpath(firstdir,"plugin/*.vim"),'\n')
|
||||
let plugins = plugins + split(globpath(firstdir,"AsNeeded/*.vim"),'\n')
|
||||
let plugins = split(globpath(firstdir,"plugin/**/*.vim"),'\n')
|
||||
let plugins = plugins + split(globpath(firstdir,"AsNeeded/**/*.vim"),'\n')
|
||||
let foundscript = 0
|
||||
|
||||
" this loop updates the GetLatestVimScripts.dat file
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
" netrwSettings.vim: makes netrw settings simpler
|
||||
" Date: May 03, 2013
|
||||
" Date: Aug 27, 2013
|
||||
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
|
||||
" Version: 14a ASTRO-ONLY
|
||||
" Version: 14
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
@@ -19,7 +19,7 @@
|
||||
if exists("g:loaded_netrwSettings") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwSettings = "v14a"
|
||||
let g:loaded_netrwSettings = "v14"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||
@@ -98,6 +98,11 @@ fun! netrwSettings#NetrwSettings()
|
||||
|
||||
put = ''
|
||||
put ='+ Netrw Browser Control'
|
||||
if exists("g:netrw_altfile")
|
||||
put = 'let g:netrw_altfile = '.g:netrw_altfile
|
||||
else
|
||||
put = 'let g:netrw_altfile = 0'
|
||||
endif
|
||||
put = 'let g:netrw_alto = '.g:netrw_alto
|
||||
put = 'let g:netrw_altv = '.g:netrw_altv
|
||||
put = 'let g:netrw_banner = '.g:netrw_banner
|
||||
|
||||
71
runtime/autoload/netrw_gitignore.vim
Normal file
71
runtime/autoload/netrw_gitignore.vim
Normal file
@@ -0,0 +1,71 @@
|
||||
" netrw_gitignore#Hide: gitignore-based hiding
|
||||
" Function returns a string of comma separated patterns convenient for
|
||||
" assignment to `g:netrw_list_hide` option.
|
||||
" Function can take additional filenames as arguments, example:
|
||||
" netrw_gitignore#Hide('custom_gitignore1', 'custom_gitignore2')
|
||||
"
|
||||
" Usage examples:
|
||||
" let g:netrw_list_hide = netrw_gitignore#Hide()
|
||||
" let g:netrw_list_hide = netrw_gitignore#Hide() . 'more,hide,patterns'
|
||||
"
|
||||
" Copyright: Copyright (C) 2013 Bruno Sutic {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
" netrw_gitignore.vim is provided *as is* and comes with no
|
||||
" warranty of any kind, either expressed or implied. By using
|
||||
" this plugin, you agree that in no event will the copyright
|
||||
" holder be liable for any damages resulting from the use
|
||||
" of this software.
|
||||
function! netrw_gitignore#Hide(...)
|
||||
let additional_files = a:000
|
||||
|
||||
let default_files = ['.gitignore', '.git/info/exclude']
|
||||
|
||||
" get existing global/system gitignore files
|
||||
let global_gitignore = expand(substitute(system("git config --global core.excludesfile"), '\n', '', 'g'))
|
||||
if global_gitignore !=# ''
|
||||
let default_files = add(default_files, global_gitignore)
|
||||
endif
|
||||
let system_gitignore = expand(substitute(system("git config --system core.excludesfile"), '\n', '', 'g'))
|
||||
if system_gitignore !=# ''
|
||||
let default_files = add(default_files, system_gitignore)
|
||||
endif
|
||||
|
||||
" append additional files if given as function arguments
|
||||
if additional_files !=# []
|
||||
let files = extend(default_files, additional_files)
|
||||
else
|
||||
let files = default_files
|
||||
endif
|
||||
|
||||
" keep only existing/readable files
|
||||
let gitignore_files = []
|
||||
for file in files
|
||||
if filereadable(file)
|
||||
let gitignore_files = add(gitignore_files, file)
|
||||
endif
|
||||
endfor
|
||||
|
||||
" get contents of gitignore patterns from those files
|
||||
let gitignore_lines = []
|
||||
for file in gitignore_files
|
||||
for line in readfile(file)
|
||||
" filter empty lines and comments
|
||||
if line !~# '^#' && line !~# '^$'
|
||||
let gitignore_lines = add(gitignore_lines, line)
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
|
||||
" convert gitignore patterns to Netrw/Vim regex patterns
|
||||
let escaped_lines = []
|
||||
for line in gitignore_lines
|
||||
let escaped = line
|
||||
let escaped = substitute(escaped, '\.', '\\.', 'g')
|
||||
let escaped = substitute(escaped, '*', '.*', 'g')
|
||||
let escaped_lines = add(escaped_lines, escaped)
|
||||
endfor
|
||||
|
||||
return join(escaped_lines, ',')
|
||||
endfunction
|
||||
@@ -36,6 +36,14 @@ Some attributes (e.g., bold) might be set in the defaults that you want
|
||||
removed in your color scheme. Use something like "gui=NONE" to remove the
|
||||
attributes.
|
||||
|
||||
In case you want to set 'background' depending on the colorscheme selected,
|
||||
this autocmd might be useful:
|
||||
autocmd SourcePre */colors/blue_sky.vim set background=dark
|
||||
Replace "blue_sky" with the name of the colorscheme.
|
||||
|
||||
In case you want to tweak a colorscheme after it was loaded, check out that
|
||||
ColorScheme autocmd event.
|
||||
|
||||
To see which highlight group is used where, find the help for
|
||||
"highlight-groups" and "group-name".
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ CompilerSet errorformat=
|
||||
\%f:%l:\ %tarning:\ %m,
|
||||
\%f:%l:\ %m,
|
||||
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f',
|
||||
\%D%*\\a:\ Entering\ directory\ [`']%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ [`']%f',
|
||||
\%DMaking\ %*\\a\ in\ %f
|
||||
|
||||
if exists('g:compiler_gcc_ignore_unmatched_lines')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2013 Aug 04
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2014 Jan 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -304,6 +304,9 @@ Name triggered by ~
|
||||
|InsertCharPre| when a character was typed in Insert mode, before
|
||||
inserting it
|
||||
|
||||
|TextChanged| after a change was made to the text in Normal mode
|
||||
|TextChangedI| after a change was made to the text in Insert mode
|
||||
|
||||
|ColorScheme| after loading a color scheme
|
||||
|
||||
|RemoteReply| a reply from a server Vim was received
|
||||
@@ -480,6 +483,12 @@ CmdwinLeave Before leaving the command-line window.
|
||||
|cmdwin-char|
|
||||
*ColorScheme*
|
||||
ColorScheme After loading a color scheme. |:colorscheme|
|
||||
The pattern is matched against the
|
||||
colorscheme name. <afile> can be used for the
|
||||
name of the actual file where this option was
|
||||
set, and <amatch> for the new colorscheme
|
||||
name.
|
||||
|
||||
|
||||
*CompleteDone*
|
||||
CompleteDone After Insert mode completion is done. Either
|
||||
@@ -553,6 +562,9 @@ FileChangedRO Before making the first change to a read-only
|
||||
It is not allowed to change to another buffer
|
||||
here. You can reload the buffer but not edit
|
||||
another one.
|
||||
*E881*
|
||||
If the number of lines changes saving for undo
|
||||
may fail and the change will be aborted.
|
||||
*FileChangedShell*
|
||||
FileChangedShell When Vim notices that the modification time of
|
||||
a file has changed since editing started.
|
||||
@@ -731,7 +743,7 @@ QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
|
||||
command is run, before jumping to the first
|
||||
location. For |:cfile| and |:lfile| commands
|
||||
it is run after error file is read and before
|
||||
moving to the first error.
|
||||
moving to the first error.
|
||||
See |QuickFixCmdPost-example|.
|
||||
*QuitPre*
|
||||
QuitPre When using `:quit`, `:wq` or `:qall`, before
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 7.4. Last change: 2013 Aug 25
|
||||
*change.txt* For Vim version 7.4. Last change: 2014 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -156,6 +156,9 @@ only after a '.').
|
||||
The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting
|
||||
spaces before and after a multi-byte character |fo-table|.
|
||||
|
||||
The '[ mark is set at the end of the first line that was joined, '] at the end
|
||||
of the resulting line.
|
||||
|
||||
|
||||
==============================================================================
|
||||
2. Delete and insert *delete-insert* *replacing*
|
||||
@@ -475,8 +478,8 @@ If the 'shiftround' option is on, the indent is rounded to a multiple of
|
||||
'shiftwidth'.
|
||||
|
||||
If the 'smartindent' option is on, or 'cindent' is on and 'cinkeys' contains
|
||||
'#', shift right does not affect lines starting with '#' (these are supposed
|
||||
to be C preprocessor lines that must stay in column 1).
|
||||
'#' with a zero value, shift right does not affect lines starting with '#'
|
||||
(these are supposed to be C preprocessor lines that must stay in column 1).
|
||||
|
||||
When the 'expandtab' option is off (this is the default) Vim uses <Tab>s as
|
||||
much as possible to make the indent. You can use ">><<" to replace an indent
|
||||
@@ -824,7 +827,7 @@ either the first or second pattern in parentheses did not match, so either
|
||||
<
|
||||
|
||||
Substitute with an expression *sub-replace-expression*
|
||||
*sub-replace-\=*
|
||||
*sub-replace-\=* *s/\=*
|
||||
When the substitute string starts with "\=" the remainder is interpreted as an
|
||||
expression. This does not work recursively: a |substitute()| function inside
|
||||
the expression cannot use "\=" for the substitute string.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2013 Mar 16
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2014 Feb 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -356,6 +356,10 @@ terminals)
|
||||
List the recent five entries from all histories: >
|
||||
:history all -5,
|
||||
|
||||
:keepp[atterns] {command} *:keepp* *:keeppatterns*
|
||||
Execute {command}, without adding anything to the search
|
||||
history
|
||||
|
||||
==============================================================================
|
||||
2. Command-line completion *cmdline-completion*
|
||||
|
||||
@@ -754,6 +758,7 @@ characters have a special meaning. These can also be used in the expression
|
||||
function expand() |expand()|.
|
||||
% Is replaced with the current file name. *:_%* *c_%*
|
||||
# Is replaced with the alternate file name. *:_#* *c_#*
|
||||
This is remembered for every window.
|
||||
#n (where n is a number) is replaced with *:_#0* *:_#n*
|
||||
the file name of buffer n. "#0" is the same as "#". *c_#n*
|
||||
## Is replaced with all names in the argument list *:_##* *c_##*
|
||||
@@ -819,8 +824,8 @@ Note: these are typed literally, they are not special keys!
|
||||
the start of the function.
|
||||
|
||||
*filename-modifiers*
|
||||
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs*
|
||||
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs*
|
||||
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S*
|
||||
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S*
|
||||
The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>",
|
||||
"<afile>" or "<abuf>". They are also used with the |fnamemodify()| function.
|
||||
These are not available when Vim has been compiled without the |+modify_fname|
|
||||
@@ -875,6 +880,10 @@ These modifiers can be given, in this order:
|
||||
:gs?pat?sub?
|
||||
Substitute all occurrences of "pat" with "sub". Otherwise
|
||||
this works like ":s".
|
||||
:S Escape special characters for use with a shell command (see
|
||||
|shellescape()|). Must be the last one. Examples: >
|
||||
:!dir <cfile>:S
|
||||
:call system('chmod +w -- ' . expand('%:S'))
|
||||
|
||||
Examples, when the file name is "src/version.c", current dir
|
||||
"/home/mool/vim": >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 7.4. Last change: 2011 Jan 15
|
||||
*digraph.txt* For Vim version 7.4. Last change: 2013 Dec 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -147,7 +147,7 @@ a standard meaning:
|
||||
Two 2 Hook
|
||||
Nine 9 Horn
|
||||
|
||||
Equals = Cyrillic
|
||||
Equals = Cyrillic (= used as second char)
|
||||
Asterisk * Greek
|
||||
Percent sign % Greek/Cyrillic special
|
||||
Plus + smalls: Arabic, capitals: Hebrew
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*editing.txt* For Vim version 7.4. Last change: 2013 Nov 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,6 +38,7 @@ If there already was a current file name, then that one becomes the alternate
|
||||
file name. It can be used with "#" on the command line |:_#| and you can use
|
||||
the |CTRL-^| command to toggle between the current and the alternate file.
|
||||
However, the alternate file name is not changed when |:keepalt| is used.
|
||||
An alternate file name is remembered for each window.
|
||||
|
||||
*:keepalt* *:keepa*
|
||||
:keepalt {cmd} Execute {cmd} while keeping the current alternate file
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 7.4. Last change: 2013 Nov 02
|
||||
*eval.txt* For Vim version 7.4. Last change: 2014 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1519,6 +1519,7 @@ v:oldfiles List of file names that is loaded from the |viminfo| file on
|
||||
startup. These are the files that Vim remembers marks for.
|
||||
The length of the List is limited by the ' argument of the
|
||||
'viminfo' option (default is 100).
|
||||
When the |viminfo| file is not used the List is empty.
|
||||
Also see |:oldfiles| and |c_#<|.
|
||||
The List can be modified, but this has no effect on what is
|
||||
stored in the |viminfo| file later. If you use values other
|
||||
@@ -1744,7 +1745,7 @@ cscope_connection( [{num} , {dbpath} [, {prepend}]])
|
||||
cursor( {lnum}, {col} [, {coladd}])
|
||||
Number move cursor to {lnum}, {col}, {coladd}
|
||||
cursor( {list}) Number move cursor to position in {list}
|
||||
deepcopy( {expr}) any make a full copy of {expr}
|
||||
deepcopy( {expr} [, {noref}]) any make a full copy of {expr}
|
||||
delete( {fname}) Number delete file {fname}
|
||||
did_filetype() Number TRUE if FileType autocommand event used
|
||||
diff_filler( {lnum}) Number diff filler lines about {lnum}
|
||||
@@ -3200,7 +3201,7 @@ getchar([expr]) *getchar()*
|
||||
If [expr] is 1, only check if a character is available, it is
|
||||
not consumed. Return zero if no character available.
|
||||
|
||||
Without {expr} and when {expr} is 0 a whole character or
|
||||
Without [expr] and when [expr] is 0 a whole character or
|
||||
special key is returned. If it is an 8-bit character, the
|
||||
result is a number. Use nr2char() to convert it to a String.
|
||||
Otherwise a String is returned with the encoded character.
|
||||
@@ -3210,7 +3211,7 @@ getchar([expr]) *getchar()*
|
||||
String when a modifier (shift, control, alt) was used that is
|
||||
not included in the character.
|
||||
|
||||
When {expr} is 1 only the first byte is returned. For a
|
||||
When [expr] is 1 only the first byte is returned. For a
|
||||
one-byte character it is the character itself as a number.
|
||||
Use nr2char() to convert it to a String.
|
||||
|
||||
@@ -3460,7 +3461,7 @@ getregtype([{regname}]) *getregtype()*
|
||||
"v" for |characterwise| text
|
||||
"V" for |linewise| text
|
||||
"<CTRL-V>{width}" for |blockwise-visual| text
|
||||
0 for an empty or unknown register
|
||||
"" for an empty or unknown register
|
||||
<CTRL-V> is one character with value 0x16.
|
||||
If {regname} is not specified, |v:register| is used.
|
||||
|
||||
@@ -4134,6 +4135,8 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
||||
(|mapmode-ic|)
|
||||
"sid" The script local ID, used for <sid> mappings
|
||||
(|<SID>|).
|
||||
"nowait" Do not wait for other, longer mappings.
|
||||
(|:map-<nowait>|).
|
||||
|
||||
The mappings local to the current buffer are checked first,
|
||||
then the global mappings.
|
||||
@@ -4235,6 +4238,9 @@ matchadd({group}, {pattern}[, {priority}[, {id}]])
|
||||
"match"). It will be highlighted with {group}. Returns an
|
||||
identification number (ID), which can be used to delete the
|
||||
match using |matchdelete()|.
|
||||
Matching is case sensitive and magic, unless case sensitivity
|
||||
or magicness are explicitly overridden in {pattern}. The
|
||||
'magic', 'smartcase' and 'ignorecase' options are not used.
|
||||
|
||||
The optional {priority} argument assigns a priority to the
|
||||
match. A match with a high priority will have its
|
||||
@@ -4444,6 +4450,9 @@ getpos({expr}) Get the position for {expr}. For possible values of {expr}
|
||||
it is the offset in screen columns from the start of the
|
||||
character. E.g., a position within a <Tab> or after the last
|
||||
character.
|
||||
Note that for '< and '> Visual mode matters: when it is "V"
|
||||
(visual line mode) the column of '< is zero and the column of
|
||||
'> is a large number.
|
||||
This can be used to save and restore the cursor position: >
|
||||
let save_cursor = getpos(".")
|
||||
MoveTheCursorAround
|
||||
@@ -5267,6 +5276,10 @@ setpos({expr}, {list})
|
||||
character. E.g., a position within a <Tab> or after the last
|
||||
character.
|
||||
|
||||
Note that for '< and '> changing the line number may result in
|
||||
the marks to be effectively be swapped, so that '< is always
|
||||
before '>.
|
||||
|
||||
Returns 0 when the position could be set, -1 otherwise.
|
||||
An error message is given if {expr} is invalid.
|
||||
|
||||
@@ -5415,6 +5428,7 @@ shellescape({string} [, {special}]) *shellescape()*
|
||||
< This results in a directory listing for the file under the
|
||||
cursor. Example of use with |system()|: >
|
||||
:call system("chmod +w -- " . shellescape(expand("%")))
|
||||
< See also |::S|.
|
||||
|
||||
|
||||
shiftwidth() *shiftwidth()*
|
||||
@@ -5629,7 +5643,7 @@ strchars({expr}) *strchars()*
|
||||
|
||||
strdisplaywidth({expr}[, {col}]) *strdisplaywidth()*
|
||||
The result is a Number, which is the number of display cells
|
||||
String {expr} occupies on the screen.
|
||||
String {expr} occupies on the screen when it starts a {col}.
|
||||
When {col} is omitted zero is used. Otherwise it is the
|
||||
screen column where to start. This matters for Tab
|
||||
characters.
|
||||
@@ -5897,14 +5911,16 @@ system({expr} [, {input}]) *system()* *E677*
|
||||
passed as stdin to the command. The string is written as-is,
|
||||
you need to take care of using the correct line separators
|
||||
yourself. Pipes are not used.
|
||||
Note: Use |shellescape()| to escape special characters in a
|
||||
command argument. Newlines in {expr} may cause the command to
|
||||
fail. The characters in 'shellquote' and 'shellxquote' may
|
||||
also cause trouble.
|
||||
Note: Use |shellescape()| or |::S| with |expand()| or
|
||||
|fnamemodify()| to escape special characters in a command
|
||||
argument. Newlines in {expr} may cause the command to fail.
|
||||
The characters in 'shellquote' and 'shellxquote' may also
|
||||
cause trouble.
|
||||
This is not to be used for interactive commands.
|
||||
|
||||
The result is a String. Example: >
|
||||
:let files = system("ls " . shellescape(expand('%:h')))
|
||||
:let files = system('ls ' . expand('%:h:S'))
|
||||
|
||||
< To make the result more system-independent, the shell output
|
||||
is filtered to replace <CR> with <NL> for Macintosh, and
|
||||
@@ -6627,7 +6643,7 @@ See |:verbose-cmd| for more information.
|
||||
|
||||
For the {arguments} see |function-argument|.
|
||||
|
||||
*a:firstline* *a:lastline*
|
||||
*:func-range* *a:firstline* *a:lastline*
|
||||
When the [range] argument is added, the function is
|
||||
expected to take care of a range itself. The range is
|
||||
passed as "a:firstline" and "a:lastline". If [range]
|
||||
@@ -6636,10 +6652,10 @@ See |:verbose-cmd| for more information.
|
||||
of each line. See |function-range-example|.
|
||||
The cursor is still moved to the first line of the
|
||||
range, as is the case with all Ex commands.
|
||||
|
||||
*:func-abort*
|
||||
When the [abort] argument is added, the function will
|
||||
abort as soon as an error is detected.
|
||||
|
||||
*:func-dict*
|
||||
When the [dict] argument is added, the function must
|
||||
be invoked through an entry in a |Dictionary|. The
|
||||
local variable "self" will then be set to the
|
||||
@@ -7444,7 +7460,7 @@ This does NOT work: >
|
||||
for Vim commands, |shellescape()| for |:!| commands.
|
||||
Examples: >
|
||||
:execute "e " . fnameescape(filename)
|
||||
:execute "!ls " . shellescape(expand('%:h'), 1)
|
||||
:execute "!ls " . shellescape(filename, 1)
|
||||
<
|
||||
Note: The executed string may be any command-line, but
|
||||
you cannot start or end a "while", "for" or "if"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 7.4. Last change: 2013 May 25
|
||||
*filetype.txt* For Vim version 7.4. Last change: 2013 Dec 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -447,23 +447,25 @@ g:changelog_new_date_format
|
||||
%% insert a single '%' character
|
||||
%d insert the date from above
|
||||
%u insert the user from above
|
||||
%p insert result of b:changelog_entry_prefix
|
||||
%c where to position cursor when done
|
||||
The default is "%d %u\n\n\t* %c\n\n", which produces
|
||||
The default is "%d %u\n\n\t* %p%c\n\n", which produces
|
||||
something like (| is where cursor will be, unless at
|
||||
the start of the line where it denotes the beginning
|
||||
of the line) >
|
||||
|2003-01-14 Full Name <user@host>
|
||||
|
|
||||
| * |
|
||||
| * prefix|
|
||||
<
|
||||
g:changelog_new_entry_format
|
||||
The format used when creating a new entry.
|
||||
The following table describes special tokens in the
|
||||
string:
|
||||
%p insert result of b:changelog_entry_prefix
|
||||
%c where to position cursor when done
|
||||
The default is "\t*%c", which produces something
|
||||
similar to >
|
||||
| * |
|
||||
| * prefix|
|
||||
<
|
||||
g:changelog_date_entry_search
|
||||
The search pattern to use when searching for a
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 7.4. Last change: 2010 May 13
|
||||
*fold.txt* For Vim version 7.4. Last change: 2013 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -285,9 +285,10 @@ zF Create a fold for [count] lines. Works like "zf".
|
||||
*zd* *E351*
|
||||
zd Delete one fold at the cursor. When the cursor is on a folded
|
||||
line, that fold is deleted. Nested folds are moved one level
|
||||
up. In Visual mode all folds (partially) in the selected area
|
||||
are deleted. Careful: This easily deletes more folds than you
|
||||
expect and there is no undo.
|
||||
up. In Visual mode one level of all folds (partially) in the
|
||||
selected area are deleted.
|
||||
Careful: This easily deletes more folds than you expect and
|
||||
there is no undo for manual folding.
|
||||
This only works when 'foldmethod' is "manual" or "marker".
|
||||
Also see |fold-delete-marker|.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 7.4. Last change: 2013 Jun 12
|
||||
*gui.txt* For Vim version 7.4. Last change: 2014 Mar 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -133,6 +133,7 @@ task bar with the 'guiheadroom' option.
|
||||
:winp[os]
|
||||
Display current position of the top left corner of the GUI vim
|
||||
window in pixels. Does not work in all versions.
|
||||
Also see |getwinposx()| and |getwinposy()|.
|
||||
|
||||
:winp[os] {X} {Y} *E466*
|
||||
Put the GUI vim window at the given {X} and {Y} coordinates.
|
||||
@@ -151,8 +152,11 @@ task bar with the 'guiheadroom' option.
|
||||
option.
|
||||
|
||||
If you are running the X Window System, you can get information about the
|
||||
window Vim is running in with this command: >
|
||||
window Vim is running in with these commands: >
|
||||
:!xwininfo -id $WINDOWID
|
||||
:!xprop -id $WINDOWID
|
||||
:execute '!xwininfo -id ' . v:windowid
|
||||
:execute '!xprop -id ' . v:windowid
|
||||
<
|
||||
*gui-IME* *iBus*
|
||||
Input methods for international characters in X that rely on the XIM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui_x11.txt* For Vim version 7.4. Last change: 2011 Sep 14
|
||||
*gui_x11.txt* For Vim version 7.4. Last change: 2014 Mar 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -442,7 +442,7 @@ command line argument).
|
||||
*gui-x11-kde*
|
||||
There is no KDE version of Vim. There has been some work on a port using the
|
||||
Qt toolkit, but it never worked properly and it has been abandoned. Work
|
||||
continues on Yzis: www.yzis.org.
|
||||
continues on Yzis: https://github.com/chrizel/Yzis.
|
||||
|
||||
==============================================================================
|
||||
8. Compiling *gui-x11-compiling*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*indent.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*indent.txt* For Vim version 7.4. Last change: 2013 Nov 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -598,7 +598,6 @@ without limits.
|
||||
" Default
|
||||
let g:clojure_maxlines = 100
|
||||
<
|
||||
|
||||
*g:clojure_fuzzy_indent*
|
||||
*g:clojure_fuzzy_indent_patterns*
|
||||
*g:clojure_fuzzy_indent_blacklist*
|
||||
@@ -652,7 +651,6 @@ default list below.
|
||||
let g:clojure_special_indent_words =
|
||||
\ 'deftype,defrecord,reify,proxy,extend-type,extend-protocol,letfn'
|
||||
<
|
||||
|
||||
*g:clojure_align_multiline_strings*
|
||||
|
||||
Align subsequent lines in multiline strings to the column after the opening
|
||||
@@ -677,6 +675,28 @@ This option is off by default.
|
||||
" Default
|
||||
let g:clojure_align_multiline_strings = 0
|
||||
<
|
||||
*g:clojure_align_subforms*
|
||||
|
||||
By default, parenthesized compound forms that look like function calls and
|
||||
whose head subform is on its own line have subsequent subforms indented by
|
||||
two spaces relative to the opening paren:
|
||||
>
|
||||
(foo
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
Setting this option changes this behavior so that all subforms are aligned to
|
||||
the same column:
|
||||
>
|
||||
(foo
|
||||
bar
|
||||
baz)
|
||||
<
|
||||
This option is off by default.
|
||||
>
|
||||
" Default
|
||||
let g:clojure_align_subforms = 0
|
||||
<
|
||||
|
||||
|
||||
FORTRAN *ft-fortran-indent*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 7.4. Last change: 2013 Oct 01
|
||||
*index.txt* For Vim version 7.4. Last change: 2013 Nov 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1275,6 +1275,7 @@ tag command action ~
|
||||
|:keepalt| :keepa[lt] following command keeps the alternate file
|
||||
|:keepmarks| :kee[pmarks] following command keeps marks where they are
|
||||
|:keepjumps| :keepj[umps] following command keeps jumplist and marks
|
||||
|:keeppatterns| :keepp[atterns] following command keeps search pattern history
|
||||
|:lNext| :lN[ext] go to previous entry in location list
|
||||
|:lNfile| :lNf[ile] go to last entry in previous file
|
||||
|:list| :l[ist] print lines
|
||||
|
||||
@@ -593,7 +593,7 @@ illogical when compared to other commands.
|
||||
When you have a mapping that contains an Ex command, you need to put a line
|
||||
terminator after it to have it executed. The use of <CR> is recommended for
|
||||
this (see |<>|). Example: >
|
||||
:map _ls :!ls -l %<CR>:echo "the end"<CR>
|
||||
:map _ls :!ls -l %:S<CR>:echo "the end"<CR>
|
||||
|
||||
To avoid mapping of the characters you type in insert or Command-line mode,
|
||||
type a CTRL-V first. The mapping in Insert mode is disabled if the 'paste'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 7.4. Last change: 2013 Jul 17
|
||||
*motion.txt* For Vim version 7.4. Last change: 2014 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -343,7 +343,7 @@ gg Goto line [count], default first line, on the first
|
||||
See also 'startofline' option. {not in Vi}
|
||||
|
||||
:[range]go[to] [count] *:go* *:goto* *go*
|
||||
[count]go Go to {count} byte in the buffer. Default [count] is
|
||||
[count]go Go to [count] byte in the buffer. Default [count] is
|
||||
one, start of the file. When giving [range], the
|
||||
last number in it used as the byte count. End-of-line
|
||||
characters are counted depending on the current
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
*options.txt* For Vim version 7.4. Last change: 2013 Dec 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -987,7 +987,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'backupdir'* *'bdir'*
|
||||
'backupdir' 'bdir' string (default for Amiga: ".,t:",
|
||||
for MS-DOS and Win32: ".,c:/tmp,c:/temp"
|
||||
for MS-DOS and Win32: ".,$TEMP,c:/tmp,c:/temp"
|
||||
for Unix: ".,~/tmp,~/")
|
||||
global
|
||||
{not in Vi}
|
||||
@@ -2477,7 +2477,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'directory'* *'dir'*
|
||||
'directory' 'dir' string (default for Amiga: ".,t:",
|
||||
for MS-DOS and Win32: ".,c:\tmp,c:\temp"
|
||||
for MS-DOS and Win32: ".,$TEMP,c:\tmp,c:\temp"
|
||||
for Unix: ".,~/tmp,/var/tmp,/tmp")
|
||||
global
|
||||
List of directory names for the swap file, separated with commas.
|
||||
@@ -4757,8 +4757,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global or local to buffer |global-local|
|
||||
{not in Vi}
|
||||
Program to use for the ":make" command. See |:make_makeprg|.
|
||||
This option may contain '%' and '#' characters, which are expanded to
|
||||
the current and alternate file name. |:_%| |:_#|
|
||||
This option may contain '%' and '#' characters (see |:_%| and |:_#|),
|
||||
which are expanded to the current and alternate file name. Use |::S|
|
||||
to escape file names in case they contain special characters.
|
||||
Environment variables are expanded |:set_env|. See |option-backslash|
|
||||
about including spaces and backslashes.
|
||||
Note that a '|' must be escaped twice: once for ":set" and once for
|
||||
@@ -6555,6 +6556,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
region by listing them: "en_us,en_ca" supports both US and Canadian
|
||||
English, but not words specific for Australia, New Zealand or Great
|
||||
Britain.
|
||||
If the name "cjk" is included East Asian characters are excluded from
|
||||
spell checking. This is useful when editing text that also has Asian
|
||||
words.
|
||||
*E757*
|
||||
As a special case the name of a .spl file can be given as-is. The
|
||||
first "_xx" in the name is removed and used as the region name
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 7.4. Last change: 2013 Jul 06
|
||||
*pattern.txt* For Vim version 7.4. Last change: 2014 Feb 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -192,10 +192,10 @@ affected.
|
||||
An example of how to search for matches with a pattern and change the match
|
||||
with another word: >
|
||||
/foo<CR> find "foo"
|
||||
c//e change until end of match
|
||||
c//e<CR> change until end of match
|
||||
bar<Esc> type replacement
|
||||
//<CR> go to start of next match
|
||||
c//e change until end of match
|
||||
c//e<CR> change until end of match
|
||||
beep<Esc> type another replacement
|
||||
etc.
|
||||
<
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_getscript.txt* For Vim version 7.4. Last change: 2012 Apr 07
|
||||
*pi_getscript.txt* For Vim version 7.0. Last change: 2013 Nov 29
|
||||
>
|
||||
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
|
||||
<
|
||||
@@ -385,6 +385,10 @@ The AutoInstall process will:
|
||||
==============================================================================
|
||||
9. GetLatestVimScripts History *getscript-history* *glvs-hist* {{{1
|
||||
|
||||
v36 Apr 22, 2013 : * (glts) suggested use of plugin/**/*.vim instead of
|
||||
plugin/*.vim in globpath() call.
|
||||
* (Andy Wokula) got warning message when setting
|
||||
g:loaded_getscriptPlugin
|
||||
v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script url has
|
||||
changed (somewhat). However, it doesn't work, and
|
||||
the original one does (under Linux). I'll make it
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*pi_netrw.txt* For Vim version 7.4. Last change: 2013 May 18
|
||||
*pi_netrw.txt* For Vim version 7.4. Last change: 2014 Jan 21
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@@ -6,7 +6,7 @@
|
||||
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
|
||||
(remove NOSPAM from Campbell's email first)
|
||||
|
||||
Copyright: Copyright (C) 1999-2013 Charles E Campbell *netrw-copyright*
|
||||
Copyright: Copyright (C) 1999-2014 Charles E Campbell *netrw-copyright*
|
||||
The VIM LICENSE applies to the files in this package, including
|
||||
netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
|
||||
syntax/netrw.vim. Like anything else that's free, netrw.vim and its
|
||||
@@ -192,21 +192,22 @@ You may do so by placing the following two lines in your <.vimrc>: >
|
||||
|
||||
EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
|
||||
|
||||
Protocol Variable Default Value
|
||||
-------- ---------------- -------------
|
||||
dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
|
||||
dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
|
||||
fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
|
||||
ftp: *g:netrw_ftp_cmd* = "ftp"
|
||||
http: *g:netrw_http_cmd* = "elinks" if elinks is available
|
||||
http: g:netrw_http_cmd = "links" elseif links is available
|
||||
http: g:netrw_http_cmd = "curl" elseif curl is available
|
||||
http: g:netrw_http_cmd = "wget" elseif wget is available
|
||||
http: g:netrw_http_cmd = "fetch" elseif fetch is available
|
||||
rcp: *g:netrw_rcp_cmd* = "rcp"
|
||||
rsync: *g:netrw_rsync_cmd* = "rsync -a"
|
||||
scp: *g:netrw_scp_cmd* = "scp -q"
|
||||
sftp: *g:netrw_sftp_cmd* = "sftp"
|
||||
Protocol Variable Default Value
|
||||
-------- ---------------- -------------
|
||||
dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
|
||||
dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
|
||||
fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
|
||||
ftp: *g:netrw_ftp_cmd* = "ftp"
|
||||
http: *g:netrw_http_cmd* = "elinks" if elinks is available
|
||||
http: g:netrw_http_cmd = "links" elseif links is available
|
||||
http: g:netrw_http_cmd = "curl" elseif curl is available
|
||||
http: g:netrw_http_cmd = "wget" elseif wget is available
|
||||
http: g:netrw_http_cmd = "fetch" elseif fetch is available
|
||||
http: *g:netrw_http_put_cmd* = "curl -T"
|
||||
rcp: *g:netrw_rcp_cmd* = "rcp"
|
||||
rsync: *g:netrw_rsync_cmd* = "rsync -a"
|
||||
scp: *g:netrw_scp_cmd* = "scp -q"
|
||||
sftp: *g:netrw_sftp_cmd* = "sftp"
|
||||
|
||||
*g:netrw_http_xcmd* : the option string for http://... protocols are
|
||||
specified via this variable and may be independently overridden. By
|
||||
@@ -223,6 +224,9 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
|
||||
let g:netrw_http_xcmd= "-dump >"
|
||||
< in your .vimrc.
|
||||
|
||||
g:netrw_http_put_cmd: this option specifies both the executable and
|
||||
any needed options. This command does a PUT operation to the url.
|
||||
|
||||
|
||||
READING *netrw-read* *netrw-nread* {{{2
|
||||
|
||||
@@ -816,8 +820,7 @@ variables listed below, and may be modified by the user.
|
||||
------------------------
|
||||
Option Type Setting Meaning
|
||||
--------- -------- -------------- ---------------------------
|
||||
<
|
||||
netrw_ftp variable =doesn't exist userid set by "user userid"
|
||||
< netrw_ftp variable =doesn't exist userid set by "user userid"
|
||||
=0 userid set by "user userid"
|
||||
=1 userid set by "userid"
|
||||
NetReadFixup function =doesn't exist no change
|
||||
@@ -825,17 +828,18 @@ variables listed below, and may be modified by the user.
|
||||
read via ftp automatically
|
||||
transformed however they wish
|
||||
by NetReadFixup()
|
||||
g:netrw_dav_cmd variable ="cadaver" if cadaver is executable
|
||||
g:netrw_dav_cmd variable ="curl -o" elseif curl is executable
|
||||
g:netrw_fetch_cmd variable ="fetch -o" if fetch is available
|
||||
g:netrw_ftp_cmd variable ="ftp"
|
||||
g:netrw_http_cmd variable ="fetch -o" if fetch is available
|
||||
g:netrw_http_cmd variable ="wget -O" else if wget is available
|
||||
g:netrw_list_cmd variable ="ssh USEPORT HOSTNAME ls -Fa"
|
||||
g:netrw_rcp_cmd variable ="rcp"
|
||||
g:netrw_rsync_cmd variable ="rsync -a"
|
||||
g:netrw_scp_cmd variable ="scp -q"
|
||||
g:netrw_sftp_cmd variable ="sftp" >
|
||||
g:netrw_dav_cmd var ="cadaver" if cadaver is executable
|
||||
g:netrw_dav_cmd var ="curl -o" elseif curl is executable
|
||||
g:netrw_fetch_cmd var ="fetch -o" if fetch is available
|
||||
g:netrw_ftp_cmd var ="ftp"
|
||||
g:netrw_http_cmd var ="fetch -o" if fetch is available
|
||||
g:netrw_http_cmd var ="wget -O" else if wget is available
|
||||
g:netrw_http_put_cmd var ="curl -T"
|
||||
g:netrw_list_cmd var ="ssh USEPORT HOSTNAME ls -Fa"
|
||||
g:netrw_rcp_cmd var ="rcp"
|
||||
g:netrw_rsync_cmd var ="rsync -a"
|
||||
g:netrw_scp_cmd var ="scp -q"
|
||||
g:netrw_sftp_cmd var ="sftp" >
|
||||
-------------------------------------------------------------------------
|
||||
<
|
||||
*netrw-ftp*
|
||||
@@ -1097,16 +1101,20 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
mapping defined before netrw is autoloaded,
|
||||
then a double clicked leftmouse button will return
|
||||
to the netrw browser window. See |g:netrw_retmap|.
|
||||
<s-leftmouse> (gvim only) like mf, will mark files
|
||||
<s-leftmouse> (gvim only) like mf, will mark files. Dragging
|
||||
the shifted leftmouse will mark multiple files.
|
||||
(see |netrw-mf|)
|
||||
|
||||
(to disable mouse buttons while browsing: |g:netrw_mousemaps|)
|
||||
|
||||
*netrw-quickcom* *netrw-quickcoms*
|
||||
QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
|
||||
:NetrwClean[!] ...........................................|netrw-clean|
|
||||
:NetrwSettings ...........................................|netrw-settings|
|
||||
:NetrwClean[!]............................................|netrw-clean|
|
||||
:NetrwSettings............................................|netrw-settings|
|
||||
:Ntree....................................................|netrw-ntree|
|
||||
:Explore[!] [dir] Explore directory of current file......|netrw-explore|
|
||||
:Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
|
||||
:Lexplore [dir] Left Explorer Toggle...................|netrw-explore|
|
||||
:Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
|
||||
:Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
|
||||
:Rexplore Return to Explorer.....................|netrw-explore|
|
||||
@@ -1321,6 +1329,17 @@ See |g:netrw_dirhistmax| for how to control the quantity of history stack
|
||||
slots.
|
||||
|
||||
|
||||
CHANGING TREE TOP *netrw-ntree* *:Ntree*
|
||||
|
||||
One may specify a new tree top for tree listings using >
|
||||
|
||||
:Ntree [dirname]
|
||||
|
||||
Without a "dirname", the current line is used (and any leading depth
|
||||
information is elided).
|
||||
With a "dirname", the specified directory name is used.
|
||||
|
||||
|
||||
NETRW CLEAN *netrw-clean* *:NetrwClean*
|
||||
|
||||
With :NetrwClean one may easily remove netrw from one's home directory;
|
||||
@@ -1458,7 +1477,7 @@ Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
|
||||
|
||||
|
||||
*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
|
||||
*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore*
|
||||
*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
|
||||
DIRECTORY EXPLORATION COMMANDS {{{2
|
||||
|
||||
:[N]Explore[!] [dir]... Explore directory of current file *:Explore*
|
||||
@@ -1467,6 +1486,7 @@ DIRECTORY EXPLORATION COMMANDS {{{2
|
||||
:[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
|
||||
:Texplore [dir]... Tab & Explore *:Texplore*
|
||||
:[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
|
||||
:Lexplore [dir]... Left Explorer Toggle *:Lexplore*
|
||||
|
||||
Used with :Explore **/pattern : (also see |netrw-starstar|)
|
||||
:Nexplore............. go to next matching file *:Nexplore*
|
||||
@@ -1478,6 +1498,9 @@ DIRECTORY EXPLORATION COMMANDS {{{2
|
||||
window will take over that window. Normally the splitting is taken
|
||||
horizontally.
|
||||
:Explore! is like :Explore, but will use vertical splitting.
|
||||
:Lexplore [dir] toggles an Explorer window on the left hand side
|
||||
of the current tab It will open a netrw window on the current
|
||||
directory if [dir] is omitted.
|
||||
:Sexplore will always split the window before invoking the local-directory
|
||||
browser. As with Explore, the splitting is normally done
|
||||
horizontally.
|
||||
@@ -1486,7 +1509,7 @@ DIRECTORY EXPLORATION COMMANDS {{{2
|
||||
:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
|
||||
:Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
|
||||
:Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
|
||||
:Texplore [dir] does a tabnew before generating the browser window
|
||||
:Texplore [dir] does a |:tabnew| before generating the browser window
|
||||
|
||||
By default, these commands use the current file's directory. However, one may
|
||||
explicitly provide a directory (path) to use.
|
||||
@@ -1505,6 +1528,8 @@ windows should have.
|
||||
of the <2-leftmouse> map (which is only available under gvim and
|
||||
cooperative terms).
|
||||
|
||||
Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
|
||||
|
||||
|
||||
*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat*
|
||||
EXPLORING WITH STARS AND PATTERNS
|
||||
@@ -1696,9 +1721,36 @@ As a quick shortcut, one may press >
|
||||
to toggle between hiding files which begin with a period (dot) and not hiding
|
||||
them.
|
||||
|
||||
Associated setting variable: |g:netrw_list_hide| |g:netrw_hide|
|
||||
Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
|
||||
Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
|
||||
|
||||
*netrw-gitignore*
|
||||
Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
|
||||
|g:netrw_list_hide| automatically hides all git-ignored files.
|
||||
|
||||
'netrw_gitignore#Hide' searches for patterns in the following files:
|
||||
'./.gitignore'
|
||||
'./.git/info/exclude'
|
||||
global gitignore file: `git config --global core.excludesfile`
|
||||
system gitignore file: `git config --system core.excludesfile`
|
||||
|
||||
Files that do not exist, are ignored.
|
||||
Git-ignore patterns are taken from existing files, and converted to patterns for
|
||||
hiding files. For example, if you had '*.log' in your '.gitignore' file, it
|
||||
would be converted to '.*\.log'.
|
||||
|
||||
To use this function, simply assign it's output to |g:netrw_list_hide| option.
|
||||
|
||||
Example: let g:netrw_list_hide= netrw_gitignore#Hide()
|
||||
Git-ignored files are hidden in Netrw.
|
||||
|
||||
Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
|
||||
Function can take additional files with git-ignore patterns.
|
||||
|
||||
Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
|
||||
Combining 'netrw_gitignore#Hide' with custom patterns.
|
||||
|
||||
|
||||
IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
|
||||
|
||||
Especially with the remote directory browser, constantly entering the password
|
||||
@@ -1778,6 +1830,15 @@ passwords:
|
||||
http://sial.org/howto/openssh/publickey-auth/
|
||||
|
||||
|
||||
Ssh hints:
|
||||
|
||||
Thomer Gil has provided a hint on how to speed up netrw+ssh:
|
||||
http://thomer.com/howtos/netrw_ssh.html
|
||||
|
||||
Alex Young has several hints on speeding ssh up:
|
||||
http://usevim.com/2012/03/16/editing-remote-files/
|
||||
|
||||
|
||||
LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
|
||||
|
||||
Pressing "qb" (query bookmarks) will list both the bookmarked directories and
|
||||
@@ -1800,8 +1861,8 @@ directory. Attempts to make a local directory that already exists (as either
|
||||
a file or a directory) will be detected, reported on, and ignored.
|
||||
|
||||
Related topics: |netrw-D|
|
||||
Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
|
||||
|g:netrw_remote_mkdir|
|
||||
Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
|
||||
|g:netrw_remote_mkdir| |netrw-%|
|
||||
|
||||
|
||||
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
|
||||
@@ -1860,6 +1921,10 @@ like >
|
||||
<
|
||||
into $HOME/.vim/after/syntax/netrw.vim .
|
||||
|
||||
If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
|
||||
mark one or more files. You may mark multiple files by dragging the shifted
|
||||
leftmouse. (see |netrw-mouse|)
|
||||
|
||||
*markfilelist* *global_markfilelist* *local_markfilelist*
|
||||
All marked files are entered onto the global marked file list; there is only
|
||||
one such list. In addition, every netrw buffer also has its own local marked
|
||||
@@ -2114,7 +2179,15 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
--- -----------
|
||||
Var Explanation
|
||||
--- -----------
|
||||
< *g:netrw_alto* change from above splitting to below splitting
|
||||
< *g:netrw_altfile* some like |CTRL-^| to return to the last
|
||||
edited file. Choose that by setting this
|
||||
parameter to 1.
|
||||
Others like |CTRL-^| to return to the
|
||||
netrw browsing buffer. Choose that by setting
|
||||
this parameter to 0.
|
||||
default: =0
|
||||
|
||||
*g:netrw_alto* change from above splitting to below splitting
|
||||
by setting this variable (see |netrw-o|)
|
||||
default: =&sb (see |'sb'|)
|
||||
|
||||
@@ -2142,6 +2215,10 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
to get vertical splitting instead of
|
||||
horizontal splitting.
|
||||
|
||||
Related topics:
|
||||
|netrw-cr| |netrw-C|
|
||||
|g:netrw_alto| |g:netrw_altv|
|
||||
|
||||
*g:netrw_browsex_viewer* specify user's preference for a viewer: >
|
||||
"kfmclient exec"
|
||||
"gnome-open"
|
||||
@@ -2303,10 +2380,19 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
stamp information and file size)
|
||||
= 2: wide listing (multiple files in columns)
|
||||
= 3: tree style listing
|
||||
|
||||
*g:netrw_list_hide* comma separated pattern list for hiding files
|
||||
Patterns are regular expressions (see |regexp|)
|
||||
Example: let g:netrw_list_hide= '.*\.swp$'
|
||||
default: ""
|
||||
There's some special support for git-ignore
|
||||
files: you may add the output from the helper
|
||||
function 'netrw_gitignore#Hide() automatically
|
||||
hiding all gitignored files.
|
||||
For more details see |netrw-gitignore|.
|
||||
|
||||
Examples:
|
||||
let g:netrw_list_hide= '.*\.swp$'
|
||||
let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
|
||||
default: ""
|
||||
|
||||
*g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
|
||||
="copy" Windows
|
||||
@@ -2551,6 +2637,8 @@ To open a file in netrw's current directory, press "%". This map will
|
||||
query the user for a new filename; an empty file by that name will be
|
||||
placed in the netrw's current directory (ie. b:netrw_curdir).
|
||||
|
||||
Related topics: |netrw-d|
|
||||
|
||||
|
||||
PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
|
||||
|
||||
@@ -2655,7 +2743,7 @@ One may select a netrw window for editing with the "C" mapping, or by setting
|
||||
g:netrw_chgwin to the selected window number. Subsequent selection of a file
|
||||
to edit (|netrw-cr|) will use that window.
|
||||
|
||||
Related topics: |netrw-cr|
|
||||
Related topics: |netrw-cr| |g:netrw_browse_split|
|
||||
Associated setting variables: |g:netrw_chgwin|
|
||||
|
||||
|
||||
@@ -2988,15 +3076,78 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
read/write your file over the network in a separate tab.
|
||||
|
||||
To save the file, use >
|
||||
|
||||
:tabnext
|
||||
:set bt=
|
||||
:w! DBG
|
||||
< Please send that information to <netrw.vim>'s maintainer, >
|
||||
|
||||
< Furthermore, it'd be helpful if you would type >
|
||||
:Dsep
|
||||
< after each command you issue, thereby making it easier to
|
||||
associate which part of the debugging trace is due to which
|
||||
command.
|
||||
|
||||
Please send that information to <netrw.vim>'s maintainer, >
|
||||
NdrOchip at ScampbellPfamily.AbizM - NOSPAM
|
||||
<
|
||||
==============================================================================
|
||||
12. History *netrw-history* {{{1
|
||||
|
||||
v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to
|
||||
return to the netrw directory listing
|
||||
Jul 13, 2013 * (Jonas Diemer) suggested changing
|
||||
a <cWORD> to <cfile>.
|
||||
Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
|
||||
use of mkdir did not produce directories
|
||||
following umask.
|
||||
Aug 27, 2013 * introduced |g:netrw_altfile| option
|
||||
Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
|
||||
when available, by default
|
||||
Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
|
||||
opening some directories properly from the
|
||||
command line.
|
||||
Nov 09, 2013 * |:Lexplore| introduced
|
||||
* (Ondrej Platek) reported an issue with
|
||||
netrw's trees (P15). Fixed.
|
||||
* (Jorge Solis) reported that "t" in
|
||||
tree mode caused netrw to forget its
|
||||
line position.
|
||||
Dec 05, 2013 * Added <s-leftmouse> file marking
|
||||
(see |netrw-mf|)
|
||||
Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
|
||||
strlen() instead s:Strlen() when handling
|
||||
multibyte chars with strpart()
|
||||
(ie. strpart() is byte oriented, not
|
||||
display-width oriented).
|
||||
Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
|
||||
and a portion of timestamps were wrongly
|
||||
highlighted with the directory color when
|
||||
setting `:let g:netrw_liststyle=1` on Windows.
|
||||
* (Paul Domaskis) noted that sometimes
|
||||
cursorline was activating in non-netrw
|
||||
windows. All but one setting of cursorline
|
||||
was done via setl; there was one that was
|
||||
overlooked. Fixed.
|
||||
Dec 24, 2013 * (esquifit) asked that netrw allow the
|
||||
/cygdrive prefix be a user-alterable
|
||||
parameter.
|
||||
Jan 02, 2014 * Fixed a problem with netrw-based ballon
|
||||
evaluation (ie. netrw#NetrwBaloonHelp()
|
||||
not having been loaded error messages)
|
||||
Jan 03, 2014 * Fixed a problem with tree listings
|
||||
* New command installed: |:Ntree|
|
||||
Jan 06, 2014 * (Ivan Brennan) reported a problem with
|
||||
|netrw-P|. Fixed.
|
||||
Jan 06, 2014 * Fixed a problem with |netrw-P| when the
|
||||
modified file was to be abandoned.
|
||||
Jan 15, 2014 * (Matteo Cavalleri) reported that when the
|
||||
banner is suppressed and tree listing is
|
||||
used, a blank line was left at the top of
|
||||
the display. Fixed.
|
||||
Jan 20, 2014 * (Gideon Go) reported that, in tree listing
|
||||
style, with a previous window open, that
|
||||
the wrong directory was being used to open
|
||||
a file. Fixed. (P21)
|
||||
v149: Apr 18, 2013 * in wide listing format, now have maps for
|
||||
w and b to move to next/previous file
|
||||
Apr 26, 2013 * one may now copy files in the same
|
||||
@@ -3009,7 +3160,8 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
|
||||
May 02, 2013 * introduced |g:netrw_bannerbackslash| as
|
||||
requested by Paul Domaskis.
|
||||
May 18, 2013 * More fixes for windows (not cygwin)
|
||||
Jul 03, 2013 * Explore now avoids splitting when a buffer
|
||||
will be hidden.
|
||||
v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct
|
||||
choice of listing style, hiding style, and
|
||||
sorting style
|
||||
|
||||
@@ -838,7 +838,7 @@ Unfortunately, there is no standard way to run the tests.
|
||||
The alltests.py script seems to be used quite often, that's all.
|
||||
Useful values for the 'makeprg' options therefore are:
|
||||
setlocal makeprg=./alltests.py " Run a testsuite
|
||||
setlocal makeprg=python % " Run a single testcase
|
||||
setlocal makeprg=python\ %:S " Run a single testcase
|
||||
|
||||
Also see http://vim.sourceforge.net/tip_view.php?tip_id=280.
|
||||
|
||||
@@ -1332,7 +1332,7 @@ or: >
|
||||
Here is an alternative from Michael F. Lamb for Unix that filters the errors
|
||||
first: >
|
||||
:setl errorformat=%Z%f:%l:\ %m,%A%p^,%-G%*[^sl]%.%#
|
||||
:setl makeprg=javac\ %\ 2>&1\ \\\|\ vim-javac-filter
|
||||
:setl makeprg=javac\ %:S\ 2>&1\ \\\|\ vim-javac-filter
|
||||
|
||||
You need to put the following in "vim-javac-filter" somewhere in your path
|
||||
(e.g., in ~/bin) and make it executable: >
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 7.4. Last change: 2013 Jul 25
|
||||
*repeat.txt* For Vim version 7.4. Last change: 2014 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -26,10 +26,14 @@ Chapter 26 of the user manual introduces repeating |usr_26.txt|.
|
||||
|
||||
Simple changes can be repeated with the "." command. Without a count, the
|
||||
count of the last change is used. If you enter a count, it will replace the
|
||||
last one. If the last change included a specification of a numbered register,
|
||||
the register number will be incremented. See |redo-register| for an example
|
||||
how to use this. Note that when repeating a command that used a Visual
|
||||
selection, the same SIZE of area is used, see |visual-repeat|.
|
||||
last one. |v:count| and |v:count1| will be set.
|
||||
|
||||
If the last change included a specification of a numbered register, the
|
||||
register number will be incremented. See |redo-register| for an example how
|
||||
to use this.
|
||||
|
||||
Note that when repeating a command that used a Visual selection, the same SIZE
|
||||
of area is used, see |visual-repeat|.
|
||||
|
||||
*@:*
|
||||
@: Repeat last command-line [count] times.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sign.txt* For Vim version 7.4. Last change: 2012 Jul 10
|
||||
*sign.txt* For Vim version 7.4. Last change: 2013 Nov 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -173,7 +173,7 @@ REMOVING SIGNS *:sign-unplace* *E159*
|
||||
Remove the placed sign at the cursor position.
|
||||
|
||||
|
||||
LISTING PLACED SIGNS
|
||||
LISTING PLACED SIGNS *:sign-place-list*
|
||||
|
||||
:sign place file={fname}
|
||||
List signs placed in file {fname}.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 7.4. Last change: 2013 Jul 17
|
||||
*spell.txt* For Vim version 7.4. Last change: 2013 Nov 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -269,6 +269,13 @@ In a table:
|
||||
latin1 yi transliterated Yiddish
|
||||
utf-8 yi-tr transliterated Yiddish
|
||||
|
||||
*spell-cjk*
|
||||
Chinese, Japanese and other East Asian characters are normally marked as
|
||||
errors, because spell checking of these characters is not supported. If
|
||||
'spelllang' includes "cjk", these characters are not marked as errors. This
|
||||
is useful when editing text with spell checking while some Asian words are
|
||||
present.
|
||||
|
||||
|
||||
SPELL FILES *spell-load*
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2014 Feb 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1281,6 +1281,32 @@ Finally, some vendors support hexadecimal constants. To handle them, add >
|
||||
to your startup file.
|
||||
|
||||
|
||||
EUPHORIA *euphoria3.vim* *euphoria4.vim* *ft-euphoria-syntax*
|
||||
|
||||
Two syntax highlighting files exists for Euphoria. One for Euphoria
|
||||
version 3.1.1, which is the default syntax highlighting file, and one for
|
||||
Euphoria version 4.0.5 or later.
|
||||
|
||||
Euphoria version 3.1.1 (http://www.rapideuphoria.com/) is still necessary
|
||||
for developing applications for the DOS platform, which Euphoria version 4
|
||||
(http://www.openeuphoria.org/) does not support.
|
||||
|
||||
The following file extensions are auto-detected as Euphoria file type:
|
||||
|
||||
*.e, *.eu, *.ew, *.ex, *.exu, *.exw
|
||||
*.E, *.EU, *.EW, *.EX, *.EXU, *.EXW
|
||||
|
||||
To select syntax highlighting file for Euphoria, as well as for
|
||||
auto-detecting the *.e and *.E file extensions as Euphoria file type,
|
||||
add the following line to your startup file: >
|
||||
|
||||
:let filetype_euphoria="euphoria3"
|
||||
|
||||
or
|
||||
|
||||
:let filetype_euphoria="euphoria4"
|
||||
|
||||
|
||||
ERLANG *erlang.vim* *ft-erlang-syntax*
|
||||
|
||||
Erlang is a functional programming language developed by Ericsson. Files with
|
||||
|
||||
@@ -12,6 +12,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
% motion.txt /*%*
|
||||
%:. cmdline.txt /*%:.*
|
||||
%:8 cmdline.txt /*%:8*
|
||||
%:S cmdline.txt /*%:S*
|
||||
%:e cmdline.txt /*%:e*
|
||||
%:gs cmdline.txt /*%:gs*
|
||||
%:h cmdline.txt /*%:h*
|
||||
@@ -1788,6 +1789,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:3match pattern.txt /*:3match*
|
||||
::. cmdline.txt /*::.*
|
||||
::8 cmdline.txt /*::8*
|
||||
::S cmdline.txt /*::S*
|
||||
::e cmdline.txt /*::e*
|
||||
::gs cmdline.txt /*::gs*
|
||||
::h cmdline.txt /*::h*
|
||||
@@ -1827,6 +1829,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:GnatPretty ft_ada.txt /*:GnatPretty*
|
||||
:GnatTags ft_ada.txt /*:GnatTags*
|
||||
:Hexplore pi_netrw.txt /*:Hexplore*
|
||||
:Lexplore pi_netrw.txt /*:Lexplore*
|
||||
:Man filetype.txt /*:Man*
|
||||
:MkVimball pi_vimball.txt /*:MkVimball*
|
||||
:N editing.txt /*:N*
|
||||
@@ -1838,6 +1841,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:Nread pi_netrw.txt /*:Nread*
|
||||
:Ns pi_netrw.txt /*:Ns*
|
||||
:Nsource pi_netrw.txt /*:Nsource*
|
||||
:Ntree pi_netrw.txt /*:Ntree*
|
||||
:Nw pi_netrw.txt /*:Nw*
|
||||
:Nwrite pi_netrw.txt /*:Nwrite*
|
||||
:P various.txt /*:P*
|
||||
@@ -2214,6 +2218,9 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:foldopen fold.txt /*:foldopen*
|
||||
:for eval.txt /*:for*
|
||||
:fu eval.txt /*:fu*
|
||||
:func-abort eval.txt /*:func-abort*
|
||||
:func-dict eval.txt /*:func-dict*
|
||||
:func-range eval.txt /*:func-range*
|
||||
:function eval.txt /*:function*
|
||||
:function-verbose eval.txt /*:function-verbose*
|
||||
:g repeat.txt /*:g*
|
||||
@@ -2300,6 +2307,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:keepj motion.txt /*:keepj*
|
||||
:keepjumps motion.txt /*:keepjumps*
|
||||
:keepmarks motion.txt /*:keepmarks*
|
||||
:keepp cmdline.txt /*:keepp*
|
||||
:keeppatterns cmdline.txt /*:keeppatterns*
|
||||
:l various.txt /*:l*
|
||||
:lN quickfix.txt /*:lN*
|
||||
:lNext quickfix.txt /*:lNext*
|
||||
@@ -2740,6 +2749,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
:sign-jump sign.txt /*:sign-jump*
|
||||
:sign-list sign.txt /*:sign-list*
|
||||
:sign-place sign.txt /*:sign-place*
|
||||
:sign-place-list sign.txt /*:sign-place-list*
|
||||
:sign-undefine sign.txt /*:sign-undefine*
|
||||
:sign-unplace sign.txt /*:sign-unplace*
|
||||
:sil various.txt /*:sil*
|
||||
@@ -4296,6 +4306,7 @@ E878 pattern.txt /*E878*
|
||||
E879 syntax.txt /*E879*
|
||||
E88 windows.txt /*E88*
|
||||
E880 if_pyth.txt /*E880*
|
||||
E881 autocmd.txt /*E881*
|
||||
E89 message.txt /*E89*
|
||||
E90 message.txt /*E90*
|
||||
E91 options.txt /*E91*
|
||||
@@ -4902,6 +4913,7 @@ builtin_terms term.txt /*builtin_terms*
|
||||
byte-count editing.txt /*byte-count*
|
||||
byte2line() eval.txt /*byte2line()*
|
||||
byteidx() eval.txt /*byteidx()*
|
||||
byteidxcomp() eval.txt /*byteidxcomp()*
|
||||
bzip2 pi_gzip.txt /*bzip2*
|
||||
c change.txt /*c*
|
||||
c.vim syntax.txt /*c.vim*
|
||||
@@ -5460,6 +5472,8 @@ errors message.txt /*errors*
|
||||
escape intro.txt /*escape*
|
||||
escape() eval.txt /*escape()*
|
||||
escape-bar version4.txt /*escape-bar*
|
||||
euphoria3.vim syntax.txt /*euphoria3.vim*
|
||||
euphoria4.vim syntax.txt /*euphoria4.vim*
|
||||
eval eval.txt /*eval*
|
||||
eval() eval.txt /*eval()*
|
||||
eval-examples eval.txt /*eval-examples*
|
||||
@@ -5726,6 +5740,7 @@ ft-dosbatch-syntax syntax.txt /*ft-dosbatch-syntax*
|
||||
ft-dtd-syntax syntax.txt /*ft-dtd-syntax*
|
||||
ft-eiffel-syntax syntax.txt /*ft-eiffel-syntax*
|
||||
ft-erlang-syntax syntax.txt /*ft-erlang-syntax*
|
||||
ft-euphoria-syntax syntax.txt /*ft-euphoria-syntax*
|
||||
ft-flexwiki-syntax syntax.txt /*ft-flexwiki-syntax*
|
||||
ft-form-syntax syntax.txt /*ft-form-syntax*
|
||||
ft-fortran-indent indent.txt /*ft-fortran-indent*
|
||||
@@ -5878,6 +5893,7 @@ g:ada_standard_types ft_ada.txt /*g:ada_standard_types*
|
||||
g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files*
|
||||
g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary*
|
||||
g:clojure_align_multiline_strings indent.txt /*g:clojure_align_multiline_strings*
|
||||
g:clojure_align_subforms indent.txt /*g:clojure_align_subforms*
|
||||
g:clojure_fuzzy_indent indent.txt /*g:clojure_fuzzy_indent*
|
||||
g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist*
|
||||
g:clojure_fuzzy_indent_patterns indent.txt /*g:clojure_fuzzy_indent_patterns*
|
||||
@@ -5926,6 +5942,7 @@ g:html_use_css syntax.txt /*g:html_use_css*
|
||||
g:html_use_encoding syntax.txt /*g:html_use_encoding*
|
||||
g:html_use_xhtml syntax.txt /*g:html_use_xhtml*
|
||||
g:html_whole_filler syntax.txt /*g:html_whole_filler*
|
||||
g:netrw_altfile pi_netrw.txt /*g:netrw_altfile*
|
||||
g:netrw_alto pi_netrw.txt /*g:netrw_alto*
|
||||
g:netrw_altv pi_netrw.txt /*g:netrw_altv*
|
||||
g:netrw_banner pi_netrw.txt /*g:netrw_banner*
|
||||
@@ -5960,6 +5977,7 @@ g:netrw_glob_escape pi_netrw.txt /*g:netrw_glob_escape*
|
||||
g:netrw_hide pi_netrw.txt /*g:netrw_hide*
|
||||
g:netrw_home pi_netrw.txt /*g:netrw_home*
|
||||
g:netrw_http_cmd pi_netrw.txt /*g:netrw_http_cmd*
|
||||
g:netrw_http_put_cmd pi_netrw.txt /*g:netrw_http_put_cmd*
|
||||
g:netrw_http_xcmd pi_netrw.txt /*g:netrw_http_xcmd*
|
||||
g:netrw_ignorenetrc pi_netrw.txt /*g:netrw_ignorenetrc*
|
||||
g:netrw_keepdir pi_netrw.txt /*g:netrw_keepdir*
|
||||
@@ -6360,6 +6378,7 @@ hl-WarningMsg syntax.txt /*hl-WarningMsg*
|
||||
hl-WildMenu syntax.txt /*hl-WildMenu*
|
||||
hlID() eval.txt /*hlID()*
|
||||
hlexists() eval.txt /*hlexists()*
|
||||
hlsearch-variable eval.txt /*hlsearch-variable*
|
||||
holy-grail index.txt /*holy-grail*
|
||||
home intro.txt /*home*
|
||||
home-replace editing.txt /*home-replace*
|
||||
@@ -6980,6 +6999,7 @@ netrw-gd pi_netrw.txt /*netrw-gd*
|
||||
netrw-getftype pi_netrw.txt /*netrw-getftype*
|
||||
netrw-gf pi_netrw.txt /*netrw-gf*
|
||||
netrw-gh pi_netrw.txt /*netrw-gh*
|
||||
netrw-gitignore pi_netrw.txt /*netrw-gitignore*
|
||||
netrw-gp pi_netrw.txt /*netrw-gp*
|
||||
netrw-gx pi_netrw.txt /*netrw-gx*
|
||||
netrw-handler pi_netrw.txt /*netrw-handler*
|
||||
@@ -6994,6 +7014,7 @@ netrw-incompatible pi_netrw.txt /*netrw-incompatible*
|
||||
netrw-internal-variables pi_netrw.txt /*netrw-internal-variables*
|
||||
netrw-intro-browse pi_netrw.txt /*netrw-intro-browse*
|
||||
netrw-leftmouse pi_netrw.txt /*netrw-leftmouse*
|
||||
netrw-lexplore pi_netrw.txt /*netrw-lexplore*
|
||||
netrw-list pi_netrw.txt /*netrw-list*
|
||||
netrw-listbookmark pi_netrw.txt /*netrw-listbookmark*
|
||||
netrw-listhack pi_netrw.txt /*netrw-listhack*
|
||||
@@ -7024,6 +7045,7 @@ netrw-netrc pi_netrw.txt /*netrw-netrc*
|
||||
netrw-nexplore pi_netrw.txt /*netrw-nexplore*
|
||||
netrw-noload pi_netrw.txt /*netrw-noload*
|
||||
netrw-nread pi_netrw.txt /*netrw-nread*
|
||||
netrw-ntree pi_netrw.txt /*netrw-ntree*
|
||||
netrw-nwrite pi_netrw.txt /*netrw-nwrite*
|
||||
netrw-o pi_netrw.txt /*netrw-o*
|
||||
netrw-options pi_netrw.txt /*netrw-options*
|
||||
@@ -7579,6 +7601,7 @@ s/\2 change.txt /*s\/\\2*
|
||||
s/\3 change.txt /*s\/\\3*
|
||||
s/\9 change.txt /*s\/\\9*
|
||||
s/\<CR> change.txt /*s\/\\<CR>*
|
||||
s/\= change.txt /*s\/\\=*
|
||||
s/\E change.txt /*s\/\\E*
|
||||
s/\L change.txt /*s\/\\L*
|
||||
s/\U change.txt /*s\/\\U*
|
||||
@@ -7789,6 +7812,7 @@ spell-affix-flags spell.txt /*spell-affix-flags*
|
||||
spell-affix-mbyte spell.txt /*spell-affix-mbyte*
|
||||
spell-affix-not-supported spell.txt /*spell-affix-not-supported*
|
||||
spell-affix-vim spell.txt /*spell-affix-vim*
|
||||
spell-cjk spell.txt /*spell-cjk*
|
||||
spell-compound spell.txt /*spell-compound*
|
||||
spell-dic-format spell.txt /*spell-dic-format*
|
||||
spell-double-scoring spell.txt /*spell-double-scoring*
|
||||
@@ -8366,6 +8390,7 @@ v:folddashes eval.txt /*v:folddashes*
|
||||
v:foldend eval.txt /*v:foldend*
|
||||
v:foldlevel eval.txt /*v:foldlevel*
|
||||
v:foldstart eval.txt /*v:foldstart*
|
||||
v:hlsearch eval.txt /*v:hlsearch*
|
||||
v:insertmode eval.txt /*v:insertmode*
|
||||
v:key eval.txt /*v:key*
|
||||
v:lang eval.txt /*v:lang*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.4. Last change: 2013 Nov 03
|
||||
*todo.txt* For Vim version 7.4. Last change: 2014 Mar 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,134 +34,144 @@ not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Revert patch 7.4.056? Do it differently?
|
||||
|
||||
Using \1 in pattern goes one line too far. (Bohr Shaw, 2013 Sep 5)
|
||||
Column is OK. "/\v(^.+\n)\1/e" (John Little, Sep 5)
|
||||
Also, matches start of 2nd line, not the whole line.
|
||||
|
||||
NFA regexp doesn't handle backreference correctly. (Ryuichi Hayashida, 2013
|
||||
Oct 10)
|
||||
|
||||
Error for incomplete help argument. (John Beckett, 2013 Sep 12)
|
||||
|
||||
Should win_redr_custom() not be allowed to use recursively?
|
||||
(Yasuhiro Matsumoto, 2013 Aug 15)
|
||||
|
||||
NFA engine combining character mismatch. (glts, 2013 Aug 27)
|
||||
Remark Dominique, Aug 27
|
||||
Regexp problems:
|
||||
- NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
|
||||
Shallon, 2013 Nov 18)
|
||||
- After patch 7.4.100 there is still a difference between NFA and old engine.
|
||||
25 a's with pattern \v^(aa+)\1+$ (Urtica Dioica, 2013 Nov 21) Also: 9 a's
|
||||
with pattern \v^(a{-2,})\1+$ (Nov 23)
|
||||
- NFA engine combining character mismatch. (glts, 2013 Aug 27)
|
||||
Remark from Dominique, Aug 27
|
||||
- Issue 164: freeze on regexp search.
|
||||
- NFA problem with non-greedy match and branches. (Ingo Karkat, 2013 Nov 29)
|
||||
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
|
||||
2013 Dec 11)
|
||||
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin Szamotulski
|
||||
Remark from Brett 2014 Jan 6 and 7.
|
||||
- Bug with back references. (Lech Lorens, 2014 Feb 3)
|
||||
- Bug when using \>. (Ramel, 2014 Feb 2) (Aaron Bohannon, 2014 Feb 13)
|
||||
|
||||
Problem that a previous silent ":throw" causes a following try/catch not to
|
||||
work. (ZyX, 2013 Sep 28)
|
||||
|
||||
Patch for VMS. (Zoltan Arpadffy, 2014 Mar 6)
|
||||
|
||||
Euphoria syntax, Shian Lee, Feb 27
|
||||
|
||||
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
|
||||
directory exists. (Sergio Gallelli, 2013 Dec 29)
|
||||
|
||||
Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
|
||||
|
||||
Issue 164: freeze on regexp search.
|
||||
|
||||
Patch to Fix Python: DictionaryContains return -1 on error. (ZyX, 2013 Nov 1)
|
||||
|
||||
Patch to fix that inserting CR when replacing a Visual block doesn't cause a
|
||||
line break. (Christian Brabandt, 2013 Oct 19)
|
||||
Check: does CTRL-V CR insert a literal CR? New patch Oct 21
|
||||
With test Oct 22.
|
||||
|
||||
When recording the character typed at the hit-enter prompt is recorded twice.
|
||||
(Urtica Dioica) Patch by Christian Brabandt, 2013 Oct 8.
|
||||
Can't build Vim with Perl when -Dusethreads is not specified for building
|
||||
perl, and building with --enable-perlinterp=dynamic.
|
||||
Patch by Yasuhiro Matsumoto, 2014 Feb 24.
|
||||
|
||||
Update for Clojure ftplugin. (Sung Pae). Await discussion about formatting in
|
||||
ftplugins.
|
||||
|
||||
Update for phpcomplete.vim. (Complex, 2014 Mar 1)
|
||||
|
||||
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
|
||||
Patch to avoid problem with colon in file name. (Yasuhiro Matsumoto, 2013 Sep
|
||||
5) Only copy file name when needed: Sep 9.
|
||||
Using autoconf 2.69 gives a lot of warnings.
|
||||
|
||||
After inserting comment leader, CTRL-\ CTRL-O does move the cursor.
|
||||
(Wiktor Ruben, 2013 Oct 7)
|
||||
Patch by Christian Brabandt.
|
||||
Patch to allow for negative index in string. (LCD, 2014 Feb 13)
|
||||
Feb 14 with test. Or does this intentionally not work?
|
||||
|
||||
Patch to support slices in Python vim.List. (ZyX, 2013 Oct 20)
|
||||
Issue 197: ]P doesn't paste over Visual selection. With patch from Christian
|
||||
Brabandt, Feb 6. Issue 197.
|
||||
|
||||
Patch to support iterator on Python vim.options. (ZyX, 2013 Nov 2)
|
||||
|
||||
Patch to avoid "-no-cpp-precomp" on Mac. (Misty De Meo, demeo, 2013 Oct 19)
|
||||
|
||||
Patch to make Dictionary.update() work without arguments.
|
||||
(ZyX, 2013 Oct 19)
|
||||
|
||||
Patch to make #N in 'cino' stop not indenting #lines. (Christian Brabandt,
|
||||
2013 Sep 25)
|
||||
|
||||
Patch for Cobol ftplugin. (ZyX, 2013 Oct 20)
|
||||
Await response from maintainer.
|
||||
|
||||
Can 'undolevels' be a buffer-local option? Helps for making big changes in
|
||||
one file only, set 'ul' to -1 only for that buffer.
|
||||
Patch by Christian Brabandt, 2010 Dec 17. Needs test.
|
||||
|
||||
Include systemverilog file? Two votes yes.
|
||||
|
||||
Wrapping around end of file does not work for "." after "cgn". (Dimitar
|
||||
Dimitrov)
|
||||
Patch by Christian Brabandt, 2013 Aug 22
|
||||
|
||||
Clang error for integer overflow. (Dominique Pelle, 2013 Sep 21)
|
||||
|
||||
Patch to add v:hlsearch. (ZyX, 2013 Sep 22)
|
||||
|
||||
Patch to fix E315 error. (Lech Lorens, 2013 Oct 26)
|
||||
|
||||
Patch to add :keeppatterns, don't put used search patterns in history.
|
||||
(Christian Brabandt, 2013 Oct 18)
|
||||
Make 'lispwords' global-local. (Sung Pae, 2014 Feb 16)
|
||||
|
||||
Problem with 'spellsuggest' file, only works for some words.
|
||||
(Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24)
|
||||
Additional remark by glts: the suggested words are marked bad?
|
||||
|
||||
8 non-ASCII font names don't work. Need to convert from 'encoding' and use
|
||||
the wide functions. Patch by Ken Takata, 2013 Dec 22.
|
||||
Update 2014 Jan 6.
|
||||
|
||||
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
|
||||
|
||||
Problem with 'errorformat'. Patch by Lcd, 2014 Feb 21. With test.
|
||||
|
||||
Patch for the problem that a mapping where the second byte is 0x80 isn't
|
||||
handled correcly. (Nobuhiro Takasaki, 2014 Feb 11)
|
||||
Update 2014 Mar 8.
|
||||
|
||||
Patch for mksession. (Nobuhiro Takasaki, 2014 Jan 31)
|
||||
Also fixes another problem (following email)
|
||||
|
||||
Patch to use rubyarchhdrdir for Ruby 2.x. (James McCoy, 2014 Feb 24)
|
||||
|
||||
Dynamic Ruby linking issues. Patch by Danek Duvall (2014 Feb 26)
|
||||
and by Yukihiro Nakadaira (2014 Feb 27)
|
||||
|
||||
Patch: Detect grep options for Solaris. (Danek Duvall, 2014 Feb 26)
|
||||
|
||||
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
|
||||
|
||||
Syntax file for gnuplot. Existing one is very old. (Andrew Rasmussen, 2014
|
||||
Feb 24)
|
||||
|
||||
Crash with ":%s/\n//g" on long file. (Aidan Marlin, 2014 Jan 15)
|
||||
Christian Brabandt: patch to run this into a join. (2014 Jan 18)
|
||||
Suggestion to not save replaced line for undo: Yukihiro Nakadaira, 2014 Jan
|
||||
25.
|
||||
|
||||
Add digraph for Rouble: =P. What's the Unicode?
|
||||
|
||||
Bug: "!ls %" expands parenthesis in %, but not spaces. So this doesn't work
|
||||
either: ':!ls "%"'.
|
||||
Patch by Gary Johnson, 2014 Mar 6.
|
||||
|
||||
Issue 174: Detect Mason files.
|
||||
|
||||
Patch for Python: Fix interrupt not being properly discarded in VimTryEnd.
|
||||
With tests. (ZyX, 2013 Oct 19) Reported by Yggdroot Chen.
|
||||
Phpcomplete.vim update. (Complex, 2014 Jan 15)
|
||||
|
||||
PHP syntax is extremely slow. (Anhad Jai Singh, 2014 Jan 19)
|
||||
|
||||
Can we make ":unlet $VAR" use unsetenv() to delete the env var?
|
||||
What for systems that don't have unsetenv()?
|
||||
|
||||
spec ftplugin: patch from Igor Gnatenko, 2014 Jan 26.
|
||||
Include if maintainers don't respond.
|
||||
|
||||
Patch to make has() check for Vim version and patch at the same time.
|
||||
(Marc Weber, 2013 Jun 7)
|
||||
|
||||
Patch to fix Visual-block insert using cursor keys. (Christian Brabandt, 2013
|
||||
Sep 28) With test Sept 29.
|
||||
Regression on pach 7.4.034. (Ingo Karkat, 2013 Nov 20)
|
||||
|
||||
Patch to include smack support (Linux security library). (Jose Bollo, 2014 Jan
|
||||
14) Update Jan 15.
|
||||
|
||||
Tag list, as used for :tjump, does not unescape regexp. (Gary Johnson, 2014 Jan
|
||||
6) With patch in another message.
|
||||
|
||||
VMS: Select() doesn't work properly, typing ESC may hang Vim. Use sys$qiow
|
||||
instead. (Samuel Ferencik, 2013 Sep 28)
|
||||
|
||||
Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3)
|
||||
Series of patches for NL vs NUL handling. (ZyX, 2013 Nov 3, Nov 9)
|
||||
|
||||
Patch for XDG base directory support. (Jean François Bignolles, 2014 Mar 4)
|
||||
|
||||
Patch to add flag to shortmess to avoid giving completion messages.
|
||||
(Shougo Matsu, 2014 Jan 6, update Jan 11)
|
||||
|
||||
Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29).
|
||||
|
||||
Patch to make test 100 work on MS-Windows. (Taro Muraoka, 2013 Dec 12)
|
||||
|
||||
Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
|
||||
|
||||
Perl: support for Activestate perl 5.18: Issue 170.
|
||||
|
||||
Bug: Does not skip over expression with dict member properly. (ZyX, 2013 Sep
|
||||
29)
|
||||
Patch to fix expr7() when skipping. (2013 Oct 15) Oct 23 with test.
|
||||
|
||||
Several syntax file match "^\s*" which may get underlined if that's in the
|
||||
highlight group. Add a "\zs" after it?
|
||||
|
||||
- Have an option for spell checking to not mark any Chinese, Japanese or
|
||||
other double-width characters (or CJK characters) as error.
|
||||
Helps a lot for mixed Asian and latin text.
|
||||
More general: Have some way not to give spelling errors for a range of
|
||||
characters.
|
||||
Patch to add "cjk" to 'spelllang'. (Ken Takata, 2013 Oct 8, second one)
|
||||
|
||||
Patch to add mch_copy_sec() to vim_rename().
|
||||
bug report on redhat. (Peter Backes, 2013 oct 8)
|
||||
Patch to vim-dev, 2013 Oct 9.
|
||||
|
||||
Win32: When a directory name contains an exclamation mark, completion doesn't
|
||||
complete the contents of the directory. No escaping for the "!"? (Jan
|
||||
Stocker, 2012 Jan 5; 2013 Aug 20)
|
||||
Patch 2013 Sept 10, test: Sept 11.
|
||||
Patch to fix temp directories for Windows, so that it works without tweaking.
|
||||
Issue 28.
|
||||
|
||||
Go through more coverity reports.
|
||||
|
||||
@@ -169,49 +179,74 @@ Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||
|
||||
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
|
||||
|
||||
Patch to make ColorScheme autocommand match with the colorscheme name instead
|
||||
of the buffer name. (Christian Brabandt, 2013 Sep 25)
|
||||
Some quickfix messages appear twice. (Gary Johnson, 2014 Feb 16)
|
||||
Patch by Christian Brabandt, 2014 Feb 17.
|
||||
|
||||
Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
|
||||
|
||||
Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
|
||||
|
||||
With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
|
||||
2013 Sep 5)
|
||||
|
||||
"gUgn" cannot be repeated, while "dgn" can. (Dimitar Dimitrov)
|
||||
Patch by Christian Brabandt (2013 Aug 12)
|
||||
|
||||
Several Win32 functions are not using Unicode.
|
||||
Patches to fix this. (Ken Takata, 2013 Aug 9)
|
||||
|
||||
Patch to add item in 'listchars' to repeat first character. (Nathaniel Braun,
|
||||
pragm, 2013 Oct 13)
|
||||
Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel
|
||||
Braun, pragm, 2013 Oct 13) Again 2014 Mar 5.
|
||||
|
||||
Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
|
||||
3. Doesn't work properly according to Yukihiro Nakadaira.
|
||||
|
||||
/[b-a] gives error E16, should probably be E769.
|
||||
|
||||
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
|
||||
pixels remains when typing spaces in front of a "D" ('guifont' set to
|
||||
"lucida_console:h8").
|
||||
Patch by Thomas Tuegel, also for GTK, 2013 Nov 24
|
||||
|
||||
:help gives example for z?, but it does not work. m? and t? do work.
|
||||
|
||||
Python: Extended funcrefs: use func_T* structure in place of char_u* function
|
||||
names. (ZyX, 2013 Jul 15, update Sep 22, 24, 28)
|
||||
names.
|
||||
(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6)
|
||||
Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
|
||||
|
||||
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
|
||||
With tests: Sep 5.
|
||||
|
||||
Patch to fix that on suckless Terminal mousewheel up does not work.
|
||||
(Ralph Eastwood, 2013 Nov 25)
|
||||
|
||||
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
|
||||
|
||||
Patch to make external commands work with multi-byte characters on Win32 when
|
||||
'encoding' differs from the active codepage. (Yasuhiro Matsumoto, 2013 Aug 5)
|
||||
|
||||
Checking runtime scripts: Thilo Six, 2012 Jun 6.
|
||||
|
||||
When evaluating expression in backticks, autoload doesn't work.
|
||||
(Andy Wokula, 2013 Dec 14)
|
||||
|
||||
Using <nr>ifoobar<esc> can slow down Vim. Patch by Christian Brabandt, 2013
|
||||
Dec 13.
|
||||
|
||||
Fold can't be opened after ":move". (Ein Brown)
|
||||
Patch from Christian Brabandt doesn't fix it completely.
|
||||
|
||||
Patch from Christian Brabandt to preserve upper case marks when wiping out a
|
||||
buffer. (2013 Dec 9)
|
||||
|
||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||
|
||||
":sign-jump" uses first window in buffer instead of current window.
|
||||
Patch by James McCoy, 2013 Nov 22.
|
||||
|
||||
GTK: problem with 'L' in 'guioptions' changing the window width.
|
||||
(Aaron Cornelius, 2012 Feb 6)
|
||||
|
||||
Patch to add option that tells whether small deletes go into the numbered
|
||||
registers. (Aryeh Leib Taurog, 2013 Nov 18)
|
||||
|
||||
Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
|
||||
Also fixes wrong result from executable().
|
||||
Update from Ken Takata, 2014 Jan 10.
|
||||
|
||||
Javascript file where indent gets stuck on: GalaxyMaster, 2012 May 3.
|
||||
|
||||
The BufUnload event is triggered when re-using the empty buffer.
|
||||
@@ -222,6 +257,10 @@ The CompleteDone autocommand needs some info passed to it:
|
||||
- The word that was selected (empty if abandoned complete)
|
||||
- Type of completion: tag, omnifunc, user func.
|
||||
|
||||
Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5)
|
||||
Doesn't work for string in list. Other way to pass all types of variables
|
||||
reliably?
|
||||
|
||||
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file.
|
||||
That is, calling a dictionary function on an autoloaded dict.
|
||||
Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
|
||||
@@ -236,6 +275,15 @@ Or should we add a more general mechanism, like lambda functions?
|
||||
Problem caused by patch 7.3.638: window->open does not update window
|
||||
correctly. Issue 91.
|
||||
|
||||
Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
|
||||
(Christian Brabandt, 2013 Dec 9)
|
||||
|
||||
The garbage collector may use too much stack. Make set_ref_in_item()
|
||||
iterative instead of recursive. Test program by Marc Weber (2013 Dec 10)
|
||||
|
||||
Exception caused by argument of return is not caught by try/catch.
|
||||
(David Barnett, 2013 Nov 19)
|
||||
|
||||
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
|
||||
defined.
|
||||
Issue 28.
|
||||
@@ -254,7 +302,7 @@ carried over when using :global. (Christian Brabandt, 2013 Jun 19)
|
||||
Bug with 'cursorline' in diff mode. Line being scrolled into view gets
|
||||
highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4)
|
||||
|
||||
Two highlighting bugs. (Zyx, 2013 Aug 18)
|
||||
Two highlighting bugs. (ZyX, 2013 Aug 18)
|
||||
|
||||
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
|
||||
May 17: with winlist() and tabpagelist().
|
||||
@@ -302,8 +350,18 @@ a reboot.
|
||||
MS-Windows: Crash opening very long file name starting with "\\".
|
||||
(Christian Brock, 2012 Jun 29)
|
||||
|
||||
Patch to have text objects defined by arbitrary single characters. (Daniel
|
||||
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
|
||||
Ben Fritz: problem with 'selection' set to "exclusive".
|
||||
|
||||
Patch to select the next or previous text object if there isn't one under the
|
||||
cursor. (Daniel Thau, 2013 Nov 20)
|
||||
|
||||
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
|
||||
|
||||
Bug caused by patch 7.3.1288? Issue 183.
|
||||
I can't reproduce it.
|
||||
|
||||
Syntax update problem in one buffer opened in two windows, bottom window is
|
||||
not correctly updated. (Paul Harris, 2012 Feb 27)
|
||||
|
||||
@@ -429,6 +487,8 @@ Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
|
||||
|
||||
Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
|
||||
|
||||
Update Vim app icon (for Gnome). (Jakub Steiner, 2013 Dec 6)
|
||||
|
||||
Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
|
||||
Apr 18)
|
||||
|
||||
@@ -447,8 +507,6 @@ And one for gui_x11.txt.
|
||||
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
|
||||
Requires a rewrite of the file_file_in_path code.
|
||||
|
||||
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
|
||||
|
||||
Should use has("browsefilter") in ftplugins. Requires patch 7.3.593.
|
||||
|
||||
Update for vim2html.pl. (Tyru, 2013 Feb 22)
|
||||
@@ -530,8 +588,6 @@ When using a Vim server, a # in the path causes an error message.
|
||||
Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
|
||||
Fritz (2011 Oct 27).
|
||||
|
||||
Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
|
||||
|
||||
Bug: Windows 7 64 bit system freezes when 'clipboard' set to "unnamed" and
|
||||
doing ":g/test/d". Putting every delete on the clipboard? (Robert Chan, 2011
|
||||
Jun 17)
|
||||
@@ -575,6 +631,8 @@ following "redir" command gives an error for not being able to access s:foo.
|
||||
When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim
|
||||
doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
|
||||
|
||||
Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)
|
||||
|
||||
7 Make "ga" show the digraph for a character, if it exists.
|
||||
Patch from Christian Brabandt, 2011 Aug 19.
|
||||
|
||||
@@ -715,7 +773,7 @@ Assume the system converts between the actual encoding of the filesystem to
|
||||
the system encoding (usually utf-8).
|
||||
|
||||
Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
|
||||
26)
|
||||
26, update 2013 Dec 14)
|
||||
|
||||
Problem producing tags file when hebrew.frx is present. It has a BOM.
|
||||
Results in E670. (Tony Mechelynck, 2010 May 2)
|
||||
@@ -753,9 +811,6 @@ C-indenting: A matching { in a comment is ignored, but intermediate { are not
|
||||
checked to be in a comment. Implement FM_SKIPCOMM flag of findmatchlimit().
|
||||
Issue 46.
|
||||
|
||||
When 'paste' is changed with 'pastetoggle', the ruler doesn't reflect this
|
||||
right away. (Samuel Ferencik, 2010 Dec 7)
|
||||
|
||||
Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
|
||||
|
||||
Using CompilerSet doesn't record where an option was set from. E.g., in the
|
||||
@@ -993,8 +1048,6 @@ system when 'encoding' is "utf-8".
|
||||
Win32 GUI: last message from startup doesn't show up when there is an echoerr
|
||||
command. (Cyril Slobin, 2009 Mar 13)
|
||||
|
||||
Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
|
||||
|
||||
Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
|
||||
does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
|
||||
|
||||
@@ -1011,7 +1064,7 @@ Session file generates error upon loading, cause by --remote-silent-tab.
|
||||
Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing
|
||||
char 0x0301. (Tony Mechelynck, 2009 Mar 4)
|
||||
|
||||
A function on a dictionary is not profiled. (Zyx, 2010 Dec 25)
|
||||
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
||||
|
||||
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
|
||||
messages, even though locale is not supported. But ":lang messages
|
||||
@@ -1449,14 +1502,17 @@ Win32: When 'shell' is bash shellescape() doesn't always do the right thing.
|
||||
Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape()
|
||||
only takes 'shellslash' into account.
|
||||
|
||||
Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph
|
||||
Ebersbach, 2008 Feb 1)
|
||||
|
||||
Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16.
|
||||
Check for this and use iconv? (Edward L. Fox, 2007 Sep 12)
|
||||
Does the conversion in the other direction work when 'fileencodings' is set
|
||||
properly?
|
||||
|
||||
Add a few features to xxd. (Vadim Vygonets, 2013 Nov 11)
|
||||
Patches: 2013 Nov 19
|
||||
1: Add -e: little endian hexdump
|
||||
2: Add -o: add offset to displayed position
|
||||
3: Change displayed file position width to 8 chars
|
||||
|
||||
Cursor displayed in the wrong position when using 'numberwidth'. (James Vega,
|
||||
2007 Jun 21)
|
||||
|
||||
@@ -1612,6 +1668,9 @@ Completing with 'wildmenu' and using <Up> and <Down> to move through directory
|
||||
tree stops unexpectedly when using ":cd " and entering a directory that
|
||||
doesn't contain other directories.
|
||||
|
||||
Default for 'background' is wrong when using xterm with 256 colors.
|
||||
Table with estimates from Matteo Cavalleri, 2014 Jan 10.
|
||||
|
||||
Setting 'background' resets the Normal background color:
|
||||
highlight Normal ctermbg=DarkGray
|
||||
set background=dark
|
||||
@@ -2017,8 +2076,6 @@ GTK+ GUI known bugs:
|
||||
Win32 GUI known bugs:
|
||||
- Win32: tearoff menu window should have a scrollbar when it's taller than
|
||||
the screen.
|
||||
8 non-ASCII font names don't work. Need to convert from 'encoding' and use
|
||||
the wide functions.
|
||||
8 On Windows 98 the unicows library is needed to support functions with UCS2
|
||||
file names. Can we load unicows.dll dynamically?
|
||||
8 The -P argument doesn't work very well with many MDI applications.
|
||||
@@ -2026,9 +2083,6 @@ Win32 GUI known bugs:
|
||||
Tutorial: http://win32assembly.online.fr/tut32.html
|
||||
8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be
|
||||
WIN32? Or can including io.h be moved to vim.h? (Dan Sharp)
|
||||
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
|
||||
pixels remains when typing spaces in front of a "D" ('guifont' set to
|
||||
"lucida_console:h8").
|
||||
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
|
||||
of ":only" is highlighted like the cursor. (Lipelis)
|
||||
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
|
||||
|
||||
@@ -128,7 +128,7 @@ be escaped with a backslash. Example: >
|
||||
You can include special Vim keywords in the command specification. The %
|
||||
character expands to the name of the current file. So if you execute the
|
||||
command: >
|
||||
:set makeprg=make\ %
|
||||
:set makeprg=make\ %:S
|
||||
|
||||
When you are editing main.c, then ":make" executes the following command: >
|
||||
|
||||
@@ -137,7 +137,7 @@ When you are editing main.c, then ":make" executes the following command: >
|
||||
This is not too useful, so you will refine the command a little and use the :r
|
||||
(root) modifier: >
|
||||
|
||||
:set makeprg=make\ %:r.o
|
||||
:set makeprg=make\ %:r:S.o
|
||||
|
||||
Now the command executed is as follows: >
|
||||
|
||||
|
||||
@@ -209,7 +209,7 @@ The ":map" command can be followed by another command. A | character
|
||||
separates the two commands. This also means that a | character can't be used
|
||||
inside a map command. To include one, use <Bar> (five characters). Example:
|
||||
>
|
||||
:map <F8> :write <Bar> !checkin %<CR>
|
||||
:map <F8> :write <Bar> !checkin %:S<CR>
|
||||
|
||||
The same problem applies to the ":unmap" command, with the addition that you
|
||||
have to watch out for trailing white space. These two commands are different:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 7.4. Last change: 2013 Feb 20
|
||||
*usr_41.txt* For Vim version 7.4. Last change: 2014 Jan 10
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -595,13 +595,17 @@ String manipulation: *string-functions*
|
||||
matchlist() like matchstr() and also return submatches
|
||||
stridx() first index of a short string in a long string
|
||||
strridx() last index of a short string in a long string
|
||||
strlen() length of a string
|
||||
strlen() length of a string in bytes
|
||||
strchars() length of a string in characters
|
||||
strwidth() size of string when displayed
|
||||
strdisplaywidth() size of string when displayed, deals with tabs
|
||||
substitute() substitute a pattern match with a string
|
||||
submatch() get a specific match in ":s" and substitute()
|
||||
strpart() get part of a string
|
||||
expand() expand special keywords
|
||||
iconv() convert text from one encoding to another
|
||||
byteidx() byte index of a character in a string
|
||||
byteidxcomp() like byteidx() but count composing characters
|
||||
repeat() repeat a string multiple times
|
||||
eval() evaluate a string expression
|
||||
|
||||
@@ -656,6 +660,9 @@ Floating point computation: *float-functions*
|
||||
ceil() round up
|
||||
floor() round down
|
||||
trunc() remove value after decimal point
|
||||
fmod() remainder of division
|
||||
exp() exponential
|
||||
log() natural logarithm (logarithm to base e)
|
||||
log10() logarithm to base 10
|
||||
pow() value of x to the exponent y
|
||||
sqrt() square root
|
||||
@@ -675,6 +682,7 @@ Other computation: *bitwise-function*
|
||||
invert() bitwise invert
|
||||
or() bitwise OR
|
||||
xor() bitwise XOR
|
||||
sha256() SHA-256 hash
|
||||
|
||||
Variables: *var-functions*
|
||||
type() type of a variable
|
||||
@@ -697,11 +705,15 @@ Cursor and mark position: *cursor-functions* *mark-functions*
|
||||
wincol() window column number of the cursor
|
||||
winline() window line number of the cursor
|
||||
cursor() position the cursor at a line/column
|
||||
screencol() get screen column of the cursor
|
||||
screenrow() get screen row of the cursor
|
||||
getpos() get position of cursor, mark, etc.
|
||||
setpos() set position of cursor, mark, etc.
|
||||
byte2line() get line number at a specific byte count
|
||||
line2byte() byte count at a specific line
|
||||
diff_filler() get the number of filler lines above a line
|
||||
screenattr() get attribute at a screen line/row
|
||||
screenchar() get character code at a screen line/row
|
||||
|
||||
Working with text in the current buffer: *text-functions*
|
||||
getline() get a line or list of lines from the buffer
|
||||
@@ -883,14 +895,22 @@ Various: *various-functions*
|
||||
libcall() call a function in an external library
|
||||
libcallnr() idem, returning a number
|
||||
|
||||
undofile() get the name of the undo file
|
||||
undotree() return the state of the undo tree
|
||||
|
||||
getreg() get contents of a register
|
||||
getregtype() get type of a register
|
||||
setreg() set contents and type of a register
|
||||
|
||||
shiftwidth() effective value of 'shiftwidth'
|
||||
|
||||
taglist() get list of matching tags
|
||||
tagfiles() get a list of tags files
|
||||
|
||||
luaeval() evaluate Lua expression
|
||||
mzeval() evaluate |MzScheme| expression
|
||||
py3eval() evaluate Python expression (|+python3|)
|
||||
pyeval() evaluate Python expression (|+python|)
|
||||
|
||||
==============================================================================
|
||||
*41.7* Defining a function
|
||||
|
||||
@@ -311,7 +311,7 @@ redefine what these items do (after the default menus are setup).
|
||||
item with a bitmap. For example, define a new toolbar item with: >
|
||||
|
||||
:tmenu ToolBar.Compile Compile the current file
|
||||
:amenu ToolBar.Compile :!cc % -o %:r<CR>
|
||||
:amenu ToolBar.Compile :!cc %:S -o %:r:S<CR>
|
||||
|
||||
Now you need to create the icon. For MS-Windows it must be in bitmap format,
|
||||
with the name "Compile.bmp". For Unix XPM format is used, the file name is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version7.txt* For Vim version 7.4. Last change: 2013 Sep 03
|
||||
*version7.txt* For Vim version 7.4. Last change: 2013 Nov 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -7188,7 +7188,7 @@ More encryption *new-more-encryption*
|
||||
---------------
|
||||
|
||||
Support for Blowfish encryption. Added the 'cryptmethod' option.
|
||||
Mostly by Moshin Ahmed.
|
||||
Mostly by Mohsin Ahmed.
|
||||
|
||||
Also encrypt the text in the swap file and the undo file.
|
||||
|
||||
|
||||
@@ -540,7 +540,7 @@ character (and shows it immediately).
|
||||
Added :wnext command. Same as ":write" followed by ":next".
|
||||
|
||||
The ":w!" command always writes, also when the file is write protected. In Vi
|
||||
you would have to do ":!chmod +w %" and ":set noro".
|
||||
you would have to do ":!chmod +w %:S" and ":set noro".
|
||||
|
||||
When 'tildeop' has been set, "~" is an operator (must be followed by a
|
||||
movement command).
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2013 Oct 06
|
||||
" Last Change: 2014 Feb 26
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -106,6 +106,9 @@ au BufNewFile,BufRead *.run setf ampl
|
||||
" Ant
|
||||
au BufNewFile,BufRead build.xml setf ant
|
||||
|
||||
" Arduino
|
||||
au BufNewFile,BufRead *.ino,*.pde setf arduino
|
||||
|
||||
" Apache style config file
|
||||
au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle')
|
||||
|
||||
@@ -536,6 +539,20 @@ au BufNewFile,BufRead *enlightenment/*.cfg setf c
|
||||
" Eterm
|
||||
au BufNewFile,BufRead *Eterm/*.cfg setf eterm
|
||||
|
||||
" Euphoria 3 or 4
|
||||
au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call s:EuphoriaCheck()
|
||||
if has("fname_case")
|
||||
au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call s:EuphoriaCheck()
|
||||
endif
|
||||
|
||||
func! s:EuphoriaCheck()
|
||||
if exists('g:filetype_euphoria')
|
||||
exe 'setf ' . g:filetype_euphoria
|
||||
else
|
||||
setf euphoria3
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Lynx config files
|
||||
au BufNewFile,BufRead lynx.cfg setf lynx
|
||||
|
||||
@@ -656,22 +673,26 @@ au BufNewFile,BufRead *.ed\(f\|if\|n\|o\) setf edif
|
||||
" Embedix Component Description
|
||||
au BufNewFile,BufRead *.ecd setf ecd
|
||||
|
||||
" Eiffel or Specman
|
||||
" Eiffel or Specman or Euphoria
|
||||
au BufNewFile,BufRead *.e,*.E call s:FTe()
|
||||
|
||||
" Elinks configuration
|
||||
au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks
|
||||
|
||||
func! s:FTe()
|
||||
let n = 1
|
||||
while n < 100 && n < line("$")
|
||||
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
|
||||
setf specman
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf eiffel
|
||||
if exists('g:filetype_euphoria')
|
||||
exe 'setf ' . g:filetype_euphoria
|
||||
else
|
||||
let n = 1
|
||||
while n < 100 && n < line("$")
|
||||
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
|
||||
setf specman
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
setf eiffel
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" ERicsson LANGuage; Yaws is erlang too
|
||||
@@ -1017,7 +1038,7 @@ au BufNewFile,BufRead *.ldif setf ldif
|
||||
au BufNewFile,BufRead *.ld setf ld
|
||||
|
||||
" Lex
|
||||
au BufNewFile,BufRead *.lex,*.l setf lex
|
||||
au BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++ setf lex
|
||||
|
||||
" Libao
|
||||
au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao
|
||||
@@ -1172,6 +1193,9 @@ au BufNewFile,BufRead *.mp setf mp
|
||||
" MGL
|
||||
au BufNewFile,BufRead *.mgl setf mgl
|
||||
|
||||
" MIX - Knuth assembly
|
||||
au BufNewFile,BufRead *.mix,*.mixal setf mix
|
||||
|
||||
" MMIX or VMS makefile
|
||||
au BufNewFile,BufRead *.mms call s:FTmms()
|
||||
|
||||
@@ -2237,6 +2261,9 @@ au BufNewFile,BufRead *.v setf verilog
|
||||
" Verilog-AMS HDL
|
||||
au BufNewFile,BufRead *.va,*.vams setf verilogams
|
||||
|
||||
" SystemVerilog
|
||||
au BufNewFile,BufRead *.sv,*.svh setf systemverilog
|
||||
|
||||
" VHDL
|
||||
au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl
|
||||
au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl')
|
||||
@@ -2409,7 +2436,7 @@ au BufNewFile,BufRead *.xsd setf xsd
|
||||
au BufNewFile,BufRead *.xsl,*.xslt setf xslt
|
||||
|
||||
" Yacc
|
||||
au BufNewFile,BufRead *.yy setf yacc
|
||||
au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
|
||||
|
||||
" Yacc or racc
|
||||
au BufNewFile,BufRead *.y call s:FTy()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: generic Changelog file
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2012-08-23
|
||||
" Latest Revision: 2014-01-10
|
||||
" Variables:
|
||||
" g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
|
||||
" description: the timeformat used in ChangeLog entries.
|
||||
@@ -122,12 +122,12 @@ if &filetype == 'changelog'
|
||||
|
||||
" Format used for new date entries.
|
||||
if !exists('g:changelog_new_date_format')
|
||||
let g:changelog_new_date_format = "%d %u\n\n\t* %c\n\n"
|
||||
let g:changelog_new_date_format = "%d %u\n\n\t* %p%c\n\n"
|
||||
endif
|
||||
|
||||
" Format used for new entries to current date entry.
|
||||
if !exists('g:changelog_new_entry_format')
|
||||
let g:changelog_new_entry_format = "\t* %c"
|
||||
let g:changelog_new_entry_format = "\t* %p%c"
|
||||
endif
|
||||
|
||||
" Regular expression used to find a given date entry.
|
||||
@@ -143,16 +143,16 @@ if &filetype == 'changelog'
|
||||
|
||||
" Substitutes specific items in new date-entry formats and search strings.
|
||||
" Can be done with substitute of course, but unclean, and need \@! then.
|
||||
function! s:substitute_items(str, date, user)
|
||||
function! s:substitute_items(str, date, user, prefix)
|
||||
let str = a:str
|
||||
let middles = {'%': '%', 'd': a:date, 'u': a:user, 'c': '{cursor}'}
|
||||
let middles = {'%': '%', 'd': a:date, 'u': a:user, 'p': a:prefix, 'c': '{cursor}'}
|
||||
let i = stridx(str, '%')
|
||||
while i != -1
|
||||
let inc = 0
|
||||
if has_key(middles, str[i + 1])
|
||||
let mid = middles[str[i + 1]]
|
||||
let str = strpart(str, 0, i) . mid . strpart(str, i + 2)
|
||||
let inc = strlen(mid)
|
||||
let inc = strlen(mid) - 1
|
||||
endif
|
||||
let i = stridx(str, '%', i + 1 + inc)
|
||||
endwhile
|
||||
@@ -171,7 +171,7 @@ if &filetype == 'changelog'
|
||||
endfunction
|
||||
|
||||
" Internal function to create a new entry in the ChangeLog.
|
||||
function! s:new_changelog_entry()
|
||||
function! s:new_changelog_entry(prefix)
|
||||
" Deal with 'paste' option.
|
||||
let save_paste = &paste
|
||||
let &paste = 1
|
||||
@@ -179,7 +179,7 @@ if &filetype == 'changelog'
|
||||
" Look for an entry for today by our user.
|
||||
let date = strftime(g:changelog_dateformat)
|
||||
let search = s:substitute_items(g:changelog_date_entry_search, date,
|
||||
\ s:username())
|
||||
\ s:username(), a:prefix)
|
||||
if search(search) > 0
|
||||
" Ok, now we look for the end of the date entry, and add an entry.
|
||||
call cursor(nextnonblank(line('.') + 1), 1)
|
||||
@@ -188,7 +188,7 @@ if &filetype == 'changelog'
|
||||
else
|
||||
let p = line('.')
|
||||
endif
|
||||
let ls = split(s:substitute_items(g:changelog_new_entry_format, '', ''),
|
||||
let ls = split(s:substitute_items(g:changelog_new_entry_format, '', '', a:prefix),
|
||||
\ '\n')
|
||||
call append(p, ls)
|
||||
call cursor(p + 1, 1)
|
||||
@@ -198,7 +198,7 @@ if &filetype == 'changelog'
|
||||
|
||||
" No entry today, so create a date-user header and insert an entry.
|
||||
let todays_entry = s:substitute_items(g:changelog_new_date_format,
|
||||
\ date, s:username())
|
||||
\ date, s:username(), a:prefix)
|
||||
" Make sure we have a cursor positioning.
|
||||
if stridx(todays_entry, '{cursor}') == -1
|
||||
let todays_entry = todays_entry . '{cursor}'
|
||||
@@ -206,7 +206,7 @@ if &filetype == 'changelog'
|
||||
|
||||
" Now do the work.
|
||||
call append(0, split(todays_entry, '\n'))
|
||||
|
||||
|
||||
" Remove empty lines at end of file.
|
||||
if remove_empty
|
||||
$-/^\s*$/-1,$delete
|
||||
@@ -223,8 +223,8 @@ if &filetype == 'changelog'
|
||||
endfunction
|
||||
|
||||
if exists(":NewChangelogEntry") != 2
|
||||
noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
|
||||
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
|
||||
noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry('')<CR>
|
||||
command! -nargs=0 NewChangelogEntry call s:new_changelog_entry('')
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "setl com< fo< et< ai<"
|
||||
@@ -277,10 +277,7 @@ else
|
||||
if exists('b:changelog_entry_prefix')
|
||||
let prefix = call(b:changelog_entry_prefix, [])
|
||||
else
|
||||
let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") . ':'
|
||||
endif
|
||||
if !empty(prefix)
|
||||
let prefix = ' ' . prefix
|
||||
let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "")
|
||||
endif
|
||||
|
||||
let buf = bufnr(changelog)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: cobol
|
||||
" Author: Tim Pope <vimNOSPAM@tpope.info>
|
||||
" $Id: cobol.vim,v 1.1 2007/05/05 17:24:38 vimboss Exp $
|
||||
" Last Update: By ZyX: use shiftwidth()
|
||||
|
||||
" Insert mode mappings: <C-T> <C-D> <Tab>
|
||||
" Normal mode mappings: < > << >> [[ ]] [] ][
|
||||
@@ -113,7 +113,7 @@ endfunction
|
||||
|
||||
function! s:increase(...)
|
||||
let lnum = '.'
|
||||
let sw = &shiftwidth
|
||||
let sw = shiftwidth()
|
||||
let i = a:0 ? a:1 : indent(lnum)
|
||||
if i >= 11
|
||||
return sw - (i - 11) % sw
|
||||
@@ -128,7 +128,7 @@ endfunction
|
||||
|
||||
function! s:decrease(...)
|
||||
let lnum = '.'
|
||||
let sw = &shiftwidth
|
||||
let sw = shiftwidth()
|
||||
let i = indent(a:0 ? a:1 : lnum)
|
||||
if i >= 11 + sw
|
||||
return 1 + (i + 12) % sw
|
||||
@@ -147,7 +147,7 @@ function! CobolIndentBlock(shift)
|
||||
let head = strpart(getline('.'),0,7)
|
||||
let tail = strpart(getline('.'),7)
|
||||
let indent = match(tail,'[^ ]')
|
||||
let sw = &shiftwidth
|
||||
let sw = shiftwidth()
|
||||
let shift = a:shift
|
||||
if shift > 0
|
||||
if indent < 4
|
||||
@@ -221,7 +221,8 @@ endfunction
|
||||
function! s:Tab()
|
||||
if (strpart(getline('.'),0,col('.')-1) =~ '^\s*$' && &sta)
|
||||
return s:IncreaseIndent()
|
||||
elseif &sts == &sw && &sts != 8 && &et
|
||||
" &softtabstop < 0: &softtabstop follows &shiftwidth
|
||||
elseif (&sts < 0 || &sts == shiftwidth()) && &sts != 8 && &et
|
||||
return s:repeat(" ",s:increase(col('.')-1))
|
||||
else
|
||||
return "\<Tab>"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
|
||||
" Stefano Zacchiroli <zack@debian.org>
|
||||
" Last Change: 2012-01-31
|
||||
" Last Change: 2014-01-31
|
||||
" License: Vim License
|
||||
" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
|
||||
|
||||
@@ -152,7 +152,7 @@ function CloseBug()
|
||||
endfunction
|
||||
|
||||
function Distribution(dist)
|
||||
call setline(1, substitute(getline(1), ") [[:lower:] ]*;", ") " . a:dist . ";", ""))
|
||||
call setline(1, substitute(getline(1), ') *\%(UNRELEASED\|\l\+\);', ") " . a:dist . ";", ""))
|
||||
endfunction
|
||||
|
||||
function Urgency(urg)
|
||||
|
||||
15
runtime/ftplugin/jproperties.vim
Normal file
15
runtime/ftplugin/jproperties.vim
Normal file
@@ -0,0 +1,15 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Java properties file
|
||||
" Maintainer: David Bürgin <676c7473@gmail.com>
|
||||
" Last Change: 2013-11-19
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal formatoptions-=t
|
||||
setlocal comments=:#,:!
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
let b:undo_ftplugin = "setl cms< com< fo<"
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: python
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: 2013 Sep 25
|
||||
" Last Change: 2014 Feb 09
|
||||
" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
@@ -11,11 +11,11 @@ set cpo&vim
|
||||
|
||||
setlocal cinkeys-=0#
|
||||
setlocal indentkeys-=0#
|
||||
setlocal include=\s*\\(from\\\|import\\)
|
||||
setlocal include=^\\s*\\(from\\\|import\\)
|
||||
setlocal includeexpr=substitute(v:fname,'\\.','/','g')
|
||||
setlocal suffixesadd=.py
|
||||
setlocal comments-=:%
|
||||
setlocal commentstring=#%s
|
||||
setlocal comments=b:#,fb:-
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
setlocal omnifunc=pythoncomplete#Complete
|
||||
|
||||
@@ -26,21 +26,21 @@ nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr>
|
||||
nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr>
|
||||
nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr>
|
||||
|
||||
if exists('*<SID>Python_jump') | finish | endif
|
||||
if !exists('*<SID>Python_jump')
|
||||
fun! <SID>Python_jump(motion) range
|
||||
let cnt = v:count1
|
||||
let save = @/ " save last search pattern
|
||||
mark '
|
||||
while cnt > 0
|
||||
silent! exe a:motion
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
call histdel('/', -1)
|
||||
let @/ = save " restore last search pattern
|
||||
endfun
|
||||
endif
|
||||
|
||||
fun! <SID>Python_jump(motion) range
|
||||
let cnt = v:count1
|
||||
let save = @/ " save last search pattern
|
||||
mark '
|
||||
while cnt > 0
|
||||
silent! exe a:motion
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
call histdel('/', -1)
|
||||
let @/ = save " restore last search pattern
|
||||
endfun
|
||||
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
if has("browsefilter") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Python Files (*.py)\t*.py\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
36
runtime/ftplugin/registry.vim
Normal file
36
runtime/ftplugin/registry.vim
Normal file
@@ -0,0 +1,36 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Windows Registry export with regedit (*.reg)
|
||||
" Maintainer: Cade Forester <ahx2323@gmail.com>
|
||||
" Latest Revision: 2014-01-09
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin =
|
||||
\ 'let b:browsefilter = "" | ' .
|
||||
\ 'setlocal ' .
|
||||
\ 'comments< '.
|
||||
\ 'commentstring< ' .
|
||||
\ 'formatoptions< '
|
||||
|
||||
|
||||
if has( 'gui_win32' )
|
||||
\ && !exists( 'b:browsefilter' )
|
||||
let b:browsefilter =
|
||||
\ 'registry files (*.reg)\t*.reg\n' .
|
||||
\ 'All files (*.*)\t*.*\n'
|
||||
endif
|
||||
|
||||
setlocal comments=:;
|
||||
setlocal commentstring=;\ %s
|
||||
|
||||
setlocal formatoptions-=t
|
||||
setlocal formatoptions+=croql
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,8 @@
|
||||
" Plugin to update the %changelog section of RPM spec files
|
||||
" Filename: spec.vim
|
||||
" Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com>
|
||||
" Last Change: 2012 Mar 07
|
||||
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
|
||||
" Former Maintainer: Gustavo Niemeyer <niemeyer@conectiva.com> (until March 2014)
|
||||
" Last Change: Sun Mar 2 11:24 MSK 2014 Igor Gnatenko
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -150,6 +151,10 @@ if !exists("*s:ParseRpmVars")
|
||||
execute a:strline
|
||||
let definestr = "^[ \t]*%define[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
|
||||
let linenum = search(definestr, "bW")
|
||||
if (linenum == 0)
|
||||
let definestr = substitute(definestr, "%define", "%global", "")
|
||||
let linenum = search(definestr, "bW")
|
||||
endif
|
||||
if (linenum != -1)
|
||||
let ret = ret . substitute(getline(linenum), definestr, "\\1", "")
|
||||
else
|
||||
|
||||
11
runtime/ftplugin/systemverilog.vim
Normal file
11
runtime/ftplugin/systemverilog.vim
Normal file
@@ -0,0 +1,11 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: SystemVerilog
|
||||
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
|
||||
" Last Change: 12-Aug-2013.
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Behaves just like Verilog
|
||||
runtime! ftplugin/verilog.vim
|
||||
@@ -6,7 +6,7 @@
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 08 September 2013
|
||||
" Last Change: 16 December 2013
|
||||
|
||||
" TODO: Indenting after multibyte characters is broken:
|
||||
" (let [Δ (if foo
|
||||
@@ -53,6 +53,10 @@ if exists("*searchpairpos")
|
||||
let g:clojure_align_multiline_strings = 0
|
||||
endif
|
||||
|
||||
if !exists('g:clojure_align_subforms')
|
||||
let g:clojure_align_subforms = 0
|
||||
endif
|
||||
|
||||
function! s:SynIdName()
|
||||
return synIDattr(synID(line("."), col("."), 0), "name")
|
||||
endfunction
|
||||
@@ -284,7 +288,7 @@ if exists("*searchpairpos")
|
||||
call search('\v\_s', 'cW')
|
||||
call search('\v\S', 'W')
|
||||
if paren[0] < line(".")
|
||||
return paren[1] + &shiftwidth - 1
|
||||
return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)
|
||||
endif
|
||||
|
||||
call search('\v\S', 'bW')
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
|
||||
" URL: http://www.2072productions.com/vim/indent/php.vim
|
||||
" Home: https://github.com/2072/PHP-Indenting-for-VIm
|
||||
" Last Change: 2013 August 7th
|
||||
" Last Change: 2014 Jan 21
|
||||
" Version: 1.39
|
||||
"
|
||||
"
|
||||
@@ -642,7 +642,7 @@ function! GetPhpIndent()
|
||||
if previous_line =~ '^\s*}\|;\s*}'.endline " XXX
|
||||
|
||||
call cursor(last_line_num, 1)
|
||||
call search('}\|;\s*}'.endline, 'W')
|
||||
call search('}\|;\s*}'.endline, 'cW')
|
||||
let oldLastLine = last_line_num
|
||||
let last_line_num = searchpair('{', '', '}', 'bW', 'Skippmatch()')
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim indent file
|
||||
" Language: Shell Script
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2010-01-06
|
||||
" Maintainer: Peter Aronoff <telemachus@arpinum.org>
|
||||
" Original Author: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2013-11-28
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -77,6 +78,8 @@ function! GetShIndent()
|
||||
let line = getline(v:lnum)
|
||||
if line =~ '^\s*\%(then\|do\|else\|elif\|fi\|done\)\>' || line =~ '^\s*}'
|
||||
let ind -= s:indent_value('default')
|
||||
elseif line =~ '^\s*esac\>' && s:is_case_empty(getline(v:lnum - 1))
|
||||
let ind -= s:indent_value('default')
|
||||
elseif line =~ '^\s*esac\>'
|
||||
let ind -= (s:is_case_label(pine, lnum) && s:is_case_ended(pine) ?
|
||||
\ 0 : s:indent_value('case-statements')) +
|
||||
@@ -154,5 +157,13 @@ function! s:is_case_ended(line)
|
||||
return s:is_case_break(a:line) || a:line =~ ';[;&]\s*\%(#.*\)\=$'
|
||||
endfunction
|
||||
|
||||
function! s:is_case_empty(line)
|
||||
if a:line =~ '^\s*$' || a:line =~ '^\s*#'
|
||||
return s:is_case_empty(getline(v:lnum - 1))
|
||||
else
|
||||
return a:line =~ '^\s*case\>'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
230
runtime/indent/systemverilog.vim
Normal file
230
runtime/indent/systemverilog.vim
Normal file
@@ -0,0 +1,230 @@
|
||||
" Vim indent file
|
||||
" Language: SystemVerilog
|
||||
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
|
||||
" Last Change: 12-Aug-2013.
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=SystemVerilogIndent()
|
||||
setlocal indentkeys=!^F,o,O,0),0},=begin,=end,=join,=endcase,=join_any,=join_none
|
||||
setlocal indentkeys+==endmodule,=endfunction,=endtask,=endspecify
|
||||
setlocal indentkeys+==endclass,=endpackage,=endsequence,=endclocking
|
||||
setlocal indentkeys+==endinterface,=endgroup,=endprogram,=endproperty,=endchecker
|
||||
setlocal indentkeys+==`else,=`endif
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*SystemVerilogIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
function SystemVerilogIndent()
|
||||
|
||||
if exists('b:systemverilog_indent_width')
|
||||
let offset = b:systemverilog_indent_width
|
||||
else
|
||||
let offset = &sw
|
||||
endif
|
||||
if exists('b:systemverilog_indent_modules')
|
||||
let indent_modules = offset
|
||||
else
|
||||
let indent_modules = 0
|
||||
endif
|
||||
|
||||
" Find a non-blank line above the current line.
|
||||
let lnum = prevnonblank(v:lnum - 1)
|
||||
|
||||
" At the start of the file use zero indent.
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let lnum2 = prevnonblank(lnum - 1)
|
||||
let curr_line = getline(v:lnum)
|
||||
let last_line = getline(lnum)
|
||||
let last_line2 = getline(lnum2)
|
||||
let ind = indent(lnum)
|
||||
let ind2 = indent(lnum - 1)
|
||||
let offset_comment1 = 1
|
||||
" Define the condition of an open statement
|
||||
" Exclude the match of //, /* or */
|
||||
let sv_openstat = '\(\<or\>\|\([*/]\)\@<![*(,{><+-/%^&|!=?:]\([*/]\)\@!\)'
|
||||
" Define the condition when the statement ends with a one-line comment
|
||||
let sv_comment = '\(//.*\|/\*.*\*/\s*\)'
|
||||
if exists('b:verilog_indent_verbose')
|
||||
let vverb_str = 'INDENT VERBOSE:'
|
||||
let vverb = 1
|
||||
else
|
||||
let vverb = 0
|
||||
endif
|
||||
|
||||
" Indent accoding to last line
|
||||
" End of multiple-line comment
|
||||
if last_line =~ '\*/\s*$' && last_line !~ '/\*.\{-}\*/'
|
||||
let ind = ind - offset_comment1
|
||||
if vverb
|
||||
echo vverb_str "De-indent after a multiple-line comment."
|
||||
endif
|
||||
|
||||
" Indent after if/else/for/case/always/initial/specify/fork blocks
|
||||
elseif last_line =~ '`\@<!\<\(if\|else\)\>' ||
|
||||
\ last_line =~ '^\s*\<\(for\|case\%[[zx]]\|do\|foreach\|randcase\)\>' ||
|
||||
\ last_line =~ '^\s*\<\(always\|always_comb\|always_ff\|always_latch\)\>' ||
|
||||
\ last_line =~ '^\s*\<\(initial\|specify\|fork\|final\)\>'
|
||||
if last_line !~ '\(;\|\<end\>\)\s*' . sv_comment . '*$' ||
|
||||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$'
|
||||
let ind = ind + offset
|
||||
if vverb | echo vverb_str "Indent after a block statement." | endif
|
||||
endif
|
||||
" Indent after function/task/class/package/sequence/clocking/
|
||||
" interface/covergroup/property/checkerprogram blocks
|
||||
elseif last_line =~ '^\s*\<\(function\|task\|class\|package\)\>' ||
|
||||
\ last_line =~ '^\s*\<\(sequence\|clocking\|interface\)\>' ||
|
||||
\ last_line =~ '^\s*\(\w\+\s*:\)\=\s*\<covergroup\>' ||
|
||||
\ last_line =~ '^\s*\<\(property\|checker\|program\)\>'
|
||||
if last_line !~ '\<end\>\s*' . sv_comment . '*$' ||
|
||||
\ last_line =~ '\(//\|/\*\).*\(;\|\<end\>\)\s*' . sv_comment . '*$'
|
||||
let ind = ind + offset
|
||||
if vverb
|
||||
echo vverb_str "Indent after function/task/class block statement."
|
||||
endif
|
||||
endif
|
||||
|
||||
" Indent after module/function/task/specify/fork blocks
|
||||
elseif last_line =~ '^\s*\(\<extern\>\s*\)\=\<module\>'
|
||||
let ind = ind + indent_modules
|
||||
if vverb && indent_modules
|
||||
echo vverb_str "Indent after module statement."
|
||||
endif
|
||||
if last_line =~ '[(,]\s*' . sv_comment . '*$' &&
|
||||
\ last_line !~ '\(//\|/\*\).*[(,]\s*' . sv_comment . '*$'
|
||||
let ind = ind + offset
|
||||
if vverb
|
||||
echo vverb_str "Indent after a multiple-line module statement."
|
||||
endif
|
||||
endif
|
||||
|
||||
" Indent after a 'begin' statement
|
||||
elseif last_line =~ '\(\<begin\>\)\(\s*:\s*\w\+\)*' . sv_comment . '*$' &&
|
||||
\ last_line !~ '\(//\|/\*\).*\(\<begin\>\)' &&
|
||||
\ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' ||
|
||||
\ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' )
|
||||
let ind = ind + offset
|
||||
if vverb | echo vverb_str "Indent after begin statement." | endif
|
||||
|
||||
" Indent after a '{' or a '('
|
||||
elseif last_line =~ '[{(]' . sv_comment . '*$' &&
|
||||
\ last_line !~ '\(//\|/\*\).*[{(]' &&
|
||||
\ ( last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' ||
|
||||
\ last_line2 =~ '^\s*[^=!]\+\s*:\s*' . sv_comment . '*$' )
|
||||
let ind = ind + offset
|
||||
if vverb | echo vverb_str "Indent after begin statement." | endif
|
||||
|
||||
" De-indent for the end of one-line block
|
||||
elseif ( last_line !~ '\<begin\>' ||
|
||||
\ last_line =~ '\(//\|/\*\).*\<begin\>' ) &&
|
||||
\ last_line2 =~ '\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|final\)\>.*' .
|
||||
\ sv_comment . '*$' &&
|
||||
\ last_line2 !~ '\(//\|/\*\).*\<\(`\@<!if\|`\@<!else\|for\|always\|initial\|do\|foreach\|final\)\>' &&
|
||||
\ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$' &&
|
||||
\ ( last_line2 !~ '\<begin\>' ||
|
||||
\ last_line2 =~ '\(//\|/\*\).*\<begin\>' )
|
||||
let ind = ind - offset
|
||||
if vverb
|
||||
echo vverb_str "De-indent after the end of one-line statement."
|
||||
endif
|
||||
|
||||
" Multiple-line statement (including case statement)
|
||||
" Open statement
|
||||
" Ident the first open line
|
||||
elseif last_line =~ sv_openstat . '\s*' . sv_comment . '*$' &&
|
||||
\ last_line !~ '\(//\|/\*\).*' . sv_openstat . '\s*$' &&
|
||||
\ last_line2 !~ sv_openstat . '\s*' . sv_comment . '*$'
|
||||
let ind = ind + offset
|
||||
if vverb | echo vverb_str "Indent after an open statement." | endif
|
||||
|
||||
" Close statement
|
||||
" De-indent for an optional close parenthesis and a semicolon, and only
|
||||
" if there exists precedent non-whitespace char
|
||||
elseif last_line =~ ')*\s*;\s*' . sv_comment . '*$' &&
|
||||
\ last_line !~ '^\s*)*\s*;\s*' . sv_comment . '*$' &&
|
||||
\ last_line !~ '\(//\|/\*\).*\S)*\s*;\s*' . sv_comment . '*$' &&
|
||||
\ ( last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' &&
|
||||
\ last_line2 !~ ';\s*//.*$') &&
|
||||
\ last_line2 !~ '^\s*' . sv_comment . '$'
|
||||
let ind = ind - offset
|
||||
if vverb | echo vverb_str "De-indent after a close statement." | endif
|
||||
|
||||
" `ifdef and `else
|
||||
elseif last_line =~ '^\s*`\<\(ifdef\|else\)\>'
|
||||
let ind = ind + offset
|
||||
if vverb
|
||||
echo vverb_str "Indent after a `ifdef or `else statement."
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
" Re-indent current line
|
||||
|
||||
" De-indent on the end of the block
|
||||
" join/end/endcase/endfunction/endtask/endspecify
|
||||
if curr_line =~ '^\s*\<\(join\|join_any\|join_none\|\|end\|endcase\|while\)\>' ||
|
||||
\ curr_line =~ '^\s*\<\(endfunction\|endtask\|endspecify\|endclass\)\>' ||
|
||||
\ curr_line =~ '^\s*\<\(endpackage\|endsequence\|endclocking\|endinterface\)\>' ||
|
||||
\ curr_line =~ '^\s*\<\(endgroup\|endproperty\|endchecker\|endprogram\)\>' ||
|
||||
\ curr_line =~ '^\s*}'
|
||||
let ind = ind - offset
|
||||
if vverb | echo vverb_str "De-indent the end of a block." | endif
|
||||
elseif curr_line =~ '^\s*\<endmodule\>'
|
||||
let ind = ind - indent_modules
|
||||
if vverb && indent_modules
|
||||
echo vverb_str "De-indent the end of a module."
|
||||
endif
|
||||
|
||||
" De-indent on a stand-alone 'begin'
|
||||
elseif curr_line =~ '^\s*\<begin\>'
|
||||
if last_line !~ '^\s*\<\(function\|task\|specify\|module\|class\|package\)\>' ||
|
||||
\ last_line !~ '^\s*\<\(sequence\|clocking\|interface\|covergroup\)\>' ||
|
||||
\ last_line !~ '^\s*\<\(property\|checker\|program\)\>' &&
|
||||
\ last_line !~ '^\s*\()*\s*;\|)\+\)\s*' . sv_comment . '*$' &&
|
||||
\ ( last_line =~
|
||||
\ '\<\(`\@<!if\|`\@<!else\|for\|case\%[[zx]]\|always\|initial\|do\|foreach\|randcase\|final\)\>' ||
|
||||
\ last_line =~ ')\s*' . sv_comment . '*$' ||
|
||||
\ last_line =~ sv_openstat . '\s*' . sv_comment . '*$' )
|
||||
let ind = ind - offset
|
||||
if vverb
|
||||
echo vverb_str "De-indent a stand alone begin statement."
|
||||
endif
|
||||
endif
|
||||
|
||||
" De-indent after the end of multiple-line statement
|
||||
elseif curr_line =~ '^\s*)' &&
|
||||
\ ( last_line =~ sv_openstat . '\s*' . sv_comment . '*$' ||
|
||||
\ last_line !~ sv_openstat . '\s*' . sv_comment . '*$' &&
|
||||
\ last_line2 =~ sv_openstat . '\s*' . sv_comment . '*$' )
|
||||
let ind = ind - offset
|
||||
if vverb
|
||||
echo vverb_str "De-indent the end of a multiple statement."
|
||||
endif
|
||||
|
||||
" De-indent `else and `endif
|
||||
elseif curr_line =~ '^\s*`\<\(else\|endif\)\>'
|
||||
let ind = ind - offset
|
||||
if vverb | echo vverb_str "De-indent `else and `endif statement." | endif
|
||||
|
||||
endif
|
||||
|
||||
" Return the indention
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:sw=2
|
||||
@@ -1,7 +1,7 @@
|
||||
" ---------------------------------------------------------------------
|
||||
" getscriptPlugin.vim
|
||||
" Author: Charles E. Campbell
|
||||
" Date: Jan 07, 2008
|
||||
" Date: Nov 29, 2013
|
||||
" Installing: :help glvs-install
|
||||
" Usage: :help glvs
|
||||
"
|
||||
@@ -13,13 +13,16 @@
|
||||
" Initialization: {{{1
|
||||
" if you're sourcing this file, surely you can't be
|
||||
" expecting vim to be in its vi-compatible mode
|
||||
if &cp || exists("g:loaded_getscriptPlugin")
|
||||
if exists("g:loaded_getscriptPlugin")
|
||||
finish
|
||||
endif
|
||||
if &cp
|
||||
if &verbose
|
||||
echo "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
|
||||
endif
|
||||
finish
|
||||
endif
|
||||
let g:loaded_getscriptPlugin = "v35"
|
||||
let g:loaded_getscriptPlugin = "v36"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
|
||||
" PLUGIN SECTION
|
||||
" Date: Apr 30, 2013
|
||||
" Date: Dec 31, 2013
|
||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
|
||||
" Copyright: Copyright (C) 1999-2013 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
@@ -20,27 +20,33 @@
|
||||
if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
"DechoTabOn
|
||||
let g:loaded_netrwPlugin = "v149"
|
||||
let g:loaded_netrwPlugin = "v150"
|
||||
if v:version < 702
|
||||
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
|
||||
echohl WarningMsg
|
||||
echo "***warning*** you need vim version 7.2 for this version of netrw"
|
||||
echohl None
|
||||
finish
|
||||
endif
|
||||
if v:version < 703 || (v:version == 703 && !has("patch465"))
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrw needs vim 7.3.465 or later"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
"DechoRemOn
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Public Interface: {{{1
|
||||
|
||||
" Local Browsing: {{{2
|
||||
" Local Browsing Autocmds: {{{2
|
||||
augroup FileExplorer
|
||||
au!
|
||||
" SEE Benzinger problem...
|
||||
au BufEnter * sil! call s:LocalBrowse(expand("<amatch>"))
|
||||
au VimEnter * sil! call s:VimEnter(expand("<amatch>"))
|
||||
au BufEnter * sil call s:LocalBrowse(expand("<amatch>"))
|
||||
au VimEnter * sil call s:VimEnter(expand("<amatch>"))
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
au BufEnter .* sil! call s:LocalBrowse(expand("<amatch>"))
|
||||
au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
|
||||
endif
|
||||
augroup END
|
||||
|
||||
@@ -50,8 +56,8 @@ augroup Network
|
||||
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
try
|
||||
au SourceCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
|
||||
catch /^Vim\%((\a\+)\)\=:E216/
|
||||
@@ -64,8 +70,9 @@ com! -count=1 -nargs=* Nread call netrw#NetrwSavePosn()<bar>call netrw#NetRead(
|
||||
com! -range=% -nargs=* Nwrite call netrw#NetrwSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetrwRestorePosn()
|
||||
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
|
||||
com! -nargs=* Nsource call netrw#NetrwSavePosn()<bar>call netrw#NetSource(<f-args>)<bar>call netrw#NetrwRestorePosn()
|
||||
com! -nargs=? Ntree call netrw#NetrwSetTreetop(<q-args>)
|
||||
|
||||
" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2
|
||||
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Sexplore call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Hexplore call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
|
||||
@@ -73,6 +80,7 @@ com! -nargs=* -bar -bang -count=0 -complete=dir Vexplore call netrw#Explore(<cou
|
||||
com! -nargs=* -bar -count=0 -complete=dir Texplore call netrw#Explore(<count>,0,6 ,<q-args>)
|
||||
com! -nargs=* -bar -bang Nexplore call netrw#Explore(-1,0,0,<q-args>)
|
||||
com! -nargs=* -bar -bang Pexplore call netrw#Explore(-2,0,0,<q-args>)
|
||||
com! -nargs=* -bar -complete=dir Lexplore call netrw#Lexplore(<q-args>)
|
||||
|
||||
" Commands: NetrwSettings {{{2
|
||||
com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
|
||||
@@ -83,46 +91,61 @@ if !exists("g:netrw_nogx") && maparg('gx','n') == ""
|
||||
if !hasmapto('<Plug>NetrwBrowseX')
|
||||
nmap <unique> gx <Plug>NetrwBrowseX
|
||||
endif
|
||||
nno <silent> <Plug>NetrwBrowseX :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<cr>
|
||||
nno <silent> <Plug>NetrwBrowseX :call netrw#NetrwBrowseX(expand("<cfile>"),0)<cr>
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" LocalBrowse: {{{2
|
||||
" LocalBrowse: invokes netrw#LocalBrowseCheck() on directory buffers {{{2
|
||||
fun! s:LocalBrowse(dirname)
|
||||
" unfortunate interaction -- debugging calls can't be used here;
|
||||
" the BufEnter event causes triggering when attempts to write to
|
||||
" Unfortunate interaction -- only DechoMsg debugging calls can be safely used here.
|
||||
" Otherwise, the BufEnter event gets triggered when attempts to write to
|
||||
" the DBG buffer are made.
|
||||
|
||||
if !exists("s:vimentered")
|
||||
" If s:vimentered doesn't exist, then the VimEnter event hasn't fired. It will,
|
||||
" and so s:VimEnter() will then be calling this routine, but this time with s:vimentered defined.
|
||||
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered doesn't exist)")
|
||||
" call Dret("s:LocalBrowse")
|
||||
return
|
||||
endif
|
||||
" call Decho("s:LocalBrowse(dirname<".a:dirname.">){")
|
||||
" echomsg "dirname<".a:dirname.">"
|
||||
|
||||
" call Dfunc("s:LocalBrowse(dirname<".a:dirname.">) (s:vimentered=".s:vimentered.")")
|
||||
|
||||
if has("amiga")
|
||||
" The check against '' is made for the Amiga, where the empty
|
||||
" string is the current directory and not checking would break
|
||||
" things such as the help command.
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> (amiga)")
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, amiga)")
|
||||
if a:dirname != '' && isdirectory(a:dirname)
|
||||
sil! call netrw#LocalBrowseCheck(a:dirname)
|
||||
endif
|
||||
|
||||
elseif isdirectory(a:dirname)
|
||||
" echomsg "dirname<".dirname."> isdir"
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> (not amiga)")
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> (isdirectory, not amiga)")
|
||||
sil! call netrw#LocalBrowseCheck(a:dirname)
|
||||
|
||||
else
|
||||
" not a directory, ignore it
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
|
||||
endif
|
||||
" not a directory, ignore it
|
||||
" call Decho("|return s:LocalBrowse }")
|
||||
|
||||
" call Dret("s:LocalBrowse")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:VimEnter: {{{2
|
||||
" s:VimEnter: after all vim startup stuff is done, this function is called. {{{2
|
||||
" Its purpose: to look over all windows and run s:LocalBrowse() on
|
||||
" them, which checks if they're directories and will create a directory
|
||||
" listing when appropriate.
|
||||
" It also sets s:vimentered, letting s:LocalBrowse() know that s:VimEnter()
|
||||
" has already been called.
|
||||
fun! s:VimEnter(dirname)
|
||||
" call Decho("VimEnter(dirname<".a:dirname.">){")
|
||||
" call Dfunc("s:VimEnter(dirname<".a:dirname.">) expand(%)<".expand("%").">")
|
||||
let curwin = winnr()
|
||||
let s:vimentered = 1
|
||||
windo if a:dirname != expand("%")|call s:LocalBrowse(expand("%:p"))|endif
|
||||
windo call s:LocalBrowse(expand("%:p"))
|
||||
exe curwin."wincmd w"
|
||||
" call Decho("|return VimEnter }")
|
||||
" call Dret("s:VimEnter")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: xa 6502 cross assembler
|
||||
" Maintainer: Clemens Kirchgatterer <clemens@thf.ath.cx>
|
||||
" Last Change: 2003 May 03
|
||||
" Maintainer: Clemens Kirchgatterer <clemens@1541.org>
|
||||
" Last Change: 2014 Jan 05
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
||||
" License: This file can be redistribued and/or modified under the same terms
|
||||
" as Vim itself.
|
||||
" Last Change: 2013-09-16
|
||||
" Last Change: 2014-03-04
|
||||
" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported
|
||||
" TODO: see particular FIXME's scattered through the file
|
||||
" make it really linewise?
|
||||
@@ -157,7 +157,7 @@ syn keyword apacheDeclaration PerlRestartHandler PerlDispatchHandler
|
||||
syn keyword apacheDeclaration PerlFreshRestart PerlSendHeader
|
||||
syn keyword apacheDeclaration php_value php_flag php_admin_value php_admin_flag
|
||||
syn match apacheSection "<\/\=\(Proxy\|ProxyMatch\)[^>]*>" contains=apacheAnything
|
||||
syn keyword apacheDeclaration AllowCONNECT NoProxy ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize ProxyMaxForwards ProxyPass ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia
|
||||
syn keyword apacheDeclaration AllowCONNECT NoProxy ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize ProxyMaxForwards ProxyPass ProxyPassMatch ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia
|
||||
syn keyword apacheDeclaration RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule
|
||||
syn keyword apacheOption inherit
|
||||
syn keyword apacheDeclaration BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase
|
||||
|
||||
61
runtime/syntax/arduino.vim
Normal file
61
runtime/syntax/arduino.vim
Normal file
@@ -0,0 +1,61 @@
|
||||
" Vim syntax file
|
||||
" Language: Arduino
|
||||
" Maintainer: Johannes Hoff <johannes@johanneshoff.com>
|
||||
" Last Change: 2011 June 3
|
||||
" License: VIM license (:help license, replace vim by arduino.vim)
|
||||
|
||||
" Syntax highlighting like in the Arduino IDE
|
||||
" Keywords extracted from <arduino>/build/shared/lib/keywords.txt (arduino
|
||||
" version 0021)
|
||||
|
||||
" Thanks to Rik, Erik Nomitch, Adam Obeng and Graeme Cross for helpful feedback!
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Read the C syntax to start with
|
||||
if version < 600
|
||||
so <sfile>:p:h/cpp.vim
|
||||
else
|
||||
runtime! syntax/cpp.vim
|
||||
endif
|
||||
|
||||
syn keyword arduinoConstant HIGH LOW INPUT OUTPUT
|
||||
syn keyword arduinoConstant DEC BIN HEX OCT BYTE
|
||||
syn keyword arduinoConstant PI HALF_PI TWO_PI
|
||||
syn keyword arduinoConstant LSBFIRST MSBFIRST
|
||||
syn keyword arduinoConstant CHANGE FALLING RISING
|
||||
syn keyword arduinoConstant SERIAL DISPLAY
|
||||
syn keyword arduinoConstant DEFAULT EXTERNAL INTERNAL INTERNAL1V1 INTERNAL2V56
|
||||
|
||||
syn keyword arduinoStdFunc abs acos asin atan atan2 ceil constrain
|
||||
syn keyword arduinoStdFunc cos degrees exp floor log
|
||||
syn keyword arduinoStdFunc map max min pow radians
|
||||
syn keyword arduinoStdFunc round sin sq sqrt tan
|
||||
syn keyword arduinoStdFunc randomSeed random
|
||||
|
||||
syn keyword arduinoFunc analogReference analogRead analogWrite
|
||||
syn keyword arduinoFunc attachInterrupt detachInterrupt interrupts noInterrupts
|
||||
syn keyword arduinoFunc lowByte highByte bitRead bitWrite bitSet bitClear
|
||||
syn keyword arduinoFunc millis micros delay delayMicroseconds
|
||||
syn keyword arduinoFunc pinMode digitalWrite digitalRead
|
||||
syn keyword arduinoFunc tone noTone pulseIn shiftOut
|
||||
|
||||
syn keyword arduinoMethod setup loop
|
||||
syn keyword arduinoMethod begin end available read flush print println write peek
|
||||
|
||||
syn keyword arduinoType boolean byte word String
|
||||
|
||||
syn keyword arduinoModule Serial Serial1 Serial2 Serial3
|
||||
|
||||
hi def link arduinoType Type
|
||||
hi def link arduinoConstant Constant
|
||||
hi def link arduinoStdFunc Function
|
||||
hi def link arduinoFunc Function
|
||||
hi def link arduinoMethod Function
|
||||
hi def link arduinoModule Identifier
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Erik Wognsen <erik.wognsen@gmail.com>
|
||||
" Previous maintainer:
|
||||
" Kevin Dahlhausen <kdahlhaus@yahoo.com>
|
||||
" Last Change: 2012 Apr 09
|
||||
" Last Change: 2014 Feb 04
|
||||
|
||||
" Thanks to Ori Avtalion for feedback on the comment markers!
|
||||
|
||||
@@ -93,7 +93,11 @@ syn match asmCond "\.endif"
|
||||
syn match asmMacro "\.macro"
|
||||
syn match asmMacro "\.endm"
|
||||
|
||||
syn match asmDirective "\.[a-z][a-z]\+"
|
||||
" Assembler directives start with a '.' and may contain upper case (e.g.,
|
||||
" .ABORT), numbers (e.g., .p2align), dash (e.g., .app-file) and underscore in
|
||||
" CFI directives (e.g., .cfi_startproc). This will also match labels starting
|
||||
" with '.', including the GCC auto-generated '.L' labels.
|
||||
syn match asmDirective "\.[A-Za-z][0-9A-Za-z-_]*"
|
||||
|
||||
|
||||
syn case match
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -6,7 +6,7 @@
|
||||
" Nikolai Weibull (Add CSS2 support)
|
||||
" Maintainer: Jules Wang <w.jq0722@gmail.com>
|
||||
" URL: https://github.com/JulesWang/css.vim
|
||||
" Last Change: 2013 Sep 24
|
||||
" Last Change: 2013 Nov.27
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -58,7 +58,8 @@ syn match cssSelectorOp2 "[~|^$*]\?=" contained
|
||||
syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
|
||||
|
||||
" .class and #id
|
||||
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
|
||||
syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" contains=cssClassNameDot
|
||||
syn match cssClassNameDot contained '\.'
|
||||
|
||||
try
|
||||
syn match cssIdentifier "#[A-Za-z<>-<2D>_@][A-Za-z<>-<2D>0-9_@-]*"
|
||||
@@ -74,13 +75,14 @@ syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)" cont
|
||||
syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)" contains=cssUnitDecorators
|
||||
syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)" contains=cssUnitDecorators
|
||||
|
||||
|
||||
syn match cssIncludeKeyword /@\(-[a-z]+-\)\=\(media\|keyframes\|import\|charset\|namespace\|page\)/ contained
|
||||
" @media
|
||||
syn match cssMedia "@media\>" nextgroup=cssMediaQuery,cssMediaBlock skipwhite skipnl
|
||||
syn match cssMediaQuery /\(only\|not\)\=\s*[a-z]*\(\s\|,\)\@=\(\(\s\+and\)\=\s\+(.\{-})\)*/ contained skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType nextgroup=cssMediaBlock,cssMediaComma
|
||||
syn region cssInclude start=/@media\>/ end=/\ze{/ skipwhite skipnl contains=cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssIncludeKeyword,cssMediaComma,cssComment nextgroup=cssMediaBlock
|
||||
syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained skipwhite skipnl
|
||||
syn keyword cssMediaKeyword only not and contained
|
||||
syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssTagName,cssClassName,cssIdentifier,cssPseudoClass,cssSelectorOp,cssSelectorOp2,cssAttributeSelector fold
|
||||
syn match cssMediaComma "," nextgroup=cssMediaQuery skipwhite skipnl contained
|
||||
syn match cssMediaComma "," skipwhite skipnl contained
|
||||
|
||||
" Reference: http://www.w3.org/TR/css3-mediaqueries/
|
||||
syn keyword cssMediaProp contained width height orientation scan grid
|
||||
@@ -91,21 +93,25 @@ syn match cssMediaProp contained /\(\(max\|min\)-\)\=\(height\|width\|resolution
|
||||
syn keyword cssMediaAttr contained portrait landscape progressive interlace
|
||||
|
||||
" @page
|
||||
syn match cssPage "@page\>" nextgroup=cssPagePseudo,cssDefinition skipwhite skipnl
|
||||
syn match cssPagePseudo /:\(left\|right\|first\|\)/ nextgroup=cssDefinition contained skipwhite skipnl
|
||||
syn match cssPageHeaderProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained
|
||||
syn keyword cssPageProp content size contained
|
||||
" http://www.w3.org/TR/css3-page/
|
||||
syn match cssPage "@page\>[^{]*{\@=" contains=cssPagePseudo,cssIncludeKeyword nextgroup=cssPageWrap transparent skipwhite skipnl
|
||||
syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl
|
||||
syn region cssPageWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssPageMargin,cssPageProp,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks
|
||||
syn match cssPageMargin /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition skipwhite skipnl
|
||||
syn keyword cssPageProp contained content size
|
||||
" http://www.w3.org/TR/CSS2/page.html#break-inside
|
||||
syn keyword cssPageProp contained orphans widows
|
||||
|
||||
" @keyframe
|
||||
syn match cssKeyFrame "@\(-[a-z]*-\)\=keyframes\>\(\s*\<\S*\>\)\=" nextgroup=cssKeyFrameBlock contains=cssVendor skipwhite skipnl
|
||||
syn region cssKeyFrameBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector,cssDefinition
|
||||
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl
|
||||
" http://www.w3.org/TR/css3-animations/#keyframes
|
||||
syn match cssKeyFrame "@\(-[a-z]+-\)\=keyframes\>[^{]*{\@=" nextgroup=cssKeyFrameWrap contains=cssVendor,cssIncludeKeyword skipwhite skipnl transparent
|
||||
syn region cssKeyFrameWrap contained transparent matchgroup=cssBraces start="{" end="}" contains=cssKeyFrameSelector
|
||||
syn match cssKeyFrameSelector /\(\d*%\|from\|to\)\=/ contained skipwhite skipnl nextgroup=cssDefinition
|
||||
|
||||
" @import
|
||||
syn region cssInclude start=/@import\>/ end=/\ze;/ contains=cssComment,cssURL,cssUnicodeEscape,cssMediaQuery,cssStringQ,cssStringQQ,cssIncludeKeyword
|
||||
syn region cssInclude start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
||||
syn region cssInclude start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
||||
syn match cssIncludeKeyword /\(@import\|@charset\|@namespace\)/ contained
|
||||
syn region cssInclude start=/@import\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword,cssURL,cssMediaProp,cssValueLength,cssMediaKeyword,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType
|
||||
syn region cssInclude start=/@charset\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
||||
syn region cssInclude start=/@namespace\>/ end=/\ze;/ transparent contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssIncludeKeyword
|
||||
|
||||
" @font-face
|
||||
" http://www.w3.org/TR/css3-fonts/#at-font-face-rule
|
||||
@@ -179,7 +185,7 @@ syn keyword cssCommonAttr contained top bottom center stretch hidden visible
|
||||
"------------------------------------------------
|
||||
" CSS Animations
|
||||
" http://www.w3.org/TR/css3-animations/
|
||||
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\)\)\=\>"
|
||||
syn match cssAnimationProp contained "\<animation\(-\(delay\|direction\|duration\|fill-mode\|name\|play-state\|timing-function\|iteration-count\)\)\=\>"
|
||||
|
||||
" animation-direction attributes
|
||||
syn keyword cssAnimationAttr contained alternate reverse
|
||||
@@ -215,7 +221,7 @@ syn match cssBorderProp contained "\<box-decoration-break\>"
|
||||
syn match cssBorderProp contained "\<box-shadow\>"
|
||||
|
||||
" border-image attributes
|
||||
syn keyword cssBorderAttr contained stretch repeat round space fill
|
||||
syn keyword cssBorderAttr contained stretch round space fill
|
||||
|
||||
" border-style attributes
|
||||
syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset
|
||||
@@ -230,7 +236,7 @@ syn keyword cssBorderAttr contained clone slice
|
||||
syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
|
||||
syn match cssBoxProp contained "\<rotation\(-point\)=\>"
|
||||
syn match cssBoxProp contained "\<rotation\(-point\)\=\>"
|
||||
syn keyword cssBoxAttr contained visible hidden scroll auto
|
||||
syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
|
||||
|
||||
@@ -289,13 +295,26 @@ syn keyword cssFontAttr contained bold bolder lighter
|
||||
syn match cssFontProp contained "\<font-smooth\>"
|
||||
syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>"
|
||||
|
||||
|
||||
" CSS Multi-column Layout Module
|
||||
" http://www.w3.org/TR/css3-multicol/
|
||||
syn match cssMultiColumnProp contained "\<break-\(after\|before\|inside\)\>"
|
||||
syn match cssMultiColumnProp contained "\<column-\(count\|fill\|gap\|rule\(-\(color\|style\|width\)\)\=\|span\|width\)\>"
|
||||
syn keyword cssMultiColumnProp contained columns
|
||||
syn keyword cssMultiColumnAttr contained balance medium
|
||||
syn keyword cssMultiColumnAttr contained always avoid left right page column
|
||||
syn match cssMultiColumnAttr contained "\<avoid-\(page\|column\)\>"
|
||||
|
||||
" http://www.w3.org/TR/css3-break/#page-break
|
||||
syn match cssMultiColumnProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
||||
|
||||
" TODO find following items in w3c docs.
|
||||
syn keyword cssGeneratedContentProp contained quotes crop
|
||||
syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
|
||||
syn match cssGeneratedContentProp contained "\<move-to\>"
|
||||
syn match cssGeneratedContentProp contained "\<page-policy\>"
|
||||
syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
|
||||
|
||||
|
||||
syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
|
||||
|
||||
syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
|
||||
@@ -307,8 +326,6 @@ syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic
|
||||
syn keyword cssListAttr contained disc circle square hebrew armenian georgian
|
||||
syn keyword cssListAttr contained inside outside
|
||||
|
||||
syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
|
||||
|
||||
syn keyword cssPositioningProp contained bottom clear clip display float left
|
||||
syn keyword cssPositioningProp contained position right top visibility
|
||||
syn match cssPositioningProp contained "\<z-index\>"
|
||||
@@ -319,8 +336,6 @@ syn match cssPositioningAttr contained "\<list-item\>"
|
||||
syn match cssPositioningAttr contained "\<inline\(-\(block\|box\|table\)\)\=\>"
|
||||
syn keyword cssPositioningAttr contained static relative absolute fixed
|
||||
|
||||
syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
||||
syn keyword cssPrintProp contained orphans widows
|
||||
syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
|
||||
|
||||
syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
|
||||
@@ -394,7 +409,7 @@ syn keyword cssUIAttr contained both horizontal vertical
|
||||
syn match cssUIProp contained "\<text-overflow\>"
|
||||
syn keyword cssUIAttr contained clip ellipsis
|
||||
|
||||
" Already highlighted Props: font content
|
||||
" Already highlighted Props: font content
|
||||
"------------------------------------------------
|
||||
" Webkit/iOS specific attributes
|
||||
syn match cssUIAttr contained '\(preserve-3d\)'
|
||||
@@ -456,8 +471,8 @@ syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>"
|
||||
syn region cssComment start="/\*" end="\*/" contains=@Spell fold
|
||||
|
||||
syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
|
||||
syn match cssSpecialCharQQ +\\"+ contained
|
||||
syn match cssSpecialCharQ +\\'+ contained
|
||||
syn match cssSpecialCharQQ +\\\\\|\\"+ contained
|
||||
syn match cssSpecialCharQ +\\\\\|\\'+ contained
|
||||
syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
|
||||
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
|
||||
|
||||
@@ -478,11 +493,11 @@ syntax match cssNoise contained /\(:\|;\|\/\)/
|
||||
|
||||
" Attr Enhance
|
||||
" Some keywords are both Prop and Attr, so we have to handle them
|
||||
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
|
||||
syn region cssAttrRegion start=/:/ end=/;/ contained keepend contains=css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
|
||||
|
||||
" Hack for transition
|
||||
" The 'transition' Prop has Props after ':'.
|
||||
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssTransitionHackProp,cssAttrComma,cssNoise
|
||||
syn region cssAttrRegion start=/transition\s*:/ end=/;/ contained keepend contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise
|
||||
|
||||
|
||||
if main_syntax == "css"
|
||||
@@ -593,7 +608,6 @@ if version >= 508 || !exists("did_css_syn_inits")
|
||||
HiLink cssBraces Function
|
||||
HiLink cssBraceError Error
|
||||
HiLink cssError Error
|
||||
HiLink cssInclude Include
|
||||
HiLink cssUnicodeEscape Special
|
||||
HiLink cssStringQQ String
|
||||
HiLink cssStringQ String
|
||||
@@ -606,7 +620,7 @@ if version >= 508 || !exists("did_css_syn_inits")
|
||||
HiLink cssMediaAttr cssAttr
|
||||
HiLink cssPage atKeyword
|
||||
HiLink cssPagePseudo PreProc
|
||||
HiLink cssPageHeaderProp PreProc
|
||||
HiLink cssPageMargin atKeyword
|
||||
HiLink cssPageProp cssProp
|
||||
HiLink cssKeyFrame atKeyword
|
||||
HiLink cssKeyFrameSelector Constant
|
||||
@@ -616,6 +630,7 @@ if version >= 508 || !exists("did_css_syn_inits")
|
||||
HiLink cssFontDescriptorAttr cssAttr
|
||||
HiLink cssUnicodeRange Constant
|
||||
HiLink cssClassName Function
|
||||
HiLink cssClassNameDot Function
|
||||
HiLink cssProp StorageClass
|
||||
HiLink cssAttr Constant
|
||||
HiLink cssUnitDecorators Number
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2013 May 05
|
||||
" Last Change: 2014 Jan 20
|
||||
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -19,7 +19,7 @@ syn case ignore
|
||||
" Define some common expressions we can use later on
|
||||
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
||||
syn match debchangelogUrgency contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
|
||||
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile)|wheezy-backports|%(lucid|precise|quantal|raring|saucy)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
||||
syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile)|wheezy-backports|%(lucid|precise|quantal|saucy|trusty)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
||||
syn match debchangelogVersion contained "(.\{-})"
|
||||
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
|
||||
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2013 May 05
|
||||
" Last Change: 2013 Oct 28
|
||||
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -24,7 +24,7 @@ syn match debControlComma ", *"
|
||||
syn match debControlSpace " "
|
||||
|
||||
" Define some common expressions we can use later on
|
||||
syn match debcontrolArchitecture contained "\%(all\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\|hf\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\|any\)"
|
||||
syn match debcontrolArchitecture contained "\%(all\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\|hf\|64\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\%(spe\)\=\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|x32\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\|any\)"
|
||||
syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
|
||||
syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
|
||||
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Debian sources.list
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
||||
" Last Change: 2013 May 05
|
||||
" Last Change: 2014 Jan 20
|
||||
" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -23,7 +23,7 @@ syn match debsourcesComment /#.*/ contains=@Spell
|
||||
|
||||
" Match uri's
|
||||
syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
|
||||
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|lucid\|precise\|quantal\|raring\|saucy\)\([-[:alnum:]_./]*\)+
|
||||
syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(squeeze\|wheezy\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|lucid\|precise\|quantal\|saucy\|trusty\)\([-[:alnum:]_./]*\)+
|
||||
|
||||
" Associate our matches and regions with pretty colours
|
||||
hi def link debsourcesLine Error
|
||||
|
||||
135
runtime/syntax/euphoria3.vim
Normal file
135
runtime/syntax/euphoria3.vim
Normal file
@@ -0,0 +1,135 @@
|
||||
" Vim syntax file
|
||||
" Language: Euphoria 3.1.1 - supports DOS - (http://www.rapideuphoria.com/)
|
||||
" Maintainer: Shian Lee
|
||||
" Last Change: 2014 Feb 24 (for Vim 7.4)
|
||||
" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim;
|
||||
" For details see :help ft-euphoria-syntax
|
||||
|
||||
" Quit if a (custom) syntax file was already loaded (compatible with Vim 5.8):
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Reset compatible-options to Vim default value, just in case:
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Should suffice for very long expressions:
|
||||
syn sync lines=40
|
||||
|
||||
" Euphoria is a case-sensitive language (with only 4 builtin types):
|
||||
syntax case match
|
||||
|
||||
" Keywords/Builtins for Debug - from $EUDIR/bin/keywords.e:
|
||||
syn keyword euphoria3Debug with without trace profile
|
||||
syn keyword euphoria3Debug profile_time warning type_check
|
||||
|
||||
" Keywords (Statments) - from $EUDIR/bin/keywords.e:
|
||||
syn keyword euphoria3Keyword if end then procedure else for return
|
||||
syn keyword euphoria3Keyword do elsif while type constant to and or
|
||||
syn keyword euphoria3Keyword exit function global by not include
|
||||
syn keyword euphoria3Keyword xor
|
||||
|
||||
" Builtins (Identifiers) - from $EUDIR/bin/keywords.e:
|
||||
syn keyword euphoria3Builtin length puts integer sequence position object
|
||||
syn keyword euphoria3Builtin append prepend print printf
|
||||
syn keyword euphoria3Builtin clear_screen floor getc gets get_key
|
||||
syn keyword euphoria3Builtin rand repeat atom compare find match
|
||||
syn keyword euphoria3Builtin time command_line open close getenv
|
||||
syn keyword euphoria3Builtin sqrt sin cos tan log system date remainder
|
||||
syn keyword euphoria3Builtin power machine_func machine_proc abort peek poke
|
||||
syn keyword euphoria3Builtin call sprintf arctan and_bits or_bits xor_bits
|
||||
syn keyword euphoria3Builtin not_bits pixel get_pixel mem_copy mem_set
|
||||
syn keyword euphoria3Builtin c_proc c_func routine_id call_proc call_func
|
||||
syn keyword euphoria3Builtin poke4 peek4s peek4u equal system_exec
|
||||
syn keyword euphoria3Builtin platform task_create task_schedule task_yield
|
||||
syn keyword euphoria3Builtin task_self task_suspend task_list
|
||||
syn keyword euphoria3Builtin task_status task_clock_stop task_clock_start
|
||||
syn keyword euphoria3Builtin find_from match_from
|
||||
" Builtins (Identifiers) shortcuts for length() and print():
|
||||
syn match euphoria3Builtin "\$"
|
||||
syn match euphoria3Builtin "?"
|
||||
|
||||
" Library Identifiers (Function) - from $EUDIR/doc/library.doc:
|
||||
syn keyword euphoria3Library reverse sort custom_sort lower upper
|
||||
syn keyword euphoria3Library wildcard_match wildcard_file arcsin
|
||||
syn keyword euphoria3Library arccos PI flush lock_file unlock_file
|
||||
syn keyword euphoria3Library pretty_print sprint get_bytes prompt_string
|
||||
syn keyword euphoria3Library wait_key get prompt_number value seek where
|
||||
syn keyword euphoria3Library current_dir chdir dir walk_dir allow_break
|
||||
syn keyword euphoria3Library check_break get_mouse mouse_events mouse_pointer
|
||||
syn keyword euphoria3Library tick_rate sleep get_position graphics_mode
|
||||
syn keyword euphoria3Library video_config scroll wrap text_color bk_color
|
||||
syn keyword euphoria3Library palette all_palette get_all_palette read_bitmap
|
||||
syn keyword euphoria3Library save_bitmap get_active_page set_active_page
|
||||
syn keyword euphoria3Library get_display_page set_display_page sound
|
||||
syn keyword euphoria3Library cursor text_rows get_screen_char put_screen_char
|
||||
syn keyword euphoria3Library save_text_image display_text_image draw_line
|
||||
syn keyword euphoria3Library polygon ellipse save_screen save_image display_image
|
||||
syn keyword euphoria3Library dos_interrupt allocate free allocate_low free_low
|
||||
syn keyword euphoria3Library allocate_string register_block unregister_block
|
||||
syn keyword euphoria3Library get_vector set_vector lock_memory int_to_bytes
|
||||
syn keyword euphoria3Library bytes_to_int int_to_bits bits_to_int atom_to_float64
|
||||
syn keyword euphoria3Library atom_to_float32 float64_to_atom float32_to_atom
|
||||
syn keyword euphoria3Library set_rand use_vesa crash_file crash_message
|
||||
syn keyword euphoria3Library crash_routine open_dll define_c_proc define_c_func
|
||||
syn keyword euphoria3Library define_c_var call_back message_box free_console
|
||||
syn keyword euphoria3Library instance
|
||||
|
||||
" Library Identifiers (Function) - from $EUDIR/doc/database.doc:
|
||||
syn keyword euphoria3Library db_create db_open db_select db_close db_create_table
|
||||
syn keyword euphoria3Library db_select_table db_rename_table db_delete_table
|
||||
syn keyword euphoria3Library db_table_list db_table_size db_find_key db_record_key
|
||||
syn keyword euphoria3Library db_record_data db_insert db_delete_record
|
||||
syn keyword euphoria3Library db_replace_data db_compress db_dump db_fatal_id
|
||||
|
||||
" Linux shell comment (#!...):
|
||||
syn match euphoria3Comment "\%^#!.*$"
|
||||
" Comment on one line:
|
||||
syn region euphoria3Comment start=/--/ end=/$/
|
||||
|
||||
" Delimiters and brackets:
|
||||
syn match euphoria3Delimit "[([\])]"
|
||||
syn match euphoria3Delimit "\.\."
|
||||
syn match euphoria3Operator "[{}]"
|
||||
|
||||
" Character constant:
|
||||
syn region euphoria3Char start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline
|
||||
|
||||
" String constant:
|
||||
syn region euphoria3String start=/"/ skip=/\\"\|\\\\/ end=/"/ oneline
|
||||
|
||||
" Hexadecimal integer:
|
||||
syn match euphoria3Number "#[0-9A-F]\+\>"
|
||||
|
||||
" Integer/Floating point without a dot:
|
||||
syn match euphoria3Number "\<\d\+\>"
|
||||
" Floating point with dot:
|
||||
syn match euphoria3Number "\<\d\+\.\d*\>"
|
||||
" Floating point starting with a dot:
|
||||
syn match euphoria3Number "\.\d\+\>"
|
||||
" Boolean constants:
|
||||
syn keyword euphoria3Boolean true TRUE false FALSE
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet:
|
||||
hi def link euphoria3Comment Comment
|
||||
hi def link euphoria3String String
|
||||
hi def link euphoria3Char Character
|
||||
hi def link euphoria3Number Number
|
||||
hi def link euphoria3Boolean Boolean
|
||||
hi def link euphoria3Builtin Identifier
|
||||
hi def link euphoria3Library Function
|
||||
hi def link euphoria3Keyword Statement
|
||||
hi def link euphoria3Operator Statement
|
||||
hi def link euphoria3Debug Debug
|
||||
hi def link euphoria3Delimit Delimiter
|
||||
|
||||
let b:current_syntax = "euphoria3"
|
||||
|
||||
" Restore current compatible-options:
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
246
runtime/syntax/euphoria4.vim
Normal file
246
runtime/syntax/euphoria4.vim
Normal file
@@ -0,0 +1,246 @@
|
||||
" Vim syntax file
|
||||
" Language: Euphoria 4.0.5 (http://www.openeuphoria.org/)
|
||||
" Maintainer: Shian Lee
|
||||
" Last Change: 2014 Feb 24 (for Vim 7.4)
|
||||
" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim;
|
||||
" For details see :help ft-euphoria-syntax
|
||||
|
||||
" Quit if a (custom) syntax file was already loaded (compatible with Vim 5.8):
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Reset compatible-options to Vim default value, just in case:
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Should suffice for very long strings and expressions:
|
||||
syn sync lines=40
|
||||
|
||||
" Euphoria is a case-sensitive language (with only 4 builtin types):
|
||||
syntax case match
|
||||
|
||||
" Some keywords/Builtins for Debug - from $EUDIR/include/euphoria/keywords.e:
|
||||
syn keyword euphoria4Debug with without trace profile batch check indirect
|
||||
syn keyword euphoria4Debug includes inline warning define
|
||||
|
||||
" Keywords for conditional compilation - from $EUDIR/include/euphoria/keywords.e:
|
||||
syn keyword euphoria4PreProc elsedef elsifdef ifdef
|
||||
|
||||
" Keywords (Statments) - from $EUDIR/include/euphoria/keywords.e:
|
||||
syn keyword euphoria4Keyword and as break by case constant continue do else
|
||||
syn keyword euphoria4Keyword elsif end entry enum exit export
|
||||
syn keyword euphoria4Keyword fallthru for function global goto if include
|
||||
syn keyword euphoria4Keyword label loop namespace not or override procedure
|
||||
syn keyword euphoria4Keyword public retry return routine switch then to type
|
||||
syn keyword euphoria4Keyword until while xor
|
||||
|
||||
" Builtins (Identifiers) - from $EUDIR/include/euphoria/keywords.e:
|
||||
syn keyword euphoria4Builtin abort and_bits append arctan atom c_func c_proc
|
||||
syn keyword euphoria4Builtin call call_func call_proc clear_screen close
|
||||
syn keyword euphoria4Builtin command_line compare cos date delete delete_routine
|
||||
syn keyword euphoria4Builtin equal find floor get_key getc getenv gets hash
|
||||
syn keyword euphoria4Builtin head include_paths insert integer length log
|
||||
syn keyword euphoria4Builtin machine_func machine_proc match mem_copy mem_set
|
||||
syn keyword euphoria4Builtin not_bits object open option_switches or_bits peek
|
||||
syn keyword euphoria4Builtin peek2s peek2u peek4s peek4u peek_string peeks pixel
|
||||
syn keyword euphoria4Builtin platform poke poke2 poke4 position power prepend
|
||||
syn keyword euphoria4Builtin print printf puts rand remainder remove repeat
|
||||
syn keyword euphoria4Builtin replace routine_id sequence sin splice sprintf
|
||||
syn keyword euphoria4Builtin sqrt system system_exec tail tan task_clock_start
|
||||
syn keyword euphoria4Builtin task_clock_stop task_create task_list task_schedule
|
||||
syn keyword euphoria4Builtin task_self task_status task_suspend task_yield time
|
||||
syn keyword euphoria4Builtin xor_bits
|
||||
" Builtins (Identifiers) shortcuts for length() and print():
|
||||
syn match euphoria4Builtin "\$"
|
||||
syn match euphoria4Builtin "?"
|
||||
|
||||
" Library Identifiers (Function) - grep from $EUDIR/include/*:
|
||||
syn keyword euphoria4Library DEP_on SyntaxColor abbreviate_path abs absolute_path
|
||||
syn keyword euphoria4Library accept add add_item all_copyrights all_matches
|
||||
syn keyword euphoria4Library allocate allocate_code allocate_data allocate_low
|
||||
syn keyword euphoria4Library allocate_pointer_array allocate_protect
|
||||
syn keyword euphoria4Library allocate_string allocate_string_pointer_array
|
||||
syn keyword euphoria4Library allocate_wstring allocations allow_break any_key
|
||||
syn keyword euphoria4Library append_lines apply approx arccos arccosh arcsin
|
||||
syn keyword euphoria4Library arcsinh arctanh assert at atan2 atom_to_float32
|
||||
syn keyword euphoria4Library atom_to_float64 attr_to_colors avedev average
|
||||
syn keyword euphoria4Library begins binary_search bind binop_ok bits_to_int
|
||||
syn keyword euphoria4Library bk_color breakup build_commandline build_list
|
||||
syn keyword euphoria4Library bytes_to_int calc_hash calc_primes call_back
|
||||
syn keyword euphoria4Library canon2win canonical canonical_path ceil
|
||||
syn keyword euphoria4Library central_moment chance char_test chdir
|
||||
syn keyword euphoria4Library check_all_blocks check_break check_free_list
|
||||
syn keyword euphoria4Library checksum clear clear_directory close cmd_parse
|
||||
syn keyword euphoria4Library colors_to_attr columnize combine connect
|
||||
syn keyword euphoria4Library console_colors copy copy_file cosh count crash
|
||||
syn keyword euphoria4Library crash_file crash_message crash_routine create
|
||||
syn keyword euphoria4Library create_directory create_file curdir current_dir
|
||||
syn keyword euphoria4Library cursor custom_sort datetime days_in_month
|
||||
syn keyword euphoria4Library days_in_year db_cache_clear db_clear_table db_close
|
||||
syn keyword euphoria4Library db_compress db_connect db_create db_create_table
|
||||
syn keyword euphoria4Library db_current db_current_table db_delete_record
|
||||
syn keyword euphoria4Library db_delete_table db_dump db_fetch_record db_find_key
|
||||
syn keyword euphoria4Library db_get_errors db_get_recid db_insert db_open
|
||||
syn keyword euphoria4Library db_record_data db_record_key db_record_recid
|
||||
syn keyword euphoria4Library db_rename_table db_replace_data db_replace_recid
|
||||
syn keyword euphoria4Library db_select db_select_table db_set_caching
|
||||
syn keyword euphoria4Library db_table_list db_table_size deallocate decanonical
|
||||
syn keyword euphoria4Library decode defaulted_value defaultext define_c_func
|
||||
syn keyword euphoria4Library define_c_proc define_c_var deg2rad delete_file
|
||||
syn keyword euphoria4Library dep_works dequote deserialize diff dir dir_size
|
||||
syn keyword euphoria4Library dirname disk_metrics disk_size display
|
||||
syn keyword euphoria4Library display_text_image dnsquery driveid dump dup emovavg
|
||||
syn keyword euphoria4Library encode ends ensure_in_list ensure_in_range
|
||||
syn keyword euphoria4Library error_code error_message error_no error_string
|
||||
syn keyword euphoria4Library error_to_string escape euphoria_copyright exec
|
||||
syn keyword euphoria4Library exp extract fetch fib file_exists file_length
|
||||
syn keyword euphoria4Library file_timestamp file_type filebase fileext filename
|
||||
syn keyword euphoria4Library filter find_all find_all_but find_any find_each
|
||||
syn keyword euphoria4Library find_nested find_replace find_replace_callback
|
||||
syn keyword euphoria4Library find_replace_limit flags_to_string flatten
|
||||
syn keyword euphoria4Library float32_to_atom float64_to_atom flush for_each
|
||||
syn keyword euphoria4Library format frac free free_code free_console free_low
|
||||
syn keyword euphoria4Library free_pointer_array from_date from_unix gcd geomean
|
||||
syn keyword euphoria4Library get get_bytes get_charsets get_def_lang
|
||||
syn keyword euphoria4Library get_display_page get_dstring get_encoding_properties
|
||||
syn keyword euphoria4Library get_integer16 get_integer32 get_lang_path get_lcid
|
||||
syn keyword euphoria4Library get_mouse get_option get_ovector_size get_pid
|
||||
syn keyword euphoria4Library get_position get_rand get_screen_char get_text
|
||||
syn keyword euphoria4Library get_vector getaddrinfo getmxrr getnsrr graphics_mode
|
||||
syn keyword euphoria4Library harmean has has_console has_match hex_text
|
||||
syn keyword euphoria4Library host_by_addr host_by_name http_get http_post iff
|
||||
syn keyword euphoria4Library iif info init_class init_curdir insertion_sort
|
||||
syn keyword euphoria4Library instance int_to_bits int_to_bytes intdiv
|
||||
syn keyword euphoria4Library is_DEP_supported is_empty is_even is_even_obj
|
||||
syn keyword euphoria4Library is_in_list is_in_range is_inetaddr is_leap_year
|
||||
syn keyword euphoria4Library is_match is_using_DEP is_win_nt join join_path
|
||||
syn keyword euphoria4Library keep_comments keep_newlines key_codes keys keyvalues
|
||||
syn keyword euphoria4Library kill kurtosis lang_load larger_of largest last
|
||||
syn keyword euphoria4Library listen load load_map locate_file lock_file
|
||||
syn keyword euphoria4Library lock_memory log10 lookup lower malloc mapping
|
||||
syn keyword euphoria4Library match_all match_any match_replace matches max
|
||||
syn keyword euphoria4Library maybe_any_key median memory_used merge message_box
|
||||
syn keyword euphoria4Library mid min minsize mod mode money mouse_events
|
||||
syn keyword euphoria4Library mouse_pointer movavg move_file nested_get
|
||||
syn keyword euphoria4Library nested_put new new_extra new_from_kvpairs
|
||||
syn keyword euphoria4Library new_from_string new_time next_prime now now_gmt
|
||||
syn keyword euphoria4Library number open_dll optimize option_spec_to_string
|
||||
syn keyword euphoria4Library or_all pad_head pad_tail pairs parse
|
||||
syn keyword euphoria4Library parse_commandline parse_ip_address parse_querystring
|
||||
syn keyword euphoria4Library parse_url patch pathinfo pathname pcre_copyright
|
||||
syn keyword euphoria4Library peek_end peek_top peek_wstring pivot platform_name
|
||||
syn keyword euphoria4Library poke_string poke_wstring pop powof2 prepare_block
|
||||
syn keyword euphoria4Library pretty_print pretty_sprint prime_list process_lines
|
||||
syn keyword euphoria4Library product project prompt_number prompt_string proper
|
||||
syn keyword euphoria4Library push put put_integer16 put_integer32 put_screen_char
|
||||
syn keyword euphoria4Library quote rad2deg rand_range range raw_frequency read
|
||||
syn keyword euphoria4Library read_bitmap read_file read_lines receive receive_from
|
||||
syn keyword euphoria4Library register_block rehash remove_all remove_directory
|
||||
syn keyword euphoria4Library remove_dups remove_item remove_subseq rename_file
|
||||
syn keyword euphoria4Library repeat_pattern reset retain_all reverse rfind rmatch
|
||||
syn keyword euphoria4Library rnd rnd_1 roll rotate rotate_bits round safe_address
|
||||
syn keyword euphoria4Library sample save_bitmap save_map save_text_image scroll
|
||||
syn keyword euphoria4Library seek select send send_to serialize series
|
||||
syn keyword euphoria4Library service_by_name service_by_port set
|
||||
syn keyword euphoria4Library set_accumulate_summary set_charsets set_colors
|
||||
syn keyword euphoria4Library set_decimal_mark set_def_lang set_default_charsets
|
||||
syn keyword euphoria4Library set_encoding_properties set_keycodes set_lang_path
|
||||
syn keyword euphoria4Library set_option set_rand set_test_abort set_test_verbosity
|
||||
syn keyword euphoria4Library set_vector set_wait_on_summary setenv shift_bits
|
||||
syn keyword euphoria4Library show_block show_help show_tokens shuffle shutdown
|
||||
syn keyword euphoria4Library sign sim_index sinh size skewness sleep slice small
|
||||
syn keyword euphoria4Library smaller_of smallest sort sort_columns sound split
|
||||
syn keyword euphoria4Library split_any split_limit split_path sprint start_time
|
||||
syn keyword euphoria4Library statistics stdev store string_numbers subtract sum
|
||||
syn keyword euphoria4Library sum_central_moments swap tanh task_delay temp_file
|
||||
syn keyword euphoria4Library test_equal test_exec test_fail test_false
|
||||
syn keyword euphoria4Library test_not_equal test_pass test_read test_report
|
||||
syn keyword euphoria4Library test_true test_write text_color text_rows threshold
|
||||
syn keyword euphoria4Library tick_rate to_integer to_number to_string to_unix
|
||||
syn keyword euphoria4Library tokenize_file tokenize_string top transform translate
|
||||
syn keyword euphoria4Library transmute trim trim_head trim_tail trsprintf trunc
|
||||
syn keyword euphoria4Library type_of uname unlock_file unregister_block unsetenv
|
||||
syn keyword euphoria4Library upper use_vesa valid valid_index value values version
|
||||
syn keyword euphoria4Library version_date version_major version_minor version_node
|
||||
syn keyword euphoria4Library version_patch version_revision version_string
|
||||
syn keyword euphoria4Library version_string_long version_string_short version_type
|
||||
syn keyword euphoria4Library video_config vlookup vslice wait_key walk_dir
|
||||
syn keyword euphoria4Library warning_file weeks_day where which_bit wildcard_file
|
||||
syn keyword euphoria4Library wildcard_match wrap write write_file write_lines
|
||||
syn keyword euphoria4Library writef writefln years_day
|
||||
|
||||
" Library Identifiers (Type) - grep from $EUDIR/include/*:
|
||||
syn keyword euphoria4Type ascii_string boolean bordered_address byte_range
|
||||
syn keyword euphoria4Type case_flagset_type color cstring datetime
|
||||
syn keyword euphoria4Type file_number file_position graphics_point
|
||||
syn keyword euphoria4Type integer_array lcid lock_type machine_addr map
|
||||
syn keyword euphoria4Type mixture number_array option_spec
|
||||
syn keyword euphoria4Type page_aligned_address positive_int process regex
|
||||
syn keyword euphoria4Type sequence_array socket stack std_library_address
|
||||
syn keyword euphoria4Type string t_alnum t_alpha t_ascii t_boolean
|
||||
syn keyword euphoria4Type t_bytearray t_cntrl t_consonant t_digit t_display
|
||||
syn keyword euphoria4Type t_graph t_identifier t_lower t_print t_punct
|
||||
syn keyword euphoria4Type t_space t_specword t_text t_upper t_vowel t_xdigit
|
||||
syn keyword euphoria4Type valid_memory_protection_constant valid_wordsize
|
||||
|
||||
" Linux shell comment (#!...):
|
||||
syn match euphoria4Comment "\%^#!.*$"
|
||||
" Single and multilines comments:
|
||||
syn region euphoria4Comment start=/--/ end=/$/
|
||||
syn region euphoria4Comment start="/\*" end="\*/"
|
||||
|
||||
" Delimiters and brackets:
|
||||
syn match euphoria4Delimit "[([\])]"
|
||||
syn match euphoria4Delimit "\.\."
|
||||
syn match euphoria4Delimit ":"
|
||||
syn match euphoria4Operator "[{}]"
|
||||
|
||||
" Character constant:
|
||||
syn region euphoria4Char start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline
|
||||
|
||||
" Single and multiline string constant:
|
||||
syn region euphoria4String start=/"\|b"\|x"/ skip=/\\"\|\\\\/ end=/"/ oneline
|
||||
syn region euphoria4String start=/`/ end=/`/
|
||||
syn region euphoria4String start=/"""/ end=/"""/
|
||||
|
||||
" Binary/Octal/Decimal/Hexadecimal integer:
|
||||
syn match euphoria4Number "\<0b[01_]\+\>"
|
||||
syn match euphoria4Number "\<0t[0-7_]\+\>"
|
||||
syn match euphoria4Number "\<0d[0-9_]\+\>"
|
||||
syn match euphoria4Number "\<0x[0-9A-Fa-f_]\+\>"
|
||||
syn match euphoria4Number "#[0-9A-Fa-f_]\+\>"
|
||||
|
||||
" Integer/Floating point without a dot:
|
||||
syn match euphoria4Number "\<\d\+\>"
|
||||
" Floating point with dot:
|
||||
syn match euphoria4Number "\<\d\+\.\d*\>"
|
||||
" Floating point starting with a dot:
|
||||
syn match euphoria4Number "\.\d\+\>"
|
||||
" Boolean constants:
|
||||
syn keyword euphoria4Boolean true TRUE false FALSE
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet:
|
||||
hi def link euphoria4Comment Comment
|
||||
hi def link euphoria4String String
|
||||
hi def link euphoria4Char Character
|
||||
hi def link euphoria4Number Number
|
||||
hi def link euphoria4Boolean Boolean
|
||||
hi def link euphoria4Builtin Identifier
|
||||
hi def link euphoria4Library Function
|
||||
hi def link euphoria4Type Type
|
||||
hi def link euphoria4Keyword Statement
|
||||
hi def link euphoria4Operator Statement
|
||||
hi def link euphoria4Debug Debug
|
||||
hi def link euphoria4Delimit Delimiter
|
||||
hi def link euphoria4PreProc PreProc
|
||||
|
||||
let b:current_syntax = "euphoria4"
|
||||
|
||||
" Restore current compatible-options:
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2013 Sep 05
|
||||
" Last Change: 2014 Feb 12
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -40,7 +40,7 @@ endif
|
||||
syn match helpNormal "|.*====*|"
|
||||
syn match helpNormal "|||"
|
||||
syn match helpNormal ":|vim:|" " for :help modeline
|
||||
syn match helpVim "Vim version [0-9.a-z]\+"
|
||||
syn match helpVim "\<Vim version [0-9][0-9.a-z]*"
|
||||
syn match helpVim "VIM REFERENCE.*"
|
||||
syn match helpOption "'[a-z]\{2,\}'"
|
||||
syn match helpOption "'t_..'"
|
||||
@@ -153,7 +153,7 @@ syn sync minlines=40
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link helpIgnore Ignore
|
||||
hi def link helpHyperTextJump Subtitle
|
||||
hi def link helpHyperTextJump Identifier
|
||||
hi def link helpBar Ignore
|
||||
hi def link helpBacktick Ignore
|
||||
hi def link helpStar Ignore
|
||||
@@ -168,7 +168,6 @@ hi def link helpOption Type
|
||||
hi def link helpNotVi Special
|
||||
hi def link helpSpecial Special
|
||||
hi def link helpNote Todo
|
||||
hi def link Subtitle Identifier
|
||||
|
||||
hi def link helpComment Comment
|
||||
hi def link helpConstant Constant
|
||||
|
||||
@@ -2,14 +2,11 @@
|
||||
" Language: Microsoft Macro Assembler (80x86)
|
||||
" Orig Author: Rob Brady <robb@datatone.com>
|
||||
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
|
||||
" Last Change: $Date: 2012/02/04 12:45:39 $
|
||||
" $Revision: 1.46 $
|
||||
" Last Change: $Date: 2013/11/13 11:49:24 $
|
||||
" $Revision: 1.48 $
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -194,6 +191,10 @@ syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D
|
||||
syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W
|
||||
syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B
|
||||
|
||||
" SSE/AVX registers
|
||||
syn match masmRegister "\(X\|Y\)MM[0-9]\>"
|
||||
syn match masmRegister "\(X\|Y\)MM1[0-5]\>"
|
||||
|
||||
" Instruction prefixes
|
||||
syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ
|
||||
|
||||
@@ -302,50 +303,69 @@ syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD
|
||||
syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD
|
||||
syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT
|
||||
|
||||
" SSSE3 opcodes (Core and later)
|
||||
syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD
|
||||
syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW
|
||||
syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW
|
||||
|
||||
" SSE 4.1 opcodes (Penryn and later)
|
||||
syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD
|
||||
syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD
|
||||
syn keyword masmOpcode PBLENDVB PBLENDW
|
||||
syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD
|
||||
syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD
|
||||
syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD
|
||||
syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ
|
||||
syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ
|
||||
syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD
|
||||
syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD
|
||||
syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ
|
||||
syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA
|
||||
|
||||
" SSE 4.2 opcodes (Nehalem and later)
|
||||
syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ
|
||||
syn keyword masmOpcode CRC32 POPCNT LZCNT
|
||||
|
||||
" AES-NI (Westmere (2010) and later)
|
||||
syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST
|
||||
syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ
|
||||
|
||||
" AVX (Sandy Bridge (2011) and later)
|
||||
syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128
|
||||
syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD
|
||||
syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128
|
||||
syn keyword masmOpcode VZEROALL VZEROUPPER
|
||||
|
||||
" Other opcodes in Pentium and later processors
|
||||
syn keyword masmOpcode CMPXCHG8B CPUID UD2
|
||||
syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT
|
||||
syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"
|
||||
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_masm_syntax_inits")
|
||||
if version < 508
|
||||
let did_masm_syntax_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
" The default highlighting
|
||||
hi def link masmLabel PreProc
|
||||
hi def link masmComment Comment
|
||||
hi def link masmDirective Statement
|
||||
hi def link masmType Type
|
||||
hi def link masmOperator Type
|
||||
hi def link masmOption Special
|
||||
hi def link masmRegister Special
|
||||
hi def link masmString String
|
||||
hi def link masmText String
|
||||
hi def link masmTitle Title
|
||||
hi def link masmOpcode Statement
|
||||
hi def link masmOpFloat Statement
|
||||
|
||||
" The default methods for highlighting. Can be overridden later
|
||||
HiLink masmLabel PreProc
|
||||
HiLink masmComment Comment
|
||||
HiLink masmDirective Statement
|
||||
HiLink masmType Type
|
||||
HiLink masmOperator Type
|
||||
HiLink masmOption Special
|
||||
HiLink masmRegister Special
|
||||
HiLink masmString String
|
||||
HiLink masmText String
|
||||
HiLink masmTitle Title
|
||||
HiLink masmOpcode Statement
|
||||
HiLink masmOpFloat Statement
|
||||
hi def link masmHexadecimal Number
|
||||
hi def link masmDecimal Number
|
||||
hi def link masmOctal Number
|
||||
hi def link masmBinary Number
|
||||
hi def link masmFloatRaw Number
|
||||
hi def link masmFloat Number
|
||||
|
||||
HiLink masmHexadecimal Number
|
||||
HiLink masmDecimal Number
|
||||
HiLink masmOctal Number
|
||||
HiLink masmBinary Number
|
||||
HiLink masmFloatRaw Number
|
||||
HiLink masmFloat Number
|
||||
hi def link masmIdentifier Identifier
|
||||
|
||||
HiLink masmIdentifier Identifier
|
||||
|
||||
syntax sync minlines=50
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
syntax sync minlines=50
|
||||
|
||||
let b:current_syntax = "masm"
|
||||
|
||||
|
||||
83
runtime/syntax/mix.vim
Normal file
83
runtime/syntax/mix.vim
Normal file
@@ -0,0 +1,83 @@
|
||||
" Vim syntax file
|
||||
" Language: MIX (Donald Knuth's assembly language used in TAOCP)
|
||||
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
|
||||
" Filenames: *.mixal *.mix
|
||||
" Last Change: 2013 Nov 13
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case ignore
|
||||
|
||||
" Special processing of ALF directive: implementations vary whether quotation
|
||||
" marks are needed
|
||||
syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixAlfDirective,mixString nextgroup=mixEndComment contained
|
||||
|
||||
" Region for parameters
|
||||
syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained
|
||||
|
||||
" Comment at the line end
|
||||
syn match mixEndComment ".*" contains=mixRegister contained
|
||||
|
||||
" Identifier; must go before literals
|
||||
syn match mixIdentifier "[a-z0-9_]\+" contained
|
||||
|
||||
" Literals
|
||||
syn match mixSpecial "[-+*/:=]" contained
|
||||
syn match mixNumber "[0-9]\+\>" contained
|
||||
syn region mixString start=+"+ skip=+\\"+ end=+"+ contained
|
||||
|
||||
" Labels
|
||||
syn match mixLabel "^[a-z0-9_]\{,10\}\s\+" nextgroup=mixAlfSpecial,mixOpcode,mixDirective
|
||||
syn match mixLabel "[0-9][BF]" contained
|
||||
|
||||
" Comments
|
||||
syn match mixComment "^\*.*" contains=mixRegister
|
||||
|
||||
" Directives
|
||||
syn keyword mixDirective ORIG EQU CON END nextgroup=mixParam contained skipwhite
|
||||
syn keyword mixDirective ALF nextgroup=mixAlfParam contained
|
||||
|
||||
" Opcodes
|
||||
syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
|
||||
syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
|
||||
|
||||
syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "EN[TN][AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "INC[AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "DEC[AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "CMP[AX1-6]\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite
|
||||
|
||||
" Switch back to being case sensitive
|
||||
syn case match
|
||||
|
||||
" Registers (only to used in comments now)
|
||||
syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained
|
||||
|
||||
" The default highlighting
|
||||
hi def link mixRegister Special
|
||||
hi def link mixLabel Define
|
||||
hi def link mixComment Comment
|
||||
hi def link mixEndComment Comment
|
||||
hi def link mixDirective Keyword
|
||||
hi def link mixOpcode Keyword
|
||||
|
||||
hi def link mixSpecial Special
|
||||
hi def link mixNumber Number
|
||||
hi def link mixString String
|
||||
hi def link mixAlfParam String
|
||||
hi def link mixIdentifier Identifier
|
||||
|
||||
let b:current_syntax = "mix"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: ts=8
|
||||
@@ -19,11 +19,12 @@ syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
|
||||
syn match netrwPlain "\(\S\+ \)*\S\+" contains=@NoSpell
|
||||
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
|
||||
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
|
||||
"syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
|
||||
syn match netrwDir "\%(\S\+ \)*\S\+/\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
|
||||
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
|
||||
syn match netrwTreeBar "^\%([-+|│] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
|
||||
syn match netrwTreeBarSpace " " contained
|
||||
|
||||
syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: reStructuredText documentation format
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2013-06-03
|
||||
" Latest Revision: 2013-11-26
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -152,7 +152,7 @@ for code in g:rst_syntax_code_list
|
||||
exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold '
|
||||
\.'start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\s*$# '
|
||||
\.'skip=#^$# '
|
||||
\.'end=#^\s\@!# contains=@NoSpell,@rst'.code
|
||||
\.'end=#^\s\@!# contains=@NoSpell,@rst'.code.' keepend'
|
||||
exe 'syn cluster rstDirectives add=rstDirective'.code
|
||||
endfor
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
" Filename: spec.vim
|
||||
" Purpose: Vim syntax file
|
||||
" Language: SPEC: Build/install scripts for Linux RPM packages
|
||||
" Maintainer: Donovan Rebbechi elflord@panix.com
|
||||
" Last Change: Fri Dec 3 11:54 EST 2004 Marcin Dalecki
|
||||
" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com
|
||||
" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014)
|
||||
" Last Change: Sun Mar 2 10:33 MSK 2014 Igor Gnatenko
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -82,8 +83,8 @@ syn keyword specMacroNameLocal contained _arch _binary_payload _bindir _build _b
|
||||
|
||||
"One line macros - valid in all ScriptAreas
|
||||
"tip: remember do include new items on specScriptArea's skip section
|
||||
syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|patch\d*\|setup\|configure\|GNUconfigure\|find_lang\|makeinstall\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier
|
||||
syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|makeinstall\)}' end='$' contains=specCommandOpts,specMacroIdentifier
|
||||
syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|global\|patch\d*\|setup\|configure\|GNUconfigure\|find_lang\|makeinstall\|make_install\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier
|
||||
syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|makeinstall\|make_install\)}' end='$' contains=specCommandOpts,specMacroIdentifier
|
||||
|
||||
"%% Files Section %%
|
||||
"TODO %config valid parameters: missingok\|noreplace
|
||||
@@ -113,7 +114,7 @@ syn region specDescriptionArea matchgroup=specSection start='^%description' end=
|
||||
syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment
|
||||
|
||||
"%% Scripts Section %%
|
||||
syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
|
||||
syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2
|
||||
|
||||
"%% Changelog Section %%
|
||||
syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense
|
||||
|
||||
@@ -2,15 +2,18 @@
|
||||
" Language: Subversion (svn) commit file
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
|
||||
" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/svn.vim
|
||||
" Last Change: 2012-07-21
|
||||
" Last Change: 2013-11-08
|
||||
" Filenames: svn-commit*.tmp
|
||||
" Version: 1.9
|
||||
" Version: 1.10
|
||||
|
||||
" Contributors:
|
||||
" Stefano Zacchiroli
|
||||
"
|
||||
" List of the contributors in alphabetical order:
|
||||
"
|
||||
" A. S. Budden
|
||||
" Myk Taylor
|
||||
" Ingo Karkat
|
||||
" Myk Taylor
|
||||
" Stefano Zacchiroli
|
||||
|
||||
" For version 5.x: Clear all syntax items.
|
||||
" For version 6.x: Quit when a syntax file was already loaded.
|
||||
@@ -20,14 +23,19 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syn region svnText start="\%^" end="^--.*--$"me=s-1 contains=@Spell
|
||||
syn spell toplevel
|
||||
|
||||
syn region svnRegion start="^--.*--$" end="\%$" contains=ALL
|
||||
syn match svnRemoved "^D .*$" contained
|
||||
syn match svnRenamed "^R[ M][ U][ +] .*$" contained
|
||||
syn match svnAdded "^A[ M][ U][ +] .*$" contained
|
||||
syn match svnModified "^M[ M][ U] .*$" contained
|
||||
syn match svnProperty "^_M[ U] .*$" contained
|
||||
syn match svnFirstLine "\%^.*" nextgroup=svnRegion,svnBlank skipnl
|
||||
syn match svnSummary "^.\{0,50\}" contained containedin=svnFirstLine nextgroup=svnOverflow contains=@Spell
|
||||
syn match svnOverflow ".*" contained contains=@Spell
|
||||
syn match svnBlank "^.*" contained contains=@Spell
|
||||
|
||||
syn region svnRegion end="\%$" matchgroup=svnDelimiter start="^--.*--$" contains=svnRemoved,svnRenamed,svnAdded,svnModified,svnProperty,@NoSpell
|
||||
syn match svnRemoved "^D .*$" contained contains=@NoSpell
|
||||
syn match svnRenamed "^R[ M][ U][ +] .*$" contained contains=@NoSpell
|
||||
syn match svnAdded "^A[ M][ U][ +] .*$" contained contains=@NoSpell
|
||||
syn match svnModified "^M[ M][ U] .*$" contained contains=@NoSpell
|
||||
syn match svnProperty "^_M[ U] .*$" contained contains=@NoSpell
|
||||
|
||||
" Synchronization.
|
||||
syn sync clear
|
||||
@@ -44,7 +52,11 @@ if version >= 508 || !exists("did_svn_syn_inits")
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink svnSummary Keyword
|
||||
HiLink svnBlank Error
|
||||
|
||||
HiLink svnRegion Comment
|
||||
HiLink svnDelimiter NonText
|
||||
HiLink svnRemoved Constant
|
||||
HiLink svnAdded Identifier
|
||||
HiLink svnModified Special
|
||||
|
||||
101
runtime/syntax/systemverilog.vim
Normal file
101
runtime/syntax/systemverilog.vim
Normal file
@@ -0,0 +1,101 @@
|
||||
" Vim syntax file
|
||||
" Language: SystemVerilog
|
||||
" Maintainer: kocha <kocha.lsifrontend@gmail.com>
|
||||
" Last Change: 12-Aug-2013.
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Read in Verilog syntax files
|
||||
if version < 600
|
||||
so <sfile>:p:h/verilog.vim
|
||||
else
|
||||
runtime! syntax/verilog.vim
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
|
||||
" IEEE1800-2005
|
||||
syn keyword systemverilogStatement always_comb always_ff always_latch
|
||||
syn keyword systemverilogStatement class endclass new
|
||||
syn keyword systemverilogStatement virtual local const protected
|
||||
syn keyword systemverilogStatement package endpackage
|
||||
syn keyword systemverilogStatement rand randc constraint randomize
|
||||
syn keyword systemverilogStatement with inside dist
|
||||
syn keyword systemverilogStatement sequence endsequence randsequence
|
||||
syn keyword systemverilogStatement srandom
|
||||
syn keyword systemverilogStatement logic bit byte
|
||||
syn keyword systemverilogStatement int longint shortint
|
||||
syn keyword systemverilogStatement struct packed
|
||||
syn keyword systemverilogStatement final
|
||||
syn keyword systemverilogStatement import export
|
||||
syn keyword systemverilogStatement context pure
|
||||
syn keyword systemverilogStatement void shortreal chandle string
|
||||
syn keyword systemverilogStatement clocking endclocking iff
|
||||
syn keyword systemverilogStatement interface endinterface modport
|
||||
syn keyword systemverilogStatement cover covergroup coverpoint endgroup
|
||||
syn keyword systemverilogStatement property endproperty
|
||||
syn keyword systemverilogStatement program endprogram
|
||||
syn keyword systemverilogStatement bins binsof illegal_bins ignore_bins
|
||||
syn keyword systemverilogStatement alias matches solve static assert
|
||||
syn keyword systemverilogStatement assume super before expect bind
|
||||
syn keyword systemverilogStatement extends null tagged extern this
|
||||
syn keyword systemverilogStatement first_match throughout timeprecision
|
||||
syn keyword systemverilogStatement timeunit type union
|
||||
syn keyword systemverilogStatement uwire var cross ref wait_order intersect
|
||||
syn keyword systemverilogStatement wildcard within
|
||||
|
||||
syn keyword systemverilogTypeDef typedef enum
|
||||
|
||||
syn keyword systemverilogConditional randcase
|
||||
syn keyword systemverilogConditional unique priority
|
||||
|
||||
syn keyword systemverilogRepeat return break continue
|
||||
syn keyword systemverilogRepeat do foreach
|
||||
|
||||
syn keyword systemverilogLabel join_any join_none forkjoin
|
||||
|
||||
" IEEE1800-2009 add
|
||||
syn keyword systemverilogStatement checker endchecker
|
||||
syn keyword systemverilogStatement accept_on reject_on
|
||||
syn keyword systemverilogStatement sync_accept_on sync_reject_on
|
||||
syn keyword systemverilogStatement eventually nexttime until until_with
|
||||
syn keyword systemverilogStatement s_always s_eventually s_nexttime s_until s_until_with
|
||||
syn keyword systemverilogStatement let untyped
|
||||
syn keyword systemverilogStatement strong weak
|
||||
syn keyword systemverilogStatement restrict global implies
|
||||
|
||||
syn keyword systemverilogConditional unique0
|
||||
|
||||
" IEEE1800-2012 add
|
||||
syn keyword systemverilogStatement implements
|
||||
syn keyword systemverilogStatement interconnect soft nettype
|
||||
|
||||
" Define the default highlighting.
|
||||
if version >= 508 || !exists("did_systemverilog_syn_inits")
|
||||
if version < 508
|
||||
let did_systemverilog_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
" The default highlighting.
|
||||
HiLink systemverilogStatement Statement
|
||||
HiLink systemverilogTypeDef TypeDef
|
||||
HiLink systemverilogConditional Conditional
|
||||
HiLink systemverilogRepeat Repeat
|
||||
HiLink systemverilogLabel Label
|
||||
HiLink systemverilogGlobal Define
|
||||
HiLink systemverilogNumber Number
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "systemverilog"
|
||||
|
||||
" vim: ts=8
|
||||
@@ -6,11 +6,9 @@
|
||||
" (previously Matt Neumann <mattneu@purpleturtle.com>)
|
||||
" (previously Allan Kelly <allan@fruitloaf.co.uk>)
|
||||
" Original: Robin Becker <robin@jessikat.demon.co.uk>
|
||||
" Last Change: 2009/04/06 02:38:36
|
||||
" Version: 1.13
|
||||
" URL: http://real.metasyntax.net:2357/cvs/cvsweb.cgi/Config/vim/syntax/tcl.vim
|
||||
"
|
||||
" Keywords TODO: click anchor
|
||||
" Last Change: 2014-02-12
|
||||
" Version: 1.14
|
||||
" URL: http://bitbucket.org/taylor_venable/metasyntax/src/tip/Config/vim/syntax/tcl.vim
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
@@ -20,41 +18,39 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Basic Tcl commands: http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm
|
||||
syn keyword tclCommand after append apply array bgerror binary catch cd chan clock
|
||||
syn keyword tclCommand close concat dde dict encoding eof error eval exec exit
|
||||
syn keyword tclCommand expr fblocked fconfigure fcopy file fileevent filename flush
|
||||
syn keyword tclCommand format gets glob global history incr info interp join
|
||||
syn keyword tclCommand lappend lassign lindex linsert list llength load lrange lrepeat
|
||||
syn keyword tclCommand lreplace lreverse lsearch lset lsort memory namespace open package
|
||||
syn keyword tclCommand pid proc puts pwd read regexp registry regsub rename return
|
||||
syn keyword tclCommand scan seek set socket source split string subst tell time
|
||||
syn keyword tclCommand trace unknown unload unset update uplevel upvar variable vwait
|
||||
" Basic Tcl commands: http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm
|
||||
syn keyword tclCommand after append array bgerror binary cd chan clock close concat
|
||||
syn keyword tclCommand dde dict encoding eof error eval exec exit expr fblocked
|
||||
syn keyword tclCommand fconfigure fcopy file fileevent flush format gets glob
|
||||
syn keyword tclCommand global history http incr info interp join lappend lassign
|
||||
syn keyword tclCommand lindex linsert list llength lmap load lrange lrepeat
|
||||
syn keyword tclCommand lreplace lreverse lsearch lset lsort memory my namespace
|
||||
syn keyword tclCommand next nextto open package pid puts pwd read refchan regexp
|
||||
syn keyword tclCommand registry regsub rename scan seek self set socket source
|
||||
syn keyword tclCommand split string subst tell time trace unknown unload unset
|
||||
syn keyword tclCommand update uplevel upvar variable vwait
|
||||
|
||||
" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.5/TclCmd/library.htm
|
||||
syn keyword tclCommand auto_execok auto_import auto_load auto_mkindex auto_mkindex_old
|
||||
syn keyword tclCommand auto_qualify auto_reset parray tcl_endOfWord tcl_findLibrary
|
||||
syn keyword tclCommand tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter
|
||||
syn keyword tclCommand tcl_wordBreakBefore
|
||||
" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.6/TclCmd/library.htm
|
||||
syn keyword tclCommand auto_execok auto_import auto_load auto_mkindex auto_reset
|
||||
syn keyword tclCommand auto_qualify tcl_findLibrary parray tcl_endOfWord
|
||||
syn keyword tclCommand tcl_startOfNextWord tcl_startOfPreviousWord
|
||||
syn keyword tclCommand tcl_wordBreakAfter tcl_wordBreakBefore
|
||||
|
||||
" Commands that were added in Tcl 8.6
|
||||
|
||||
syn keyword tclCommand my oo::copy oo::define oo::objdefine self
|
||||
syn keyword tclCommand coroutine tailcall throw yield
|
||||
|
||||
" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.5/TclCmd/tclvars.htm
|
||||
syn keyword tclVars env errorCode errorInfo tcl_library tcl_patchLevel tcl_pkgPath
|
||||
syn keyword tclVars tcl_platform tcl_precision tcl_rcFileName tcl_traceCompile
|
||||
syn keyword tclVars tcl_traceExec tcl_wordchars tcl_nonwordchars tcl_version argc argv
|
||||
syn keyword tclVars argv0 tcl_interactive geometry
|
||||
" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.6/TclCmd/tclvars.htm
|
||||
syn keyword tclVars auto_path env errorCode errorInfo tcl_library tcl_patchLevel
|
||||
syn keyword tclVars tcl_pkgPath tcl_platform tcl_precision tcl_rcFileName
|
||||
syn keyword tclVars tcl_traceCompile tcl_traceExec tcl_wordchars
|
||||
syn keyword tclVars tcl_nonwordchars tcl_version argc argv argv0 tcl_interactive
|
||||
|
||||
" Strings which expr accepts as boolean values, aside from zero / non-zero.
|
||||
syn keyword tclBoolean true false on off yes no
|
||||
|
||||
syn keyword tclLabel case default
|
||||
syn keyword tclProcCommand apply coroutine proc return tailcall yield yieldto
|
||||
syn keyword tclConditional if then else elseif switch
|
||||
syn keyword tclConditional try finally
|
||||
syn keyword tclConditional catch try throw finally
|
||||
syn keyword tclLabel default
|
||||
syn keyword tclRepeat while for foreach break continue
|
||||
|
||||
syn keyword tcltkSwitch contained insert create polygon fill outline tag
|
||||
|
||||
" WIDGETS
|
||||
@@ -91,6 +87,11 @@ syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*"
|
||||
" ${...} may contain any character except '}'
|
||||
syn match tclVarRef "${[^}]*}"
|
||||
|
||||
" Used to facilitate hack to utilize string background for certain color
|
||||
" schemes, e.g. inkpot and lettuce.
|
||||
syn cluster tclVarRefC add=tclVarRef
|
||||
syn cluster tclSpecialC add=tclSpecial
|
||||
|
||||
" The syntactic unquote-splicing replacement for [expand].
|
||||
syn match tclExpand '\s{\*}'
|
||||
syn match tclExpand '^{\*}'
|
||||
@@ -203,9 +204,9 @@ syn match tclSpecial contained '\\[\[\]\{\}\"\$]'
|
||||
syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
|
||||
" A string needs the skip argument as it may legitimately contain \".
|
||||
" Match at start of line
|
||||
syn region tclString start=+^"+ end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
|
||||
syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC skip=+\\\\\|\\"+
|
||||
"Match all other legal strings.
|
||||
syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=tclSpecial,tclVarRef,tclEmbeddedStatement skip=+\\\\\|\\"+
|
||||
syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement skip=+\\\\\|\\"+
|
||||
|
||||
" Line continuation is backslash immediately followed by newline.
|
||||
syn match tclLineContinue '\\$'
|
||||
@@ -231,6 +232,9 @@ syn case match
|
||||
syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo
|
||||
syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo
|
||||
|
||||
"syn match tclComment /^\s*\#.*$/
|
||||
"syn match tclComment /;\s*\#.*$/hs=s+1
|
||||
|
||||
"syn sync ccomment tclComment
|
||||
|
||||
" Define the default highlighting.
|
||||
@@ -252,6 +256,7 @@ if version >= 508 || !exists("did_tcl_syntax_inits")
|
||||
HiLink tclNumber Number
|
||||
HiLink tclError Error
|
||||
HiLink tclCommand Statement
|
||||
HiLink tclProcCommand Type
|
||||
HiLink tclString String
|
||||
HiLink tclComment Comment
|
||||
HiLink tclSpecial Special
|
||||
@@ -279,4 +284,4 @@ endif
|
||||
|
||||
let b:current_syntax = "tcl"
|
||||
|
||||
" vim: ts=8 noet
|
||||
" vim: ts=8 noet nolist
|
||||
|
||||
@@ -55,8 +55,8 @@ NOTE: The cursor keys should also work. But using hjkl you will be able to
|
||||
2. Type: :q! <ENTER>.
|
||||
This exits the editor, DISCARDING any changes you have made.
|
||||
|
||||
3. When you see the shell prompt, type the command that got you into this
|
||||
tutor. That would be: vimtutor <ENTER>
|
||||
3. Get back here by executing the command that got you into this tutor. That
|
||||
might be: vimtutor <ENTER>
|
||||
|
||||
4. If you have these steps memorized and are confident, execute steps
|
||||
1 through 3 to exit and re-enter the editor.
|
||||
|
||||
@@ -638,7 +638,7 @@ NOTA: Tutti i comandi : devono essere terminati premendo <INVIO>
|
||||
NOTA: Se esci da Vim e riesegui Vim battendo vim TEST , il file aperto
|
||||
sar<61> una copia esatta di "tutor.it" al momento del salvataggio.
|
||||
|
||||
5. Ora cancella il file battendo (MR-DOS): :!del TEST
|
||||
5. Ora cancella il file battendo (MS-DOS): :!del TEST
|
||||
o (Unix): :!rm TEST
|
||||
|
||||
|
||||
|
||||
@@ -638,7 +638,7 @@ NOTA: Tutti i comandi : devono essere terminati premendo <INVIO>
|
||||
NOTA: Se esci da Vim e riesegui Vim battendo vim TEST , il file aperto
|
||||
sarà una copia esatta di "tutor.it" al momento del salvataggio.
|
||||
|
||||
5. Ora cancella il file battendo (MR-DOS): :!del TEST
|
||||
5. Ora cancella il file battendo (MS-DOS): :!del TEST
|
||||
o (Unix): :!rm TEST
|
||||
|
||||
|
||||
|
||||
@@ -58,11 +58,11 @@ NOTA: As teclas de cursor devem funcionar tamb
|
||||
Isso sai do editor SEM salvar qualquer mudan<61>a que tenha sido feita.
|
||||
Se quiser salvar as altera<72><61>es e sair, digite :wq <ENTER>
|
||||
|
||||
3. Quando vir o prompt do shell digite o comando que lhe trouxe a este
|
||||
tutorial, na maioria dos casos: vimtutor <ENTER>.
|
||||
3. Repita o procedimento que lhe trouxe a este tutorial. O procedimento pode
|
||||
ter sido a digita<74><61>o de: vimtutor <ENTER>.
|
||||
|
||||
4. Se voc<6F> memorizou estes passos e est<73> confiante, execute os passos de
|
||||
1 a 3 para sair e re-entrar no editor.
|
||||
1 a 3 para sair e reentrar no editor.
|
||||
|
||||
NOTA: :q! <ENTER> descarta qualquer mudan<61>a. Em uma pr<70>xima li<6C><69>o ser<65>
|
||||
ensinado como salvar as mudan<61>as feitas em um arquivo.
|
||||
@@ -560,7 +560,7 @@ Nota: Isso
|
||||
|
||||
1. Mova o cursor para a linha abaixo marcada com --->.
|
||||
|
||||
2. Digite :/s/aa/a <ENTER> . Note que este comando somente muda a
|
||||
2. Digite :s/aa/a <ENTER> . Note que este comando somente muda a
|
||||
primeira ocorr<72>ncia na linha.
|
||||
|
||||
3. Agora digite :s/aa/a/g significando substituir globalmente na linha.
|
||||
|
||||
@@ -58,11 +58,11 @@ NOTA: As teclas de cursor devem funcionar também. Mas usando hjkl, tão logo
|
||||
Isso sai do editor SEM salvar qualquer mudança que tenha sido feita.
|
||||
Se quiser salvar as alterações e sair, digite :wq <ENTER>
|
||||
|
||||
3. Quando vir o prompt do shell digite o comando que lhe trouxe a este
|
||||
tutorial, na maioria dos casos: vimtutor <ENTER>.
|
||||
3. Repita o procedimento que lhe trouxe a este tutorial. O procedimento pode
|
||||
ter sido a digitação de: vimtutor <ENTER>.
|
||||
|
||||
4. Se você memorizou estes passos e está confiante, execute os passos de
|
||||
1 a 3 para sair e re-entrar no editor.
|
||||
1 a 3 para sair e reentrar no editor.
|
||||
|
||||
NOTA: :q! <ENTER> descarta qualquer mudança. Em uma próxima lição será
|
||||
ensinado como salvar as mudanças feitas em um arquivo.
|
||||
@@ -560,7 +560,7 @@ Nota: Isso é muito útil para corrigir um programa com parênteses não-casados
|
||||
|
||||
1. Mova o cursor para a linha abaixo marcada com --->.
|
||||
|
||||
2. Digite :/s/aa/a <ENTER> . Note que este comando somente muda a
|
||||
2. Digite :s/aa/a <ENTER> . Note que este comando somente muda a
|
||||
primeira ocorrência na linha.
|
||||
|
||||
3. Agora digite :s/aa/a/g significando substituir globalmente na linha.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" An example for a vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2011 Apr 15
|
||||
" Last change: 2014 Feb 05
|
||||
"
|
||||
" To use it, copy it to
|
||||
" for Unix and OS/2: ~/.vimrc
|
||||
@@ -24,7 +24,8 @@ set backspace=indent,eol,start
|
||||
if has("vms")
|
||||
set nobackup " do not keep a backup file, use versions instead
|
||||
else
|
||||
set backup " keep a backup file
|
||||
set backup " keep a backup file (restore to previous version)
|
||||
set undofile " keep an undo file (undo changes after closing)
|
||||
endif
|
||||
set history=50 " keep 50 lines of command line history
|
||||
set ruler " show the cursor position all the time
|
||||
|
||||
@@ -419,7 +419,7 @@ CPUARG = -$(CPUNR)
|
||||
ALIGNARG = -a$(ALIGN)
|
||||
#
|
||||
!if ("$(DEBUG)"=="yes")
|
||||
DEFINES=$(DEFINES) -DDEBUG
|
||||
DEFINES=$(DEFINES) -DDEBUG -D_DEBUG
|
||||
!endif
|
||||
#
|
||||
!if ("$(OLE)"=="yes")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Makefile for VIM on Win32, using Cygnus gcc
|
||||
# Last updated by Dan Sharp. Last Change: 2013 Sep 19
|
||||
# Last updated by Dan Sharp. Last Change: 2013 Dec 11
|
||||
#
|
||||
# Also read INSTALLpc.txt!
|
||||
#
|
||||
@@ -155,7 +155,7 @@ endif
|
||||
ifeq (yes, $(DYNAMIC_PERL))
|
||||
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
|
||||
else
|
||||
EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
|
||||
EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -272,7 +272,7 @@ ifeq (yes, $(DYNAMIC_RUBY))
|
||||
DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
|
||||
DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER)
|
||||
else
|
||||
EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib
|
||||
EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -359,6 +359,7 @@ WINDRES_CC = $(CC)
|
||||
|
||||
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
|
||||
WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
|
||||
EXTRA_LIBS =
|
||||
|
||||
ifdef GETTEXT
|
||||
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
|
||||
@@ -377,9 +378,10 @@ endif
|
||||
endif
|
||||
|
||||
ifdef PERL
|
||||
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -L$(PERLLIBS)
|
||||
CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
|
||||
ifeq (yes, $(DYNAMIC_PERL))
|
||||
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
|
||||
EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -596,7 +598,7 @@ ifdef XPM
|
||||
ifeq (yes, $(GUI))
|
||||
OBJ += $(OUTDIR)/xpm_w32.o
|
||||
# You'll need libXpm.a from http://gnuwin32.sf.net
|
||||
LIB += -L $(XPM)/lib -lXpm
|
||||
LIB += -L$(XPM)/lib -lXpm
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -632,7 +634,7 @@ endif
|
||||
|
||||
ifdef PERL
|
||||
ifeq (no, $(DYNAMIC_PERL))
|
||||
LIB += -lperl$(PERL_VER)
|
||||
LIB += -L$(PERLLIBS) -lperl$(PERL_VER)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -424,6 +424,9 @@ MSVCVER = 11.0
|
||||
!if "$(_NMAKE_VER)" == "11.00.60610.1"
|
||||
MSVCVER = 11.0
|
||||
!endif
|
||||
!if "$(_NMAKE_VER)" == "11.00.61030.0"
|
||||
MSVCVER = 11.0
|
||||
!endif
|
||||
!if "$(_NMAKE_VER)" == "12.00.21005.1"
|
||||
MSVCVER = 12.0
|
||||
!endif
|
||||
@@ -488,7 +491,7 @@ CFLAGS=$(CFLAGS) $(WP64CHECK)
|
||||
!endif
|
||||
|
||||
# Static code analysis generally available starting with VS2012
|
||||
!if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0") && ("$(MSVCVER)" == "12.0")
|
||||
!if ("$(ANALYZE)" == "yes") && (("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0"))
|
||||
CFLAGS=$(CFLAGS) /analyze
|
||||
!endif
|
||||
|
||||
@@ -825,7 +828,12 @@ PERL_INCDIR = $(PERL)\Lib$(PERL_ARCH)\Core
|
||||
PERL_LIB = $(PERL_INCDIR)\perl.lib
|
||||
!else
|
||||
PERL_DLL = perl$(PERL_VER).dll
|
||||
!if exist($(PERL_INCDIR)\perl$(PERL_VER).lib)
|
||||
PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib
|
||||
!else
|
||||
# For ActivePerl 5.18 and later
|
||||
PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a
|
||||
!endif
|
||||
!endif
|
||||
|
||||
CFLAGS = $(CFLAGS) -DFEAT_PERL
|
||||
|
||||
@@ -2381,6 +2381,7 @@ shadow: runtime pixmaps
|
||||
../../testdir/*.in \
|
||||
../../testdir/*.vim \
|
||||
../../testdir/python* \
|
||||
../../testdir/sautest \
|
||||
../../testdir/test83-tags? \
|
||||
../../testdir/*.ok .
|
||||
|
||||
|
||||
31
src/auto/configure
vendored
31
src/auto/configure
vendored
@@ -4743,7 +4743,7 @@ $as_echo_n "checking LuaJIT version... " >&6; }
|
||||
if test "${vi_cv_version_luajit+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([0-9.]*\)\.[0-9] .*/\1/'`
|
||||
vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]*\)* .*/\1/'`
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5
|
||||
$as_echo "$vi_cv_version_luajit" >&6; }
|
||||
@@ -5199,9 +5199,19 @@ $as_echo "not found" >&6; }
|
||||
$as_echo_n "checking for mzscheme_base.c... " >&6; }
|
||||
if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
|
||||
MZSCHEME_EXTRA="mzscheme_base.c"
|
||||
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
|
||||
MZSCHEME_MOD="++lib scheme/base"
|
||||
else
|
||||
if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
|
||||
MZSCHEME_EXTRA="mzscheme_base.c"
|
||||
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
|
||||
MZSCHEME_MOD="++lib scheme/base"
|
||||
else
|
||||
if test -f "${SCHEME_COLLECTS}collects/racket/base.rkt" ; then
|
||||
MZSCHEME_EXTRA="mzscheme_base.c"
|
||||
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/raco ctool"
|
||||
MZSCHEME_MOD=""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$MZSCHEME_EXTRA" != "X" ; then
|
||||
@@ -12323,6 +12333,15 @@ _ACEOF
|
||||
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define VIM_SIZEOF_INT $ac_cv_sizeof_int
|
||||
_ACEOF
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define VIM_SIZEOF_LONG $ac_cv_sizeof_long
|
||||
_ACEOF
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
|
||||
$as_echo_n "checking uint32_t is 32 bits... " >&6; }
|
||||
if test "$cross_compiling" = yes; then :
|
||||
@@ -12690,6 +12709,8 @@ $as_echo_n "checking for NLS... " >&6; }
|
||||
if test -f po/Makefile; then
|
||||
have_gettext="no"
|
||||
if test -n "$MSGFMT"; then
|
||||
olibs=$LIBS
|
||||
LIBS=""
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <libintl.h>
|
||||
@@ -12703,10 +12724,9 @@ gettext("Test");
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works" >&5
|
||||
$as_echo "gettext() works" >&6; }; have_gettext="yes"
|
||||
$as_echo "gettext() works" >&6; }; have_gettext="yes"; LIBS=$olibs
|
||||
else
|
||||
olibs=$LIBS
|
||||
LIBS="$LIBS -lintl"
|
||||
LIBS="-lintl"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
#include <libintl.h>
|
||||
@@ -12720,7 +12740,8 @@ gettext("Test");
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works with -lintl" >&5
|
||||
$as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes"
|
||||
$as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes";
|
||||
LIBS="$olibs -lintl"
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() doesn't work" >&5
|
||||
$as_echo "gettext() doesn't work" >&6; };
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* Do ":help credits" in Vim to see a list of people who contributed.
|
||||
* See README.txt for an overview of the Vim source code.
|
||||
*
|
||||
* Blowfish encryption for Vim; in Blowfish output feedback mode.
|
||||
* Blowfish encryption for Vim; in Blowfish cipher feedback mode.
|
||||
* Contributed by Mohsin Ahmed, http://www.cs.albany.edu/~mosh
|
||||
* Based on http://www.schneier.com/blowfish.html by Bruce Schneier.
|
||||
*/
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#define BF_BLOCK 8
|
||||
#define BF_BLOCK_MASK 7
|
||||
#define BF_OFB_LEN (8*(BF_BLOCK))
|
||||
#define BF_CFB_LEN (8*(BF_BLOCK))
|
||||
|
||||
typedef union {
|
||||
UINT32_T ul[2];
|
||||
@@ -554,42 +554,42 @@ bf_self_test()
|
||||
return err > 0 ? FAIL : OK;
|
||||
}
|
||||
|
||||
/* Output feedback mode. */
|
||||
/* Cipher feedback mode. */
|
||||
static int randbyte_offset = 0;
|
||||
static int update_offset = 0;
|
||||
static char_u ofb_buffer[BF_OFB_LEN]; /* 64 bytes */
|
||||
static char_u cfb_buffer[BF_CFB_LEN]; /* 64 bytes */
|
||||
|
||||
/*
|
||||
* Initialize with seed "iv[iv_len]".
|
||||
*/
|
||||
void
|
||||
bf_ofb_init(iv, iv_len)
|
||||
bf_cfb_init(iv, iv_len)
|
||||
char_u *iv;
|
||||
int iv_len;
|
||||
{
|
||||
int i, mi;
|
||||
|
||||
randbyte_offset = update_offset = 0;
|
||||
vim_memset(ofb_buffer, 0, BF_OFB_LEN);
|
||||
vim_memset(cfb_buffer, 0, BF_CFB_LEN);
|
||||
if (iv_len > 0)
|
||||
{
|
||||
mi = iv_len > BF_OFB_LEN ? iv_len : BF_OFB_LEN;
|
||||
mi = iv_len > BF_CFB_LEN ? iv_len : BF_CFB_LEN;
|
||||
for (i = 0; i < mi; i++)
|
||||
ofb_buffer[i % BF_OFB_LEN] ^= iv[i % iv_len];
|
||||
cfb_buffer[i % BF_CFB_LEN] ^= iv[i % iv_len];
|
||||
}
|
||||
}
|
||||
|
||||
#define BF_OFB_UPDATE(c) { \
|
||||
ofb_buffer[update_offset] ^= (char_u)c; \
|
||||
if (++update_offset == BF_OFB_LEN) \
|
||||
#define BF_CFB_UPDATE(c) { \
|
||||
cfb_buffer[update_offset] ^= (char_u)c; \
|
||||
if (++update_offset == BF_CFB_LEN) \
|
||||
update_offset = 0; \
|
||||
}
|
||||
|
||||
#define BF_RANBYTE(t) { \
|
||||
if ((randbyte_offset & BF_BLOCK_MASK) == 0) \
|
||||
bf_e_cblock(&ofb_buffer[randbyte_offset]); \
|
||||
t = ofb_buffer[randbyte_offset]; \
|
||||
if (++randbyte_offset == BF_OFB_LEN) \
|
||||
bf_e_cblock(&cfb_buffer[randbyte_offset]); \
|
||||
t = cfb_buffer[randbyte_offset]; \
|
||||
if (++randbyte_offset == BF_CFB_LEN) \
|
||||
randbyte_offset = 0; \
|
||||
}
|
||||
|
||||
@@ -610,7 +610,7 @@ bf_crypt_encode(from, len, to)
|
||||
{
|
||||
ztemp = from[i];
|
||||
BF_RANBYTE(t);
|
||||
BF_OFB_UPDATE(ztemp);
|
||||
BF_CFB_UPDATE(ztemp);
|
||||
to[i] = t ^ ztemp;
|
||||
}
|
||||
}
|
||||
@@ -630,7 +630,7 @@ bf_crypt_decode(ptr, len)
|
||||
{
|
||||
BF_RANBYTE(t);
|
||||
*p ^= t;
|
||||
BF_OFB_UPDATE(*p);
|
||||
BF_CFB_UPDATE(*p);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -646,13 +646,13 @@ bf_crypt_init_keys(passwd)
|
||||
|
||||
for (p = passwd; *p != NUL; ++p)
|
||||
{
|
||||
BF_OFB_UPDATE(*p);
|
||||
BF_CFB_UPDATE(*p);
|
||||
}
|
||||
}
|
||||
|
||||
static int save_randbyte_offset;
|
||||
static int save_update_offset;
|
||||
static char_u save_ofb_buffer[BF_OFB_LEN];
|
||||
static char_u save_cfb_buffer[BF_CFB_LEN];
|
||||
static UINT32_T save_pax[18];
|
||||
static UINT32_T save_sbx[4][256];
|
||||
|
||||
@@ -665,7 +665,7 @@ bf_crypt_save()
|
||||
{
|
||||
save_randbyte_offset = randbyte_offset;
|
||||
save_update_offset = update_offset;
|
||||
mch_memmove(save_ofb_buffer, ofb_buffer, BF_OFB_LEN);
|
||||
mch_memmove(save_cfb_buffer, cfb_buffer, BF_CFB_LEN);
|
||||
mch_memmove(save_pax, pax, 4 * 18);
|
||||
mch_memmove(save_sbx, sbx, 4 * 4 * 256);
|
||||
}
|
||||
@@ -679,7 +679,7 @@ bf_crypt_restore()
|
||||
{
|
||||
randbyte_offset = save_randbyte_offset;
|
||||
update_offset = save_update_offset;
|
||||
mch_memmove(ofb_buffer, save_ofb_buffer, BF_OFB_LEN);
|
||||
mch_memmove(cfb_buffer, save_cfb_buffer, BF_CFB_LEN);
|
||||
mch_memmove(pax, save_pax, 4 * 18);
|
||||
mch_memmove(sbx, save_sbx, 4 * 4 * 256);
|
||||
}
|
||||
|
||||
80
src/buffer.c
80
src/buffer.c
@@ -994,6 +994,50 @@ do_bufdel(command, arg, addr_count, start_bnr, end_bnr, forceit)
|
||||
#if defined(FEAT_LISTCMDS) || defined(FEAT_PYTHON) \
|
||||
|| defined(FEAT_PYTHON3) || defined(PROTO)
|
||||
|
||||
static int empty_curbuf __ARGS((int close_others, int forceit, int action));
|
||||
|
||||
/*
|
||||
* Make the current buffer empty.
|
||||
* Used when it is wiped out and it's the last buffer.
|
||||
*/
|
||||
static int
|
||||
empty_curbuf(close_others, forceit, action)
|
||||
int close_others;
|
||||
int forceit;
|
||||
int action;
|
||||
{
|
||||
int retval;
|
||||
buf_T *buf = curbuf;
|
||||
|
||||
if (action == DOBUF_UNLOAD)
|
||||
{
|
||||
EMSG(_("E90: Cannot unload last buffer"));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
if (close_others)
|
||||
{
|
||||
/* Close any other windows on this buffer, then make it empty. */
|
||||
#ifdef FEAT_WINDOWS
|
||||
close_windows(buf, TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
setpcmark();
|
||||
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
|
||||
forceit ? ECMD_FORCEIT : 0, curwin);
|
||||
|
||||
/*
|
||||
* do_ecmd() may create a new buffer, then we have to delete
|
||||
* the old one. But do_ecmd() may have done that already, check
|
||||
* if the buffer still exists.
|
||||
*/
|
||||
if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
|
||||
close_buffer(NULL, buf, action, FALSE);
|
||||
if (!close_others)
|
||||
need_fileinfo = FALSE;
|
||||
return retval;
|
||||
}
|
||||
/*
|
||||
* Implementation of the commands for the buffer list.
|
||||
*
|
||||
@@ -1114,7 +1158,6 @@ do_buffer(action, start, dir, count, forceit)
|
||||
if (unload)
|
||||
{
|
||||
int forward;
|
||||
int retval;
|
||||
|
||||
/* When unloading or deleting a buffer that's already unloaded and
|
||||
* unlisted: fail silently. */
|
||||
@@ -1155,30 +1198,7 @@ do_buffer(action, start, dir, count, forceit)
|
||||
if (bp->b_p_bl && bp != buf)
|
||||
break;
|
||||
if (bp == NULL && buf == curbuf)
|
||||
{
|
||||
if (action == DOBUF_UNLOAD)
|
||||
{
|
||||
EMSG(_("E90: Cannot unload last buffer"));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
/* Close any other windows on this buffer, then make it empty. */
|
||||
#ifdef FEAT_WINDOWS
|
||||
close_windows(buf, TRUE);
|
||||
#endif
|
||||
setpcmark();
|
||||
retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE,
|
||||
forceit ? ECMD_FORCEIT : 0, curwin);
|
||||
|
||||
/*
|
||||
* do_ecmd() may create a new buffer, then we have to delete
|
||||
* the old one. But do_ecmd() may have done that already, check
|
||||
* if the buffer still exists.
|
||||
*/
|
||||
if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
|
||||
close_buffer(NULL, buf, action, FALSE);
|
||||
return retval;
|
||||
}
|
||||
return empty_curbuf(TRUE, forceit, action);
|
||||
|
||||
#ifdef FEAT_WINDOWS
|
||||
/*
|
||||
@@ -1212,7 +1232,8 @@ do_buffer(action, start, dir, count, forceit)
|
||||
|
||||
/*
|
||||
* Deleting the current buffer: Need to find another buffer to go to.
|
||||
* There must be another, otherwise it would have been handled above.
|
||||
* There should be another, otherwise it would have been handled
|
||||
* above. However, autocommands may have deleted all buffers.
|
||||
* First use au_new_curbuf, if it is valid.
|
||||
* Then prefer the buffer we most recently visited.
|
||||
* Else try to find one that is loaded, after the current buffer,
|
||||
@@ -1311,6 +1332,13 @@ do_buffer(action, start, dir, count, forceit)
|
||||
}
|
||||
}
|
||||
|
||||
if (buf == NULL)
|
||||
{
|
||||
/* Autocommands must have wiped out all other buffers. Only option
|
||||
* now is to make the current buffer empty. */
|
||||
return empty_curbuf(FALSE, forceit, action);
|
||||
}
|
||||
|
||||
/*
|
||||
* make buf current buffer
|
||||
*/
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
#undef UNIX
|
||||
|
||||
/* Defined to the size of an int */
|
||||
#undef SIZEOF_INT
|
||||
#undef VIM_SIZEOF_INT
|
||||
|
||||
/* Defined to the size of a long */
|
||||
#undef SIZEOF_LONG
|
||||
#undef VIM_SIZEOF_LONG
|
||||
|
||||
/* Defined to the size of off_t */
|
||||
#undef SIZEOF_OFF_T
|
||||
|
||||
@@ -496,7 +496,7 @@ if test "$enable_luainterp" = "yes" -o "$enable_luainterp" = "dynamic"; then
|
||||
if test "X$vi_cv_path_luajit" != "X"; then
|
||||
dnl -- find LuaJIT version
|
||||
AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit,
|
||||
[ vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]] .*/\1/'` ])
|
||||
[ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]*\)* .*/\1/'` ])
|
||||
AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit,
|
||||
[ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ])
|
||||
vi_cv_path_lua="$vi_cv_path_luajit"
|
||||
@@ -802,9 +802,19 @@ if test "$enable_mzschemeinterp" = "yes"; then
|
||||
AC_MSG_CHECKING(for mzscheme_base.c)
|
||||
if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
|
||||
MZSCHEME_EXTRA="mzscheme_base.c"
|
||||
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
|
||||
MZSCHEME_MOD="++lib scheme/base"
|
||||
else
|
||||
if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
|
||||
MZSCHEME_EXTRA="mzscheme_base.c"
|
||||
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
|
||||
MZSCHEME_MOD="++lib scheme/base"
|
||||
else
|
||||
if test -f "${SCHEME_COLLECTS}collects/racket/base.rkt" ; then
|
||||
MZSCHEME_EXTRA="mzscheme_base.c"
|
||||
MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/raco ctool"
|
||||
MZSCHEME_MOD=""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$MZSCHEME_EXTRA" != "X" ; then
|
||||
@@ -3571,6 +3581,10 @@ AC_CHECK_SIZEOF([long])
|
||||
AC_CHECK_SIZEOF([time_t])
|
||||
AC_CHECK_SIZEOF([off_t])
|
||||
|
||||
dnl Use different names to avoid clashing with other header files.
|
||||
AC_DEFINE_UNQUOTED(VIM_SIZEOF_INT, [$ac_cv_sizeof_int])
|
||||
AC_DEFINE_UNQUOTED(VIM_SIZEOF_LONG, [$ac_cv_sizeof_long])
|
||||
|
||||
dnl Make sure that uint32_t is really 32 bits unsigned.
|
||||
AC_MSG_CHECKING([uint32_t is 32 bits])
|
||||
AC_TRY_RUN([
|
||||
@@ -3725,6 +3739,9 @@ if test "$MANDEF" = "man -s"; then
|
||||
fi
|
||||
|
||||
dnl Check if gettext() is working and if it needs -lintl
|
||||
dnl We take care to base this on an empty LIBS: on some systems libelf would be
|
||||
dnl in LIBS and implicitly take along libintl. The final LIBS would then not
|
||||
dnl contain libintl, and the link step would fail due to -Wl,--as-needed.
|
||||
AC_MSG_CHECKING(--disable-nls argument)
|
||||
AC_ARG_ENABLE(nls,
|
||||
[ --disable-nls Don't support NLS (gettext()).], ,
|
||||
@@ -3743,16 +3760,18 @@ if test "$enable_nls" = "yes"; then
|
||||
if test -f po/Makefile; then
|
||||
have_gettext="no"
|
||||
if test -n "$MSGFMT"; then
|
||||
olibs=$LIBS
|
||||
LIBS=""
|
||||
AC_TRY_LINK(
|
||||
[#include <libintl.h>],
|
||||
[gettext("Test");],
|
||||
AC_MSG_RESULT([gettext() works]); have_gettext="yes",
|
||||
olibs=$LIBS
|
||||
LIBS="$LIBS -lintl"
|
||||
AC_MSG_RESULT([gettext() works]); have_gettext="yes"; LIBS=$olibs,
|
||||
LIBS="-lintl"
|
||||
AC_TRY_LINK(
|
||||
[#include <libintl.h>],
|
||||
[gettext("Test");],
|
||||
AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
|
||||
AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes";
|
||||
LIBS="$olibs -lintl",
|
||||
AC_MSG_RESULT([gettext() doesn't work]);
|
||||
LIBS=$olibs))
|
||||
else
|
||||
|
||||
@@ -1192,23 +1192,29 @@ install_vimrc(int idx)
|
||||
fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n");
|
||||
|
||||
/* If the path has a space: When using cmd.exe (Win NT/2000/XP) put
|
||||
* quotes around the whole command and around the diff command.
|
||||
* quotes around the diff command and rely on the default value of
|
||||
* shellxquote to solve the quoting problem for the whole command.
|
||||
*
|
||||
* Otherwise put a double quote just before the space and at the
|
||||
* end of the command. Putting quotes around the whole thing
|
||||
* doesn't work on Win 95/98/ME. This is mostly guessed! */
|
||||
fprintf(fd, " let eq = ''\n");
|
||||
fprintf(fd, " if $VIMRUNTIME =~ ' '\n");
|
||||
fprintf(fd, " if &sh =~ '\\<cmd'\n");
|
||||
fprintf(fd, " let cmd = '\"\"' . $VIMRUNTIME . '\\diff\"'\n");
|
||||
fprintf(fd, " let eq = '\"'\n");
|
||||
fprintf(fd, " if empty(&shellxquote)\n");
|
||||
fprintf(fd, " let l:shxq_sav = ''\n");
|
||||
fprintf(fd, " set shellxquote&\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, " let cmd = '\"' . $VIMRUNTIME . '\\diff\"'\n");
|
||||
fprintf(fd, " else\n");
|
||||
fprintf(fd, " let cmd = substitute($VIMRUNTIME, ' ', '\" ', '') . '\\diff\"'\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, " else\n");
|
||||
fprintf(fd, " let cmd = $VIMRUNTIME . '\\diff'\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq\n");
|
||||
|
||||
fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3\n");
|
||||
fprintf(fd, " if exists('l:shxq_sav')\n");
|
||||
fprintf(fd, " let &shellxquote=l:shxq_sav\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, "endfunction\n");
|
||||
fprintf(fd, "\n");
|
||||
}
|
||||
|
||||
162
src/edit.c
162
src/edit.c
@@ -264,6 +264,7 @@ static char_u *do_insert_char_pre __ARGS((int c));
|
||||
|
||||
static colnr_T Insstart_textlen; /* length of line when insert started */
|
||||
static colnr_T Insstart_blank_vcol; /* vcol for first inserted blank */
|
||||
static int update_Insstart_orig = TRUE; /* set Insstart_orig to Insstart */
|
||||
|
||||
static char_u *last_insert = NULL; /* the text of the previous insert,
|
||||
K_SPECIAL and CSI are escaped */
|
||||
@@ -340,6 +341,9 @@ edit(cmdchar, startln, count)
|
||||
* error message */
|
||||
check_for_delay(TRUE);
|
||||
|
||||
/* set Insstart_orig to Insstart */
|
||||
update_Insstart_orig = TRUE;
|
||||
|
||||
#ifdef HAVE_SANDBOX
|
||||
/* Don't allow inserting in the sandbox. */
|
||||
if (sandbox != 0)
|
||||
@@ -631,6 +635,9 @@ edit(cmdchar, startln, count)
|
||||
if (arrow_used) /* don't repeat insert when arrow key used */
|
||||
count = 0;
|
||||
|
||||
if (update_Insstart_orig)
|
||||
Insstart_orig = Insstart;
|
||||
|
||||
if (stop_insert_mode)
|
||||
{
|
||||
/* ":stopinsert" used or 'insertmode' reset */
|
||||
@@ -1556,87 +1563,89 @@ ins_redraw(ready)
|
||||
int conceal_update_lines = FALSE;
|
||||
#endif
|
||||
|
||||
if (!char_avail())
|
||||
{
|
||||
if (char_avail())
|
||||
return;
|
||||
|
||||
#if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL)
|
||||
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
|
||||
* visible, the command might delete it. */
|
||||
if (ready && (
|
||||
/* Trigger CursorMoved if the cursor moved. Not when the popup menu is
|
||||
* visible, the command might delete it. */
|
||||
if (ready && (
|
||||
# ifdef FEAT_AUTOCMD
|
||||
has_cursormovedI()
|
||||
has_cursormovedI()
|
||||
# endif
|
||||
# if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL)
|
||||
||
|
||||
||
|
||||
# endif
|
||||
# ifdef FEAT_CONCEAL
|
||||
curwin->w_p_cole > 0
|
||||
curwin->w_p_cole > 0
|
||||
# endif
|
||||
)
|
||||
&& !equalpos(last_cursormoved, curwin->w_cursor)
|
||||
)
|
||||
&& !equalpos(last_cursormoved, curwin->w_cursor)
|
||||
# ifdef FEAT_INS_EXPAND
|
||||
&& !pum_visible()
|
||||
# endif
|
||||
)
|
||||
{
|
||||
# ifdef FEAT_SYN_HL
|
||||
/* Need to update the screen first, to make sure syntax
|
||||
* highlighting is correct after making a change (e.g., inserting
|
||||
* a "(". The autocommand may also require a redraw, so it's done
|
||||
* again below, unfortunately. */
|
||||
if (syntax_present(curwin) && must_redraw)
|
||||
update_screen(0);
|
||||
# endif
|
||||
# ifdef FEAT_AUTOCMD
|
||||
if (has_cursormovedI())
|
||||
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
|
||||
# endif
|
||||
# ifdef FEAT_CONCEAL
|
||||
if (curwin->w_p_cole > 0)
|
||||
{
|
||||
conceal_old_cursor_line = last_cursormoved.lnum;
|
||||
conceal_new_cursor_line = curwin->w_cursor.lnum;
|
||||
conceal_update_lines = TRUE;
|
||||
}
|
||||
# endif
|
||||
last_cursormoved = curwin->w_cursor;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Trigger TextChangedI if b_changedtick differs. */
|
||||
if (ready && has_textchangedI()
|
||||
&& last_changedtick != curbuf->b_changedtick
|
||||
# ifdef FEAT_INS_EXPAND
|
||||
&& !pum_visible()
|
||||
# endif
|
||||
)
|
||||
{
|
||||
# ifdef FEAT_SYN_HL
|
||||
/* Need to update the screen first, to make sure syntax
|
||||
* highlighting is correct after making a change (e.g., inserting
|
||||
* a "(". The autocommand may also require a redraw, so it's done
|
||||
* again below, unfortunately. */
|
||||
if (syntax_present(curwin) && must_redraw)
|
||||
update_screen(0);
|
||||
# endif
|
||||
# ifdef FEAT_AUTOCMD
|
||||
if (has_cursormovedI())
|
||||
apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf);
|
||||
# endif
|
||||
# ifdef FEAT_CONCEAL
|
||||
if (curwin->w_p_cole > 0)
|
||||
{
|
||||
conceal_old_cursor_line = last_cursormoved.lnum;
|
||||
conceal_new_cursor_line = curwin->w_cursor.lnum;
|
||||
conceal_update_lines = TRUE;
|
||||
}
|
||||
# endif
|
||||
last_cursormoved = curwin->w_cursor;
|
||||
}
|
||||
#endif
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Trigger TextChangedI if b_changedtick differs. */
|
||||
if (!ready && has_textchangedI()
|
||||
&& last_changedtick != curbuf->b_changedtick
|
||||
# ifdef FEAT_INS_EXPAND
|
||||
&& !pum_visible()
|
||||
# endif
|
||||
)
|
||||
{
|
||||
if (last_changedtick_buf == curbuf)
|
||||
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
|
||||
last_changedtick_buf = curbuf;
|
||||
last_changedtick = curbuf->b_changedtick;
|
||||
}
|
||||
#endif
|
||||
if (must_redraw)
|
||||
update_screen(0);
|
||||
else if (clear_cmdline || redraw_cmdline)
|
||||
showmode(); /* clear cmdline and show mode */
|
||||
# if defined(FEAT_CONCEAL)
|
||||
if ((conceal_update_lines
|
||||
&& (conceal_old_cursor_line != conceal_new_cursor_line
|
||||
|| conceal_cursor_line(curwin)))
|
||||
|| need_cursor_line_redraw)
|
||||
{
|
||||
if (conceal_old_cursor_line != conceal_new_cursor_line)
|
||||
update_single_line(curwin, conceal_old_cursor_line);
|
||||
update_single_line(curwin, conceal_new_cursor_line == 0
|
||||
? curwin->w_cursor.lnum : conceal_new_cursor_line);
|
||||
curwin->w_valid &= ~VALID_CROW;
|
||||
}
|
||||
# endif
|
||||
showruler(FALSE);
|
||||
setcursor();
|
||||
emsg_on_display = FALSE; /* may remove error message now */
|
||||
)
|
||||
{
|
||||
if (last_changedtick_buf == curbuf)
|
||||
apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf);
|
||||
last_changedtick_buf = curbuf;
|
||||
last_changedtick = curbuf->b_changedtick;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (must_redraw)
|
||||
update_screen(0);
|
||||
else if (clear_cmdline || redraw_cmdline)
|
||||
showmode(); /* clear cmdline and show mode */
|
||||
# if defined(FEAT_CONCEAL)
|
||||
if ((conceal_update_lines
|
||||
&& (conceal_old_cursor_line != conceal_new_cursor_line
|
||||
|| conceal_cursor_line(curwin)))
|
||||
|| need_cursor_line_redraw)
|
||||
{
|
||||
if (conceal_old_cursor_line != conceal_new_cursor_line)
|
||||
update_single_line(curwin, conceal_old_cursor_line);
|
||||
update_single_line(curwin, conceal_new_cursor_line == 0
|
||||
? curwin->w_cursor.lnum : conceal_new_cursor_line);
|
||||
curwin->w_valid &= ~VALID_CROW;
|
||||
}
|
||||
# endif
|
||||
showruler(FALSE);
|
||||
setcursor();
|
||||
emsg_on_display = FALSE; /* may remove error message now */
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4178,6 +4187,7 @@ ins_compl_get_exp(ini)
|
||||
char_u *dict = NULL;
|
||||
int dict_f = 0;
|
||||
compl_T *old_match;
|
||||
int set_match_pos;
|
||||
|
||||
if (!compl_started)
|
||||
{
|
||||
@@ -4196,6 +4206,7 @@ ins_compl_get_exp(ini)
|
||||
for (;;)
|
||||
{
|
||||
found_new_match = FAIL;
|
||||
set_match_pos = FALSE;
|
||||
|
||||
/* For ^N/^P pick a new entry from e_cpt if compl_started is off,
|
||||
* or if found_all says this entry is done. For ^X^L only use the
|
||||
@@ -4215,6 +4226,10 @@ ins_compl_get_exp(ini)
|
||||
dec(&first_match_pos);
|
||||
last_match_pos = first_match_pos;
|
||||
type = 0;
|
||||
|
||||
/* Remember the first match so that the loop stops when we
|
||||
* wrap and come back there a second time. */
|
||||
set_match_pos = TRUE;
|
||||
}
|
||||
else if (vim_strchr((char_u *)"buwU", *e_cpt) != NULL
|
||||
&& (ins_buf = ins_compl_next_buf(ins_buf, *e_cpt)) != curbuf)
|
||||
@@ -4379,7 +4394,7 @@ ins_compl_get_exp(ini)
|
||||
if (ins_buf->b_p_inf)
|
||||
p_scs = FALSE;
|
||||
|
||||
/* buffers other than curbuf are scanned from the beginning or the
|
||||
/* Buffers other than curbuf are scanned from the beginning or the
|
||||
* end but never from the middle, thus setting nowrapscan in this
|
||||
* buffers is a good idea, on the other hand, we always set
|
||||
* wrapscan for curbuf to avoid missing matches -- Acevedo,Webb */
|
||||
@@ -4406,12 +4421,13 @@ ins_compl_get_exp(ini)
|
||||
compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG,
|
||||
RE_LAST, (linenr_T)0, NULL);
|
||||
--msg_silent;
|
||||
if (!compl_started)
|
||||
if (!compl_started || set_match_pos)
|
||||
{
|
||||
/* set "compl_started" even on fail */
|
||||
compl_started = TRUE;
|
||||
first_match_pos = *pos;
|
||||
last_match_pos = *pos;
|
||||
set_match_pos = FALSE;
|
||||
}
|
||||
else if (first_match_pos.lnum == last_match_pos.lnum
|
||||
&& first_match_pos.col == last_match_pos.col)
|
||||
@@ -6914,6 +6930,7 @@ stop_insert(end_insert_pos, esc, nomove)
|
||||
if (end_insert_pos != NULL)
|
||||
{
|
||||
curbuf->b_op_start = Insstart;
|
||||
curbuf->b_op_start_orig = Insstart_orig;
|
||||
curbuf->b_op_end = *end_insert_pos;
|
||||
}
|
||||
}
|
||||
@@ -8248,6 +8265,7 @@ ins_ctrl_g()
|
||||
|
||||
/* Need to reset Insstart, esp. because a BS that joins
|
||||
* a line to the previous one must save for undo. */
|
||||
update_Insstart_orig = FALSE;
|
||||
Insstart = curwin->w_cursor;
|
||||
break;
|
||||
|
||||
|
||||
198
src/eval.c
198
src/eval.c
@@ -125,9 +125,6 @@ static dictitem_T globvars_var; /* variable used for g: */
|
||||
*/
|
||||
static hashtab_T compat_hashtab;
|
||||
|
||||
/* When using exists() don't auto-load a script. */
|
||||
static int no_autoload = FALSE;
|
||||
|
||||
/*
|
||||
* When recursively copying lists and dicts we need to remember which ones we
|
||||
* have done to avoid endless recursiveness. This unique ID is used for that.
|
||||
@@ -156,6 +153,11 @@ static int echo_attr = 0; /* attributes used for ":echo" */
|
||||
/* Values for trans_function_name() argument: */
|
||||
#define TFN_INT 1 /* internal function name OK */
|
||||
#define TFN_QUIET 2 /* no error messages */
|
||||
#define TFN_NO_AUTOLOAD 4 /* do not use script autoloading */
|
||||
|
||||
/* Values for get_lval() flags argument: */
|
||||
#define GLV_QUIET TFN_QUIET /* no error messages */
|
||||
#define GLV_NO_AUTOLOAD TFN_NO_AUTOLOAD /* do not use script autoloading */
|
||||
|
||||
/*
|
||||
* Structure to hold info for a user function.
|
||||
@@ -390,7 +392,7 @@ static void list_func_vars __ARGS((int *first));
|
||||
static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first));
|
||||
static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op));
|
||||
static int check_changedtick __ARGS((char_u *arg));
|
||||
static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags));
|
||||
static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags));
|
||||
static void clear_lval __ARGS((lval_T *lp));
|
||||
static void set_var_lval __ARGS((lval_T *lp, char_u *endp, typval_T *rettv, int copy, char_u *op));
|
||||
static int tv_op __ARGS((typval_T *tv1, typval_T *tv2, char_u *op));
|
||||
@@ -445,7 +447,7 @@ static int string2float __ARGS((char_u *text, float_T *value));
|
||||
#endif
|
||||
static int get_env_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
|
||||
static int find_internal_func __ARGS((char_u *name));
|
||||
static char_u *deref_func_name __ARGS((char_u *name, int *lenp));
|
||||
static char_u *deref_func_name __ARGS((char_u *name, int *lenp, int no_autoload));
|
||||
static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
|
||||
static int call_func __ARGS((char_u *funcname, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
|
||||
static void emsg_funcname __ARGS((char *ermsg, char_u *name));
|
||||
@@ -770,7 +772,7 @@ static char_u *find_name_end __ARGS((char_u *arg, char_u **expr_start, char_u **
|
||||
static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end));
|
||||
static int eval_isnamec __ARGS((int c));
|
||||
static int eval_isnamec1 __ARGS((int c));
|
||||
static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose));
|
||||
static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose, int no_autoload));
|
||||
static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose));
|
||||
static typval_T *alloc_tv __ARGS((void));
|
||||
static typval_T *alloc_string_tv __ARGS((char_u *string));
|
||||
@@ -781,8 +783,8 @@ static linenr_T get_tv_lnum_buf __ARGS((typval_T *argvars, buf_T *buf));
|
||||
static char_u *get_tv_string __ARGS((typval_T *varp));
|
||||
static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
|
||||
static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf));
|
||||
static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp));
|
||||
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int writing));
|
||||
static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp, int no_autoload));
|
||||
static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int no_autoload));
|
||||
static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname));
|
||||
static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val));
|
||||
static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi));
|
||||
@@ -1059,7 +1061,7 @@ var_redir_start(name, append)
|
||||
ga_init2(&redir_ga, (int)sizeof(char), 500);
|
||||
|
||||
/* Parse the variable name (can be a dict or list entry). */
|
||||
redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, FALSE,
|
||||
redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, 0,
|
||||
FNE_CHECK_START);
|
||||
if (redir_endp == NULL || redir_lval->ll_name == NULL || *redir_endp != NUL)
|
||||
{
|
||||
@@ -1150,7 +1152,7 @@ var_redir_stop()
|
||||
/* Call get_lval() again, if it's inside a Dict or List it may
|
||||
* have changed. */
|
||||
redir_endp = get_lval(redir_varname, NULL, redir_lval,
|
||||
FALSE, FALSE, FALSE, FNE_CHECK_START);
|
||||
FALSE, FALSE, 0, FNE_CHECK_START);
|
||||
if (redir_endp != NULL && redir_lval->ll_name != NULL)
|
||||
set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
|
||||
clear_lval(redir_lval);
|
||||
@@ -2239,7 +2241,7 @@ list_arg_vars(eap, arg, first)
|
||||
{
|
||||
if (tofree != NULL)
|
||||
name = tofree;
|
||||
if (get_var_tv(name, len, &tv, TRUE) == FAIL)
|
||||
if (get_var_tv(name, len, &tv, TRUE, FALSE) == FAIL)
|
||||
error = TRUE;
|
||||
else
|
||||
{
|
||||
@@ -2474,7 +2476,7 @@ ex_let_one(arg, tv, copy, endchars, op)
|
||||
{
|
||||
lval_T lv;
|
||||
|
||||
p = get_lval(arg, tv, &lv, FALSE, FALSE, FALSE, FNE_CHECK_START);
|
||||
p = get_lval(arg, tv, &lv, FALSE, FALSE, 0, FNE_CHECK_START);
|
||||
if (p != NULL && lv.ll_name != NULL)
|
||||
{
|
||||
if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL)
|
||||
@@ -2519,18 +2521,22 @@ check_changedtick(arg)
|
||||
* "unlet" is TRUE for ":unlet": slightly different behavior when something is
|
||||
* wrong; must end in space or cmd separator.
|
||||
*
|
||||
* flags:
|
||||
* GLV_QUIET: do not give error messages
|
||||
* GLV_NO_AUTOLOAD: do not use script autoloading
|
||||
*
|
||||
* Returns a pointer to just after the name, including indexes.
|
||||
* When an evaluation error occurs "lp->ll_name" is NULL;
|
||||
* Returns NULL for a parsing error. Still need to free items in "lp"!
|
||||
*/
|
||||
static char_u *
|
||||
get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
|
||||
get_lval(name, rettv, lp, unlet, skip, flags, fne_flags)
|
||||
char_u *name;
|
||||
typval_T *rettv;
|
||||
lval_T *lp;
|
||||
int unlet;
|
||||
int skip;
|
||||
int quiet; /* don't give error messages */
|
||||
int flags; /* GLV_ values */
|
||||
int fne_flags; /* flags for find_name_end() */
|
||||
{
|
||||
char_u *p;
|
||||
@@ -2544,6 +2550,7 @@ get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
|
||||
char_u *key = NULL;
|
||||
int len;
|
||||
hashtab_T *ht;
|
||||
int quiet = flags & GLV_QUIET;
|
||||
|
||||
/* Clear everything in "lp". */
|
||||
vim_memset(lp, 0, sizeof(lval_T));
|
||||
@@ -2591,7 +2598,7 @@ get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags)
|
||||
|
||||
cc = *p;
|
||||
*p = NUL;
|
||||
v = find_var(lp->ll_name, &ht);
|
||||
v = find_var(lp->ll_name, &ht, flags & GLV_NO_AUTOLOAD);
|
||||
if (v == NULL && !quiet)
|
||||
EMSG2(_(e_undefvar), lp->ll_name);
|
||||
*p = cc;
|
||||
@@ -2904,7 +2911,7 @@ set_var_lval(lp, endp, rettv, copy, op)
|
||||
|
||||
/* handle +=, -= and .= */
|
||||
if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name),
|
||||
&tv, TRUE) == OK)
|
||||
&tv, TRUE, FALSE) == OK)
|
||||
{
|
||||
if (tv_op(&tv, rettv, op) == OK)
|
||||
set_var(lp->ll_name, &tv, FALSE);
|
||||
@@ -3425,7 +3432,7 @@ ex_call(eap)
|
||||
|
||||
/* If it is the name of a variable of type VAR_FUNC use its contents. */
|
||||
len = (int)STRLEN(tofree);
|
||||
name = deref_func_name(tofree, &len);
|
||||
name = deref_func_name(tofree, &len, FALSE);
|
||||
|
||||
/* Skip white space to allow ":call func ()". Not good, but required for
|
||||
* backward compatibility. */
|
||||
@@ -3556,7 +3563,7 @@ ex_unletlock(eap, argstart, deep)
|
||||
do
|
||||
{
|
||||
/* Parse the name and find the end. */
|
||||
name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, FALSE,
|
||||
name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, 0,
|
||||
FNE_CHECK_START);
|
||||
if (lv.ll_name == NULL)
|
||||
error = TRUE; /* error but continue parsing */
|
||||
@@ -3709,7 +3716,7 @@ do_lock_var(lp, name_end, deep, lock)
|
||||
ret = FAIL;
|
||||
else
|
||||
{
|
||||
di = find_var(lp->ll_name, NULL);
|
||||
di = find_var(lp->ll_name, NULL, TRUE);
|
||||
if (di == NULL)
|
||||
ret = FAIL;
|
||||
else
|
||||
@@ -5152,7 +5159,7 @@ eval7(arg, rettv, evaluate, want_string)
|
||||
{
|
||||
/* If "s" is the name of a variable of type VAR_FUNC
|
||||
* use its contents. */
|
||||
s = deref_func_name(s, &len);
|
||||
s = deref_func_name(s, &len, !evaluate);
|
||||
|
||||
/* Invoke the function. */
|
||||
ret = get_func_tv(s, len, rettv, arg,
|
||||
@@ -5179,7 +5186,7 @@ eval7(arg, rettv, evaluate, want_string)
|
||||
}
|
||||
}
|
||||
else if (evaluate)
|
||||
ret = get_var_tv(s, len, rettv, TRUE);
|
||||
ret = get_var_tv(s, len, rettv, TRUE, FALSE);
|
||||
else
|
||||
ret = OK;
|
||||
}
|
||||
@@ -6418,6 +6425,16 @@ list_insert_tv(l, tv, item)
|
||||
if (ni == NULL)
|
||||
return FAIL;
|
||||
copy_tv(tv, &ni->li_tv);
|
||||
list_insert(l, ni, item);
|
||||
return OK;
|
||||
}
|
||||
|
||||
void
|
||||
list_insert(l, ni, item)
|
||||
list_T *l;
|
||||
listitem_T *ni;
|
||||
listitem_T *item;
|
||||
{
|
||||
if (item == NULL)
|
||||
/* Append new item at end of list. */
|
||||
list_append(l, ni);
|
||||
@@ -6439,7 +6456,6 @@ list_insert_tv(l, tv, item)
|
||||
item->li_prev = ni;
|
||||
++l->lv_len;
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -7998,7 +8014,7 @@ static struct fst
|
||||
{"log10", 1, 1, f_log10},
|
||||
#endif
|
||||
#ifdef FEAT_LUA
|
||||
{"luaeval", 1, 2, f_luaeval},
|
||||
{"luaeval", 1, 2, f_luaeval},
|
||||
#endif
|
||||
{"map", 2, 2, f_map},
|
||||
{"maparg", 1, 4, f_maparg},
|
||||
@@ -8275,16 +8291,17 @@ find_internal_func(name)
|
||||
* name it contains, otherwise return "name".
|
||||
*/
|
||||
static char_u *
|
||||
deref_func_name(name, lenp)
|
||||
deref_func_name(name, lenp, no_autoload)
|
||||
char_u *name;
|
||||
int *lenp;
|
||||
int no_autoload;
|
||||
{
|
||||
dictitem_T *v;
|
||||
int cc;
|
||||
|
||||
cc = name[*lenp];
|
||||
name[*lenp] = NUL;
|
||||
v = find_var(name, NULL);
|
||||
v = find_var(name, NULL, no_autoload);
|
||||
name[*lenp] = cc;
|
||||
if (v != NULL && v->di_tv.v_type == VAR_FUNC)
|
||||
{
|
||||
@@ -9186,7 +9203,7 @@ f_byte2line(argvars, rettv)
|
||||
byteidx(argvars, rettv, comp)
|
||||
typval_T *argvars;
|
||||
typval_T *rettv;
|
||||
int comp;
|
||||
int comp UNUSED;
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
char_u *t;
|
||||
@@ -10039,8 +10056,6 @@ f_exists(argvars, rettv)
|
||||
int n = FALSE;
|
||||
int len = 0;
|
||||
|
||||
no_autoload = TRUE;
|
||||
|
||||
p = get_tv_string(&argvars[0]);
|
||||
if (*p == '$') /* environment variable */
|
||||
{
|
||||
@@ -10091,7 +10106,7 @@ f_exists(argvars, rettv)
|
||||
{
|
||||
if (tofree != NULL)
|
||||
name = tofree;
|
||||
n = (get_var_tv(name, len, &tv, FALSE) == OK);
|
||||
n = (get_var_tv(name, len, &tv, FALSE, TRUE) == OK);
|
||||
if (n)
|
||||
{
|
||||
/* handle d.key, l[idx], f(expr) */
|
||||
@@ -10107,8 +10122,6 @@ f_exists(argvars, rettv)
|
||||
}
|
||||
|
||||
rettv->vval.v_number = n;
|
||||
|
||||
no_autoload = FALSE;
|
||||
}
|
||||
|
||||
#ifdef FEAT_FLOAT
|
||||
@@ -11119,6 +11132,8 @@ get_buffer_lines(buf, start, end, retlist, rettv)
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
rettv->v_type = VAR_STRING;
|
||||
rettv->vval.v_string = NULL;
|
||||
if (retlist && rettv_list_alloc(rettv) == FAIL)
|
||||
return;
|
||||
|
||||
@@ -11131,8 +11146,6 @@ get_buffer_lines(buf, start, end, retlist, rettv)
|
||||
p = ml_get_buf(buf, start, FALSE);
|
||||
else
|
||||
p = (char_u *)"";
|
||||
|
||||
rettv->v_type = VAR_STRING;
|
||||
rettv->vval.v_string = vim_strsave(p);
|
||||
}
|
||||
else
|
||||
@@ -13344,8 +13357,8 @@ f_islocked(argvars, rettv)
|
||||
dictitem_T *di;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE, FALSE,
|
||||
FNE_CHECK_START);
|
||||
end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE,
|
||||
GLV_NO_AUTOLOAD, FNE_CHECK_START);
|
||||
if (end != NULL && lv.ll_name != NULL)
|
||||
{
|
||||
if (*end != NUL)
|
||||
@@ -13358,7 +13371,7 @@ f_islocked(argvars, rettv)
|
||||
rettv->vval.v_number = 1; /* always locked */
|
||||
else
|
||||
{
|
||||
di = find_var(lv.ll_name, NULL);
|
||||
di = find_var(lv.ll_name, NULL, TRUE);
|
||||
if (di != NULL)
|
||||
{
|
||||
/* Consider a variable locked when:
|
||||
@@ -13892,6 +13905,7 @@ find_some_match(argvars, rettv, type)
|
||||
int type;
|
||||
{
|
||||
char_u *str = NULL;
|
||||
long len = 0;
|
||||
char_u *expr = NULL;
|
||||
char_u *pat;
|
||||
regmatch_T regmatch;
|
||||
@@ -13931,7 +13945,10 @@ find_some_match(argvars, rettv, type)
|
||||
li = l->lv_first;
|
||||
}
|
||||
else
|
||||
{
|
||||
expr = str = get_tv_string(&argvars[0]);
|
||||
len = (long)STRLEN(str);
|
||||
}
|
||||
|
||||
pat = get_tv_string_buf_chk(&argvars[1], patbuf);
|
||||
if (pat == NULL)
|
||||
@@ -13955,7 +13972,7 @@ find_some_match(argvars, rettv, type)
|
||||
{
|
||||
if (start < 0)
|
||||
start = 0;
|
||||
if (start > (long)STRLEN(str))
|
||||
if (start > len)
|
||||
goto theend;
|
||||
/* When "count" argument is there ignore matches before "start",
|
||||
* otherwise skip part of the string. Differs when pattern is "^"
|
||||
@@ -13963,7 +13980,10 @@ find_some_match(argvars, rettv, type)
|
||||
if (argvars[3].v_type != VAR_UNKNOWN)
|
||||
startcol = start;
|
||||
else
|
||||
{
|
||||
str += start;
|
||||
len -= start;
|
||||
}
|
||||
}
|
||||
|
||||
if (argvars[3].v_type != VAR_UNKNOWN)
|
||||
@@ -14013,6 +14033,12 @@ find_some_match(argvars, rettv, type)
|
||||
#else
|
||||
startcol = (colnr_T)(regmatch.startp[0] + 1 - str);
|
||||
#endif
|
||||
if (startcol > (colnr_T)len
|
||||
|| str + startcol <= regmatch.startp[0])
|
||||
{
|
||||
match = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14141,8 +14167,8 @@ f_matcharg(argvars, rettv)
|
||||
}
|
||||
else
|
||||
{
|
||||
list_append_string(rettv->vval.v_list, NUL, -1);
|
||||
list_append_string(rettv->vval.v_list, NUL, -1);
|
||||
list_append_string(rettv->vval.v_list, NULL, -1);
|
||||
list_append_string(rettv->vval.v_list, NULL, -1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -16924,7 +16950,7 @@ f_shellescape(argvars, rettv)
|
||||
typval_T *rettv;
|
||||
{
|
||||
rettv->vval.v_string = vim_strsave_shellescape(
|
||||
get_tv_string(&argvars[0]), non_zero_arg(&argvars[1]));
|
||||
get_tv_string(&argvars[0]), non_zero_arg(&argvars[1]), TRUE);
|
||||
rettv->v_type = VAR_STRING;
|
||||
}
|
||||
|
||||
@@ -19774,11 +19800,12 @@ set_cmdarg(eap, oldarg)
|
||||
* Return OK or FAIL.
|
||||
*/
|
||||
static int
|
||||
get_var_tv(name, len, rettv, verbose)
|
||||
get_var_tv(name, len, rettv, verbose, no_autoload)
|
||||
char_u *name;
|
||||
int len; /* length of "name" */
|
||||
typval_T *rettv; /* NULL when only checking existence */
|
||||
int verbose; /* may give error message */
|
||||
int no_autoload; /* do not use script autoloading */
|
||||
{
|
||||
int ret = OK;
|
||||
typval_T *tv = NULL;
|
||||
@@ -19805,7 +19832,7 @@ get_var_tv(name, len, rettv, verbose)
|
||||
*/
|
||||
else
|
||||
{
|
||||
v = find_var(name, NULL);
|
||||
v = find_var(name, NULL, no_autoload);
|
||||
if (v != NULL)
|
||||
tv = &v->di_tv;
|
||||
}
|
||||
@@ -19845,24 +19872,30 @@ handle_subscript(arg, rettv, evaluate, verbose)
|
||||
while (ret == OK
|
||||
&& (**arg == '['
|
||||
|| (**arg == '.' && rettv->v_type == VAR_DICT)
|
||||
|| (**arg == '(' && rettv->v_type == VAR_FUNC))
|
||||
|| (**arg == '(' && (!evaluate || rettv->v_type == VAR_FUNC)))
|
||||
&& !vim_iswhite(*(*arg - 1)))
|
||||
{
|
||||
if (**arg == '(')
|
||||
{
|
||||
/* need to copy the funcref so that we can clear rettv */
|
||||
functv = *rettv;
|
||||
rettv->v_type = VAR_UNKNOWN;
|
||||
if (evaluate)
|
||||
{
|
||||
functv = *rettv;
|
||||
rettv->v_type = VAR_UNKNOWN;
|
||||
|
||||
/* Invoke the function. Recursive! */
|
||||
s = functv.vval.v_string;
|
||||
/* Invoke the function. Recursive! */
|
||||
s = functv.vval.v_string;
|
||||
}
|
||||
else
|
||||
s = (char_u *)"";
|
||||
ret = get_func_tv(s, (int)STRLEN(s), rettv, arg,
|
||||
curwin->w_cursor.lnum, curwin->w_cursor.lnum,
|
||||
&len, evaluate, selfdict);
|
||||
|
||||
/* Clear the funcref afterwards, so that deleting it while
|
||||
* evaluating the arguments is possible (see test55). */
|
||||
clear_tv(&functv);
|
||||
if (evaluate)
|
||||
clear_tv(&functv);
|
||||
|
||||
/* Stop the expression evaluation when immediately aborting on
|
||||
* error, or when an interrupt occurred or an exception was thrown
|
||||
@@ -20201,9 +20234,10 @@ get_tv_string_buf_chk(varp, buf)
|
||||
* hashtab_T used.
|
||||
*/
|
||||
static dictitem_T *
|
||||
find_var(name, htp)
|
||||
find_var(name, htp, no_autoload)
|
||||
char_u *name;
|
||||
hashtab_T **htp;
|
||||
int no_autoload;
|
||||
{
|
||||
char_u *varname;
|
||||
hashtab_T *ht;
|
||||
@@ -20213,7 +20247,7 @@ find_var(name, htp)
|
||||
*htp = ht;
|
||||
if (ht == NULL)
|
||||
return NULL;
|
||||
return find_var_in_ht(ht, *name, varname, htp != NULL);
|
||||
return find_var_in_ht(ht, *name, varname, no_autoload || htp != NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -20221,11 +20255,11 @@ find_var(name, htp)
|
||||
* Returns NULL if not found.
|
||||
*/
|
||||
static dictitem_T *
|
||||
find_var_in_ht(ht, htname, varname, writing)
|
||||
find_var_in_ht(ht, htname, varname, no_autoload)
|
||||
hashtab_T *ht;
|
||||
int htname;
|
||||
char_u *varname;
|
||||
int writing;
|
||||
int no_autoload;
|
||||
{
|
||||
hashitem_T *hi;
|
||||
|
||||
@@ -20257,7 +20291,7 @@ find_var_in_ht(ht, htname, varname, writing)
|
||||
* worked find the variable again. Don't auto-load a script if it was
|
||||
* loaded already, otherwise it would be loaded every time when
|
||||
* checking if a function name is a Funcref variable. */
|
||||
if (ht == &globvarht && !writing)
|
||||
if (ht == &globvarht && !no_autoload)
|
||||
{
|
||||
/* Note: script_autoload() may make "hi" invalid. It must either
|
||||
* be obtained again or not used. */
|
||||
@@ -20337,7 +20371,7 @@ get_var_value(name)
|
||||
{
|
||||
dictitem_T *v;
|
||||
|
||||
v = find_var(name, NULL);
|
||||
v = find_var(name, NULL, FALSE);
|
||||
if (v == NULL)
|
||||
return NULL;
|
||||
return get_tv_string(&v->di_tv);
|
||||
@@ -21423,6 +21457,7 @@ ex_function(eap)
|
||||
if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0)
|
||||
{
|
||||
EMSG2(_("E853: Duplicate argument name: %s"), arg);
|
||||
vim_free(arg);
|
||||
goto erret;
|
||||
}
|
||||
|
||||
@@ -21666,7 +21701,7 @@ ex_function(eap)
|
||||
*/
|
||||
if (fudi.fd_dict == NULL)
|
||||
{
|
||||
v = find_var(name, &ht);
|
||||
v = find_var(name, &ht, FALSE);
|
||||
if (v != NULL && v->di_tv.v_type == VAR_FUNC)
|
||||
{
|
||||
emsg_funcname(N_("E707: Function name conflicts with variable: %s"),
|
||||
@@ -21824,8 +21859,9 @@ ret_free:
|
||||
* Also handles a Funcref in a List or Dictionary.
|
||||
* Returns the function name in allocated memory, or NULL for failure.
|
||||
* flags:
|
||||
* TFN_INT: internal function name OK
|
||||
* TFN_QUIET: be quiet
|
||||
* TFN_INT: internal function name OK
|
||||
* TFN_QUIET: be quiet
|
||||
* TFN_NO_AUTOLOAD: do not use script autoloading
|
||||
* Advances "pp" to just after the function name (if no error).
|
||||
*/
|
||||
static char_u *
|
||||
@@ -21863,7 +21899,8 @@ trans_function_name(pp, skip, flags, fdp)
|
||||
if (lead > 2)
|
||||
start += lead;
|
||||
|
||||
end = get_lval(start, NULL, &lv, FALSE, skip, flags & TFN_QUIET,
|
||||
/* Note that TFN_ flags use the same values as GLV_ flags. */
|
||||
end = get_lval(start, NULL, &lv, FALSE, skip, flags,
|
||||
lead > 2 ? 0 : FNE_CHECK_START);
|
||||
if (end == start)
|
||||
{
|
||||
@@ -21925,14 +21962,14 @@ trans_function_name(pp, skip, flags, fdp)
|
||||
if (lv.ll_exp_name != NULL)
|
||||
{
|
||||
len = (int)STRLEN(lv.ll_exp_name);
|
||||
name = deref_func_name(lv.ll_exp_name, &len);
|
||||
name = deref_func_name(lv.ll_exp_name, &len, flags & TFN_NO_AUTOLOAD);
|
||||
if (name == lv.ll_exp_name)
|
||||
name = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
len = (int)(end - *pp);
|
||||
name = deref_func_name(*pp, &len);
|
||||
name = deref_func_name(*pp, &len, flags & TFN_NO_AUTOLOAD);
|
||||
if (name == *pp)
|
||||
name = NULL;
|
||||
}
|
||||
@@ -22140,7 +22177,8 @@ function_exists(name)
|
||||
char_u *p;
|
||||
int n = FALSE;
|
||||
|
||||
p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET, NULL);
|
||||
p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET|TFN_NO_AUTOLOAD,
|
||||
NULL);
|
||||
nm = skipwhite(nm);
|
||||
|
||||
/* Only accept "funcname", "funcname ", "funcname (..." and
|
||||
@@ -22387,10 +22425,6 @@ script_autoload(name, reload)
|
||||
int ret = FALSE;
|
||||
int i;
|
||||
|
||||
/* Return quickly when autoload disabled. */
|
||||
if (no_autoload)
|
||||
return FALSE;
|
||||
|
||||
/* If there is no '#' after name[0] there is no package name. */
|
||||
p = vim_strchr(name, AUTOLOAD_CHAR);
|
||||
if (p == NULL || p == name)
|
||||
@@ -24322,6 +24356,17 @@ repeat:
|
||||
}
|
||||
}
|
||||
|
||||
if (src[*usedlen] == ':' && src[*usedlen + 1] == 'S')
|
||||
{
|
||||
p = vim_strsave_shellescape(*fnamep, FALSE, FALSE);
|
||||
if (p == NULL)
|
||||
return -1;
|
||||
vim_free(*bufp);
|
||||
*bufp = *fnamep = p;
|
||||
*fnamelen = (int)STRLEN(p);
|
||||
*usedlen += 2;
|
||||
}
|
||||
|
||||
return valid;
|
||||
}
|
||||
|
||||
@@ -24345,7 +24390,7 @@ do_string_sub(str, pat, sub, flags)
|
||||
garray_T ga;
|
||||
char_u *ret;
|
||||
char_u *save_cpo;
|
||||
int zero_width;
|
||||
char_u *zero_width = NULL;
|
||||
|
||||
/* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */
|
||||
save_cpo = p_cpo;
|
||||
@@ -24362,6 +24407,19 @@ do_string_sub(str, pat, sub, flags)
|
||||
tail = str;
|
||||
while (vim_regexec_nl(®match, str, (colnr_T)(tail - str)))
|
||||
{
|
||||
/* Skip empty match except for first match. */
|
||||
if (regmatch.startp[0] == regmatch.endp[0])
|
||||
{
|
||||
if (zero_width == regmatch.startp[0])
|
||||
{
|
||||
/* avoid getting stuck on a match with an empty string */
|
||||
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
|
||||
++ga.ga_len;
|
||||
continue;
|
||||
}
|
||||
zero_width = regmatch.startp[0];
|
||||
}
|
||||
|
||||
/*
|
||||
* Get some space for a temporary buffer to do the substitution
|
||||
* into. It will contain:
|
||||
@@ -24384,17 +24442,9 @@ do_string_sub(str, pat, sub, flags)
|
||||
(void)vim_regsub(®match, sub, (char_u *)ga.ga_data
|
||||
+ ga.ga_len + i, TRUE, TRUE, FALSE);
|
||||
ga.ga_len += i + sublen - 1;
|
||||
zero_width = (tail == regmatch.endp[0]
|
||||
|| regmatch.startp[0] == regmatch.endp[0]);
|
||||
tail = regmatch.endp[0];
|
||||
if (*tail == NUL)
|
||||
break;
|
||||
if (zero_width)
|
||||
{
|
||||
/* avoid getting stuck on a match with an empty string */
|
||||
*((char_u *)ga.ga_data + ga.ga_len) = *tail++;
|
||||
++ga.ga_len;
|
||||
}
|
||||
if (!do_all)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3253,8 +3253,10 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
|
||||
if ( ((!other_file && !(flags & ECMD_OLDBUF))
|
||||
|| (curbuf->b_nwindows == 1
|
||||
&& !(flags & (ECMD_HIDE | ECMD_ADDBUF))))
|
||||
&& check_changed(curbuf, p_awa, !other_file,
|
||||
(flags & ECMD_FORCEIT), FALSE))
|
||||
&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
|
||||
| (other_file ? 0 : CCGD_MULTWIN)
|
||||
| ((flags & ECMD_FORCEIT) ? CCGD_FORCEIT : 0)
|
||||
| (eap == NULL ? 0 : CCGD_EXCMD)))
|
||||
{
|
||||
if (fnum == 0 && other_file && ffname != NULL)
|
||||
(void)setaltfname(ffname, sfname, newlnum < 0 ? 0 : newlnum);
|
||||
@@ -4097,12 +4099,12 @@ ex_z(eap)
|
||||
* 'scroll' */
|
||||
if (eap->forceit)
|
||||
bigness = curwin->w_height;
|
||||
else if (firstwin == lastwin)
|
||||
bigness = curwin->w_p_scr * 2;
|
||||
#ifdef FEAT_WINDOWS
|
||||
else
|
||||
else if (firstwin != lastwin)
|
||||
bigness = curwin->w_height - 3;
|
||||
#endif
|
||||
else
|
||||
bigness = curwin->w_p_scr * 2;
|
||||
if (bigness < 1)
|
||||
bigness = 1;
|
||||
|
||||
@@ -5934,14 +5936,18 @@ find_help_tags(arg, num_matches, matches, keep_lang)
|
||||
"?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
|
||||
"/\\?", "/\\z(\\)", "\\=", ":s\\=",
|
||||
"[count]", "[quotex]", "[range]",
|
||||
"[pattern]", "\\|", "\\%$"};
|
||||
"[pattern]", "\\|", "\\%$",
|
||||
"s/\\~", "s/\\U", "s/\\L",
|
||||
"s/\\1", "s/\\2", "s/\\3", "s/\\9"};
|
||||
static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star",
|
||||
"/star", "/\\\\star", "quotestar", "starstar",
|
||||
"cpo-star", "/\\\\(\\\\)", "/\\\\%(\\\\)",
|
||||
"?", ":?", "?<CR>", "g?", "g?g?", "g??", "z?",
|
||||
"/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=",
|
||||
"\\[count]", "\\[quotex]", "\\[range]",
|
||||
"\\[pattern]", "\\\\bar", "/\\\\%\\$"};
|
||||
"\\[pattern]", "\\\\bar", "/\\\\%\\$",
|
||||
"s/\\\\\\~", "s/\\\\U", "s/\\\\L",
|
||||
"s/\\\\1", "s/\\\\2", "s/\\\\3", "s/\\\\9"};
|
||||
int flags;
|
||||
|
||||
d = IObuff; /* assume IObuff is long enough! */
|
||||
@@ -5980,7 +5986,7 @@ find_help_tags(arg, num_matches, matches, keep_lang)
|
||||
/* Replace:
|
||||
* "[:...:]" with "\[:...:]"
|
||||
* "[++...]" with "\[++...]"
|
||||
* "\{" with "\\{"
|
||||
* "\{" with "\\{" -- matching "} \}"
|
||||
*/
|
||||
if ((arg[0] == '[' && (arg[1] == ':'
|
||||
|| (arg[1] == '+' && arg[2] == '+')))
|
||||
@@ -7664,7 +7670,7 @@ ex_drop(eap)
|
||||
# ifdef FEAT_WINDOWS
|
||||
++emsg_off;
|
||||
# endif
|
||||
split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
|
||||
split = check_changed(curbuf, CCGD_AW | CCGD_EXCMD);
|
||||
# ifdef FEAT_WINDOWS
|
||||
--emsg_off;
|
||||
# else
|
||||
|
||||
@@ -477,6 +477,8 @@ EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
|
||||
NEEDARG|EXTRA|NOTRLCOM),
|
||||
EX(CMD_list, "list", ex_print,
|
||||
|
||||
@@ -1436,20 +1436,20 @@ autowrite_all()
|
||||
}
|
||||
|
||||
/*
|
||||
* return TRUE if buffer was changed and cannot be abandoned.
|
||||
* Return TRUE if buffer was changed and cannot be abandoned.
|
||||
* For flags use the CCGD_ values.
|
||||
*/
|
||||
int
|
||||
check_changed(buf, checkaw, mult_win, forceit, allbuf)
|
||||
check_changed(buf, flags)
|
||||
buf_T *buf;
|
||||
int checkaw; /* do autowrite if buffer was changed */
|
||||
int mult_win; /* check also when several wins for the buf */
|
||||
int forceit;
|
||||
int allbuf UNUSED; /* may write all buffers */
|
||||
int flags;
|
||||
{
|
||||
int forceit = (flags & CCGD_FORCEIT);
|
||||
|
||||
if ( !forceit
|
||||
&& bufIsChanged(buf)
|
||||
&& (mult_win || buf->b_nwindows <= 1)
|
||||
&& (!checkaw || autowrite(buf, forceit) == FAIL))
|
||||
&& ((flags & CCGD_MULTWIN) || buf->b_nwindows <= 1)
|
||||
&& (!(flags & CCGD_AW) || autowrite(buf, forceit) == FAIL))
|
||||
{
|
||||
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
|
||||
if ((p_confirm || cmdmod.confirm) && p_write)
|
||||
@@ -1457,7 +1457,7 @@ check_changed(buf, checkaw, mult_win, forceit, allbuf)
|
||||
buf_T *buf2;
|
||||
int count = 0;
|
||||
|
||||
if (allbuf)
|
||||
if (flags & CCGD_ALLBUF)
|
||||
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
|
||||
if (bufIsChanged(buf2)
|
||||
&& (buf2->b_ffname != NULL
|
||||
@@ -1480,7 +1480,10 @@ check_changed(buf, checkaw, mult_win, forceit, allbuf)
|
||||
return bufIsChanged(buf);
|
||||
}
|
||||
#endif
|
||||
EMSG(_(e_nowrtmsg));
|
||||
if (flags & CCGD_EXCMD)
|
||||
EMSG(_(e_nowrtmsg));
|
||||
else
|
||||
EMSG(_(e_nowrtmsg_nobang));
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -1690,7 +1693,9 @@ check_changed_any(hidden)
|
||||
{
|
||||
/* Try auto-writing the buffer. If this fails but the buffer no
|
||||
* longer exists it's not changed, that's OK. */
|
||||
if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
|
||||
if (check_changed(buf, (p_awa ? CCGD_AW : 0)
|
||||
| CCGD_MULTWIN
|
||||
| CCGD_ALLBUF) && buf_valid(buf))
|
||||
break; /* didn't save - still changes */
|
||||
}
|
||||
}
|
||||
@@ -2274,7 +2279,10 @@ do_argfile(eap, argn)
|
||||
vim_free(p);
|
||||
}
|
||||
if ((!P_HID(curbuf) || !other)
|
||||
&& check_changed(curbuf, TRUE, !other, eap->forceit, FALSE))
|
||||
&& check_changed(curbuf, CCGD_AW
|
||||
| (other ? 0 : CCGD_MULTWIN)
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2315,7 +2323,9 @@ ex_next(eap)
|
||||
*/
|
||||
if ( P_HID(curbuf)
|
||||
|| eap->cmdidx == CMD_snext
|
||||
|| !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
|
||||
|| !check_changed(curbuf, CCGD_AW
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
{
|
||||
if (*eap->arg != NUL) /* redefine file list */
|
||||
{
|
||||
@@ -2458,7 +2468,9 @@ ex_listdo(eap)
|
||||
if (eap->cmdidx == CMD_windo
|
||||
|| eap->cmdidx == CMD_tabdo
|
||||
|| P_HID(curbuf)
|
||||
|| !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE))
|
||||
|| !check_changed(curbuf, CCGD_AW
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
{
|
||||
/* start at the first argument/window/buffer */
|
||||
i = 0;
|
||||
|
||||
@@ -1843,6 +1843,11 @@ do_one_cmd(cmdlinep, sourcing,
|
||||
cmdmod.keepalt = TRUE;
|
||||
continue;
|
||||
}
|
||||
if (checkforcmd(&ea.cmd, "keeppatterns", 5))
|
||||
{
|
||||
cmdmod.keeppatterns = TRUE;
|
||||
continue;
|
||||
}
|
||||
if (!checkforcmd(&ea.cmd, "keepjumps", 5))
|
||||
break;
|
||||
cmdmod.keepjumps = TRUE;
|
||||
@@ -2584,6 +2589,7 @@ do_one_cmd(cmdlinep, sourcing,
|
||||
case CMD_keepalt:
|
||||
case CMD_keepjumps:
|
||||
case CMD_keepmarks:
|
||||
case CMD_keeppatterns:
|
||||
case CMD_leftabove:
|
||||
case CMD_let:
|
||||
case CMD_lockmarks:
|
||||
@@ -3089,6 +3095,7 @@ static struct cmdmod
|
||||
{"keepalt", 5, FALSE},
|
||||
{"keepjumps", 5, FALSE},
|
||||
{"keepmarks", 3, FALSE},
|
||||
{"keeppatterns", 5, FALSE},
|
||||
{"leftabove", 5, FALSE},
|
||||
{"lockmarks", 3, FALSE},
|
||||
{"noautocmd", 3, FALSE},
|
||||
@@ -3254,7 +3261,11 @@ set_one_cmd_context(xp, buff)
|
||||
++p;
|
||||
/* for python 3.x: ":py3*" commands completion */
|
||||
if (cmd[0] == 'p' && cmd[1] == 'y' && p == cmd + 2 && *p == '3')
|
||||
{
|
||||
++p;
|
||||
while (ASCII_ISALPHA(*p) || *p == '*')
|
||||
++p;
|
||||
}
|
||||
len = (int)(p - cmd);
|
||||
|
||||
if (len == 0)
|
||||
@@ -3597,6 +3608,7 @@ set_one_cmd_context(xp, buff)
|
||||
case CMD_keepalt:
|
||||
case CMD_keepjumps:
|
||||
case CMD_keepmarks:
|
||||
case CMD_keeppatterns:
|
||||
case CMD_leftabove:
|
||||
case CMD_lockmarks:
|
||||
case CMD_rightbelow:
|
||||
@@ -6565,7 +6577,9 @@ ex_quit(eap)
|
||||
if (check_more(FALSE, eap->forceit) == OK && only_one_window())
|
||||
exiting = TRUE;
|
||||
if ((!P_HID(curbuf)
|
||||
&& check_changed(curbuf, p_awa, FALSE, eap->forceit, FALSE))
|
||||
&& check_changed(curbuf, (p_awa ? CCGD_AW : 0)
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD))
|
||||
|| check_more(TRUE, eap->forceit) == FAIL
|
||||
|| (only_one_window() && check_changed_any(eap->forceit)))
|
||||
{
|
||||
@@ -7099,7 +7113,7 @@ handle_drop(filec, filev, split)
|
||||
if (!P_HID(curbuf) && !split)
|
||||
{
|
||||
++emsg_off;
|
||||
split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE);
|
||||
split = check_changed(curbuf, CCGD_AW);
|
||||
--emsg_off;
|
||||
}
|
||||
if (split)
|
||||
@@ -7361,7 +7375,11 @@ ex_recover(eap)
|
||||
{
|
||||
/* Set recoverymode right away to avoid the ATTENTION prompt. */
|
||||
recoverymode = TRUE;
|
||||
if (!check_changed(curbuf, p_awa, TRUE, eap->forceit, FALSE)
|
||||
if (!check_changed(curbuf, (p_awa ? CCGD_AW : 0)
|
||||
| CCGD_MULTWIN
|
||||
| (eap->forceit ? CCGD_FORCEIT : 0)
|
||||
| CCGD_EXCMD)
|
||||
|
||||
&& (*eap->arg == NUL
|
||||
|| setfname(curbuf, eap->arg, NULL, TRUE) == OK))
|
||||
ml_recover();
|
||||
@@ -8036,6 +8054,8 @@ ex_syncbind(eap)
|
||||
{
|
||||
#ifdef FEAT_SCROLLBIND
|
||||
win_T *wp;
|
||||
win_T *save_curwin = curwin;
|
||||
buf_T *save_curbuf = curbuf;
|
||||
long topline;
|
||||
long y;
|
||||
linenr_T old_linenr = curwin->w_cursor.lnum;
|
||||
@@ -8067,13 +8087,13 @@ ex_syncbind(eap)
|
||||
|
||||
|
||||
/*
|
||||
* set all scrollbind windows to the same topline
|
||||
* Set all scrollbind windows to the same topline.
|
||||
*/
|
||||
wp = curwin;
|
||||
for (curwin = firstwin; curwin; curwin = curwin->w_next)
|
||||
{
|
||||
if (curwin->w_p_scb)
|
||||
{
|
||||
curbuf = curwin->w_buffer;
|
||||
y = topline - curwin->w_topline;
|
||||
if (y > 0)
|
||||
scrollup(y, TRUE);
|
||||
@@ -8087,7 +8107,8 @@ ex_syncbind(eap)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
curwin = wp;
|
||||
curwin = save_curwin;
|
||||
curbuf = save_curbuf;
|
||||
if (curwin->w_p_scb)
|
||||
{
|
||||
did_syncbind = TRUE;
|
||||
@@ -8207,6 +8228,7 @@ post_chdir(local)
|
||||
int local;
|
||||
{
|
||||
vim_free(curwin->w_localdir);
|
||||
curwin->w_localdir = NULL;
|
||||
if (local)
|
||||
{
|
||||
/* If still in global directory, need to remember current
|
||||
@@ -8223,7 +8245,6 @@ post_chdir(local)
|
||||
* name. */
|
||||
vim_free(globaldir);
|
||||
globaldir = NULL;
|
||||
curwin->w_localdir = NULL;
|
||||
}
|
||||
|
||||
shorten_fnames(TRUE);
|
||||
@@ -8350,7 +8371,7 @@ ex_sleep(eap)
|
||||
{
|
||||
n = W_WINROW(curwin) + curwin->w_wrow - msg_scrolled;
|
||||
if (n >= 0)
|
||||
windgoto((int)n, curwin->w_wcol);
|
||||
windgoto((int)n, W_WINCOL(curwin) + curwin->w_wcol);
|
||||
}
|
||||
|
||||
len = eap->line2;
|
||||
@@ -8556,6 +8577,11 @@ ex_operators(eap)
|
||||
beginline(BL_SOL | BL_FIX);
|
||||
}
|
||||
|
||||
#if defined(FEAT_VISUAL)
|
||||
if (VIsual_active)
|
||||
end_visual_mode();
|
||||
#endif
|
||||
|
||||
switch (eap->cmdidx)
|
||||
{
|
||||
case CMD_delete:
|
||||
|
||||
132
src/ex_eval.c
132
src/ex_eval.c
@@ -320,6 +320,17 @@ free_msglist(l)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Free global "*msg_list" and the messages it contains, then set "*msg_list"
|
||||
* to NULL.
|
||||
*/
|
||||
void
|
||||
free_global_msglist()
|
||||
{
|
||||
free_msglist(*msg_list);
|
||||
*msg_list = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Throw the message specified in the call to cause_errthrow() above as an
|
||||
* error exception. If cstack is NULL, postpone the throw until do_cmdline()
|
||||
@@ -410,66 +421,41 @@ do_intthrow(cstack)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Throw a new exception. Return FAIL when out of memory or it was tried to
|
||||
* throw an illegal user exception. "value" is the exception string for a user
|
||||
* or interrupt exception, or points to a message list in case of an error
|
||||
* exception.
|
||||
* Get an exception message that is to be stored in current_exception->value.
|
||||
*/
|
||||
static int
|
||||
throw_exception(value, type, cmdname)
|
||||
char_u *
|
||||
get_exception_string(value, type, cmdname, should_free)
|
||||
void *value;
|
||||
int type;
|
||||
char_u *cmdname;
|
||||
int *should_free;
|
||||
{
|
||||
except_T *excp;
|
||||
char_u *p, *mesg, *val;
|
||||
char_u *ret, *mesg;
|
||||
int cmdlen;
|
||||
|
||||
/*
|
||||
* Disallow faking Interrupt or error exceptions as user exceptions. They
|
||||
* would be treated differently from real interrupt or error exceptions when
|
||||
* no active try block is found, see do_cmdline().
|
||||
*/
|
||||
if (type == ET_USER)
|
||||
{
|
||||
if (STRNCMP((char_u *)value, "Vim", 3) == 0 &&
|
||||
(((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':' ||
|
||||
((char_u *)value)[3] == '('))
|
||||
{
|
||||
EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
excp = (except_T *)alloc((unsigned)sizeof(except_T));
|
||||
if (excp == NULL)
|
||||
goto nomem;
|
||||
char_u *p, *val;
|
||||
|
||||
if (type == ET_ERROR)
|
||||
{
|
||||
/* Store the original message and prefix the exception value with
|
||||
* "Vim:" or, if a command name is given, "Vim(cmdname):". */
|
||||
excp->messages = (struct msglist *)value;
|
||||
mesg = excp->messages->throw_msg;
|
||||
*should_free = FALSE;
|
||||
mesg = ((struct msglist *)value)->throw_msg;
|
||||
if (cmdname != NULL && *cmdname != NUL)
|
||||
{
|
||||
cmdlen = (int)STRLEN(cmdname);
|
||||
excp->value = vim_strnsave((char_u *)"Vim(",
|
||||
ret = vim_strnsave((char_u *)"Vim(",
|
||||
4 + cmdlen + 2 + (int)STRLEN(mesg));
|
||||
if (excp->value == NULL)
|
||||
goto nomem;
|
||||
STRCPY(&excp->value[4], cmdname);
|
||||
STRCPY(&excp->value[4 + cmdlen], "):");
|
||||
val = excp->value + 4 + cmdlen + 2;
|
||||
if (ret == NULL)
|
||||
return ret;
|
||||
STRCPY(&ret[4], cmdname);
|
||||
STRCPY(&ret[4 + cmdlen], "):");
|
||||
val = ret + 4 + cmdlen + 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
excp->value = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
|
||||
if (excp->value == NULL)
|
||||
goto nomem;
|
||||
val = excp->value + 4;
|
||||
ret = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg));
|
||||
if (ret == NULL)
|
||||
return ret;
|
||||
val = ret + 4;
|
||||
}
|
||||
|
||||
/* msg_add_fname may have been used to prefix the message with a file
|
||||
@@ -506,14 +492,65 @@ throw_exception(value, type, cmdname)
|
||||
}
|
||||
}
|
||||
else
|
||||
excp->value = value;
|
||||
{
|
||||
*should_free = FALSE;
|
||||
ret = (char_u *) value;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Throw a new exception. Return FAIL when out of memory or it was tried to
|
||||
* throw an illegal user exception. "value" is the exception string for a
|
||||
* user or interrupt exception, or points to a message list in case of an
|
||||
* error exception.
|
||||
*/
|
||||
static int
|
||||
throw_exception(value, type, cmdname)
|
||||
void *value;
|
||||
int type;
|
||||
char_u *cmdname;
|
||||
{
|
||||
except_T *excp;
|
||||
int should_free;
|
||||
|
||||
/*
|
||||
* Disallow faking Interrupt or error exceptions as user exceptions. They
|
||||
* would be treated differently from real interrupt or error exceptions
|
||||
* when no active try block is found, see do_cmdline().
|
||||
*/
|
||||
if (type == ET_USER)
|
||||
{
|
||||
if (STRNCMP((char_u *)value, "Vim", 3) == 0
|
||||
&& (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':'
|
||||
|| ((char_u *)value)[3] == '('))
|
||||
{
|
||||
EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix"));
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
excp = (except_T *)alloc((unsigned)sizeof(except_T));
|
||||
if (excp == NULL)
|
||||
goto nomem;
|
||||
|
||||
if (type == ET_ERROR)
|
||||
/* Store the original message and prefix the exception value with
|
||||
* "Vim:" or, if a command name is given, "Vim(cmdname):". */
|
||||
excp->messages = (struct msglist *)value;
|
||||
|
||||
excp->value = get_exception_string(value, type, cmdname, &should_free);
|
||||
if (excp->value == NULL && should_free)
|
||||
goto nomem;
|
||||
|
||||
excp->type = type;
|
||||
excp->throw_name = vim_strsave(sourcing_name == NULL
|
||||
? (char_u *)"" : sourcing_name);
|
||||
if (excp->throw_name == NULL)
|
||||
{
|
||||
if (type == ET_ERROR)
|
||||
if (should_free)
|
||||
vim_free(excp->value);
|
||||
goto nomem;
|
||||
}
|
||||
@@ -2033,10 +2070,7 @@ leave_cleanup(csp)
|
||||
/* If an error was about to be converted to an exception when
|
||||
* enter_cleanup() was called, free the message list. */
|
||||
if (msg_list != NULL)
|
||||
{
|
||||
free_msglist(*msg_list);
|
||||
*msg_list = NULL;
|
||||
}
|
||||
free_global_msglist();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -3852,9 +3852,9 @@ vim_strsave_fnameescape(fname, shell)
|
||||
char_u buf[20];
|
||||
int j = 0;
|
||||
|
||||
/* Don't escape '[' and '{' if they are in 'isfname'. */
|
||||
/* Don't escape '[', '{' and '!' if they are in 'isfname'. */
|
||||
for (p = PATH_ESC_CHARS; *p != NUL; ++p)
|
||||
if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
|
||||
if ((*p != '[' && *p != '{' && *p != '!') || !vim_isfilec(*p))
|
||||
buf[j++] = *p;
|
||||
buf[j] = NUL;
|
||||
p = vim_strsave_escaped(fname, buf);
|
||||
@@ -5498,6 +5498,9 @@ add_to_history(histype, new_entry, in_map, sep)
|
||||
if (hislen == 0) /* no history */
|
||||
return;
|
||||
|
||||
if (cmdmod.keeppatterns && histype == HIST_SEARCH)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Searches inside the same mapping overwrite each other, so that only
|
||||
* the last line is kept. Be careful not to remove a line that was moved
|
||||
|
||||
@@ -328,7 +328,7 @@
|
||||
*
|
||||
* Disabled for EBCDIC as it requires multibyte.
|
||||
*/
|
||||
#if defined(FEAT_BIG) && !defined(WIN16) && SIZEOF_INT >= 4 && !defined(EBCDIC)
|
||||
#if defined(FEAT_BIG) && !defined(WIN16) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC)
|
||||
# define FEAT_ARABIC
|
||||
#endif
|
||||
#ifdef FEAT_ARABIC
|
||||
@@ -640,7 +640,7 @@
|
||||
*/
|
||||
#if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \
|
||||
&& !defined(FEAT_MBYTE) && !defined(WIN16) \
|
||||
&& SIZEOF_INT >= 4 && !defined(EBCDIC)
|
||||
&& VIM_SIZEOF_INT >= 4 && !defined(EBCDIC)
|
||||
# define FEAT_MBYTE
|
||||
#endif
|
||||
|
||||
@@ -661,7 +661,7 @@
|
||||
# define FEAT_MBYTE
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_MBYTE) && SIZEOF_INT < 4 && !defined(PROTO)
|
||||
#if defined(FEAT_MBYTE) && VIM_SIZEOF_INT < 4 && !defined(PROTO)
|
||||
Error: Can only handle multi-byte feature with 32 bit int or larger
|
||||
#endif
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user