Merge remote-tracking branch 'vim/master'

This commit is contained in:
Kazuki Sakamoto
2016-07-25 19:27:28 -07:00
60 changed files with 13267 additions and 566 deletions
File diff suppressed because one or more lines are too long
+6 -2
View File
@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.4. Last change: 2016 Jul 23
*eval.txt* For Vim version 7.4. Last change: 2016 Jul 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2306,6 +2306,7 @@ tanh({expr}) Float hyperbolic tangent of {expr}
tempname() String name for a temporary file
test_alloc_fail({id}, {countdown}, {repeat})
none make memory allocation fail
test_autochdir() none enable 'autochdir' during startup
test_disable_char_avail({expr}) none test without typeahead
test_garbagecollect_now() none free memory right now for testing
test_null_channel() Channel null value for testing
@@ -7453,8 +7454,11 @@ test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
let memory allocation fail {repeat} times. When {repeat} is
smaller than one it fails one time.
test_autochdir() *test_autochdir()*
Set a flag to enable the effect of 'autochdir' before Vim
startup has finished.
*test_disable_char_avail()*
*test_disable_char_avail()*
test_disable_char_avail({expr})
When {expr} is 1 the internal char_avail() function will
return |FALSE|. When {expr} is 0 the char_avail() function will
+2 -1
View File
@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.4. Last change: 2013 May 18
*mbyte.txt* For Vim version 7.4. Last change: 2016 Jul 21
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -1010,6 +1010,7 @@ text, you can use the 'keymap' option. This will translate one or more
(English) characters to another (non-English) character. This only happens
when typing text, not when typing Vim commands. This avoids having to switch
between two keyboard settings.
{only available when compiled with the |+keymap| feature}
The value of the 'keymap' option specifies a keymap file to use. The name of
this file is one of these two:
+4 -2
View File
@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.4. Last change: 2016 Jun 11
*repeat.txt* For Vim version 7.4. Last change: 2016 Jul 21
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -295,7 +295,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
... not converted ...
< When conversion isn't supported by the system, there
is no error message and no conversion is done.
is no error message and no conversion is done. When a
line can't be converted there is no error and the
original line is kept.
Don't use "ucs-2" or "ucs-4", scripts cannot be in
these encodings (they would contain NUL bytes).
+15
View File
@@ -1043,6 +1043,21 @@ This works immediately.
CLOJURE *ft-clojure-syntax*
The default syntax groups can be augmented through the
*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
value should be a |Dictionary| of syntax group names to a |List| of custom
identifiers:
>
let g:clojure_syntax_keywords = {
\ 'clojureMacro': ["defproject", "defcustom"],
\ 'clojureFunc': ["string/join", "string/replace"]
\ }
<
Refer to the Clojure syntax script for valid syntax group names.
If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
language constants and special forms are matched.
Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
Any list, vector, or map that extends over more than one line can be folded
using the standard Vim |fold-commands|.
+29
View File
@@ -4752,8 +4752,10 @@ TRUE eval.txt /*TRUE*
TSQL ft_sql.txt /*TSQL*
TTpro-telnet syntax.txt /*TTpro-telnet*
Tab intro.txt /*Tab*
TabClosed autocmd.txt /*TabClosed*
TabEnter autocmd.txt /*TabEnter*
TabLeave autocmd.txt /*TabLeave*
TabNew autocmd.txt /*TabNew*
Tcl if_tcl.txt /*Tcl*
TermChanged autocmd.txt /*TermChanged*
TermResponse autocmd.txt /*TermResponse*
@@ -4799,6 +4801,7 @@ WWW intro.txt /*WWW*
Win32 os_win32.txt /*Win32*
WinEnter autocmd.txt /*WinEnter*
WinLeave autocmd.txt /*WinLeave*
WinNew autocmd.txt /*WinNew*
X change.txt /*X*
X11 options.txt /*X11*
X11-icon gui_x11.txt /*X11-icon*
@@ -5017,6 +5020,7 @@ assert_equal() eval.txt /*assert_equal()*
assert_exception() eval.txt /*assert_exception()*
assert_fails() eval.txt /*assert_fails()*
assert_false() eval.txt /*assert_false()*
assert_inrange() eval.txt /*assert_inrange()*
assert_match() eval.txt /*assert_match()*
assert_notequal() eval.txt /*assert_notequal()*
assert_notmatch() eval.txt /*assert_notmatch()*
@@ -5064,6 +5068,8 @@ b motion.txt /*b*
b: eval.txt /*b:*
b:changedtick eval.txt /*b:changedtick*
b:changelog_name filetype.txt /*b:changelog_name*
b:clojure_syntax_keywords syntax.txt /*b:clojure_syntax_keywords*
b:clojure_syntax_without_core_keywords syntax.txt /*b:clojure_syntax_without_core_keywords*
b:current_syntax-variable syntax.txt /*b:current_syntax-variable*
b:netrw_lastfile pi_netrw.txt /*b:netrw_lastfile*
b:tex_stylish syntax.txt /*b:tex_stylish*
@@ -6218,6 +6224,7 @@ g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist*
g:clojure_fuzzy_indent_patterns indent.txt /*g:clojure_fuzzy_indent_patterns*
g:clojure_maxlines indent.txt /*g:clojure_maxlines*
g:clojure_special_indent_words indent.txt /*g:clojure_special_indent_words*
g:clojure_syntax_keywords syntax.txt /*g:clojure_syntax_keywords*
g:colors_name options.txt /*g:colors_name*
g:decada ft_ada.txt /*g:decada*
g:decada.Error_Format ft_ada.txt /*g:decada.Error_Format*
@@ -8519,9 +8526,11 @@ t_ZH term.txt /*t_ZH*
t_ZR term.txt /*t_ZR*
t_al term.txt /*t_al*
t_bc term.txt /*t_bc*
t_bool-varialble eval.txt /*t_bool-varialble*
t_cd term.txt /*t_cd*
t_cdl version4.txt /*t_cdl*
t_ce term.txt /*t_ce*
t_channel-varialble eval.txt /*t_channel-varialble*
t_ci version4.txt /*t_ci*
t_cil version4.txt /*t_cil*
t_cl term.txt /*t_cl*
@@ -8533,6 +8542,7 @@ t_cv version4.txt /*t_cv*
t_cvv version4.txt /*t_cvv*
t_da term.txt /*t_da*
t_db term.txt /*t_db*
t_dict-varialble eval.txt /*t_dict-varialble*
t_dl term.txt /*t_dl*
t_ed version4.txt /*t_ed*
t_el version4.txt /*t_el*
@@ -8546,9 +8556,12 @@ t_f6 version4.txt /*t_f6*
t_f7 version4.txt /*t_f7*
t_f8 version4.txt /*t_f8*
t_f9 version4.txt /*t_f9*
t_float-varialble eval.txt /*t_float-varialble*
t_fs term.txt /*t_fs*
t_func-varialble eval.txt /*t_func-varialble*
t_help version4.txt /*t_help*
t_il version4.txt /*t_il*
t_job-varialble eval.txt /*t_job-varialble*
t_k1 term.txt /*t_k1*
t_k2 term.txt /*t_k2*
t_k3 term.txt /*t_k3*
@@ -8573,12 +8586,15 @@ t_kr term.txt /*t_kr*
t_ks term.txt /*t_ks*
t_ku term.txt /*t_ku*
t_le term.txt /*t_le*
t_list-varialble eval.txt /*t_list-varialble*
t_mb term.txt /*t_mb*
t_md term.txt /*t_md*
t_me term.txt /*t_me*
t_mr term.txt /*t_mr*
t_ms term.txt /*t_ms*
t_nd term.txt /*t_nd*
t_none-varialble eval.txt /*t_none-varialble*
t_number-varialble eval.txt /*t_number-varialble*
t_op term.txt /*t_op*
t_se term.txt /*t_se*
t_sf1 version4.txt /*t_sf1*
@@ -8598,6 +8614,7 @@ t_sku version4.txt /*t_sku*
t_so term.txt /*t_so*
t_sr term.txt /*t_sr*
t_star7 term.txt /*t_star7*
t_string-varialble eval.txt /*t_string-varialble*
t_tb version4.txt /*t_tb*
t_te term.txt /*t_te*
t_ti term.txt /*t_ti*
@@ -8731,6 +8748,7 @@ terminfo term.txt /*terminfo*
termresponse-variable eval.txt /*termresponse-variable*
test-functions usr_41.txt /*test-functions*
test_alloc_fail() eval.txt /*test_alloc_fail()*
test_autochdir() eval.txt /*test_autochdir()*
test_disable_char_avail() eval.txt /*test_disable_char_avail()*
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
test_null_channel() eval.txt /*test_null_channel()*
@@ -8939,6 +8957,17 @@ v:statusmsg eval.txt /*v:statusmsg*
v:swapchoice eval.txt /*v:swapchoice*
v:swapcommand eval.txt /*v:swapcommand*
v:swapname eval.txt /*v:swapname*
v:t_TYPE eval.txt /*v:t_TYPE*
v:t_bool eval.txt /*v:t_bool*
v:t_channel eval.txt /*v:t_channel*
v:t_dict eval.txt /*v:t_dict*
v:t_float eval.txt /*v:t_float*
v:t_func eval.txt /*v:t_func*
v:t_job eval.txt /*v:t_job*
v:t_list eval.txt /*v:t_list*
v:t_none eval.txt /*v:t_none*
v:t_number eval.txt /*v:t_number*
v:t_string eval.txt /*v:t_string*
v:termresponse eval.txt /*v:termresponse*
v:testing eval.txt /*v:testing*
v:this_session eval.txt /*v:this_session*
+26 -30
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Jul 17
*todo.txt* For Vim version 7.4. Last change: 2016 Jul 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,6 +35,7 @@ not be repeated below, unless there is extra information.
-------------------- Known bugs and current work -----------------------
+channel:
- Channel test fails with Motif. Sometimes kills the X11 server.
- When a message in the queue but there is no callback, drop it after a while?
Add timestamp to queued messages and callbacks with ID, remove after a
minute. Option to set the droptime.
@@ -49,17 +50,6 @@ Later
- job_start(): run job in a newly opened terminal.
With xterm could use -S{pty}.
Quickfix refactoring. (Yegappan Lakshmanan,)
Quickfix improvements for background building and grepping:
- Add a command modifier ":usefname" to quickfix commands and functions to
keep a file name as a string and not create a buffer for it? To avoid
creating lots of buffers. (Ramel Eshed)
Store the relative file name and set a flag "qf_relative". Before changing
directory turn them into full paths.
When using getqflist() or getloclist() we need to get the bufnr for other
plugins. Add a flag to not do that.
Regexp problems:
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
(Manuel Ortega, 2016 Apr 24)
@@ -115,17 +105,25 @@ What if there is an invalid character?
Should json_encode()/json_decode() restrict recursiveness?
Or avoid recursiveness.
Also use funcref for substitute, instead of \=.
Patch to test popupmenu. Fails, possibly due to a bug.
(Christian Brabandt, 2016 Jul 23)
Patch to define v:t_number etc. (Ken Takata, 2016 Jul 15)
7 In "-- INSERT (lang) --" show the name of the keymap used instead of
"lang". (Ilya Dogolazky)
Patch: Show keymap name in mode indicator (Dmitri Vereshchagin, 2016 Jul 19,
#933)
Python: Extended funcrefs: use func_T* structure in place of char_u* function
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 fix the Problem using cgn to change a search hit when
replacement includes hit. Reported by John Beckett, fix by Christian Brabandt,
2016 Jan 11.
Once .exe with updated installer is available: Add remark to download page
about /S and /D options (Ken Takata, 2016 Apr 13)
Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases
Problem with completion on "**/" in $path. (issue #932)
Happens in uniquefy_paths() ? More info Jul 22.
Fix for this (Harm te Hennepe, 2016 Jul 21, #939)
Cursor positioned in the wrong place when editing src/testdir/test_viml.vim.
@@ -138,20 +136,27 @@ Javascript indent wrong after /* in single quoted string:
Use ADDR_OTHER instead of ADDR_LINES for many more commands.
Add tests for using number larger than number of lines in buffer.
Updating marks in quickfix list is broken. (Yegappan, 2016 Jul 18)
Invalid behavior with NULL list. (Nikolai Pavlov, #768)
For current Windows build .pdb file is missing. (Gabriele Fava, 2016 May 11)
5)
Support closure for lambda? Ken Takata is working on it.
Patch Jul 19. Still need test updates.
Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
Second one. Update May 22.
Update by Daniel Hahler, 2014 Jul 4, Aug 14, Oct 14, Oct 15.
Rethink this: can we add an argument to setqflist() and getqflist() for these
extra items?
Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
13, last version) Update June 26, #830.
@@ -160,8 +165,6 @@ Instead use a Vim script implementation, invoked from a Vim command.
ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
Also with latest version.
Patch to load rgb.txt once. (Christian Brabandt, 2016 Apr 29)
Still problems with 'emoji'. See issue #721. Patch 7.4.1697 half-fixes it.
Avoid PLAN_WRITE in windgoto() ?
Should already never use utf-8 chars to position the cursor.
@@ -179,9 +182,6 @@ Otherwise task flickers in taskbar.
Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26)
Also for ":@.".
Patch to add TabNew, TabNewEntered and TabClosed autocommand events.
(Felipe Morales, 2015 Feb 1)
Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
Patch on issue #728 by Christian Brabandt, 2016 Apr 7. Update with test: Apr 8.
@@ -222,7 +222,7 @@ Reject the value? #710.
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
Update mentioned by Christian, 2016 Apr 25.
Update from Ken Takata, 2016 Apr 26.
Update from Ken Takata, 2016 Jul 17.
Patch to improve cscope. (Adrian Kocis, #843)
@@ -328,6 +328,8 @@ Patch from Christian Brabandt, 2016 Mar 30, #712.
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
Patch to show search statistics. (Christian Brabandt, 2016 Jul 22)
When the CursorMovedI event triggers, and CTRL-X was typed, a script cannot
restore the mode properly. (Andrew Stewart, 2016 Apr 20)
Do not trigger the event?
@@ -392,10 +394,6 @@ wrong name. (Aram, 2014 Nov 7) Vim 7.4.
Can't recognize the $ProgramFiles(x86) environment variable. Recognize it
specifically? First try with the parens, then without.
Half-finished patch to fix the Problem using cgn to change a search hit when
replacement includes hit. Reported by John Beckett, fix by Christian Brabandt,
2016 Jan 11.
Patch to add :mapgroup, put mappings in a group like augroup.
(Yasuhiro Matsumoto, 2016 Feb 19)
@@ -3558,8 +3556,6 @@ Multi-byte characters:
convert_input() for Mac GUI.
- Add mnemonics from RFC1345 longer than two characters.
Support CTRL-K _{mnemonic}_
7 In "-- INSERT (lang) --" show the name of the keymap used instead of
"lang". (Ilya Dogolazky)
- Make 'breakat' accept multi-byte characters. Problem: can't use a lookup
table anymore (breakat_flags[]).
Simplistic solution: when 'formatoptions' contains "m" also break a line
+5 -2
View File
@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.4. Last change: 2016 Jul 09
*usr_41.txt* For Vim version 7.4. Last change: 2016 Jul 24
VIM USER MANUAL - by Bram Moolenaar
@@ -592,7 +592,7 @@ String manipulation: *string-functions*
match() position where a pattern matches in a string
matchend() position where a pattern match ends in a string
matchstr() match of a pattern in a string
matchstrpos() match and postions of a pattern in a string
matchstrpos() match and positions of a pattern in a string
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
@@ -810,6 +810,7 @@ Command line: *command-line-functions*
setcmdpos() set position of the cursor in the command line
getcmdtype() return the current command-line type
getcmdwintype() return the current command-line window type
getcompletion() list of command-line completion matches
Quickfix and location lists: *quickfix-functions*
getqflist() list of quickfix errors
@@ -907,6 +908,7 @@ Mappings: *mapping-functions*
Testing: *test-functions*
assert_equal() assert that two expressions values are equal
assert_notequal() assert that two expressions values are not equal
assert_inrange() assert that an expression is inside a range
assert_match() assert that a pattern matches the value
assert_notmatch() assert that a pattern does not match the value
assert_false() assert that an expression is false
@@ -914,6 +916,7 @@ Testing: *test-functions*
assert_exception() assert that a command throws an exception
assert_fails() assert that a function call fails
test_alloc_fail() make memory allocation fail
test_autochdir() enable 'autochdir' during startup
test_disable_char_avail() test without typeahead
test_garbagecollect_now() free memory right now
test_null_channel() return a null Channel
+2 -1
View File
@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.4. Last change: 2016 Jun 04
*version7.txt* For Vim version 7.4. Last change: 2016 Jul 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -18310,4 +18310,5 @@ Solution: Subtract the unsigned numbers and cast to int. (Ken Takata)
Files: src/os_win32.c
vim:tw=78:ts=8:ft=help:norl:
+12251 -2
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2016 Jul 16
" Last Change: 2016 Jul 21
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -534,7 +534,7 @@ au BufNewFile,BufRead configure.in,configure.ac setf config
au BufNewFile,BufRead *.cu setf cuda
" Dockerfile
au BufNewFile,BufRead Dockerfile setf dockerfile
au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile
" WildPackets EtherPeek Decoder
au BufNewFile,BufRead *.dcd setf dcd
+10 -10
View File
@@ -1,11 +1,11 @@
" Vim filetype plugin file
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 27 March 2014
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 18 July 2016
if exists("b:did_ftplugin")
finish
@@ -43,7 +43,7 @@ setlocal commentstring=;\ %s
" specially and hence are not indented specially.
"
" -*- LISPWORDS -*-
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-010/clj/src/vim_clojure_static/generate.clj
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
" Provide insert mode completions for special forms and clojure.core. As
@@ -82,9 +82,9 @@ endif
" Win32 can filter files in the browse dialog
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n"
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
\ "Java Source Files (*.java)\t*.java\n" .
\ "All Files (*.*)\t*.*\n"
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
endif
+141 -65
View File
@@ -1,17 +1,12 @@
" Vim indent file
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
" Language: Clojure
" Author: Meikel Brandmeyer <mb@kotka.de>
" URL: http://kotka.de/projects/clojure/vimclojure.html
"
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 27 March 2014
" TODO: Indenting after multibyte characters is broken:
" (let [Δ (if foo
" bar ; Indent error
" baz)])
" Maintainer: Sung Pae <self@sungpae.com>
" URL: https://github.com/guns/vim-clojure-static
" License: Same as Vim
" Last Change: 18 July 2016
if exists("b:did_indent")
finish
@@ -57,36 +52,39 @@ if exists("*searchpairpos")
let g:clojure_align_subforms = 0
endif
function! s:SynIdName()
function! s:syn_id_name()
return synIDattr(synID(line("."), col("."), 0), "name")
endfunction
function! s:CurrentChar()
function! s:ignored_region()
return s:syn_id_name() =~? '\vstring|regex|comment|character'
endfunction
function! s:current_char()
return getline('.')[col('.')-1]
endfunction
function! s:CurrentWord()
function! s:current_word()
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
endfunction
function! s:IsParen()
return s:CurrentChar() =~# '\v[\(\)\[\]\{\}]' &&
\ s:SynIdName() !~? '\vstring|regex|comment|character'
function! s:is_paren()
return s:current_char() =~# '\v[\(\)\[\]\{\}]' && !s:ignored_region()
endfunction
" Returns 1 if string matches a pattern in 'patterns', which may be a
" list of patterns, or a comma-delimited string of implicitly anchored
" patterns.
function! s:MatchesOne(patterns, string)
function! s:match_one(patterns, string)
let list = type(a:patterns) == type([])
\ ? a:patterns
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
\ ? a:patterns
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
for pat in list
if a:string =~# pat | return 1 | endif
endfor
endfunction
function! s:MatchPairs(open, close, stopat)
function! s:match_pairs(open, close, stopat)
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
" comments.
if a:stopat == 0
@@ -95,11 +93,11 @@ if exists("*searchpairpos")
let stopat = a:stopat
endif
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
return [pos[0], virtcol(pos)]
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:is_paren()", stopat)
return [pos[0], col(pos)]
endfunction
function! s:ClojureCheckForStringWorker()
function! s:clojure_check_for_string_worker()
" Check whether there is the last character of the previous line is
" highlighted as a string. If so, we check whether it's a ". In this
" case we have to check also the previous character. The " might be the
@@ -113,17 +111,17 @@ if exists("*searchpairpos")
call cursor(nb, 0)
call cursor(0, col("$") - 1)
if s:SynIdName() !~? "string"
if s:syn_id_name() !~? "string"
return -1
endif
" This will not work for a " in the first column...
if s:CurrentChar() == '"'
if s:current_char() == '"'
call cursor(0, col("$") - 2)
if s:SynIdName() !~? "string"
if s:syn_id_name() !~? "string"
return -1
endif
if s:CurrentChar() != '\\'
if s:current_char() != '\\'
return -1
endif
call cursor(0, col("$") - 1)
@@ -138,40 +136,40 @@ if exists("*searchpairpos")
return indent(".")
endfunction
function! s:CheckForString()
function! s:check_for_string()
let pos = getpos('.')
try
let val = s:ClojureCheckForStringWorker()
let val = s:clojure_check_for_string_worker()
finally
call setpos('.', pos)
endtry
return val
endfunction
function! s:StripNamespaceAndMacroChars(word)
function! s:strip_namespace_and_macro_chars(word)
return substitute(a:word, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
endfunction
function! s:ClojureIsMethodSpecialCaseWorker(position)
function! s:clojure_is_method_special_case_worker(position)
" Find the next enclosing form.
call search('\S', 'Wb')
" Special case: we are at a '(('.
if s:CurrentChar() == '('
if s:current_char() == '('
return 0
endif
call cursor(a:position)
let nextParen = s:MatchPairs('(', ')', 0)
let next_paren = s:match_pairs('(', ')', 0)
" Special case: we are now at toplevel.
if nextParen == [0, 0]
if next_paren == [0, 0]
return 0
endif
call cursor(nextParen)
call cursor(next_paren)
call search('\S', 'W')
let w = s:StripNamespaceAndMacroChars(s:CurrentWord())
let w = s:strip_namespace_and_macro_chars(s:current_word())
if g:clojure_special_indent_words =~# '\V\<' . w . '\>'
return 1
endif
@@ -179,27 +177,43 @@ if exists("*searchpairpos")
return 0
endfunction
function! s:IsMethodSpecialCase(position)
function! s:is_method_special_case(position)
let pos = getpos('.')
try
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
let val = s:clojure_is_method_special_case_worker(a:position)
finally
call setpos('.', pos)
endtry
return val
endfunction
function! GetClojureIndent()
" Check if form is a reader conditional, that is, it is prefixed by #?
" or @#?
function! s:is_reader_conditional_special_case(position)
if getline(a:position[0])[a:position[1] - 3 : a:position[1] - 2] == "#?"
return 1
endif
return 0
endfunction
" Returns 1 for opening brackets, -1 for _anything else_.
function! s:bracket_type(char)
return stridx('([{', a:char) > -1 ? 1 : -1
endfunction
" Returns: [opening-bracket-lnum, indent]
function! s:clojure_indent_pos()
" Get rid of special case.
if line(".") == 1
return 0
return [0, 0]
endif
" We have to apply some heuristics here to figure out, whether to use
" normal lisp indenting or not.
let i = s:CheckForString()
let i = s:check_for_string()
if i > -1
return i + !!g:clojure_align_multiline_strings
return [0, i + !!g:clojure_align_multiline_strings]
endif
call cursor(0, 1)
@@ -207,28 +221,28 @@ if exists("*searchpairpos")
" Find the next enclosing [ or {. We can limit the second search
" to the line, where the [ was found. If no [ was there this is
" zero and we search for an enclosing {.
let paren = s:MatchPairs('(', ')', 0)
let bracket = s:MatchPairs('\[', '\]', paren[0])
let curly = s:MatchPairs('{', '}', bracket[0])
let paren = s:match_pairs('(', ')', 0)
let bracket = s:match_pairs('\[', '\]', paren[0])
let curly = s:match_pairs('{', '}', bracket[0])
" In case the curly brace is on a line later then the [ or - in
" case they are on the same line - in a higher column, we take the
" curly indent.
if curly[0] > bracket[0] || curly[1] > bracket[1]
if curly[0] > paren[0] || curly[1] > paren[1]
return curly[1]
return curly
endif
endif
" If the curly was not chosen, we take the bracket indent - if
" there was one.
if bracket[0] > paren[0] || bracket[1] > paren[1]
return bracket[1]
return bracket
endif
" There are neither { nor [ nor (, ie. we are at the toplevel.
if paren == [0, 0]
return 0
return paren
endif
" Now we have to reimplement lispindent. This is surprisingly easy, as
@@ -246,58 +260,120 @@ if exists("*searchpairpos")
" - In any other case we use the column of the end of the word + 2.
call cursor(paren)
if s:IsMethodSpecialCase(paren)
return paren[1] + &shiftwidth - 1
if s:is_method_special_case(paren)
return [paren[0], paren[1] + &shiftwidth - 1]
endif
if s:is_reader_conditional_special_case(paren)
return paren
endif
" In case we are at the last character, we use the paren position.
if col("$") - 1 == paren[1]
return paren[1]
return paren
endif
" In case after the paren is a whitespace, we search for the next word.
call cursor(0, col('.') + 1)
if s:CurrentChar() == ' '
if s:current_char() == ' '
call search('\v\S', 'W')
endif
" If we moved to another line, there is no word after the (. We
" use the ( position for indent.
if line(".") > paren[0]
return paren[1]
return paren
endif
" We still have to check, whether the keyword starts with a (, [ or {.
" In that case we use the ( position for indent.
let w = s:CurrentWord()
if stridx('([{', w[0]) > -1
return paren[1]
let w = s:current_word()
if s:bracket_type(w[0]) == 1
return paren
endif
" Test words without namespace qualifiers and leading reader macro
" metacharacters.
"
" e.g. clojure.core/defn and #'defn should both indent like defn.
let ww = s:StripNamespaceAndMacroChars(w)
let ww = s:strip_namespace_and_macro_chars(w)
if &lispwords =~# '\V\<' . ww . '\>'
return paren[1] + &shiftwidth - 1
return [paren[0], paren[1] + &shiftwidth - 1]
endif
if g:clojure_fuzzy_indent
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
return paren[1] + &shiftwidth - 1
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
return [paren[0], paren[1] + &shiftwidth - 1]
endif
call search('\v\_s', 'cW')
call search('\v\S', 'W')
if paren[0] < line(".")
return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)
return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)]
endif
call search('\v\S', 'bW')
return virtcol(".") + 1
return [line('.'), col('.') + 1]
endfunction
function! GetClojureIndent()
let lnum = line('.')
let orig_lnum = lnum
let orig_col = col('.')
let [opening_lnum, indent] = s:clojure_indent_pos()
" Account for multibyte characters
if opening_lnum > 0
let indent -= indent - virtcol([opening_lnum, indent])
endif
" Return if there are no previous lines to inherit from
if opening_lnum < 1 || opening_lnum >= lnum - 1
call cursor(orig_lnum, orig_col)
return indent
endif
let bracket_count = 0
" Take the indent of the first previous non-white line that is
" at the same sexp level. cf. src/misc1.c:get_lisp_indent()
while 1
let lnum = prevnonblank(lnum - 1)
let col = 1
if lnum <= opening_lnum
break
endif
call cursor(lnum, col)
" Handle bracket counting edge case
if s:is_paren()
let bracket_count += s:bracket_type(s:current_char())
endif
while 1
if search('\v[(\[{}\])]', '', lnum) < 1
break
elseif !s:ignored_region()
let bracket_count += s:bracket_type(s:current_char())
endif
endwhile
if bracket_count == 0
" Check if this is part of a multiline string
call cursor(lnum, 1)
if s:syn_id_name() !~? '\vstring|regex'
call cursor(orig_lnum, orig_col)
return indent(lnum)
endif
endif
endwhile
call cursor(orig_lnum, orig_col)
return indent
endfunction
setlocal indentexpr=GetClojureIndent()
+108
View File
@@ -0,0 +1,108 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 July 20
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
loadkeymap
" Capital letters
A Ա
B Բ
C Գ
D Դ
Y Ե
Z Զ
E Է
U Ը
: Թ
+ Ժ
I Ի
L Լ
Q Խ
? Ծ
K Կ
H Հ
@ Ձ
> Ղ
J Ճ
M Մ
# Յ
N Ն
< Շ
O Ո
{ Չ
P Պ
} Ջ
_ Ռ
S Ս
V Վ
T Տ
R Ր
X Ց
W Ւ
\" Փ
G Ք
) Օ
F Ֆ
" Lowercase letters
a ա
b բ
c գ
d դ
y ե
z զ
e է
u ը
; թ
= ժ
i ի
l լ
q խ
/ ծ
k կ
h հ
2 ձ
. ղ
j ճ
m մ
3 յ
n ն
, շ
o ո
[ չ
p պ
] ջ
- ռ
s ս
v վ
t տ
r ր
x ց
w ւ
' փ
g ք
0 օ
f ֆ
& և
" Punctuation
` ՝
~ ՜
1 ։
4 ՛
5 ,
6 -
7 .
8 «
9 »
\\ '
| ՞
" Numbers
! 1
$ 3
% 4
^ 9
+108
View File
@@ -0,0 +1,108 @@
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
" Last Changed: 2016 July 20
" URL: https://github.com/blinskey/vim-armenian-keymaps
let b:keymap_name = "hy"
loadkeymap
" Capital letters
A Ա
P Բ
C Գ
T Դ
Y Ե
Z Զ
E Է
U Ը
: Թ
+ Ժ
I Ի
L Լ
Q Խ
? Ծ
G Կ
H Հ
@ Ձ
> Ղ
J Ճ
M Մ
# Յ
N Ն
< Շ
O Ո
{ Չ
B Պ
} Ջ
_ Ռ
S Ս
W Վ
D Տ
R Ր
X Ց
V Ւ
\" Փ
K Ք
) Օ
F Ֆ
" Lowercase letters
a ա
p բ
c գ
t դ
y ե
z զ
e է
u ը
; թ
= ժ
i ի
l լ
q խ
/ ծ
g կ
h հ
2 ձ
. ղ
j ճ
m մ
3 յ
n ն
, շ
o ո
[ չ
b պ
] ջ
- ռ
s ս
w վ
d տ
r ր
x ց
v ւ
' փ
k ք
0 օ
f ֆ
& և
" Punctuation
` ՝
~ ՜
1 ։
4 ՛
5 ,
6 -
7 .
8 «
9 »
\\ '
| ՞
" Numbers
! 1
$ 3
% 4
^ 9
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Zvezdan Petkovic <zpetkovic@acm.org>
" Last Change: 2016 Feb 20
" Last Change: 2016 Jul 21
" Credits: Neil Schemenauer <nas@python.ca>
" Dmitry Vasiliev
"
@@ -72,7 +72,7 @@ set cpo&vim
" built-in below (use 'from __future__ import print_function' in 2)
" - async and await were added in Python 3.5 and are soft keywords.
"
syn keyword pythonStatement False, None, True
syn keyword pythonStatement False None True
syn keyword pythonStatement as assert break continue del exec global
syn keyword pythonStatement lambda nonlocal pass print return with yield
syn keyword pythonStatement class def nextgroup=pythonFunction skipwhite
+16 -4
View File
@@ -4,7 +4,12 @@
" Repository: https://github.com/chrisbra/vim-sqloracle-syntax
" License: Vim
" Previous Maintainer: Paul Moore
" Last Change: 2015 Nov 24
" Last Change: 2016 Jul 22
" Changes:
" 02.04.2016: Support for when keyword
" 03.04.2016: Support for join related keywords
" 22.07.2016: Support Oracle Q-Quote-Syntax
if exists("b:current_syntax")
finish
@@ -24,10 +29,11 @@ syn keyword sqlKeyword index initial initrans into is level link logging loop
syn keyword sqlKeyword maxextents maxtrans mode modify monitoring
syn keyword sqlKeyword nocache nocompress nologging noparallel nowait of offline on online start
syn keyword sqlKeyword parallel successful synonym table tablespace then to trigger uid
syn keyword sqlKeyword unique user validate values view whenever
syn keyword sqlKeyword unique user validate values view when whenever
syn keyword sqlKeyword where with option order pctfree pctused privileges procedure
syn keyword sqlKeyword public resource return row rowlabel rownum rows
syn keyword sqlKeyword session share size smallint type using
syn keyword sqlKeyword join cross inner outer left right
syn keyword sqlOperator not and or
syn keyword sqlOperator in any some all between exists
@@ -47,8 +53,13 @@ syn keyword sqlType boolean char character date float integer long
syn keyword sqlType mlslabel number raw rowid varchar varchar2 varray
" Strings:
syn region sqlString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region sqlString start=+'+ skip=+\\\\\|\\'+ end=+'+
syn region sqlString matchgroup=Quote start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region sqlString matchgroup=Quote start=+'+ skip=+\\\\\|\\'+ end=+'+
syn region sqlString matchgroup=Quote start=+n\?q'\z([^[(<{]\)+ end=+\z1'+
syn region sqlString matchgroup=Quote start=+n\?q'<+ end=+>'+
syn region sqlString matchgroup=Quote start=+n\?q'{+ end=+}'+
syn region sqlString matchgroup=Quote start=+n\?q'(+ end=+)'+
syn region sqlString matchgroup=Quote start=+n\?q'\[+ end=+]'+
" Numbers:
syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
@@ -118,6 +129,7 @@ syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained
" Define the default highlighting.
command -nargs=+ HiLink hi def link <args>
HiLink Quote Special
HiLink sqlComment Comment
HiLink sqlFunction Function
HiLink sqlKeyword sqlSpecial
+68 -63
View File
@@ -137,7 +137,7 @@
Урок 1.5: ПРОМЯНА НА ТЕКСТ - ДОБАВЯНЕ (APPEND)
** Натиснете A (Shift+a) , за да добавите текст. **
** Натиснете A (SHIFT+a) , за да добавите текст. **
1. Придвижете показалеца до реда долу, означен със --->.
Няма значение на коя буква в реда се намира показалеца.
@@ -166,11 +166,11 @@
Внимание! Преди да изпълните която и да е от стъпките долу, прочетете целия урок!!
1. Излезте от самоучителя, както направихте в Урок 1.2: :q!
Или, ако имате достъп до друг терминал направете следното там.
Или, ако имате достъп до друг терминал, направете следното там.
2. На командния ред напишете следното и натиснете <ENTER>: vim tutor <ENTER>
'vim' е командата която стартира редактора Vim, 'tutor' е името на файла,
които искате да промените. Използвайте файл който може да бъде променян.
'vim' е командата, която стартира редактора Vim, 'tutor' е името на файла,
които искате да промените. Използвайте файл който може да бъде променян.
3. Въвеждайте и изтривайте текст по начините, научени в предишните уроци.
@@ -191,10 +191,10 @@
2. За да пуснете Vim от командния ред, напишете: vim ИМЕ-НА-ФАЙЛ <ENTER>
3. За да излезете от Vim, напишете:
<ESC> :q! <ENTER> за да отхвърлите всички промени..
<ESC> :q! <ENTER> за да отхвърлите всички промени.
ИЛИ напишете: <ESC> :wq <ENTER> за да запишете промените.
4. За да изтриете буква намираща се под показалеца, натиснете: x
4. За да изтриете буква намираща се под показалеца, натиснете: x .
5. За да въведете или добавите текст, натиснете:
i въведете текста, натиснете <ESC>. Въвежда преди показалеца.
@@ -282,11 +282,12 @@
** Ако въведете число преди движението, то се повтаря толкова пъти
колкото е числото. **
1. Придвижете показалеца до началото на реда долу , означен със --->.
1. Придвижете показалеца до началото на реда долу, означен със --->.
2. Въведете 2w , за да преместите показалеца с две думи напред.
3. Въведете 3e , за да преместите показалеца до третата дума напред.
3. Въведете 3e , за да преместите показалеца до края на третата дума
напред.
4. Въведете 0 (нула), за да отидете в началото на реда.
@@ -309,10 +310,10 @@
изтриване заедно с движение, трябва да въведете числото преди движението:
d число движение
1. Придвижете показалеца до първата дума, изписана с ГОЛЕМИ БУКВИ в реда,
1. Придвижете показалеца до първата дума, изписана с ГЛАВНИ БУКВИ в реда,
означен със --->.
2. Въведете d2w , за да изтриете думите, написани с ГОЛЕМИ БУКВИ.
2. Въведете d2w , за да изтриете думите, написани с ГЛАВНИ БУКВИ.
3. Повторете стъпки 1 и 2, за да изтриете последователните
думи, изписани с големи букви с една команда.
@@ -388,14 +389,14 @@
движение - придвижване в текста, върху който се работи, например w (word),
$ (до края на реда) и т.н.
6. За да се придвижите до началото на ред, натиснете нула - 0
6. За да се придвижите до началото на ред, натиснете нула - 0
7. За да отмените предишни действия натиснете u (малка буква u)
За да отмените всички промени на един ред въведете U (главна буква U)
7. За да отмените предишни действия, натиснете u (малка буква u)
За да отмените всички промени на един ред, въведете U (главна буква U)
За да отмените отмените, натиснете CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 3.1: КОМАНДАТА ЗА ПОСТАВЯНЕ
Урок 3.1: КОМАНДАТА ЗА ПОСТАВЯНЕ (PUT)
** Въведете p , за да поставите изтрит преди това текст след
@@ -420,10 +421,10 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 3.2: КОМАНДАТА ЗА ЗАМЕСТВАНЕ
Урок 3.2: КОМАНДАТА ЗА ЗАМЕСТВАНЕ (REPLACE)
** Въведете rx , за да заместите (replace) буквата под показалеца с x . **
** Въведете rx , за да заместите буквата под показалеца с x . **
1. Придвижете показалеца до първия ред, означен със ---> долу.
@@ -444,7 +445,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 3.3: ОПЕРАТОРЪТ ЗА ПРОМЯНА
Урок 3.3: ОПЕРАТОРЪТ ЗА ПРОМЯНА (CHANGE)
** За да промените от мястото на показалеца до края на дума, въведете ce . **
@@ -453,11 +454,11 @@
2. Поставете показалеца върху з в тзии.
3. Въведете ce и правилнят остатък от думата ( в този случай ози).
3. Въведете ce и правилния остатък от думата ( в този случай ози).
4. Натиснете <ESC> и отидете на следващата група букви, които трябва да се променят.
5. Повтаряйте стъпки 3 и 4 докато първото изречение стане същото като второто.
5. Повтаряйте стъпки 3 и 4, докато първото изречение стане същото като второто.
---> На тзии ред иам неклико дмуи, ктоио требав да се прмнеято като се изповлза оепртореа за промяна.
---> На този ред има няколко думи, които трябва да се променят като се използва оператора за промяна.
@@ -499,7 +500,7 @@
Това поставя изтрития текст СЛЕД мястото, на което се намира показалеца.
Ако сте изтрили преди това цял ред, той ще бъде поставен като следващ ред.
2. За да заместите буква, намираща се под показалеца, въведете r и след
2. За да заместите буква, намираща се под показалеца, въведете r и след
това буквата, с която искате да заместите.
3. Операторът за промяна ви позволява да променяте текста от мястото на
@@ -544,8 +545,8 @@
** Въведете / , последвана от фраза, за да потърсите фразата. **
1. В Нормален режим въведете / символа. Забележете, че / (наклонената
черта) и показалеца се появяват в дъното на екрана, както се случва при
1. В Нормален режим въведете знака / . Забележете, че / (наклонената
черта) и показалецът се появяват в дъното на екрана, както се случва при
използването на командата : .
2. Сега въведете 'грешшшка' <ENTER>. Това е думата, която ще търсите.
@@ -555,7 +556,7 @@
4. За да търсите за фраза в обратната посока използвайте ? вместо / .
5. За да се върнете, там където сте били, натиснете CTRL-O (задръжте Ctrl
5. За да се върнете, там където сте били, натиснете CTRL-O (задръжте Ctrl
натиснат докато натискате клавиша o). Повторете, за да отидете още
по-назад. С CTRL-I пък отивате напред.
@@ -580,15 +581,15 @@
5. Придвижете показалеца до друга (,),[,],{ или } скоба и вижте какво прави % .
---> Това ( ред за проверка с различни скоби като (, [ ] и { } в него. ))
---> Това ( е ред за проверка с различни скоби като (, [ ] и { } в него. ))
Забележка! Това е много полезно за откриване на грешки на програми с несъответстващи скоби.
Забележка! Това е много полезно при откриване на грешки в програми с несъответстващи скоби.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 4.4: КОМАНДАТА ЗА ЗАМЕСТВАНЕ
Урок 4.4: КОМАНДАТА ЗА ЗАМЕСТВАНЕ (SUBSTITUTE)
** Въведете :s/старо/ново/g за да заместите 'старо' със 'ново'. **
@@ -621,8 +622,8 @@
число G ви отвежда до съответния ред.
gg ви отвежда до първия ред.
2. Ако натиснете / последвано от низ за търсене, търсите НАПРЕД.
Ако натиснете / последвано от низ за търсене, търсите НАЗАД.
2. Ако натиснете / , последвана от низ за търсене, търсите НАПРЕД.
Ако натиснете / , последвана от низ за търсене, търсите НАЗАД.
След търсене, въведете n , за да намерите следващо съвпадение с низа,
който търсите в същата посока, в която търсите или N , за да търсите в
обратната посока.
@@ -644,7 +645,7 @@
** Въведете :! , последвано от външна команда, за да я изпълните. **
1. Въведете познатата ви вече : , за да поставите показалеца в дъното на
1. Въведете познатото ви вече : , за да поставите показалеца в дъното на
екрана. Това ви позволява да въвеждате команда.
2. Сега въведете ! (удивителен знак). Това ви позволява да изпълнявате
@@ -673,11 +674,11 @@
3. Сега въведете :w TEST (където TEST е името на файла).
4. Това записва целия фаил(Самоучителя за Vim) под името TEST.
За да проверите, напишете :!dir или :!ls отново за да видите вашата
папка.
4. Това записва целия файл (Самоучителя за Vim) под името TEST.
За да проверите, напишете :!dir или :!ls отново и вижте съдържанието
на вашата папка.
Забележете! Ако излезете от Vim и го пуснете отново като напишете на командния
Забележете! Ако излезете от Vim и го пуснете отново, като напишете на командния
ред vim TEST , файлът ще бъде точно копие на самоучителя, когато
сте го записали.
@@ -686,7 +687,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.3: ИЗБОР НА ТЕКСТ ЗА ЗАПИС
Урок 5.3: ИЗБОР НА ТЕКСТ ЗА ЗАПИС
** За да запишете част от файла, натиснете v , следвано от движение :w FILENAME **
@@ -704,13 +705,13 @@
5. Vim ще запише избраните редове във файла TEST. Използвайте :!dir или :!ls ,
за да го видите. Не го изтривайте все още! Ще го използваме в следващия урок.
Забележете! Като натиснете v започвате видимо избиране (Visual selection).
Забележете! Като натиснете v , започвате видимо избиране (Visual selection).
Може да движите показалеца наоколо, за да направите избраното
по-голямо или по-малко. След което, можете да използвате оператор,
за да направите нещо с текста. Например, d изтрива текста.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.4: ИЗВЛИЧАНЕ И СЛИВАНЕ НА ФАЙЛОВЕ
Урок 5.4: ИЗВЛИЧАНЕ И СЛИВАНЕ НА ФАЙЛОВЕ
** За да вмъкнете съдържание на файл в текущия, въведете :r ИМЕНАФАЙЛ **
@@ -718,9 +719,9 @@
1. Поставете показалеца над този ред.
Важно! След като изпълните стъпка 2, ще видите текста от Урок 5.3. След това
отидете НАДОЛУ за да видите този урок отново.
отидете НАДОЛУ, за да видите този урок отново.
2. Сега извлечете файла TEST като използвате командата :r TEST , където TEST
2. Сега извлечете файла TEST, като използвате командата :r TEST , където TEST
е името на файла, което сте използвали. Файла, който извлекохте е вмъкнат
под реда, на който се намира показалеца.
@@ -756,14 +757,16 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.1: КОМАНДАТА ЗА ОТВАРЯНЕ
Урок 6.1: КОМАНДАТА ЗА ОТВАРЯНЕ (OPEN)
** Натиснете o , за да отворите ред под показалеца и да преминете в режим за въвеждане. **
** Натиснете o , за да отворите ред под показалеца и да преминете в
режим за въвеждане. **
1. Придвижете показалеца до реда долу означен със --->.
1. Придвижете показалеца до реда долу, означен със --->.
2. Натиснете клавиша o , за да отворите нов ред ПОД показалеца и да преминете в режим за въвеждане.
2. Натиснете клавиша o , за да отворите нов ред ПОД показалеца и да преминете
в режим за въвеждане.
3. Сега въведете някакъв текст и натиснете <ESC> , за да излезете от режима
за въвеждане.
@@ -781,7 +784,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 6.2: КОМАНДАТА ЗА ДОБАВЯНЕ
Урок 6.2: КОМАНДАТА ЗА ДОБАВЯНЕ (APPEND)
** Натиснете a , за да въведете текст СЛЕД показалеца. **
@@ -801,8 +804,8 @@
---> Този ре ви позволява да упраж добав на тек в ред.
---> Този ред ви позволява да упражнявате добавяне на текст в ред.
Важно! a, i и A всички ви отвеждат в режим за въвеждане. Единствената разлика е
в това, къде се въвеждат знаците.
Важно! a, i и A - с всички тях отивате в режим за въвеждане. Единствената
разлика е в това, къде се въвеждат знаците.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 6.3: ДРУГ НАЧИН ЗА ЗАМЕСТВАНЕ
@@ -823,7 +826,8 @@
---> Ако добавите 123 към xxx ще получите xxx.
---> Ако добавите 123 към 456 ще получите 579.
Важно! Режимът за заместване е същия като режима за въвеждане, но всеки въведен знак изтрива съществуващ знак.
Важно! Режимът за заместване е същия като режима за въвеждане, но всеки въведен
знак изтрива съществуващ знак.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 6.4: КОПИРАНЕ И ЗАМЕСТВАНЕ
@@ -860,7 +864,7 @@
1. Търсете 'разли' като въведете /разли <ENTER>
Повторете няколко пъти като натискате n .
2. Задайте настройктата 'ic' (Ignore case) като въведете :set ic
2. Задайте настройката 'ic' (Ignore case) като въведете :set ic
3.Сега търсете 'разли' отново като натискате n .
Забележете, че сега Разлика и РАЗЛИКА също биват намерени.
@@ -884,7 +888,8 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 6 ОБОБЩЕНИЕ
1. Натиснете o , за да отворите нов ред ПОД показалеца и да преминете в режим за въвеждане.
1. Натиснете o , за да отворите нов ред ПОД показалеца и да преминете в
режим за въвеждане.
Натиснете O , за да отворите ред НАД показалеца.
2. Натиснете a , за да въведете текст СЛЕД показалеца.
@@ -894,7 +899,7 @@
4. Операторът y взима (yank) текст, а p го поставя (paste).
5. Ако въведете R , докато сте в нормaлен режим, преминавате в режим за
5. Ако въведете R , докато сте в нормален режим, преминавате в режим за
заместване, докато натиснете <ESC>.
6. Ако напишете ":set xxx", задавате настройката "xxx". Ето някои настройки:
@@ -919,9 +924,9 @@
Прочетете текста в прозореца за помощ, за да разберете как работи системата.
Натиснете CTRL-W CTRL-W (два пъти CTRL-W), за да прескочите от един прозорец в друг.
Въведете :q <ENTER> , за да затворите прозореца за помощ.
Въведете :q <ENTER> , за да затворите прозореца за помощ.
Можете да намерите помощ по всякакъв въпрос като напишете
Можете да намерите помощ по всякакъв въпрос, като напишете
":help" именакоманда. Опитайте следните (не забравяйте да натискате <ENTER>):
:help w
@@ -948,10 +953,10 @@
3. Запишете файла с:
:w
Следващият път като пуснете Vim той ще осветява текста във файловете,
които отваряте в зависимост от синтаксиса им.
Можете да добавите всичките си предпочитани настройки в този файл.
За повече информация, въведете :help vimrc-intro
Следващият път като пуснете Vim той ще осветява текста във файловете, които
отваряте в зависимост от синтаксиса им. Можете да добавите всичките си
предпочитани настройки в този файл. За повече информация, въведете
:help vimrc-intro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Урок 7.3: ДОВЪРШВАНЕ
@@ -963,11 +968,11 @@
2. Вижте какви файлове има в папката ви: :!ls или :!dir
3. Въведете начлото на команда: :e
3. Въведете началото на команда: :e
4. Натиснете CTRL-D и Vim ще ви покаже команди, започващи с "e".
5.Натиснете <TAB> и Vim ще допълни командата до ":edit".
5. Натиснете <TAB> и Vim ще допълни командата до ":edit".
6. Сега добавете празно пространство и началото на името на съществуващ файл:
:edit FIL
@@ -989,12 +994,12 @@
3. Натиснете CTRL-W CTRL-W , за да прескочите в друг прозорец.
4. Напишете :q , за да затворите помощния прозорец.
5. Създайте файл за стартиране vimrc за да запазите предпочитаните от вас
5. Създайте файл за стартиране vimrc, за да запазите предпочитаните от вас
настройки.
6. Когато въвеждате команда след : , натиснете CTRL-D , за да видите
възможностите за допълване. Натиснете <TAB> , за да използвате някоя от
предложените възможности за допълване..
предложените възможности за допълване.
@@ -1012,21 +1017,21 @@
Издател: New Riders
Това е първата книга, изцяло посветена на Vim. Особено полезна е за
начинаещи. В нея ще намерите много примери и картинки.
See http://iccf-holland.org/click5.html
Вижте http://iccf-holland.org/click5.html
Следната книга е по-стара и по скоро за Vi отколкото за Vim, но също се препоръчва:
Следната книга е по-стара и по-скоро за Vi отколкото за Vim, но също се препоръчва:
Learning the Vi Editor - от Linda Lamb
Издател: O'Reilly & Associates Inc.
Това е книга, която ще ви запознае с почти всичко във Vi.
Шестото издание включва и информация за Vim.
Този самоучител е написан от Michael C. Pierce и Robert K. Ware,
Colorado School of Mines, акто използва идеи предоставени от Charles Smith,
Colorado School of Mines, като използва идеи предоставени от Charles Smith,
Colorado State University. E-mail: bware@mines.colorado.edu.
Променен за Vim от Bram Moolenaar.
Превод от Красимир Беров <berov@cpan.org>, юли 2016
Превод от Красимир Беров <berov@cpan.org>, юли 2016.
Този превод е подарък за сина ми Павел и е посветен на българските деца.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+1
View File
@@ -2093,6 +2093,7 @@ test_arglist \
test_filter_map \
test_fnamemodify \
test_glob2regpat \
test_gn \
test_goto \
test_hardcopy \
test_help_tagjump \
+11 -11
View File
@@ -105,7 +105,7 @@ open_buffer(
* If we can't create one for the current buffer, take another buffer
*/
close_buffer(NULL, curbuf, 0, FALSE);
for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
FOR_ALL_BUFFERS(curbuf)
if (curbuf->b_ml.ml_mfp != NULL)
break;
/*
@@ -1288,7 +1288,7 @@ do_buffer(
* If deleting the last (listed) buffer, make it empty.
* The last (listed) buffer cannot be unloaded.
*/
for (bp = firstbuf; bp != NULL; bp = bp->b_next)
FOR_ALL_BUFFERS(bp)
if (bp->b_p_bl && bp != buf)
break;
if (bp == NULL && buf == curbuf)
@@ -1414,7 +1414,7 @@ do_buffer(
buf = bp;
if (buf == NULL) /* No loaded buffer, find listed one */
{
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_p_bl && buf != curbuf)
break;
}
@@ -2410,7 +2410,7 @@ buflist_findpat(
#ifdef FEAT_WINDOWS
win_T *wp;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer == buf)
break;
if (wp == NULL)
@@ -2512,7 +2512,7 @@ ExpandBufnames(
for (round = 1; round <= 2; ++round)
{
count = 0;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (!buf->b_p_bl) /* skip unlisted buffers */
continue;
@@ -2738,7 +2738,7 @@ wininfo_other_tab_diff(wininfo_T *wip)
if (wip->wi_opt.wo_diff)
{
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
/* return FALSE when it's a window in the current tab page, thus
* the buffer was in diff mode here */
if (wip->wi_win == wp)
@@ -3157,7 +3157,7 @@ buflist_slash_adjust(void)
{
buf_T *bp;
for (bp = firstbuf; bp != NULL; bp = bp->b_next)
FOR_ALL_BUFFERS(bp)
{
if (bp->b_ffname != NULL)
slash_adjust(bp->b_ffname);
@@ -4124,7 +4124,7 @@ build_stl_str_hl(
case STL_KEYMAP:
fillable = FALSE;
if (get_keymap_str(wp, tmp, TMPLEN))
if (get_keymap_str(wp, (char_u *)"<%s>", tmp, TMPLEN))
str = tmp;
break;
case STL_PAGENUM:
@@ -5093,7 +5093,7 @@ ex_buffer_all(exarg_T *eap)
#endif
{
/* Check if this buffer already has a window */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer == buf)
break;
/* If the buffer already has a window, move it */
@@ -5471,7 +5471,7 @@ write_viminfo_bufferlist(FILE *fp)
#endif
fputs(_("\n# Buffer list:\n"), fp);
for (buf = firstbuf; buf != NULL ; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_fname == NULL
|| !buf->b_p_bl
@@ -5857,7 +5857,7 @@ buf_delete_all_signs(void)
{
buf_T *buf; /* buffer we are checking for signs */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_signlist != NULL)
buf_delete_signs(buf);
}
+9 -9
View File
@@ -65,7 +65,7 @@ diff_buf_delete(buf_T *buf)
int i;
tabpage_T *tp;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
{
i = diff_buf_idx_tp(buf, tp);
if (i != DB_COUNT)
@@ -92,7 +92,7 @@ diff_buf_adjust(win_T *win)
{
/* When there is no window showing a diff for this buffer, remove
* it from the diffs. */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer == win->w_buffer && wp->w_p_diff)
break;
if (wp == NULL)
@@ -178,7 +178,7 @@ diff_invalidate(buf_T *buf)
tabpage_T *tp;
int i;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
{
i = diff_buf_idx_tp(buf, tp);
if (i != DB_COUNT)
@@ -204,7 +204,7 @@ diff_mark_adjust(
tabpage_T *tp;
/* Handle all tab pages that use the current buffer in a diff. */
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
{
idx = diff_buf_idx_tp(curbuf, tp);
if (idx != DB_COUNT)
@@ -591,7 +591,7 @@ diff_redraw(
win_T *wp;
int n;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_p_diff)
{
redraw_win_later(wp, SOME_VALID);
@@ -1198,7 +1198,7 @@ ex_diffoff(exarg_T *eap)
int diffwin = FALSE;
#endif
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
if (eap->forceit ? wp->w_p_diff : wp == curwin)
{
@@ -1879,7 +1879,7 @@ diffopt_changed(void)
/* If "icase" or "iwhite" was added or removed, need to update the diff. */
if (diff_flags != diff_flags_new)
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
tp->tp_diff_invalid = TRUE;
diff_flags = diff_flags_new;
@@ -2434,7 +2434,7 @@ diff_fold_update(diff_T *dp, int skip_idx)
int i;
win_T *wp;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
for (i = 0; i < DB_COUNT; ++i)
if (curtab->tp_diffbuf[i] == wp->w_buffer && i != skip_idx)
foldUpdate(wp, dp->df_lnum[i],
@@ -2450,7 +2450,7 @@ diff_mode_buf(buf_T *buf)
{
tabpage_T *tp;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
if (diff_buf_idx_tp(buf, tp) != DB_COUNT)
return TRUE;
return FALSE;
+1 -1
View File
@@ -4253,7 +4253,7 @@ ins_compl_get_exp(pos_T *ini)
if (!compl_started)
{
for (ins_buf = firstbuf; ins_buf != NULL; ins_buf = ins_buf->b_next)
FOR_ALL_BUFFERS(ins_buf)
ins_buf->b_scanned = 0;
found_all = FALSE;
ins_buf = curbuf;
+5 -4
View File
@@ -5253,7 +5253,7 @@ garbage_collect(int testing)
abort = abort || set_ref_in_ht(&SCRIPT_VARS(i), copyID, NULL);
/* buffer-local variables */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
abort = abort || set_ref_in_item(&buf->b_bufvar.di_tv, copyID,
NULL, NULL);
@@ -5269,7 +5269,7 @@ garbage_collect(int testing)
#ifdef FEAT_WINDOWS
/* tabpage-local variables */
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
abort = abort || set_ref_in_item(&tp->tp_winvar.di_tv, copyID,
NULL, NULL);
#endif
@@ -8303,8 +8303,8 @@ find_win_by_nr(
if (nr == 0)
return curwin;
for (wp = (tp == NULL || tp == curtab) ? firstwin : tp->tp_firstwin;
wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS_IN_TAB(tp, wp)
{
if (nr >= LOWEST_WIN_ID)
{
if (wp->w_id == nr)
@@ -8312,6 +8312,7 @@ find_win_by_nr(
}
else if (--nr <= 0)
break;
}
if (nr >= LOWEST_WIN_ID)
return NULL;
return wp;
+4 -4
View File
@@ -1439,7 +1439,7 @@ find_buffer(typval_T *avar)
{
/* No full path name match, try a match with a URL or a "nofile"
* buffer, these don't use the full path. */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_fname != NULL
&& (path_with_url(buf->b_fname)
#ifdef FEAT_QUICKFIX
@@ -1597,7 +1597,7 @@ buf_win_common(typval_T *argvars, typval_T *rettv, int get_nr)
++emsg_off;
buf = get_buf_tv(&argvars[0], TRUE);
#ifdef FEAT_WINDOWS
for (wp = firstwin; wp; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
++winnr;
if (wp->w_buffer == buf)
@@ -6402,7 +6402,7 @@ f_last_buffer_nr(typval_T *argvars UNUSED, typval_T *rettv)
int n = 0;
buf_T *buf;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (n < buf->b_fnum)
n = buf->b_fnum;
@@ -12400,7 +12400,7 @@ f_winrestcmd(typval_T *argvars UNUSED, typval_T *rettv)
char_u buf[50];
ga_init2(&ga, (int)sizeof(char), 70);
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
sprintf((char *)buf, "%dresize %d|", winnr, wp->w_height);
ga_concat(&ga, buf);
+6 -6
View File
@@ -1497,7 +1497,7 @@ do_shell(
&& !autocmd_busy
#endif
&& msg_silent == 0)
for (buf = firstbuf; buf; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (bufIsChanged(buf))
{
#ifdef FEAT_GUI_MSWIN
@@ -2345,7 +2345,7 @@ read_viminfo_up_to_marks(
#endif
/* Change file names to buffer numbers for fmarks. */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
fmarks_check_names(buf);
return eof;
@@ -3413,7 +3413,7 @@ do_wqall(exarg_T *eap)
if (eap->cmdidx == CMD_xall || eap->cmdidx == CMD_wqall)
exiting = TRUE;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (bufIsChanged(buf))
{
@@ -6115,7 +6115,7 @@ prepare_tagpreview(
*/
if (!curwin->w_p_pvw)
{
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_p_pvw)
break;
if (wp != NULL)
@@ -6272,7 +6272,7 @@ ex_help(exarg_T *eap)
if (cmdmod.tab != 0)
wp = NULL;
else
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer != NULL && wp->w_buffer->b_help)
break;
if (wp != NULL && wp->w_buffer->b_nwindows > 0)
@@ -7745,7 +7745,7 @@ ex_sign(exarg_T *eap)
if (idx == SIGNCMD_UNPLACE && *arg == NUL)
{
/* ":sign unplace {id}": remove placed sign by number */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if ((lnum = buf_delsign(buf, id)) != 0)
update_debug_sign(buf, lnum);
return;
+8 -8
View File
@@ -1721,7 +1721,7 @@ autowrite_all(void)
if (!(p_aw || p_awa) || !p_write)
return;
for (buf = firstbuf; buf; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (bufIsChanged(buf) && !buf->b_p_ro)
{
#ifdef FEAT_AUTOCMD
@@ -1764,7 +1764,7 @@ check_changed(buf_T *buf, int flags)
int count = 0;
if (flags & CCGD_ALLBUF)
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
FOR_ALL_BUFFERS(buf2)
if (bufIsChanged(buf2)
&& (buf2->b_ffname != NULL
# ifdef FEAT_BROWSE
@@ -1941,7 +1941,7 @@ dialog_changed(
* Skip readonly buffers, these need to be confirmed
* individually.
*/
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
FOR_ALL_BUFFERS(buf2)
{
if (bufIsChanged(buf2)
&& (buf2->b_ffname != NULL
@@ -1977,7 +1977,7 @@ dialog_changed(
/*
* mark all buffers as unchanged
*/
for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next)
FOR_ALL_BUFFERS(buf2)
unchanged(buf2, TRUE);
}
}
@@ -2037,7 +2037,7 @@ check_changed_any(
win_T *wp;
#endif
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
++bufcount;
if (bufcount == 0)
@@ -2056,13 +2056,13 @@ check_changed_any(
add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
/* buf in other tab */
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
if (tp != curtab)
for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
#endif
/* any other buf */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
add_bufnum(bufnrs, &bufnum, buf->b_fnum);
for (i = 0; i < bufnum; ++i)
@@ -2997,7 +2997,7 @@ ex_listdo(exarg_T *eap)
if (next_fnum < 0 || next_fnum > eap->line2)
break;
/* Check if the buffer still exists. */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_fnum == next_fnum)
break;
if (buf == NULL)
+13 -9
View File
@@ -1715,7 +1715,7 @@ current_win_nr(win_T *win)
win_T *wp;
int nr = 0;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
++nr;
if (wp == win)
@@ -1730,7 +1730,7 @@ current_tab_nr(tabpage_T *tab)
tabpage_T *tp;
int nr = 0;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
{
++nr;
if (tp == tab)
@@ -7290,7 +7290,7 @@ ex_close(exarg_T *eap)
if (eap->addr_count == 0)
ex_win_close(eap->forceit, curwin, NULL);
else {
for (win = firstwin; win != NULL; win = win->w_next)
FOR_ALL_WINDOWS(win)
{
winnr++;
if (winnr == eap->line2)
@@ -7312,7 +7312,7 @@ ex_pclose(exarg_T *eap)
{
win_T *win;
for (win = firstwin; win != NULL; win = win->w_next)
FOR_ALL_WINDOWS(win)
if (win->w_p_pvw)
{
ex_win_close(eap->forceit, win, NULL);
@@ -7432,7 +7432,7 @@ ex_tabonly(exarg_T *eap)
* up the lists. */
for (done = 0; done < 1000; ++done)
{
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
if (tp->tp_topframe != topframe)
{
tabpage_close_other(tp, eap->forceit);
@@ -7491,6 +7491,10 @@ tabpage_close_other(tabpage_T *tp, int forceit)
break;
}
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_TABCLOSED, NULL, NULL, FALSE, curbuf);
#endif
redraw_tabline = TRUE;
if (h != tabline_height())
shell_new_rows();
@@ -7557,7 +7561,7 @@ ex_hide(exarg_T *eap)
int winnr = 0;
win_T *win;
for (win = firstwin; win != NULL; win = win->w_next)
FOR_ALL_WINDOWS(win)
{
winnr++;
if (winnr == eap->line2)
@@ -8705,7 +8709,7 @@ ex_syncbind(exarg_T *eap UNUSED)
if (curwin->w_p_scb)
{
topline = curwin->w_topline;
for (wp = firstwin; wp; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
if (wp->w_p_scb && wp->w_buffer)
{
@@ -8726,7 +8730,7 @@ ex_syncbind(exarg_T *eap UNUSED)
/*
* Set all scrollbind windows to the same topline.
*/
for (curwin = firstwin; curwin; curwin = curwin->w_next)
FOR_ALL_WINDOWS(curwin)
{
if (curwin->w_p_scb)
{
@@ -10984,7 +10988,7 @@ makeopens(
return FAIL;
/* Now put the other buffers into the buffer list */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (!(only_save_windows && buf->b_nwindows == 0)
&& !(buf->b_help && !(ssop_flags & SSOP_HELP))
+4 -5
View File
@@ -6092,7 +6092,7 @@ shorten_fnames(int force)
char_u *p;
mch_dirname(dirname, MAXPATHL);
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_fname != NULL
#ifdef FEAT_QUICKFIX
@@ -6691,7 +6691,7 @@ check_timestamps(
#ifdef FEAT_GUI_MACVIM
default_reload_choice = 0;
#endif
for (buf = firstbuf; buf != NULL; )
FOR_ALL_BUFFERS(buf)
{
/* Only check buffers in a window. */
if (buf->b_nwindows > 0)
@@ -6710,7 +6710,6 @@ check_timestamps(
continue;
}
}
buf = buf->b_next;
}
#ifdef FEAT_GUI_MACVIM
default_reload_choice = 0;
@@ -8797,7 +8796,7 @@ ex_doautoall(exarg_T *eap)
* gives problems when the autocommands make changes to the list of
* buffers or windows...
*/
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_ml.ml_mfp != NULL)
{
@@ -8869,7 +8868,7 @@ aucmd_prepbuf(
win = curwin;
else
#ifdef FEAT_WINDOWS
for (win = firstwin; win != NULL; win = win->w_next)
FOR_ALL_WINDOWS(win)
if (win->w_buffer == buf)
break;
#else
+8
View File
@@ -548,6 +548,10 @@ EXTERN win_T *lastwin; /* last window */
EXTERN win_T *prevwin INIT(= NULL); /* previous window */
# define W_NEXT(wp) ((wp)->w_next)
# define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next)
# define FOR_ALL_TABPAGES(tp) for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
# define FOR_ALL_WINDOWS_IN_TAB(tp, wp) \
for ((wp) = ((tp) == NULL || (tp) == curtab) \
? firstwin : (tp)->tp_firstwin; (wp); (wp) = (wp)->w_next)
/*
* When using this macro "break" only breaks out of the inner loop. Use "goto"
* to break out of the tabpage loop.
@@ -561,6 +565,8 @@ EXTERN win_T *prevwin INIT(= NULL); /* previous window */
# define lastwin curwin
# define W_NEXT(wp) NULL
# define FOR_ALL_WINDOWS(wp) wp = curwin;
# define FOR_ALL_TABPAGES(tp) for (;FALSE;)
# define FOR_ALL_WINDOWS_IN_TAB(tp, wp) wp = curwin;
# define FOR_ALL_TAB_WINDOWS(tp, wp) wp = curwin;
#endif
@@ -595,6 +601,8 @@ EXTERN buf_T *firstbuf INIT(= NULL); /* first buffer */
EXTERN buf_T *lastbuf INIT(= NULL); /* last buffer */
EXTERN buf_T *curbuf INIT(= NULL); /* currently active buffer */
#define FOR_ALL_BUFFERS(buf) for (buf = firstbuf; buf != NULL; buf = buf->b_next)
/* Flag that is set when switching off 'swapfile'. It means that all blocks
* are to be loaded into memory. Shouldn't be global... */
EXTERN int mf_dont_release INIT(= FALSE); /* don't release blocks */
+1 -1
View File
@@ -4130,7 +4130,7 @@ gui_drag_scrollbar(scrollbar_T *sb, long value, int still_dragging)
{
do_check_scrollbind(TRUE);
/* need to update the window right here */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_redr_type > 0)
updateWindow(wp);
setcursor();
+4 -4
View File
@@ -633,7 +633,7 @@ Handle_KAHL_SRCH_AE(
if (error)
return error;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_ml.ml_mfp != NULL
&& SearchData.theFile.parID == buf->b_FSSpec.parID
&& SearchData.theFile.name[0] == buf->b_FSSpec.name[0]
@@ -725,7 +725,7 @@ Handle_KAHL_MOD_AE(
#endif
numFiles = 0;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_ml.ml_mfp != NULL)
{
/* Add this file to the list */
@@ -807,7 +807,7 @@ Handle_KAHL_GTTX_AE(
if (error)
return error;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_ml.ml_mfp != NULL)
if (GetTextData.theFile.parID == buf->b_FSSpec.parID)
{
@@ -6422,7 +6422,7 @@ getTabCount(void)
tabpage_T *tp;
int numTabs = 0;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
++numTabs;
return numTabs;
}
+2 -2
View File
@@ -1402,13 +1402,13 @@ luaV_buffer(lua_State *L)
if (lua_isnumber(L, 1)) /* by number? */
{
int n = lua_tointeger(L, 1);
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_fnum == n) break;
}
else { /* by name */
size_t l;
const char *s = lua_tolstring(L, 1, &l);
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_ffname == NULL || buf->b_sfname == NULL)
{
+4 -4
View File
@@ -1916,7 +1916,7 @@ get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED
#ifdef FEAT_WINDOWS
win_T *w;
for (w = firstwin; w != NULL; w = w->w_next)
FOR_ALL_WINDOWS(w)
#endif
++n;
return scheme_make_integer(n);
@@ -2197,7 +2197,7 @@ get_buffer_by_num(void *data, int argc, Scheme_Object **argv)
fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0));
for (buf = firstbuf; buf; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_fnum == fnum)
return buffer_new(buf);
@@ -2220,7 +2220,7 @@ get_buffer_by_name(void *data, int argc, Scheme_Object **argv)
fname = GUARANTEED_STRING_ARG(prim->name, 0);
buffer = scheme_false;
for (buf = firstbuf; buf; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_ffname == NULL || buf->b_sfname == NULL)
/* empty string */
@@ -2283,7 +2283,7 @@ get_buffer_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED
buf_T *b;
int n = 0;
for (b = firstbuf; b; b = b->b_next) ++n;
FOR_ALL_BUFFERS(b) ++n;
return scheme_make_integer(n);
}
+3 -3
View File
@@ -1534,14 +1534,14 @@ Buffers(...)
if (GIMME == G_SCALAR)
{
i = 0;
for (vimbuf = firstbuf; vimbuf; vimbuf = vimbuf->b_next)
FOR_ALL_BUFFERS(vimbuf)
++i;
XPUSHs(sv_2mortal(newSViv(i)));
}
else
{
for (vimbuf = firstbuf; vimbuf; vimbuf = vimbuf->b_next)
FOR_ALL_BUFFERS(vimbuf)
XPUSHs(newBUFrv(newSV(0), vimbuf));
}
}
@@ -1586,7 +1586,7 @@ Windows(...)
XPUSHs(sv_2mortal(newSViv(win_count())));
else
{
for (vimwin = firstwin; vimwin != NULL; vimwin = W_NEXT(vimwin))
FOR_ALL_WINDOWS(vimwin)
XPUSHs(newWINrv(newSV(0), vimwin));
}
}
+3 -3
View File
@@ -1159,7 +1159,7 @@ static VALUE buffer_s_count(void)
buf_T *b;
int n = 0;
for (b = firstbuf; b != NULL; b = b->b_next)
FOR_ALL_BUFFERS(b)
{
/* Deleted buffers should not be counted
* SegPhault - 01/07/05 */
@@ -1175,7 +1175,7 @@ static VALUE buffer_s_aref(VALUE self UNUSED, VALUE num)
buf_T *b;
int n = NUM2INT(num);
for (b = firstbuf; b != NULL; b = b->b_next)
FOR_ALL_BUFFERS(b)
{
/* Deleted buffers should not be counted
* SegPhault - 01/07/05 */
@@ -1426,7 +1426,7 @@ static VALUE window_s_count(void)
win_T *w;
int n = 0;
for (w = firstwin; w != NULL; w = w->w_next)
FOR_ALL_WINDOWS(w)
n++;
return INT2NUM(n);
#else
+2 -2
View File
@@ -388,7 +388,7 @@ buffercmd(
Tcl_WrongNumArgs(interp, 1, objv, "bufNumber");
return TCL_ERROR;
}
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_fnum == n)
{
@@ -416,7 +416,7 @@ buffercmd(
err = TCL_ERROR;
break;
}
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
name = tclgetbuffer(interp, buf);
if (name == NULL)
+3 -4
View File
@@ -785,7 +785,7 @@ vim_main2(int argc UNUSED, char **argv UNUSED)
win_T *wp;
/* set options in each window for "vimdiff". */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
diff_win_options(wp, TRUE);
}
#endif
@@ -1444,8 +1444,7 @@ getout(int exitval)
for (tp = first_tabpage; tp != NULL; tp = next_tp)
{
next_tp = tp->tp_next;
for (wp = (tp == curtab)
? firstwin : tp->tp_firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS_IN_TAB(tp, wp)
{
if (wp->w_buffer == NULL)
/* Autocmd must have close the buffer already, skip. */
@@ -1468,7 +1467,7 @@ getout(int exitval)
# endif
/* Trigger BufUnload for buffers that are loaded */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_ml.ml_mfp != NULL)
{
bufref_T bufref;
+2 -2
View File
@@ -1864,7 +1864,7 @@ write_viminfo_marks(FILE *fp_out, garray_T *buflist)
#endif
fputs(_("\n# History of marks within files (newest to oldest):\n"), fp_out);
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
/*
* Only write something if buffer has been loaded and at least one
@@ -2018,7 +2018,7 @@ copy_viminfo_marks(
else /* fp_out != NULL */
{
/* This is slow if there are many buffers!! */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_ffname != NULL)
{
home_replace(NULL, buf->b_ffname, name_buf, LSIZE, TRUE);
+2 -2
View File
@@ -796,7 +796,7 @@ mf_release(memfile_T *mfp, int page_count)
if (mfp->mf_fd < 0 && need_release && p_uc)
{
/* find for which buffer this memfile is */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf->b_ml.ml_mfp == mfp)
break;
if (buf != NULL && buf->b_may_swap)
@@ -861,7 +861,7 @@ mf_release_all(void)
bhdr_T *hp;
int retval = FALSE;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
mfp = buf->b_ml.ml_mfp;
if (mfp != NULL)
+4 -4
View File
@@ -739,7 +739,7 @@ ml_open_files(void)
{
buf_T *buf;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (!buf->b_p_ro || buf->b_changed)
ml_open_file(buf);
}
@@ -873,7 +873,7 @@ ml_close_all(int del_file)
{
buf_T *buf;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0
|| vim_strchr(p_cpo, CPO_PRESERVE) == NULL));
#ifdef FEAT_SPELL
@@ -893,7 +893,7 @@ ml_close_notmod(void)
{
buf_T *buf;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (!bufIsChanged(buf))
ml_close(buf, TRUE); /* close all not-modified buffers */
}
@@ -2264,7 +2264,7 @@ ml_sync_all(int check_file, int check_char)
buf_T *buf;
stat_T st;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_ml.ml_mfp == NULL || buf->b_ml.ml_mfp->mf_fname == NULL)
continue; /* no file */
+4 -4
View File
@@ -2814,7 +2814,7 @@ changed_bytes(linenr_T lnum, colnr_T col)
win_T *wp;
linenr_T wlnum;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_p_diff && wp != curwin)
{
redraw_win_later(wp, VALID);
@@ -2924,7 +2924,7 @@ changed_lines(
win_T *wp;
linenr_T wlnum;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_p_diff && wp != curwin)
{
redraw_win_later(wp, VALID);
@@ -3213,7 +3213,7 @@ check_status(buf_T *buf)
{
win_T *wp;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer == buf && wp->w_status_height)
{
wp->w_redr_status = TRUE;
@@ -9481,7 +9481,7 @@ preserve_exit(void)
ml_close_notmod(); /* close all not-modified buffers */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
{
+1 -1
View File
@@ -2849,7 +2849,7 @@ do_check_cursorbind(void)
* loop through the cursorbound windows
*/
VIsual_select = VIsual_active = 0;
for (curwin = firstwin; curwin; curwin = curwin->w_next)
FOR_ALL_WINDOWS(curwin)
{
curbuf = curwin->w_buffer;
/* skip original window and windows with 'noscrollbind' */
+2 -2
View File
@@ -473,7 +473,7 @@ nb_parse_cmd(char_u *cmd)
{
buf_T *buf;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
buf->b_has_sign_column = FALSE;
/* The IDE is breaking the connection. */
@@ -721,7 +721,7 @@ count_changed_buffers(void)
int n;
n = 0;
for (bufp = firstbuf; bufp != NULL; bufp = bufp->b_next)
FOR_ALL_BUFFERS(bufp)
if (bufp->b_changed)
++n;
return n;
+1 -1
View File
@@ -4078,7 +4078,7 @@ check_scrollbind(linenr_T topline_diff, long leftcol_diff)
* loop through the scrollbound windows and scroll accordingly
*/
VIsual_select = VIsual_active = 0;
for (curwin = firstwin; curwin; curwin = curwin->w_next)
FOR_ALL_WINDOWS(curwin)
{
curbuf = curwin->w_buffer;
/* skip original window and windows with 'noscrollbind' */
+6 -6
View File
@@ -6426,7 +6426,7 @@ did_set_string_option(
{
buf_T *buf;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
if (buf != curbuf && *buf->b_p_cm == NUL)
ml_set_crypt_key(buf, buf->b_p_key, oldval);
}
@@ -7959,7 +7959,7 @@ set_bool_option(
char_u hash[UNDO_HASH_SIZE];
buf_T *save_curbuf = curbuf;
for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
FOR_ALL_BUFFERS(curbuf)
{
/* When 'undofile' is set globally: for every buffer, otherwise
* only for the current buffer: Try to read in the undofile,
@@ -8135,7 +8135,7 @@ set_bool_option(
{
win_T *win;
for (win = firstwin; win != NULL; win = win->w_next)
FOR_ALL_WINDOWS(win)
if (win->w_p_pvw && win != curwin)
{
curwin->w_p_pvw = FALSE;
@@ -11823,7 +11823,7 @@ paste_option_changed(void)
if (!old_p_paste)
{
/* save options for each buffer */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
buf->b_p_tw_nopaste = buf->b_p_tw;
buf->b_p_wm_nopaste = buf->b_p_wm;
@@ -11855,7 +11855,7 @@ paste_option_changed(void)
* already on.
*/
/* set options for each buffer */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
buf->b_p_tw = 0; /* textwidth is 0 */
buf->b_p_wm = 0; /* wrapmargin is 0 */
@@ -11891,7 +11891,7 @@ paste_option_changed(void)
else if (old_p_paste)
{
/* restore options for each buffer */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
{
buf->b_p_tw = buf->b_p_tw_nopaste;
buf->b_p_wm = buf->b_p_wm_nopaste;
+69 -48
View File
@@ -13,16 +13,16 @@ msgid ""
msgstr ""
"Project-Id-Version: vim 7.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-03 16:10+0200\n"
"PO-Revision-Date: 2016-02-11 14:42+0200\n"
"POT-Creation-Date: 2016-07-16 16:34+0200\n"
"PO-Revision-Date: 2016-07-16 16:50+0200\n"
"Last-Translator: Antonio Colombo <azc100@gmail.com>\n"
"Language-Team: Antonio Colombo <azc100@gmail.com>\n"
" Vlad Sandrini <vlad.gently@gmail.com>\n"
" Luciano Montanaro <mikelima@cirulla.net>\n"
"Language: Italian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO_8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
" Vlad Sandrini <vlad.gently@gmail.com>\n"
" Luciano Montanaro <mikelima@cirulla.net>\n"
msgid "E831: bf_key_init() called with empty password"
msgstr "E831: chiamata a bf_key_init() con password nulla"
@@ -54,6 +54,9 @@ msgstr "E82: Non riesco ad allocare alcun buffer, esco..."
msgid "E83: Cannot allocate buffer, using other one..."
msgstr "E83: Non riesco ad allocare un buffer, uso l'altro..."
msgid "E931: Buffer cannot be registered"
msgstr "E931: Non riesco a registrare il buffer"
msgid "E515: No buffers were unloaded"
msgstr "E515: Nessun buffer scaricato"
@@ -207,6 +210,7 @@ msgstr " riga=%ld id=%d, nome=%s"
msgid "E902: Cannot connect to port"
msgstr "E902: Non posso commettermi alla porta"
#, c-format
msgid "E917: Cannot use a callback with %s()"
msgstr "E917: Non posso usare callback con %s()"
@@ -222,6 +226,7 @@ msgstr "E920: il file _io necessita di impostare _name"
msgid "E915: in_io buffer requires in_buf or in_name to be set"
msgstr "E915: il buffer in_io necessita di impostare in_buf o in_name"
#, c-format
msgid "E918: buffer must be loaded: %s"
msgstr "E918: il buffer dev'essere caricato: %s"
@@ -582,6 +587,14 @@ msgstr "E722: Manca virgola nel Dizionario: %s"
msgid "E723: Missing end of Dictionary '}': %s"
msgstr "E723: Manca '}' a fine Dizionario: %s"
#, c-format
msgid "E125: Illegal argument: %s"
msgstr "E125: Argomento non ammesso: %s"
#, c-format
msgid "E853: Duplicate argument name: %s"
msgstr "E853: Nome argomento duplicato: %s"
msgid "E724: variable nested too deep for displaying"
msgstr "E724: variabile troppo nidificata per la visualizzazione"
@@ -654,8 +667,8 @@ msgid "E922: expected a dict"
msgstr "E922: aspettavo un Dizionario"
msgid "E923: Second argument of function() must be a list or a dict"
msgstr "E923: Il secondo argomento di function() dev'essere una Lista"
" o un Dizionario"
msgstr ""
"E923: Il secondo argomento di function() dev'essere una Lista o un Dizionario"
msgid ""
"&OK\n"
@@ -710,6 +723,7 @@ msgstr "argomento di reverse()"
msgid "E258: Unable to send to client"
msgstr "E258: Impossibile inviare al client"
#, c-format
msgid "E927: Invalid action: '%s'"
msgstr "E927: Azione non valida: '%s'"
@@ -824,14 +838,6 @@ msgstr "E124: Manca '(': %s"
msgid "E862: Cannot use g: here"
msgstr "E862: Non si può usare g: qui"
#, c-format
msgid "E125: Illegal argument: %s"
msgstr "E125: Argomento non ammesso: %s"
#, c-format
msgid "E853: Duplicate argument name: %s"
msgstr "E853: Nome argomento duplicato: %s"
msgid "E126: Missing :endfunction"
msgstr "E126: Manca :endfunction"
@@ -966,6 +972,10 @@ msgstr " FALLITO"
msgid "E137: Viminfo file is not writable: %s"
msgstr "E137: File viminfo \"%s\" inaccessibile in scrittura"
#, c-format
msgid "E929: Too many viminfo temp files, like %s!"
msgstr "E929: Troppi file temporanei viminfo, come %s!"
#, c-format
msgid "E138: Can't write viminfo file %s!"
msgstr "E138: Non riesco a scrivere il file viminfo %s!"
@@ -1270,9 +1280,8 @@ msgstr "Cerco \"%s\" in \"%s\""
msgid "Searching for \"%s\""
msgstr "Cerco \"%s\""
#, fuzzy, c-format
msgid "not found in '%s': \"%s\""
msgstr "non trovato in '%s: \"%s\""
msgstr "non trovato in '%s': \"%s\""
msgid "Source Vim script"
msgstr "Esegui script Vim"
@@ -1507,6 +1516,9 @@ msgstr ""
msgid "E466: :winpos requires two number arguments"
msgstr "E466: :winpos richiede due argomenti numerici"
msgid "E930: Cannot use :redir inside execute()"
msgstr "E930: Non è possibile usare :redir all'interno di execute()"
msgid "Save Redirection"
msgstr "Salva Redirezione"
@@ -1718,6 +1730,9 @@ msgstr "Espressione"
msgid "Input Line"
msgstr "Riga di Input"
msgid "Debug Line"
msgstr "Riga di Debug"
msgid "E198: cmd_pchar beyond the command length"
msgstr "E198: cmd_pchar dopo la fine del comando"
@@ -1974,11 +1989,6 @@ msgstr "1 carattere"
msgid "%lld characters"
msgstr "%lld caratteri"
#. Explicit typecast avoids warning on Mac OS X 10.6
#, c-format
msgid "%ld characters"
msgstr "%ld caratteri"
msgid "[noeol]"
msgstr "[noeol]"
@@ -2639,6 +2649,7 @@ msgstr "%-5s: %s%*s (Uso: %s)"
msgid ""
"\n"
" a: Find assignments to this symbol\n"
" c: Find functions calling this function\n"
" d: Find functions called by this function\n"
" e: Find this egrep pattern\n"
@@ -2649,6 +2660,7 @@ msgid ""
" t: Find this text string\n"
msgstr ""
"\n"
" a: Trova assegnazioni a questo simbolo\n"
" c: Trova funzioni che chiamano questa\n"
" d: Trova funzioni chiamate da questa\n"
" e: Trova questa espressione egrep\n"
@@ -2656,7 +2668,7 @@ msgstr ""
" g: Trova questa definizione\n"
" i: Trova file che #includono questo file\n"
" s: Trova questo simbolo C\n"
" t: Trova questa stringa\n"
" t: Trova questa stringa di testo\n"
#, c-format
msgid "E625: cannot open cscope database: %s"
@@ -2961,6 +2973,10 @@ msgstr "Non posso aprire come script output: \""
msgid "Vim: Error: Failure to start gvim from NetBeans\n"
msgstr "Vim: Errore: Avvio di gvim da NetBeans non riuscito\n"
msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n"
msgstr "Vim: Errore: Questa versione di Vim non funziona in un"
" terminale Cygwin\n"
msgid "Vim: Warning: Output is not to a terminal\n"
msgstr "Vim: Avviso: Output non diretto a un terminale\n"
@@ -4262,29 +4278,27 @@ msgstr ""
msgid "%ld Cols; "
msgstr "%ld Col.; "
#, c-format
msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
msgstr "Selezionate %s%ld di %ld Righe; %ld di %ld Parole; %ld di %ld Caratt."
#, c-format
msgid ""
"Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld "
"Bytes"
msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes"
msgstr ""
"Selezionate %s%ld di %ld Righe; %ld di %ld Parole; %ld di %ld Caratt.; %ld "
"di %ld Byte"
"Selezionate %s%ld di %ld Righe; %lld di %lld Parole; %lld di %lld Caratt."
#, c-format
msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
msgstr "Col. %s di %s; Riga %ld di %ld; Parola %ld di %ld; Caratt. %ld di %ld"
#, c-format
msgid ""
"Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of "
"%ld"
"Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
"%lld Bytes"
msgstr ""
"Col. %s di %s; Riga %ld di %ld; Parola %ld di %ld; Caratt. %ld di %ld; Byte "
"%ld di %ld"
"Selezionate %s%ld di %ld Righe; %lld di %lld Parole; %lld di %lld Caratt.;"
" %lld di %lld Byte"
msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
msgstr ""
"Col. %s di %s; Riga %ld di %ld; Parola %lld di %lld; Caratt. %lld di %lld"
msgid ""
"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
"%lld of %lld"
msgstr ""
"Col. %s di %s; Riga %ld di %ld; Parola %lld di %lld; Caratt. %lld di %lld;"
" Byte %lld di %lld"
#, c-format
msgid "(+%ld for BOM)"
@@ -4541,6 +4555,7 @@ msgstr "Stampato: '%s'"
msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
msgstr "E244: Nome di charset non ammesso \"%s\" nel fonte di nome \"%s\""
#, c-format
msgid "E244: Illegal quality name \"%s\" in font name \"%s\""
msgstr "E244: Nome di qualità non ammesso \"%s\" nel font di nome \"%s\""
@@ -4579,19 +4594,14 @@ msgstr ""
"\n"
"Non posso impostare il contesto di sicurezza per "
#, c-format
msgid "Could not set security context %s for %s"
msgstr "Non posso impostare il contesto di sicurezza %s per %s"
#, c-format
msgid "Could not get security context %s for %s. Removing it!"
msgstr "Non posso ottenere il contesto di sicurezza %s per %s. Lo rimuovo!"
msgid ""
"\n"
"Cannot execute shell "
msgstr ""
"\n"
"Non riesco a eseguire shell "
msgid ""
"\n"
"Cannot execute shell sh\n"
@@ -4620,6 +4630,13 @@ msgstr ""
"\n"
"Non riesco ad effettuare 'fork'\n"
msgid ""
"\n"
"Cannot execute shell "
msgstr ""
"\n"
"Non riesco a eseguire shell "
msgid ""
"\n"
"Command terminated\n"
@@ -4717,6 +4734,7 @@ msgstr "E376: %%%c non valido nel prefisso della stringa di 'format'"
msgid "E377: Invalid %%%c in format string"
msgstr "E377: %%%c non valido nella stringa di 'format'"
#. nothing found
msgid "E378: 'errorformat' contains no pattern"
msgstr "E378: 'errorformat' non contiene alcun modello"
@@ -6649,6 +6667,7 @@ msgstr "E764: opzione '%s' non impostata"
msgid "E850: Invalid register name"
msgstr "E850: Nome registro non valido"
#, c-format
msgid "E919: Directory not found in '%s': \"%s\""
msgstr "E919: Directory non trovata in '%s': \"%s\""
@@ -6895,6 +6914,7 @@ msgstr ""
msgid "unable to convert %s to vim dictionary"
msgstr "impossibile convertire %s a dizionario vim"
#, c-format
msgid "unable to convert %s to vim list"
msgstr "impossibile convertire %s a Lista vim"
@@ -6926,3 +6946,4 @@ msgid ""
msgstr ""
"Impostazione di percorso non riuscita: sys.path non è una lista\n"
"Dovresti aggiungere vim.VIM_SPECIAL_PATH a sys.path"
+1 -1
View File
@@ -23,7 +23,7 @@ void win_redraw_last_status(frame_T *frp);
void win_redr_status_matches(expand_T *xp, int num_matches, char_u **matches, int match, int showtail);
void win_redr_status(win_T *wp);
int stl_connected(win_T *wp);
int get_keymap_str(win_T *wp, char_u *buf, int len);
int get_keymap_str(win_T *wp, char_u *fmt, char_u *buf, int len);
void screen_putchar(int c, int row, int col, int attr);
void screen_getbytes(int row, int col, char_u *bytes, int *attrp);
void screen_puts(char_u *text, int row, int col, int attr);
+1 -1
View File
@@ -2040,7 +2040,7 @@ qf_jump(
if (cmdmod.tab != 0)
wp = NULL;
else
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer != NULL && wp->w_buffer->b_help)
break;
if (wp != NULL && wp->w_buffer->b_nwindows > 0)
+12 -11
View File
@@ -730,7 +730,7 @@ update_screen(int type)
#ifdef FEAT_WINDOWS
/* Reset b_mod_set flags. Going through all windows is probably faster
* than going through all buffers (there could be many buffers). */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
wp->w_buffer->b_mod_set = FALSE;
#else
curbuf->b_mod_set = FALSE;
@@ -962,7 +962,7 @@ update_debug_sign(buf_T *buf, linenr_T lnum)
update_prepare();
# ifdef FEAT_WINDOWS
for (wp = firstwin; wp; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
if (wp->w_redr_type != 0)
win_update(wp);
@@ -6282,7 +6282,7 @@ status_redraw_all(void)
{
win_T *wp;
for (wp = firstwin; wp; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_status_height)
{
wp->w_redr_status = TRUE;
@@ -6298,7 +6298,7 @@ status_redraw_curbuf(void)
{
win_T *wp;
for (wp = firstwin; wp; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_status_height != 0 && wp->w_buffer == curbuf)
{
wp->w_redr_status = TRUE;
@@ -6314,7 +6314,7 @@ redraw_statuslines(void)
{
win_T *wp;
for (wp = firstwin; wp; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_redr_status)
win_redr_status(wp);
if (redraw_tabline)
@@ -6778,7 +6778,7 @@ win_redr_status(win_T *wp)
screen_fill(row, row + 1, len + W_WINCOL(wp),
this_ru_col + W_WINCOL(wp), fillchar, fillchar, attr);
if (get_keymap_str(wp, NameBuff, MAXPATHL)
if (get_keymap_str(wp, (char_u *)"<%s>", NameBuff, MAXPATHL)
&& (int)(this_ru_col - len) > (int)(STRLEN(NameBuff) + 1))
screen_puts(NameBuff, row, (int)(this_ru_col - STRLEN(NameBuff)
- 1 + W_WINCOL(wp)), attr);
@@ -6873,6 +6873,7 @@ stl_connected(win_T *wp)
int
get_keymap_str(
win_T *wp,
char_u *fmt, /* format string containing one %s item */
char_u *buf, /* buffer for the result */
int len) /* length of buffer */
{
@@ -6905,9 +6906,7 @@ get_keymap_str(
#endif
p = (char_u *)"lang";
}
if ((int)(STRLEN(p) + 3) < len)
sprintf((char *)buf, "<%s>", p);
else
if (vim_snprintf((char *)buf, len, (char *)fmt, p) > len - 1)
buf[0] = NUL;
#ifdef FEAT_EVAL
vim_free(s);
@@ -10195,7 +10194,9 @@ showmode(void)
MSG_PUTS_ATTR(_(" Arabic"), attr);
else
# endif
MSG_PUTS_ATTR(_(" (lang)"), attr);
if (get_keymap_str(curwin, (char_u *)" (%s)",
NameBuff, MAXPATHL))
MSG_PUTS_ATTR(NameBuff, attr);
}
#endif
if ((State & INSERT) && p_paste)
@@ -10388,7 +10389,7 @@ draw_tabline(void)
else
#endif
{
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
++tabcount;
tabwidth = (Columns - 1 + tabcount / 2) / tabcount;
+20 -7
View File
@@ -4728,7 +4728,7 @@ current_search(
}
/*
* Check if the pattern is one character or zero-width.
* Check if the pattern is one character long or zero-width.
* If move is TRUE, check from the beginning of the buffer, else from the
* current cursor position.
* Returns TRUE, FALSE or -1 for failure.
@@ -4743,10 +4743,15 @@ is_one_char(char_u *pattern, int move)
int save_called_emsg = called_emsg;
int flag = 0;
if (pattern == NULL)
pattern = spats[last_idx].pat;
if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH,
SEARCH_KEEP, &regmatch) == FAIL)
return -1;
/* init startcol correctly */
regmatch.startpos[0].col = -1;
/* move to match */
if (move)
clearpos(&pos)
@@ -4757,22 +4762,30 @@ is_one_char(char_u *pattern, int move)
flag = SEARCH_START;
}
if (searchit(curwin, curbuf, &pos, FORWARD, spats[last_idx].pat, 1,
if (searchit(curwin, curbuf, &pos, FORWARD, pattern, 1,
SEARCH_KEEP + flag, RE_SEARCH, 0, NULL) != FAIL)
{
/* Zero-width pattern should match somewhere, then we can check if
* start and end are in the same position. */
called_emsg = FALSE;
nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
pos.lnum, (colnr_T)0, NULL);
do
{
regmatch.startpos[0].col++;
nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
pos.lnum, regmatch.startpos[0].col, NULL);
if (!nmatched)
break;
} while (regmatch.startpos[0].col < pos.col);
if (!called_emsg)
{
result = (nmatched != 0
&& regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
&& regmatch.startpos[0].col == regmatch.endpos[0].col);
if (!result && inc(&pos) >= 0 && pos.col == regmatch.endpos[0].col)
result = TRUE;
/* one char width */
if (!result && inc(&pos) >= 0 && pos.col == regmatch.endpos[0].col)
result = TRUE;
}
}
called_emsg |= save_called_emsg;
+2 -2
View File
@@ -2875,7 +2875,7 @@ spell_free_all(void)
buf_T *buf;
/* Go through all buffers and handle 'spelllang'. <VN> */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
ga_clear(&buf->b_s.b_langp);
while (first_lang != NULL)
@@ -2911,7 +2911,7 @@ spell_reload(void)
spell_free_all();
/* Go through all buffers and handle 'spelllang'. */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
/* Only load the wordlists when 'spelllang' is set and there is a
* window for this buffer in which 'spell' is set. */
+1 -1
View File
@@ -1913,7 +1913,7 @@ set_termname(char_u *term)
* loaded.
*/
set_bufref(&old_curbuf, curbuf);
for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
FOR_ALL_BUFFERS(curbuf)
{
if (curbuf->b_ml.ml_mfp != NULL)
apply_autocmds(EVENT_TERMCHANGED, NULL, NULL, FALSE,
+1
View File
@@ -171,6 +171,7 @@ NEW_TESTS = test_arglist.res \
test_cscope.res \
test_digraph.res \
test_farsi.res \
test_gn.res \
test_hardcopy.res \
test_history.res \
test_increment.res \
-59
View File
@@ -4,8 +4,6 @@ Note that the end-of-line moves the cursor to the next test line.
Also test match() and matchstr()
Also test the gn command and repeating it.
STARTTEST
:so small.vim
/^start:/
@@ -53,35 +51,6 @@ dit
:put =match('abc', '\zs', 2, 1) " 2
:put =match('abc', '\zs', 3, 1) " 3
:put =match('abc', '\zs', 4, 1) " -1
/^foobar
gncsearchmatch/one\_s*two\_s
:1
gnd
/[a]bcdx
:1
2gnd/join
/$
0gnd
/\>\zs
0gnd/^
gnd$h/\zs
gnd/[u]niquepattern/s
vlgnd
/mother
:set selection=exclusive
$cgNmongoose/i
cgnj
:" Make sure there is no other match y uppercase.
/x59
gggnd
:" test repeating dgn
/^Johnny
ggdgn.
:" test repeating gUgn
/^Depp
gggUgn.
gg/a:0\@!\zs\d\+
nygnop
:/^start:/,/^end:/wq! test.out
ENDTEST
@@ -103,32 +72,4 @@ innertext object
</b>
</begin>
SEARCH:
foobar
one
two
abcdx | abcdx | abcdx
join
lines
zero width pattern
delete first and last chars
uniquepattern uniquepattern
my very excellent mother just served us nachos
for (i=0; i<=10; i++)
a:10
a:1
a:20
Y
text
Y
--1
Johnny
--2
Johnny
--3
Depp
--4
Depp
--5
end:
-26
View File
@@ -42,30 +42,4 @@ a
3
-1
SEARCH:
searchmatch
abcdx | | abcdx
join lines
zerowidth pattern
elete first and last char
uniquepattern
my very excellent mongoose just served us nachos
for (j=0; i<=10; i++)
a:10
a:1
1
a:20
text
Y
--1
--2
--3
DEPP
--4
DEPP
--5
end:
+93
View File
@@ -0,0 +1,93 @@
" Test for gn command
func Test_gn_command()
noa new
" replace a single char by itsself quoted:
call setline('.', 'abc x def x ghi x jkl')
let @/='x'
exe "norm! cgn'x'\<esc>.."
call assert_equal("abc 'x' def 'x' ghi 'x' jkl", getline('.'))
sil! %d_
" simple search match
call setline('.', 'foobar')
let @/='foobar'
exe "norm! gncsearchmatch"
call assert_equal('searchmatch', getline('.'))
sil! %d _
" replace a multi-line match
call setline('.', ['', 'one', 'two'])
let @/='one\_s*two\_s'
exe "norm! gnceins\<CR>zwei"
call assert_equal(['','eins','zwei'], getline(1,'$'))
sil! %d _
" test count argument
call setline('.', ['', 'abcdx | abcdx | abcdx'])
let @/='[a]bcdx'
exe "norm! 2gnd"
call assert_equal(['','abcdx | | abcdx'], getline(1,'$'))
sil! %d _
" join lines
call setline('.', ['join ', 'lines'])
let @/='$'
exe "norm! 0gnd"
call assert_equal(['join lines'], getline(1,'$'))
sil! %d _
" zero-width match
call setline('.', ['', 'zero width pattern'])
let @/='\>\zs'
exe "norm! 0gnd"
call assert_equal(['', 'zerowidth pattern'], getline(1,'$'))
sil! %d _
" delete first and last chars
call setline('.', ['delete first and last chars'])
let @/='^'
exe "norm! 0gnd$"
let @/='\zs'
exe "norm! gnd"
call assert_equal(['elete first and last char'], getline(1,'$'))
sil! %d _
" using visual mode
call setline('.', ['', 'uniquepattern uniquepattern'])
exe "norm! /[u]niquepattern/s\<cr>vlgnd"
call assert_equal(['', ' uniquepattern'], getline(1,'$'))
sil! %d _
" backwards search
call setline('.', ['my very excellent mother just served us nachos'])
let @/='mother'
exe "norm! $cgNmongoose"
call assert_equal(['my very excellent mongoose just served us nachos'], getline(1,'$'))
sil! %d _
" search for single char
call setline('.', ['','for (i=0; i<=10; i++)'])
let @/='i'
exe "norm! cgnj"
call assert_equal(['','for (j=0; i<=10; i++)'], getline(1,'$'))
sil! %d _
" search hex char
call setline('.', ['','Y'])
set noignorecase
let @/='\%x59'
exe "norm! gnd"
call assert_equal(['',''], getline(1,'$'))
sil! %d _
" test repeating gdn
call setline('.', ['', '1', 'Johnny', '2', 'Johnny', '3'])
let @/='Johnny'
exe "norm! dgn."
call assert_equal(['','1', '', '2', '', '3'], getline(1,'$'))
sil! %d _
" test repeating gUgn
call setline('.', ['', '1', 'Depp', '2', 'Depp', '3'])
let @/='Depp'
exe "norm! gUgn."
call assert_equal(['', '1', 'DEPP', '2', 'DEPP', '3'], getline(1,'$'))
sil! %d _
" test using look-ahead assertions
call setline('.', ['a:10', '', 'a:1', '', 'a:20'])
let @/='a:0\@!\zs\d\+'
exe "norm! 2nygno\<esc>p"
call assert_equal(['a:10', '', 'a:1', '1', '', 'a:20'], getline(1,'$'))
sil! %d _
endfu
" vim: tabstop=2 shiftwidth=0 expandtab
+8
View File
@@ -773,6 +773,14 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2102,
/**/
2101,
/**/
2100,
/**/
2099,
/**/
2098,
/**/
+22 -29
View File
@@ -209,7 +209,7 @@ newwindow:
/* cursor to preview window */
case 'P':
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_p_pvw)
break;
if (wp == NULL)
@@ -1372,7 +1372,7 @@ win_valid(win_T *win)
if (win == NULL)
return FALSE;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp == win)
return TRUE;
return FALSE;
@@ -1387,7 +1387,7 @@ win_count(void)
win_T *wp;
int count = 0;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
++count;
return count;
}
@@ -3717,7 +3717,7 @@ valid_tabpage(tabpage_T *tpc)
{
tabpage_T *tp;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
if (tp == tpc)
return TRUE;
return FALSE;
@@ -4017,7 +4017,7 @@ tabpage_move(int nr)
first_tabpage = curtab->tp_next;
else
{
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
if (tp->tp_next == curtab)
break;
if (tp == NULL) /* "cannot happen" */
@@ -4096,7 +4096,7 @@ win_find_nr(int winnr)
win_T *wp;
# ifdef FEAT_WINDOWS
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (--winnr == 0)
break;
return wp;
@@ -4117,9 +4117,7 @@ win_find_tabpage(win_T *win)
win_T *wp;
tabpage_T *tp;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
for (wp = (tp == curtab ? firstwin : tp->tp_firstwin);
wp != NULL; wp = wp->w_next)
FOR_ALL_TAB_WINDOWS(tp, wp)
if (wp == win)
return tp;
return NULL;
@@ -4409,7 +4407,7 @@ buf_jump_open_win(buf_T *buf)
wp = curwin;
# ifdef FEAT_WINDOWS
else
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer == buf)
break;
if (wp != NULL)
@@ -4433,7 +4431,7 @@ buf_jump_open_tab(buf_T *buf)
if (wp != NULL)
return wp;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
if (tp != curtab)
{
for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
@@ -4612,7 +4610,7 @@ win_free(
if (prevwin == wp)
prevwin = NULL;
for (ttp = first_tabpage; ttp != NULL; ttp = ttp->tp_next)
FOR_ALL_TABPAGES(ttp)
if (ttp->tp_prevwin == wp)
ttp->tp_prevwin = NULL;
}
@@ -4625,7 +4623,7 @@ win_free(
/* Remove the window from the b_wininfo lists, it may happen that the
* freed memory is re-used for another window. */
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
FOR_ALL_BUFFERS(buf)
for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next)
if (wip->wi_win == wp)
wip->wi_win = NULL;
@@ -4868,7 +4866,7 @@ win_size_save(garray_T *gap)
ga_init2(gap, (int)sizeof(int), 1);
if (ga_grow(gap, win_count() * 2) == OK)
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
((int *)gap->ga_data)[gap->ga_len++] =
wp->w_width + wp->w_vsep_width;
@@ -4893,7 +4891,7 @@ win_size_restore(garray_T *gap)
for (j = 0; j < 2; ++j)
{
i = 0;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
win_setheight_win(((int *)gap->ga_data)[i++], wp);
@@ -5389,7 +5387,7 @@ win_setminheight(void)
{
/* TODO: handle vertical splits */
room = -p_wh;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
room += wp->w_height - p_wmh;
if (room >= 0)
break;
@@ -6354,7 +6352,7 @@ min_rows(void)
#ifdef FEAT_WINDOWS
total = 0;
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
{
n = frame_minheight(tp->tp_topframe, NULL);
if (total < n)
@@ -6384,7 +6382,7 @@ only_one_window(void)
if (first_tabpage->tp_next != NULL)
return FALSE;
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
if (wp->w_buffer != NULL
&& (!((wp->w_buffer->b_help && !curbuf->b_help)
# ifdef FEAT_QUICKFIX
@@ -7101,7 +7099,7 @@ win_getid(typval_T *argvars)
tabpage_T *tp;
int tabnr = get_tv_number(&argvars[1]);
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
if (--tabnr == 0)
break;
if (tp == NULL)
@@ -7122,9 +7120,7 @@ win_gotoid(typval_T *argvars)
tabpage_T *tp;
int id = get_tv_number(&argvars[0]);
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
for (wp = tp == curtab ? firstwin : tp->tp_firstwin;
wp != NULL; wp = wp->w_next)
FOR_ALL_TAB_WINDOWS(tp, wp)
if (wp->w_id == id)
{
goto_tabpage_win(tp, wp);
@@ -7142,10 +7138,9 @@ win_id2tabwin(typval_T *argvars, list_T *list)
int tabnr = 1;
int id = get_tv_number(&argvars[0]);
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
FOR_ALL_TABPAGES(tp)
{
for (wp = tp == curtab ? firstwin : tp->tp_firstwin;
wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS_IN_TAB(tp, wp)
{
if (wp->w_id == id)
{
@@ -7169,7 +7164,7 @@ win_id2win(typval_T *argvars)
int nr = 1;
int id = get_tv_number(&argvars[0]);
for (wp = firstwin; wp != NULL; wp = wp->w_next)
FOR_ALL_WINDOWS(wp)
{
if (wp->w_id == id)
return nr;
@@ -7185,9 +7180,7 @@ win_findbuf(typval_T *argvars, list_T *list)
tabpage_T *tp;
int bufnr = get_tv_number(&argvars[0]);
for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
for (wp = tp == curtab ? firstwin : tp->tp_firstwin;
wp != NULL; wp = wp->w_next)
FOR_ALL_TAB_WINDOWS(tp, wp)
if (wp->w_buffer->b_fnum == bufnr)
list_append_number(list, wp->w_id);
}
+1 -1
View File
@@ -1319,7 +1319,7 @@ get_window(
{
win_T *wp = NULL; /* window filename is in */
for (wp = firstwin; wp != NULL; wp = W_NEXT(wp))
FOR_ALL_WINDOWS(wp)
if (buf == wp->w_buffer)
break;
return wp;