diff --git a/.cirrus.yml b/.cirrus.yml index 8e764ae5ef..cfe1d8e38c 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -13,7 +13,6 @@ freebsd_task: image_family: freebsd-12-4 timeout_in: 20m install_script: - - pkg update -f - pkg install -y gettext build_script: - NPROC=$(getconf _NPROCESSORS_ONLN) diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index 1157ff2567..0000000000 --- a/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -service_name: github-actions diff --git a/.github/CODEOWNERS_vim b/.github/CODEOWNERS_vim index aeec2713f4..03c269cf14 100644 --- a/.github/CODEOWNERS_vim +++ b/.github/CODEOWNERS_vim @@ -18,6 +18,7 @@ runtime/autoload/netrwFileHandlers.vim @cecamp runtime/autoload/netrwSettings.vim @cecamp runtime/autoload/php.vim @david-szabo97 runtime/autoload/rubycomplete.vim @segfault @dkearns +runtime/autoload/rust.vim @lilyball runtime/autoload/tar.vim @cecamp runtime/autoload/vimball.vim @cecamp runtime/autoload/xmlformat.vim @chrisbra @@ -150,7 +151,9 @@ runtime/ftplugin/go.vim @dbarnett runtime/ftplugin/gprof.vim @dpelle runtime/ftplugin/haml.vim @tpope runtime/ftplugin/hare.vim @rsaihe +runtime/ftplugin/heex.vim @cvincent runtime/ftplugin/hgcommit.vim @k-takata +runtime/ftplugin/hog.vim @wtfbbqhax runtime/ftplugin/html.vim @dkearns runtime/ftplugin/i3config.vim @hiqua runtime/ftplugin/icon.vim @dkearns @@ -180,13 +183,16 @@ runtime/ftplugin/pascal.vim @dkearns runtime/ftplugin/pbtxt.vim @lakshayg runtime/ftplugin/pdf.vim @tpope runtime/ftplugin/perl.vim @petdance @dkearns +runtime/ftplugin/php.vim @dkearns runtime/ftplugin/pod.vim @petdance @dkearns runtime/ftplugin/poefilter.vim @ObserverOfTime runtime/ftplugin/postscr.vim @mrdubya runtime/ftplugin/ps1.vim @heaths runtime/ftplugin/ps1xml.vim @heaths +runtime/ftplugin/pymanifest.vim @ObserverOfTime runtime/ftplugin/python.vim @tpict runtime/ftplugin/qb64.vim @dkearns +runtime/ftplugin/qml.vim @ChaseKnowlden runtime/ftplugin/r.vim @jalvesaq runtime/ftplugin/racket.vim @benknoble runtime/ftplugin/readline.vim @dkearns @@ -197,10 +203,12 @@ runtime/ftplugin/routeros.vim @zainin runtime/ftplugin/rrst.vim @jalvesaq runtime/ftplugin/rst.vim @marshallward runtime/ftplugin/ruby.vim @tpope @dkearns +runtime/ftplugin/rust.vim @lilyball runtime/ftplugin/sass.vim @tpope runtime/ftplugin/scala.vim @derekwyatt runtime/ftplugin/scss.vim @tpope runtime/ftplugin/sdoc.vim @gpanders +runtime/ftplugin/sed.vim @dkearns runtime/ftplugin/sh.vim @dkearns runtime/ftplugin/solution.vim @dkearns runtime/ftplugin/spec.vim @ignatenkobrain @@ -215,6 +223,7 @@ runtime/ftplugin/toml.vim @averms runtime/ftplugin/tt2html.vim @petdance runtime/ftplugin/typescript.vim @dkearns runtime/ftplugin/typescriptreact.vim @dkearns +runtime/ftplugin/unison.vim @chuwy runtime/ftplugin/vdf.vim @ObserverOfTime runtime/ftplugin/wast.vim @rhysd runtime/ftplugin/wget.vim @dkearns @@ -251,6 +260,7 @@ runtime/indent/go.vim @dbarnett runtime/indent/gyp.vim @ObserverOfTime runtime/indent/haml.vim @tpope runtime/indent/hare.vim @rsaihe +runtime/indent/hog.vim @wtfbbqhax runtime/indent/idlang.vim @dkearns runtime/indent/j.vim @glts runtime/indent/java.vim @xuhdev @@ -258,6 +268,7 @@ runtime/indent/javascript.vim @bounceme runtime/indent/json.vim @elzr runtime/indent/jsonc.vim @izhakjakov runtime/indent/julia.vim @carlobaldassi +runtime/indent/krl.vim @KnoP-01 runtime/indent/ld.vim @dkearns runtime/indent/less.vim @genoma runtime/indent/liquid.vim @tpope @@ -274,8 +285,10 @@ runtime/indent/postscr.vim @mrdubya runtime/indent/prolog.vim @dkearns runtime/indent/ps1.vim @heaths runtime/indent/qb64.vim @dkearns +runtime/indent/qml.vim @ChaseKnowlden runtime/indent/r.vim @jalvesaq runtime/indent/racket.vim @benknoble +runtime/indent/rapid.vim @KnoP-01 runtime/indent/readline.vim @dkearns runtime/indent/rhelp.vim @jalvesaq runtime/indent/rmd.vim @jalvesaq @@ -377,6 +390,7 @@ runtime/syntax/hare.vim @rsaihe runtime/syntax/haskell.vim @coot runtime/syntax/hgcommit.vim @k-takata runtime/syntax/hitest.vim @lacygoill +runtime/syntax/hog.vim @wtfbbqhax runtime/syntax/hollywood.vim @sodero runtime/syntax/html.vim @dkearns runtime/syntax/i3config.vim @hiqua @@ -389,6 +403,7 @@ runtime/syntax/javascript.vim @fleiner runtime/syntax/jsonc.vim @izhakjakov runtime/syntax/julia.vim @carlobaldassi runtime/syntax/kconfig.vim @chrisbra +runtime/syntax/krl.vim @KnoP-01 runtime/syntax/less.vim @genoma runtime/syntax/lex.vim @cecamp runtime/syntax/liquid.vim @tpope @@ -428,10 +443,13 @@ runtime/syntax/prolog.vim @XVilka runtime/syntax/ps1.vim @heaths runtime/syntax/ps1xml.vim @heaths runtime/syntax/psl.vim @danielkho +runtime/syntax/pymanifest.vim @ObserverOfTime runtime/syntax/qb64.vim @dkearns +runtime/syntax/qml.vim @ChaseKnowlden runtime/syntax/r.vim @jalvesaq runtime/syntax/racket.vim @benknoble runtime/syntax/raml.vim @in3d +runtime/syntax/rapid.vim @KnoP-01 runtime/syntax/ratpoison.vim @trapd00r runtime/syntax/rc.vim @chrisbra runtime/syntax/rcs.vim @hdima @@ -477,6 +495,7 @@ runtime/syntax/tt2js.vim @petdance runtime/syntax/typescript.vim @HerringtonDarkholme runtime/syntax/typescriptcommon.vim @HerringtonDarkholme runtime/syntax/typescriptreact.vim @HerringtonDarkholme +runtime/syntax/unison.vim @chuwy runtime/syntax/vdf.vim @ObserverOfTime runtime/syntax/vim.vim @cecamp runtime/syntax/vroom.vim @dbarnett diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000000..9abc870b08 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,60 @@ +# list of labels and minimatch globs to match to apply the label. + +CI: +- any: ['.cirrus.yml'] +- any: ['.github/dependabot.yml'] +- any: ['.github/labeler.yml'] +- any: ['.github/workflows/*'] +- any: ['.appveyor.yml'] +- any: ['.codecov.yml'] + +translation: +- any: ['src/po/*.po'] + +if_lua: +- any: ['src/if_lua.c'] +- any: ['src/proto/if_lua.pro'] +- any: ['runtime/doc/if_lua.txt'] + +if_mzscheme: +- any: ['src/if_mzsch.c'] +- any: ['src/if_mzsch.h'] +- any: ['src/proto/if_mzsch.pro'] +- any: ['runtime/doc/if_mzsch.txt'] + +if_perl: +- any: ['src/if_perl.xs'] +- any: ['src/if_perlsfio.c'] +- any: ['src/proto/if_perl.pro'] +- any: ['src/proto/if_perlsfio.pro'] +- any: ['runtime/doc/if_perl.txt'] + +if_python: +- any: ['src/if_py_both.h'] +- any: ['runtime/doc/if_pyth.txt'] +- any: ['src/if_python.c'] +- any: ['src/if_python3.c'] +- any: ['src/proto/if_python.pro'] +- any: ['src/proto/if_python3.pro'] + +if_ruby: +- any: ['src/if_ruby.c'] +- any: ['src/proto/if_ruby.pro'] +- any: ['runtime/doc/if_ruby.txt'] + +if_tcl: +- any: ['src/if_tcl.c'] +- any: ['src/proto/if_tcl.pro'] +- any: ['runtime/doc/if_tcl.txt'] + +runtime: +- any: ['runtime/ftplugin'] +- any: ['runtime/syntax'] +- any: ['runtime/indent'] +- any: ['runtime/pack/dist/opt/termdebug/plugin/termdebug.vim'] + +termdebug: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim + +netrw: +- any: ['runtime/plugin/netrwPlugin.vim'] +- any: ['runtime/autoload/netrw*'] diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml new file mode 100644 index 0000000000..e4ed948698 --- /dev/null +++ b/.github/workflows/label.yml @@ -0,0 +1,24 @@ +# This workflow will triage pull requests and apply a label based on the +# paths that are modified in the pull request. +# +# To use this workflow, you will need to set up a .github/labeler.yml +# file with configuration. For more information, see: +# https://github.com/actions/labeler + +name: Labeler +on: [pull_request_target] + +jobs: + label: + + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + + steps: + - uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + configuration-path: .github/labeler.yml + sync-labels: '' diff --git a/LICENSE b/LICENSE index ecfbe5534e..6c5c05b013 100644 --- a/LICENSE +++ b/LICENSE @@ -21,8 +21,8 @@ II) It is allowed to distribute a modified (or extended) version of Vim, maintainer will do with your changes and under what license they will be distributed is negotiable. If there has been no negotiation then this license, or a later version, also applies to your changes. - The current maintainer is Bram Moolenaar . If this - changes it will be announced in appropriate places (most likely + The current maintainers are listed here: https://github.com/orgs/vim/people. + If this changes it will be announced in appropriate places (most likely vim.sf.net, www.vim.org and/or comp.editors). When it is completely impossible to contact the maintainer, the obligation to send him your changes ceases. Once the maintainer has confirmed that he has diff --git a/README.txt b/README.txt index ce3ed73bc7..159e8aec20 100644 --- a/README.txt +++ b/README.txt @@ -122,12 +122,14 @@ If you still have problems or any other questions, use one of the mailing lists to discuss them with Vim users and developers: https://www.vim.org/maillist.php -If nothing else works, report bugs directly: - Bram Moolenaar +If nothing else works, report bugs directly to the vim-dev mailing list: + MAIN AUTHOR -Send any other comments, patches, flowers and suggestions to: +Most of Vim was created by Bram Moolenaar |Bram-Moolenaar| - Bram Moolenaar E-mail: Bram@vim.org +Send any other comments, patches, flowers and suggestions to the vim-dev mailing list: + + diff --git a/README_vim.md b/README_vim.md index 5a11cf0070..39de098cf3 100644 --- a/README_vim.md +++ b/README_vim.md @@ -1,17 +1,21 @@ -[![Vim Logo](https://github.com/vim/vim/raw/master/runtime/vimlogo.gif)](https://www.vim.org) +# [![Vim The editor](https://github.com/vim/vim/raw/master/runtime/vimlogo.gif)](https://www.vim.org) -[![Github Build status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) [![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim) [![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master) [![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim) [![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim) [![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim) [![Fossies codespell report](https://fossies.org/linux/test/vim-master.tar.gz/codespell.svg)](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html) - -For translations of this README see the end. +[![Github Build status](https://github.com/vim/vim/workflows/GitHub%20CI/badge.svg)](https://github.com/vim/vim/actions?query=workflow%3A%22GitHub+CI%22) +[![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) +[![Cirrus Build Status](https://api.cirrus-ci.com/github/vim/vim.svg)](https://cirrus-ci.com/github/vim/vim) +[![Coverage Status](https://codecov.io/gh/vim/vim/coverage.svg?branch=master)](https://codecov.io/gh/vim/vim?branch=master) +[![Coverity Scan](https://scan.coverity.com/projects/241/badge.svg)](https://scan.coverity.com/projects/vim) +[![Debian CI](https://badges.debian.net/badges/debian/testing/vim/version.svg)](https://buildd.debian.org/vim) +[![Packages](https://repology.org/badge/tiny-repos/vim.svg)](https://repology.org/metapackage/vim) +[![Fossies codespell report](https://fossies.org/linux/test/vim-master.tar.gz/codespell.svg)](https://fossies.org/linux/test/vim-master.tar.gz/codespell.html) If you find a bug or want to discuss the best way to add a new feature, please -open an [issue](https://github.com/vim/vim/issues). +[open an issue](https://github.com/vim/vim/issues/new/choose). If you have a question or want to discuss the best way to do something with Vim, you can use [StackExchange](https://vi.stackexchange.com/) or one of the [Maillists](https://www.vim.org/community.php). - -## What is Vim? ## +## What is Vim? Vim is a greatly improved version of the good old UNIX editor [Vi](https://en.wikipedia.org/wiki/Vi). Many new @@ -35,7 +39,7 @@ Amiga DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained. For Vim9 script see [README_VIM9](README_VIM9.md). -## Distribution ## +## Distribution You can often use your favorite package manager to install Vim. On Mac and Linux a small version of Vim is pre-installed, you still need to install Vim @@ -55,48 +59,45 @@ Some popular places to get the latest Vim: * Get a Windows executable from the [vim-win32-installer](https://github.com/vim/vim-win32-installer/releases) repository. - - -## Compiling ## +## Compiling If you obtained a binary distribution you don't need to compile Vim. If you obtained a source distribution, all the stuff for compiling Vim is in the -[`src`](/src) directory. See [`src/INSTALL`](src/INSTALL) for instructions. +[`src`](./src/) directory. See [`src/INSTALL`](./src/INSTALL) for instructions. - -## Installation ## +## Installation See one of these files for system-specific instructions. Either in the [READMEdir directory](./READMEdir/) (in the repository) or the top directory (if you unpack an archive): - README_ami.txt Amiga - README_unix.txt Unix - README_dos.txt MS-DOS and MS-Windows - README_mac.txt Macintosh - README_haiku.txt Haiku - README_vms.txt VMS +``` +README_ami.txt Amiga +README_unix.txt Unix +README_dos.txt MS-DOS and MS-Windows +README_mac.txt Macintosh +README_haiku.txt Haiku +README_vms.txt VMS +``` There are other `README_*.txt` files, depending on the distribution you used. - -## Documentation ## +## Documentation The Vim tutor is a one hour training course for beginners. Often it can be started as `vimtutor`. See `:help tutor` for more information. The best is to use `:help` in Vim. If you don't have an executable yet, read -[`runtime/doc/help.txt`](/runtime/doc/help.txt). +[`runtime/doc/help.txt`](./runtime/doc/help.txt). It contains pointers to the other documentation files. The User Manual reads like a book and is recommended to learn to use Vim. See `:help user-manual`. - -## Copying ## +## Copying Vim is Charityware. You can use and copy it as much as you like, but you are encouraged to make a donation to help orphans in Uganda. Please read the file -[`runtime/doc/uganda.txt`](runtime/doc/uganda.txt) +[`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt) for details (do `:help uganda` inside Vim). Summary of the license: There are no restrictions on using or distributing an @@ -105,28 +106,25 @@ text must always be included. For modified versions, a few restrictions apply. The license is GPL compatible, you may compile Vim with GPL libraries and distribute it. - -## Sponsoring ## +## Sponsoring Fixing bugs and adding new features takes a lot of time and effort. To show your appreciation for the work and motivate Bram and others to continue working on Vim please send a donation. Since Bram is back to a paid job the money will now be used to help children -in Uganda. See [`runtime/doc/uganda.txt`](runtime/doc/uganda.txt). But +in Uganda. See [`runtime/doc/uganda.txt`](./runtime/doc/uganda.txt). But at the same time donations increase Bram's motivation to keep working on Vim! For the most recent information about sponsoring look on the Vim web site: https://www.vim.org/sponsor/ - -## Contributing ## +## Contributing If you would like to help make Vim better, see the -[CONTRIBUTING.md](/CONTRIBUTING.md) file. +[CONTRIBUTING.md](./CONTRIBUTING.md) file. - -## Information ## +## Information If you are on macOS, you can use [Macvim](https://macvim-dev.github.io/macvim/). @@ -141,14 +139,15 @@ If you still have problems or any other questions, use one of the mailing lists to discuss them with Vim users and developers: https://www.vim.org/maillist.php -If nothing else works, report bugs directly: - Bram Moolenaar +If nothing else works, report bugs directly to the vim-dev mailing list: + `` +## Main author -## Main author ## - -Send any other comments, patches, flowers and suggestions to: - Bram Moolenaar +Most of Vim was created by Bram Moolenaar `` +[Bram-Moolenaar](https://vimhelp.org/version9.txt.html#Bram-Moolenaar) +Send any other comments, patches, flowers and suggestions to the vim-dev mailing list: + `` This is `README.md` for version 9.0 of Vim: Vi IMproved. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000000..7d9c77d275 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,8 @@ +# Security Policy + +## Reporting a vulnerability + +If you want to report a security issue, please use [huntr.dev](https://huntr.dev/bounties/disclose?target=https%3A%2F%2Fgithub.com%2Fvim%2Fvim) to privately disclose the issue to us. +They also have rewards in the form of money, swag and CVEs. + +**Please don't publicly disclose the issue until it has been addressed by us.** diff --git a/ci/config.mk.sed b/ci/config.mk.sed index 51e7ec903d..f672edd9e4 100644 --- a/ci/config.mk.sed +++ b/ci/config.mk.sed @@ -1,3 +1,3 @@ /^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/ -/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function/ +/^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function -Wno-shadow/ /^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter/ diff --git a/runtime/autoload/ccomplete.vim b/runtime/autoload/ccomplete.vim index 3bddba7a95..7096dcf4ac 100644 --- a/runtime/autoload/ccomplete.vim +++ b/runtime/autoload/ccomplete.vim @@ -1,10 +1,11 @@ vim9script noclear # Vim completion script -# Language: C -# Maintainer: Bram Moolenaar +# Language: C +# Maintainer: The Vim Project +# Last Change: 2023 Aug 10 # Rewritten in Vim9 script by github user lacygoill -# Last Change: 2022 Jan 31 +# Former Maintainer: Bram Moolenaar var prepended: string var grepCache: dict>> diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index 1735883937..bc2125754a 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -2,8 +2,9 @@ vim9script # Vim functions for file type detection # -# Maintainer: Bram Moolenaar -# Last Change: 2023 Jun 09 +# Maintainer: The Vim Project +# Last Change: 2023 Aug 10 +# Former Maintainer: Bram Moolenaar # These functions are moved here from runtime/filetype.vim to make startup # faster. @@ -286,6 +287,37 @@ export def FTe() endif enddef +def IsForth(): bool + var first_line = nextnonblank(1) + + # SwiftForth block comment (line is usually filled with '-' or '=') or + # OPTIONAL (sometimes precedes the header comment) + if getline(first_line) =~? '^\%({\%(\s\|$\)\|OPTIONAL\s\)' + return true + endif + + var n = first_line + while n < 100 && n <= line("$") + # Forth comments and colon definitions + if getline(n) =~ '^[:(\\] ' + return true + endif + n += 1 + endwhile + return false +enddef + +# Distinguish between Forth and Fortran +export def FTf() + if exists("g:filetype_f") + exe "setf " .. g:filetype_f + elseif IsForth() + setf forth + else + setf fortran + endif +enddef + export def FTfrm() if exists("g:filetype_frm") exe "setf " .. g:filetype_frm @@ -301,21 +333,13 @@ export def FTfrm() endif enddef -# Distinguish between Forth and F#. -# Provided by Doug Kearns. +# Distinguish between Forth and F# export def FTfs() if exists("g:filetype_fs") exe "setf " .. g:filetype_fs + elseif IsForth() + setf forth else - var n = 1 - while n < 100 && n <= line("$") - # Forth comments and colon definitions - if getline(n) =~ "^[:(\\\\] " - setf forth - return - endif - n += 1 - endwhile setf fsharp endif enddef diff --git a/runtime/autoload/dist/man.vim b/runtime/autoload/dist/man.vim index cd584aa718..315636a2ef 100644 --- a/runtime/autoload/dist/man.vim +++ b/runtime/autoload/dist/man.vim @@ -1,9 +1,9 @@ " Vim filetype plugin autoload file " Language: man -" Maintainer: Jason Franklin +" Maintainer: Jason Franklin " Maintainer: SungHyun Nam " Autoload Split: Bram Moolenaar -" Last Change: 2022 Jun 18 +" Last Change: 2023 Jun 28 let s:cpo_save = &cpo set cpo-=C @@ -21,31 +21,65 @@ catch /E145:/ " Ignore the error in restricted mode endtry +func s:ParseIntoPageAndSection() + " Accommodate a reference that terminates in a hyphen. + " + " See init_charset_table() at + " https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/input.cpp?h=1.22.4#n6794 + " + " See can_break_after() at + " https://git.savannah.gnu.org/cgit/groff.git/tree/src/roff/troff/charinfo.h?h=1.22.4#n140 + " + " Assumptions and limitations: + " 1) Manual-page references (in consequence of command-related filenames) + " do not contain non-ASCII HYPHENs (0x2010), any terminating HYPHEN + " must have been introduced to mark division of a word at the end of + " a line and can be discarded; whereas similar references may contain + " ASCII HYPHEN-MINUSes (0x002d) and any terminating HYPHEN-MINUS forms + " a compound word in addition to marking word division. + " 2) Well-formed manual-page references always have a section suffix, e.g. + " "git-commit(1)", therefore suspended hyphenated compounds are not + " determined, e.g. [V] (With cursor at _git-merge-_ below...) + " ".................... git-merge- and git-merge-base. (See git-cherry- + " pick(1) and git-cherry(1).)" (... look up "git-merge-pick(1)".) + " + " Note that EM DASH (0x2014), a third stooge from init_charset_table(), + " neither connects nor divides parts of a word. + let str = expand("") + + if str =~ '\%u2010$' " HYPHEN (-1). + let str = strpart(str, 0, strridx(str, "\u2010")) + + " Append the leftmost WORD (or an empty string) from the line below. + let str .= get(split(get(getbufline(bufnr('%'), line('.') + 1), 0, '')), 0, '') + elseif str =~ '-$' " HYPHEN-MINUS. + " Append the leftmost WORD (or an empty string) from the line below. + let str .= get(split(get(getbufline(bufnr('%'), line('.') + 1), 0, '')), 0, '') + endif + + " According to man(1), section name formats vary (MANSECT): + " 1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7 + let parts = matchlist(str, '\(\k\+\)(\(\k\+\))') + return (len(parts) > 2) + \ ? {'page': parts[1], 'section': parts[2]} + \ : {'page': matchstr(str, '\k\+'), 'section': ''} +endfunc + func dist#man#PreGetPage(cnt) if a:cnt == 0 - let old_isk = &iskeyword - if &ft == 'man' - setl iskeyword+=(,) - endif - let str = expand("") - let &l:iskeyword = old_isk - let page = substitute(str, '(*\(\k\+\).*', '\1', '') - let sect = substitute(str, '\(\k\+\)(\([^()]*\)).*', '\2', '') - if match(sect, '^[0-9 ]\+$') == -1 - let sect = "" - endif - if sect == page - let sect = "" - endif + let what = s:ParseIntoPageAndSection() + let sect = what.section + let page = what.page else + let what = s:ParseIntoPageAndSection() let sect = a:cnt - let page = expand("") + let page = what.page endif + call dist#man#GetPage('', sect, page) endfunc func s:GetCmdArg(sect, page) - if empty(a:sect) return shellescape(a:page) endif @@ -75,9 +109,11 @@ func dist#man#GetPage(cmdmods, ...) return endif - " To support: nmap K :Man - if page == '' - let page = expand('') + " To support: nmap K :Man + if page ==? '' + let what = s:ParseIntoPageAndSection() + let sect = what.section + let page = what.page endif if !exists('g:ft_man_no_sect_fallback') || (g:ft_man_no_sect_fallback == 0) @@ -154,9 +190,14 @@ func dist#man#GetPage(cmdmods, ...) endif let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat' let env_cmd .= ' GROFF_NO_SGR=1' - let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b' + let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) + silent exec "r !" . man_cmd + " Emulate piping the buffer through the "col -b" command. + " Ref: https://github.com/vim/vim/issues/12301 + silent! keepjumps keeppatterns %s/\v(.)\b\ze\1?//ge + if unsetwidth let $MANWIDTH = '' endif @@ -180,9 +221,10 @@ func dist#man#PopPage() exec "let s:man_tag_buf=s:man_tag_buf_".s:man_tag_depth exec "let s:man_tag_lin=s:man_tag_lin_".s:man_tag_depth exec "let s:man_tag_col=s:man_tag_col_".s:man_tag_depth + exec s:man_tag_buf."b" - exec s:man_tag_lin - exec "norm! ".s:man_tag_col."|" + call cursor(s:man_tag_lin, s:man_tag_col) + exec "unlet s:man_tag_buf_".s:man_tag_depth exec "unlet s:man_tag_lin_".s:man_tag_depth exec "unlet s:man_tag_col_".s:man_tag_depth diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim index fa4b6e8426..5f3ae4aecc 100644 --- a/runtime/autoload/dist/script.vim +++ b/runtime/autoload/dist/script.vim @@ -3,8 +3,9 @@ vim9script # Vim function for detecting a filetype from the file contents. # Invoked from "scripts.vim" in 'runtimepath' # -# Maintainer: Bram Moolenaar -# Last Change: 2023 Jun 09 +# Maintainer: The Vim Project +# Last Change: 2023 Aug 10 +# Former Maintainer: Bram Moolenaar export def DetectFiletype() var line1 = getline(1) diff --git a/runtime/autoload/dist/vimindent.vim b/runtime/autoload/dist/vimindent.vim index 1306d1e361..a5e04a5391 100644 --- a/runtime/autoload/dist/vimindent.vim +++ b/runtime/autoload/dist/vimindent.vim @@ -2,7 +2,7 @@ vim9script # Language: Vim script # Maintainer: github user lacygoill -# Last Change: 2023 Feb 01 +# Last Change: 2023 Jun 29 # NOTE: Whenever you change the code, make sure the tests are still passing: # @@ -112,10 +112,6 @@ const DICT_KEY: string = '^\s*\%(' .. '\)' .. ':\%(\s\|$\)' -# NOT_A_DICT_KEY {{{3 - -const NOT_A_DICT_KEY: string = ':\@!' - # END_OF_COMMAND {{{3 const END_OF_COMMAND: string = $'\s*\%($\|||\@!\|{INLINE_COMMENT}\)' @@ -197,13 +193,13 @@ patterns =<< trim eval END ldo\=\>!\= tabdo\=\> windo\> - au\%[tocmd]\>.* - com\%[mand]\>.* + au\%[tocmd]\>!\=.* + com\%[mand]\>!\=.* g\%[lobal]!\={PATTERN_DELIMITER}.* v\%[global]!\={PATTERN_DELIMITER}.* END -const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\){NOT_A_DICT_KEY}' +const HIGHER_ORDER_COMMAND: string = $'\%(^\|{BAR_SEPARATION}\)\s*\<\%({patterns->join('\|')}\)\%(\s\|$\)\@=' # START_MIDDLE_END {{{3 @@ -254,7 +250,7 @@ START_MIDDLE_END = START_MIDDLE_END kwds->map((_, kwd: string) => kwd == '' ? '' : $'\%(^\|{BAR_SEPARATION}\|\\%(\s*{OPERATOR}\)\@!')) + .. $'\<\%({kwd}\)\>\%(\s\|$\|!\)\@=\%(\s*{OPERATOR}\)\@!')) lockvar! START_MIDDLE_END @@ -279,7 +275,7 @@ patterns = BLOCKS const ENDS_BLOCK_OR_CLAUSE: string = '^\s*\%(' .. patterns->join('\|') .. $'\){END_OF_COMMAND}' .. $'\|^\s*cat\%[ch]\%(\s\+\({PATTERN_DELIMITER}\).*\1\)\={END_OF_COMMAND}' - .. $'\|^\s*elseif\=\>\%({OPERATOR}\)\@!' + .. $'\|^\s*elseif\=\>\%(\s\|$\)\@=\%(\s*{OPERATOR}\)\@!' # STARTS_NAMED_BLOCK {{{3 @@ -296,7 +292,7 @@ patterns = [] endfor } -const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>{NOT_A_DICT_KEY}' +const STARTS_NAMED_BLOCK: string = $'^\s*\%(sil\%[ent]\s\+\)\=\%({patterns->join('\|')}\)\>\%(\s\|$\|!\)\@=' # STARTS_CURLY_BLOCK {{{3 @@ -312,7 +308,7 @@ const STARTS_CURLY_BLOCK: string = '\%(' # STARTS_FUNCTION {{{3 -const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>{NOT_A_DICT_KEY}' +const STARTS_FUNCTION: string = $'^\s*\%({MODIFIERS.def}\)\=def\>!\=\s\@=' # ENDS_FUNCTION {{{3 diff --git a/runtime/autoload/gzip.vim b/runtime/autoload/gzip.vim index e4adec0947..95dd906794 100644 --- a/runtime/autoload/gzip.vim +++ b/runtime/autoload/gzip.vim @@ -1,6 +1,7 @@ " Vim autoload file for editing compressed files. -" Maintainer: Bram Moolenaar -" Last Change: 2016 Sep 28 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " These functions are used by the gzip plugin. diff --git a/runtime/autoload/javascriptcomplete.vim b/runtime/autoload/javascriptcomplete.vim index 29b6b16254..3ec3b50490 100644 --- a/runtime/autoload/javascriptcomplete.vim +++ b/runtime/autoload/javascriptcomplete.vim @@ -156,8 +156,8 @@ function! javascriptcomplete#CompleteJS(findstart, base) \ 'text', 'vLink'] let bodys = bodyprop " Document - document. - let docuprop = ['anchors', 'body', 'characterSet', 'doctype', - \ 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms', + let docuprop = ['anchors', 'applets', 'body', 'characterSet', 'childNodes', + \ 'doctype', 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms', \ 'head', 'hidden', 'images', 'implementation', 'lastStyleSheetSet', \ 'links', 'plugins', 'preferredStyleSheetSet', 'scripts', \ 'scrollingElement', 'selectedStyleSheetSet', 'styleSheetSets', @@ -171,7 +171,7 @@ function! javascriptcomplete#CompleteJS(findstart, base) \ 'createEvent', 'createExpression', 'createNSResolver', \ 'createNodeIterator', 'createProcessingInstruction', 'createRange', \ 'createTextNode', 'createTouchList', 'createTreeWalker', - \ 'enableStyleSheetsForSet', 'evaluate', 'focus', 'getElementById', + \ 'enableStyleSheetsForSet', 'evaluate', 'focus', \ 'getElementById', 'getElementsByClassName', 'getElementsByName', \ 'getElementsByTagName', 'getElementsByTagNameNS', \ 'hasStorageAccess', 'importNode', 'onClick', 'onDblClick', diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim index 2d787e7a1d..1ba336c2b3 100644 --- a/runtime/autoload/paste.vim +++ b/runtime/autoload/paste.vim @@ -1,6 +1,7 @@ " Vim support file to help with paste mappings and menus -" Maintainer: Bram Moolenaar -" Last Change: 2019 Jan 27 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Define the string to use for items that are present both in Edit, Popup and " Toolbar menu. Also used in mswin.vim and macmap.vim. diff --git a/runtime/autoload/rust.vim b/runtime/autoload/rust.vim index 34a3b41773..4230332fa7 100644 --- a/runtime/autoload/rust.vim +++ b/runtime/autoload/rust.vim @@ -1,4 +1,4 @@ -" Author: Kevin Ballard +" Author: Lily Ballard " Description: Helper functions for Rust commands/mappings " Last Modified: May 27, 2014 " For bugs, patches and license go to https://github.com/rust-lang/rust.vim diff --git a/runtime/autoload/spellfile.vim b/runtime/autoload/spellfile.vim index 6f9b1e0e0a..43f7dffa1a 100644 --- a/runtime/autoload/spellfile.vim +++ b/runtime/autoload/spellfile.vim @@ -1,6 +1,7 @@ " Vim script to download a missing spell file -" Maintainer: Bram Moolenaar -" Last Change: 2020 Jul 10 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar if !exists('g:spellfile_URL') " Always use https:// because it's secure. The certificate is for nluug.nl, diff --git a/runtime/bugreport.vim b/runtime/bugreport.vim index f7886a9081..38f47b6212 100644 --- a/runtime/bugreport.vim +++ b/runtime/bugreport.vim @@ -1,8 +1,9 @@ :" Use this script to create the file "bugreport.txt", which contains :" information about the environment of a possible bug in Vim. :" -:" Maintainer: Bram Moolenaar -:" Last change: 2019 Jan 27 +:" Maintainer: The Vim Project +:" Last change: 2023 Aug 10 +:" Former Maintainer: Bram Moolenaar :" :" To use inside Vim: :" :so $VIMRUNTIME/bugreport.vim diff --git a/runtime/colors/default.vim b/runtime/colors/default.vim index 70311571db..d2960fa78b 100644 --- a/runtime/colors/default.vim +++ b/runtime/colors/default.vim @@ -1,6 +1,7 @@ " Vim color file -" Maintainer: Bram Moolenaar -" Last Change: 2001 Jul 23 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " This is the default color scheme. It doesn't define the Normal " highlighting, it uses whatever the colors used to be. diff --git a/runtime/compiler/README.txt b/runtime/compiler/README.txt index 3f0b97b83e..dccf4a9762 100644 --- a/runtime/compiler/README.txt +++ b/runtime/compiler/README.txt @@ -8,4 +8,4 @@ If you want to write your own compiler plugin, have a look at the other files for how to do it, the format is simple. If you think a compiler plugin you have written is useful for others, please -send it to Bram@vim.org. +send it to the vim-dev mailing list: diff --git a/runtime/compiler/msvc.vim b/runtime/compiler/msvc.vim index efe36c4da2..0d5660c103 100644 --- a/runtime/compiler/msvc.vim +++ b/runtime/compiler/msvc.vim @@ -1,7 +1,8 @@ " Vim compiler file " Compiler: Microsoft Visual C -" Maintainer: Bram Moolenaar -" Last Change: 2014 Sep 20 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar if exists("current_compiler") finish diff --git a/runtime/defaults.vim b/runtime/defaults.vim index 9b4ecfeafa..ff8ce8ea18 100644 --- a/runtime/defaults.vim +++ b/runtime/defaults.vim @@ -1,7 +1,8 @@ " The default vimrc file. " -" Maintainer: Bram Moolenaar -" Last change: 2023 May 10 +" Maintainer: The Vim Project +" Last change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " " This is loaded if no vimrc file was found. " Except when Vim is run with "-u NONE" or "-C". @@ -97,17 +98,21 @@ if 1 filetype plugin indent on " Put these in an autocmd group, so that you can revert them with: - " ":augroup vimStartup | exe 'au!' | augroup END" + " ":autocmd! vimStartup" augroup vimStartup - au! + autocmd! " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid, when inside an event handler - " (happens when dropping a file on gvim) and for a commit message (it's - " likely a different one than last time). + " (happens when dropping a file on gvim), for a commit or rebase message + " (likely a different one than last time), and when using xxd(1) to filter + " and edit binary files (it transforms input files back and forth, causing + " them to have dual nature, so to speak) autocmd BufReadPost * - \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' - \ | exe "normal! g`\"" + \ let line = line("'\"") + \ | if line >= 1 && line <= line("$") && &filetype !~# 'commit' + \ && index(['xxd', 'gitrebase'], &filetype) == -1 + \ | execute "normal! g`\"" \ | endif augroup END @@ -115,11 +120,11 @@ if 1 " Quite a few people accidentally type "q:" instead of ":q" and get confused " by the command line window. Give a hint about how to get out. " If you don't like this you can put this in your vimrc: - " ":augroup vimHints | exe 'au!' | augroup END" + " ":autocmd! vimHints" augroup vimHints au! autocmd CmdwinEnter * - \ echohl Todo | + \ echohl Todo | \ echo gettext('You discovered the command-line window! You can close it with ":q".') | \ echohl None augroup END diff --git a/runtime/delmenu.vim b/runtime/delmenu.vim index ef663c73b4..b614851d89 100644 --- a/runtime/delmenu.vim +++ b/runtime/delmenu.vim @@ -1,8 +1,9 @@ " This Vim script deletes all the menus, so that they can be redefined. " Warning: This also deletes all menus defined by the user! " -" Maintainer: Bram Moolenaar -" Last Change: 2019 Dec 10 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar aunmenu * tlunmenu * diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index b6bed6dcde..a0f2f145be 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -1,4 +1,4 @@ -*builtin.txt* For Vim version 9.0. Last change: 2023 Jun 08 +*builtin.txt* For Vim version 9.0. Last change: 2023 Aug 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -156,7 +156,7 @@ digraph_setlist({digraphlist}) Boolean register multiple |digraph|s echoraw({expr}) none output {expr} as-is empty({expr}) Number |TRUE| if {expr} is empty environ() Dict return environment variables -err_teapot() Number produce error 418 +err_teapot([{expr}]) none give E418, or E503 if {expr} is |TRUE| escape({string}, {chars}) String escape {chars} in {string} with '\' eval({string}) any evaluate {string} into its value eventhandler() Number |TRUE| if inside an event handler @@ -709,13 +709,14 @@ trunc({expr}) Float truncate Float {expr} type({expr}) Number type of value {expr} typename({expr}) String representation of the type of {expr} undofile({name}) String undo file name for {name} -undotree() List undo file tree +undotree([{buf}]) List undo file tree for buffer {buf} uniq({list} [, {func} [, {dict}]]) List remove adjacent duplicates from a list utf16idx({string}, {idx} [, {countcc} [, {charidx}]]) Number UTF-16 index of byte {idx} in {string} values({dict}) List values in {dict} -virtcol({expr} [, {list}]) Number or List +virtcol({expr} [, {list} [, {winid}]) + Number or List screen column of cursor or mark virtcol2col({winid}, {lnum}, {col}) Number byte index of a character on screen @@ -1251,7 +1252,7 @@ bufload({buf}) *bufload()* refers to an existing file then the file is read. Otherwise the buffer will be empty. If the buffer was already loaded then there is no change. If the buffer is not related to a - file the no file is read (e.g., when 'buftype' is "nofile"). + file then no file is read (e.g., when 'buftype' is "nofile"). If there is an existing swap file for the file of the buffer, there will be no dialog, the buffer will be loaded anyway. The {buf} argument is used like with |bufexists()|. @@ -3552,6 +3553,8 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()* cmdline |cmdline-completion| result compiler compilers cscope |:cscope| suboptions + custom,{func} custom completion, defined via {func} + customlist,{func} custom completion, defined via {func} diff_buffer |:diffget| and |:diffput| completion dir directory names environment environment variable names @@ -4004,6 +4007,9 @@ getqflist([{what}]) *getqflist()* text description of the error type type of the error, 'E', '1', etc. valid |TRUE|: recognized error message + user_data + custom data associated with the item, can be + any type. When there is no error list or it's empty, an empty list is returned. Quickfix list entries with a non-existing buffer @@ -6589,7 +6595,11 @@ printf({fmt}, {expr1} ...) *printf()* The "%" starts a conversion specification. The following arguments appear in sequence: - % [flags] [field-width] [.precision] type + % [pos-argument] [flags] [field-width] [.precision] type + + pos-argument + At most one positional argument specifier. These + take the form {n$}, where n is >= 1. flags Zero or more of the following flags: @@ -6661,6 +6671,13 @@ printf({fmt}, {expr1} ...) *printf()* < This limits the length of the text used from "line" to "width" bytes. + If the argument to be formatted is specified using a posional + argument specifier, and a '*' is used to indicate that a + number argument is to be used to specify the width or + precision, the argument(s) to be used must also be specified + using a {n$} positional argument specifier. See |printf-$|. + + The conversion specifiers and their meanings are: *printf-d* *printf-b* *printf-B* *printf-o* @@ -6750,6 +6767,103 @@ printf({fmt}, {expr1} ...) *printf()* of "%" items. If there are not sufficient or too many arguments an error is given. Up to 18 arguments can be used. + *printf-$* + In certain languages, error and informative messages are + more readable when the order of words is different from the + corresponding message in English. To accomodate translations + having a different word order, positional arguments may be + used to indicate this. For instance: > + + #, c-format + msgid "%s returning %s" + msgstr "waarde %2$s komt terug van %1$s" +< + In this example, the sentence has its 2 string arguments reversed + in the output. > + + echo printf( + "In The Netherlands, vim's creator's name is: %1$s %2$s", + "Bram", "Moolenaar") +< In The Netherlands, vim's creator's name is: Bram Moolenaar > + + echo printf( + "In Belgium, vim's creator's name is: %2$s %1$s", + "Bram", "Moolenaar") +< In Belgium, vim's creator's name is: Moolenaar Bram + + Width (and precision) can be specified using the '*' specifier. + In this case, you must specify the field width position in the + argument list. > + + echo printf("%1$*2$.*3$d", 1, 2, 3) +< 001 > + echo printf("%2$*3$.*1$d", 1, 2, 3) +< 2 > + echo printf("%3$*1$.*2$d", 1, 2, 3) +< 03 > + echo printf("%1$*2$.*3$g", 1.4142, 2, 3) +< 1.414 + + You can mix specifying the width and/or precision directly + and via positional arguments: > + + echo printf("%1$4.*2$f", 1.4142135, 6) +< 1.414214 > + echo printf("%1$*2$.4f", 1.4142135, 6) +< 1.4142 > + echo printf("%1$*2$.*3$f", 1.4142135, 6, 2) +< 1.41 + + *E1400* + You cannot mix positional and non-positional arguments: > + echo printf("%s%1$s", "One", "Two") +< E1400: Cannot mix positional and non-positional + arguments: %s%1$s + + *E1401* + You cannot skip a positional argument in a format string: > + echo printf("%3$s%1$s", "One", "Two", "Three") +< E1401: format argument 2 unused in $-style + format: %3$s%1$s + + *E1402* + You can re-use a [field-width] (or [precision]) argument: > + echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2) +< 1 at width 2 is: 01 + + However, you can't use it as a different type: > + echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2) +< E1402: Positional argument 2 used as field + width reused as different type: long int/int + + *E1403* + When a positional argument is used, but not the correct number + or arguments is given, an error is raised: > + echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2) +< E1403: Positional argument 3 out of bounds: + %1$d at width %2$d is: %01$*2$.*3$d + + Only the first error is reported: > + echo printf("%01$*2$.*3$d %4$d", 1, 2) +< E1403: Positional argument 3 out of bounds: + %01$*2$.*3$d %4$d + + *E1404* + A positional argument can be used more than once: > + echo printf("%1$s %2$s %1$s", "One", "Two") +< One Two One + + However, you can't use a different type the second time: > + echo printf("%1$s %2$s %1$d", "One", "Two") +< E1404: Positional argument 1 type used + inconsistently: int/string + + *E1405* + Various other errors that lead to a format string being + wrongly formatted lead to: > + echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2) +< E1405: Invalid format specifier: + %1$d at width %2$d is: %01$*2$.3$d prompt_getprompt({buf}) *prompt_getprompt()* Returns the effective prompt text for buffer {buf}. {buf} can @@ -8300,6 +8414,8 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()* text description of the error type single-character error type, 'E', 'W', etc. valid recognized error message + user_data custom data associated with the item, can be + any type. The "col", "vcol", "nr", "type" and "text" entries are optional. Either "lnum" or "pattern" entry can be used to @@ -10097,9 +10213,10 @@ undofile({name}) *undofile()* Can also be used as a |method|: > GetFilename()->undofile() -undotree() *undotree()* - Return the current state of the undo tree in a dictionary with - the following items: +undotree([{buf}]) *undotree()* + Return the current state of the undo tree for the current + buffer, or for a specific buffer if {buf} is given. The + result is a dictionary with the following items: "seq_last" The highest undo sequence number used. "seq_cur" The sequence number of the current position in the undo tree. This differs from "seq_last" @@ -10193,7 +10310,7 @@ values({dict}) *values()* Can also be used as a |method|: > mydict->values() -virtcol({expr} [, {list}]) *virtcol()* +virtcol({expr} [, {list} [, {winid}]]) *virtcol()* The result is a Number, which is the screen column of the file position given with {expr}. That is, the last screen position occupied by the character at that position, when the screen @@ -10225,10 +10342,13 @@ virtcol({expr} [, {list}]) *virtcol()* returns the cursor position. Differs from |'<| in that it's updated right away. - If {list} is present and non-zero then virtcol() returns a List - with the first and last screen position occupied by the + If {list} is present and non-zero then virtcol() returns a + List with the first and last screen position occupied by the character. + With the optional {winid} argument the values are obtained for + that window instead of the current window. + Note that only marks in the current file can be used. Examples: > " With text "foo^Lbar" and cursor on the "^L": @@ -10240,7 +10360,7 @@ virtcol({expr} [, {list}]) *virtcol()* " With text " there", with 't at 'h': virtcol("'t") " returns 6 -< The first column is 1. 0 is returned for an error. +< The first column is 1. 0 or [0, 0] is returned for an error. A more advanced example that echoes the maximum length of all lines: > echo max(map(range(1, line('$')), "virtcol([v:val, '$'])")) @@ -10257,6 +10377,9 @@ virtcol2col({winid}, {lnum}, {col}) *virtcol2col()* {lnum}, then the byte index of the character at the last virtual column is returned. + For a multi-byte character, the column number of the first + byte in the character is returned. + The {winid} argument can be the window number or the |window-ID|. If this is zero, then the current window is used. @@ -10887,6 +11010,7 @@ python_dynamic Python 2.x interface is dynamically loaded. |has-python| python3 Python 3.x interface available. |has-python| python3_compiled Compiled with Python 3.x interface. |has-python| python3_dynamic Python 3.x interface is dynamically loaded. |has-python| +python3_stable Python 3.x interface is using Python Stable ABI. |has-python| pythonx Python 2.x and/or 3.x interface available. |python_x| qnx QNX version of Vim. quickfix Compiled with |quickfix| support. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 6f655f300d..3343a861d1 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2436,6 +2436,25 @@ v:progpath Contains the command with which Vim was invoked, in a form ".exe" is not added to v:progpath. Read-only. + *v:python3_version* *python3-version-variable* +v:python3_version + Version of Python 3 that Vim was built against. When + Python is loaded dynamically (|python-dynamic|), this version + should exactly match the Python library up to the minor + version (e.g. 3.10.2 and 3.10.3 are compatible as the minor + version is "10", whereas 3.9.4 and 3.10.3 are not compatible). + When |python-stable-abi| is used, this will be the minimum Python + version that you can use instead. (e.g. if v:python3_version + indicates 3.9, you can use 3.9, 3.10, or anything above). + + This number is encoded as a hex number following Python ABI + versioning conventions. Do the following to have a + human-readable full version in hex: > + echo printf("%08X", v:python3_version) +< You can obtain only the minor version by doing: > + echo and(v:python3_version>>16,0xff) +< Read-only. + *v:register* *register-variable* v:register The name of the register in effect for the current normal mode command (regardless of whether that command actually used a diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index ae8e6584aa..05047224f9 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -146,6 +146,7 @@ variables can be used to overrule the filetype used for certain extensions: *.cls g:filetype_cls *.csh g:filetype_csh |ft-csh-syntax| *.dat g:filetype_dat + *.f g:filetype_f |ft-forth-syntax| *.frm g:filetype_frm |ft-form-syntax| *.fs g:filetype_fs |ft-forth-syntax| *.i g:filetype_i |ft-progress-syntax| @@ -394,7 +395,7 @@ ways to change this: You must create a new filetype plugin in a directory early in 'runtimepath'. For Unix, for example you could use this file: > vim ~/.vim/ftplugin/fortran.vim -< You can set those settings and mappings that you would like to add. Note +< You can set those settings and mappings that you would like to add. Note that the global plugin will be loaded after this, it may overrule the settings that you do here. If this is the case, you need to use one of the following two methods. @@ -403,7 +404,7 @@ ways to change this: You must put the copy in a directory early in 'runtimepath'. For Unix, for example, you could do this: > cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim -< Then you can edit the copied file to your liking. Since the b:did_ftplugin +< Then you can edit the copied file to your liking. Since the b:did_ftplugin variable will be set, the global plugin will not be loaded. A disadvantage of this method is that when the distributed plugin gets improved, you will have to copy and modify it again. @@ -412,7 +413,7 @@ ways to change this: You must create a new filetype plugin in a directory from the end of 'runtimepath'. For Unix, for example, you could use this file: > vim ~/.vim/after/ftplugin/fortran.vim -< In this file you can change just those settings that you want to change. +< In this file you can change just those settings that you want to change. ============================================================================== 3. Docs for the default filetype plugins. *ftplugin-docs* diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt index c2a0094b63..3d3b92a662 100644 --- a/runtime/doc/if_pyth.txt +++ b/runtime/doc/if_pyth.txt @@ -769,7 +769,19 @@ Unix ~ The 'pythondll' or 'pythonthreedll' option can be used to specify the Python shared library file instead of DYNAMIC_PYTHON_DLL or DYNAMIC_PYTHON3_DLL file what were specified at compile time. The version of the shared library must -match the Python 2.x or Python 3 version Vim was compiled with. +match the Python 2.x or Python 3 version (|v:python3_version|) Vim was +compiled with unless using |python3-stable-abi|. + + +Stable ABI and mixing Python versions ~ + *python-stable* *python-stable-abi* *python3-stable-abi* +If Vim was not compiled with Stable ABI (only available for Python 3), the +version of the Python shared library must match the version that Vim was +compiled with. Otherwise, mixing versions could result in unexpected crashes +and failures. With Stable ABI, this restriction is relaxed, and any Python 3 +library with version of at least |v:python3_version| will work. See +|has-python| for how to check if Stable ABI is supported, or see if version +output includes |+python3/dyn-stable|. ============================================================================== 10. Python 3 *python3* @@ -881,6 +893,18 @@ python support: > endif endif +When loading the library dynamically, Vim can be compiled to support Python 3 +Stable ABI (|python3-stable-abi|) which allows you to load a different version +of Python 3 library than the one Vim was compiled with. To check it: > + if has('python3_dynamic') + if has('python3_stable') + echo 'support Python 3 Stable ABI.' + else + echo 'does not support Python 3 Stable ABI.' + echo 'only use Python 3 version ' .. v:python3_version + endif + endif + This also tells you whether Python is dynamically loaded, which will fail if the runtime library cannot be found. diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt index 04d5f5cb8a..7b66303d3d 100644 --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -1,4 +1,4 @@ -*intro.txt* For Vim version 9.0. Last change: 2022 Nov 20 +*intro.txt* For Vim version 9.0. Last change: 2023 Aug 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -129,8 +129,9 @@ There are three ways to report bugs: 3. Send bug reports to: Vim Developers This is a maillist, you need to become a member first and many people will see the message. If you don't want that, e.g. because it is a security - issue, send it to , this only goes to the Vim maintainer - (that's Bram). + issue, please contact any of the current Vim maintainers + https://github.com/orgs/vim/people (but not Bram or the vim-dev ML). + In the future, a proper process for handling security issues will be setup. Please be brief; all the time that is spent on answering mail is subtracted from the time that is spent on improving Vim! Always give a reproducible @@ -181,9 +182,9 @@ The user may create scripts for Vim that use external commands. These might introduce Y2K problems, but those are not really part of Vim itself. ============================================================================== -3. Credits *credits* *author* *Bram* *Moolenaar* +3. Credits *credits* *author* -Most of Vim was created by Bram Moolenaar . +Most of Vim was created by Bram Moolenaar |Bram-Moolenaar| Parts of the documentation come from several Vi manuals, written by: W.N. Joy @@ -216,7 +217,7 @@ Vim would never have become what it is now, without the help of these people! Bill Foster Athena GUI port (later removed) Google Lets me work on Vim one day a week Loic Grenie xvim (ideas for multi windows version) - Sven Guckes Vim promoter and previous WWW page maintainer + Sven Guckes Vim promoter and previous WWW page maintainer |Sven-Guckes| Darren Hiebert Exuberant ctags Jason Hildebrand GTK+ 2 port Bruce Hunsaker improvements for VMS port diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt index 263c4f3ac3..2ddd1b9cec 100644 --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -242,8 +242,8 @@ gM Like "g0", but to halfway the text of the line. Thus "10gM" is near the start of the text and "90gM" is near the end of the text. - *g$* *g* -g$ or g When lines wrap ('wrap' on): To the last character of + *g$* +g$ When lines wrap ('wrap' on): To the last character of the screen line and [count - 1] screen lines downward |inclusive|. Differs from "$" when a line is wider than the screen. @@ -256,6 +256,10 @@ g$ or g When lines wrap ('wrap' on): To the last character of When 'virtualedit' is enabled moves to the end of the screen line. + *g* *g* +g Like |g$| but to the last non-blank character + instead of the last character. + *bar* | To screen column [count] in the current line. |exclusive| motion. Ceci n'est pas une pipe. diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index c4275de837..10aebb58d8 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -252,6 +252,8 @@ opt+=val" the expansion is done before the adding or removing. Handling of local options *local-options* +Note: The following also applies to |global-local| options. + Some of the options only apply to a window or buffer. Each window or buffer has its own copy of this option, thus each can have its own value. This allows you to set 'list' in one window but not in another. And set @@ -301,6 +303,30 @@ The options local to a window are remembered for each buffer. This also happens when the buffer is not loaded, but they are lost when the buffer is wiped out |:bwipe|. +Special local window options *special-local-window-option* + +The following local window options won't be copied over when new windows are +created, thus they behave slightly differently: + + Option Reason ~ + 'previewwindow' there can only be a single one + 'scroll' specific to existing window + 'winfixheight' specific to existing window + 'winfixwidth' specific to existing window + +Special local buffer options *special-local-buffer-option* + +The following local buffer options won't be copied over when new buffers are +created, thus they behave slightly differently: + + Option Reason ~ + 'filetype' explicitly set by autocommands + 'syntax' explicitly set by autocommands + 'bufhidden' denote |special-buffers| + 'buftype' denote |special-buffers| + 'readonly' will be detected automatically + 'modified' will be detected automatically + *:setl* *:setlocal* :setl[ocal][!] ... Like ":set" but set only the value local to the current buffer or window. Not all options have a @@ -374,7 +400,6 @@ used. Thus it does the same as: > Note: In the future more global options can be made |global-local|. Using ":setlocal" on a global option might work differently then. - *option-value-function* Some options ('completefunc', 'imactivatefunc', 'imstatusfunc', 'omnifunc', 'operatorfunc', 'quickfixtextfunc', 'tagfunc' and 'thesaurusfunc') are set to @@ -1454,7 +1479,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'bufhidden'* *'bh'* 'bufhidden' 'bh' string (default: "") - local to buffer + local to buffer |special-local-buffer-option| This option specifies what happens when a buffer is no longer displayed in a window: follow the global 'hidden' option @@ -1486,7 +1511,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'buftype'* *'bt'* *E382* 'buftype' 'bt' string (default: "") - local to buffer + local to buffer |special-local-buffer-option| The value of this option specifies the type of a buffer: normal buffer nofile buffer which is not related to a file and will not be @@ -3423,7 +3448,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'filetype'* *'ft'* 'filetype' 'ft' string (default: "") - local to buffer + local to buffer |special-local-buffer-option| When this option is set, the FileType autocommand event is triggered. All autocommands that match with the value of this option will be executed. Thus the value of 'filetype' is used in place of the file @@ -5694,7 +5719,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'modified'* *'mod'* *'nomodified'* *'nomod'* 'modified' 'mod' boolean (default off) - local to buffer + local to buffer |special-local-buffer-option| When on, the buffer is considered to be modified. This option is set when: 1. A change was made to the text since it was last written. Using the @@ -6265,7 +6290,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'previewwindow'* *'nopreviewwindow'* *'pvw'* *'nopvw'* *E590* 'previewwindow' 'pvw' boolean (default off) - local to window + local to window |special-local-window-option| {not available when compiled without the |+quickfix| feature} Identifies the preview window. Only one window can have this option @@ -6460,7 +6485,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'readonly'* *'ro'* *'noreadonly'* *'noro'* 'readonly' 'ro' boolean (default off) - local to buffer + local to buffer |special-local-buffer-option| If on, writes fail unless you use a '!'. Protects you from accidentally overwriting a file. Default on when Vim is started in read-only mode ("vim -R") or when the executable is called "view". @@ -6839,7 +6864,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'scroll'* *'scr'* 'scroll' 'scr' number (default: half the window height) - local to window + local to window |special-local-window-option| Number of lines to scroll with CTRL-U and CTRL-D commands. Will be set to half the number of lines in the window when the window size changes. This may happen when enabling the |status-line| or @@ -8101,7 +8126,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'syntax'* *'syn'* 'syntax' 'syn' string (default empty) - local to buffer + local to buffer |special-local-buffer-option| {not available when compiled without the |+syntax| feature} When this option is set, the syntax with this name is loaded, unless @@ -9562,7 +9587,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'* 'winfixheight' 'wfh' boolean (default off) - local to window + local to window |special-local-window-option| Keep the window height when windows are opened or closed and 'equalalways' is set. Also for |CTRL-W_=|. Set by default for the |preview-window| and |quickfix-window|. @@ -9570,7 +9595,7 @@ A jump table for the options with a short description can be found at |Q_op|. *'winfixwidth'* *'wfw'* *'nowinfixwidth'* *'nowfw'* 'winfixwidth' 'wfw' boolean (default off) - local to window + local to window |special-local-window-option| Keep the window width when windows are opened or closed and 'equalalways' is set. Also for |CTRL-W_=|. The width may be changed anyway when running out of room. diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index a8001eb826..01204b095d 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -214,10 +214,10 @@ A syntax group name is to be used for syntax items that match the same kind of thing. These are then linked to a highlight group that specifies the color. A syntax group name doesn't specify any color or attributes itself. -The name for a highlight or syntax group must consist of ASCII letters, digits -and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give -an error when using other characters. The maximum length of a group name is -about 200 bytes. *E1249* +The name for a highlight or syntax group must consist of ASCII letters, +digits, underscores, dots, or hyphens. As a regexp: "[a-zA-Z0-9_.-]*". +However, Vim does not give an error when using other characters. The maximum +length of a group name is about 200 bytes. *E1249* To be able to allow each user to pick their favorite set of colors, there must be preferred names for highlight groups that are common for many languages. @@ -1579,9 +1579,10 @@ example, FORM files, use this in your startup vimrc: > FORTH *forth.vim* *ft-forth-syntax* -Files matching "*.fs" could be F# or Forth. If the automatic detection -doesn't work for you, or you don't edit F# at all, use this in your -startup vimrc: > +Files matching "*.f" could be Fortran or Forth and those matching "*.fs" could +be F# or Forth. If the automatic detection doesn't work for you, or you don't +edit F# or Fortran at all, use this in your startup vimrc: > + :let filetype_f = "forth" :let filetype_fs = "forth" diff --git a/runtime/doc/tags b/runtime/doc/tags index ce6ddd6142..56cfc05878 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -1456,6 +1456,7 @@ $quote eval.txt /*$quote* +python/dyn various.txt /*+python\/dyn* +python3 various.txt /*+python3* +python3/dyn various.txt /*+python3\/dyn* ++python3/dyn-stable various.txt /*+python3\/dyn-stable* +quickfix various.txt /*+quickfix* +reltime various.txt /*+reltime* +rightleft various.txt /*+rightleft* @@ -3903,7 +3904,8 @@ BeOS os_beos.txt /*BeOS* Blob eval.txt /*Blob* Blobs eval.txt /*Blobs* Boolean eval.txt /*Boolean* -Bram intro.txt /*Bram* +Bram version9.txt /*Bram* +Bram-Moolenaar version9.txt /*Bram-Moolenaar* BufAdd autocmd.txt /*BufAdd* BufCreate autocmd.txt /*BufCreate* BufDelete autocmd.txt /*BufDelete* @@ -5549,7 +5551,7 @@ Mark motion.txt /*Mark* MenuPopup autocmd.txt /*MenuPopup* MiNT os_mint.txt /*MiNT* ModeChanged autocmd.txt /*ModeChanged* -Moolenaar intro.txt /*Moolenaar* +Moolenaar version9.txt /*Moolenaar* MorphOS os_amiga.txt /*MorphOS* Motif gui_x11.txt /*Motif* Myspell spell.txt /*Myspell* @@ -9457,6 +9459,8 @@ python-path_hook if_pyth.txt /*python-path_hook* python-pyeval if_pyth.txt /*python-pyeval* python-range if_pyth.txt /*python-range* python-special-path if_pyth.txt /*python-special-path* +python-stable if_pyth.txt /*python-stable* +python-stable-abi if_pyth.txt /*python-stable-abi* python-strwidth if_pyth.txt /*python-strwidth* python-tabpage if_pyth.txt /*python-tabpage* python-tabpages if_pyth.txt /*python-tabpages* @@ -9469,6 +9473,8 @@ python.vim syntax.txt /*python.vim* python2-directory if_pyth.txt /*python2-directory* python3 if_pyth.txt /*python3* python3-directory if_pyth.txt /*python3-directory* +python3-stable-abi if_pyth.txt /*python3-stable-abi* +python3-version-variable eval.txt /*python3-version-variable* python_x if_pyth.txt /*python_x* python_x-special-comments if_pyth.txt /*python_x-special-comments* pythonx if_pyth.txt /*pythonx* @@ -9872,6 +9878,8 @@ spec_chglog_format pi_spec.txt /*spec_chglog_format* spec_chglog_prepend pi_spec.txt /*spec_chglog_prepend* spec_chglog_release_info pi_spec.txt /*spec_chglog_release_info* special-buffers windows.txt /*special-buffers* +special-local-buffer-option options.txt /*special-local-buffer-option* +special-local-window-option options.txt /*special-local-window-option* specifies vim9class.txt /*specifies* speed-up tips.txt /*speed-up* spell spell.txt /*spell* @@ -10795,6 +10803,7 @@ v:prevcount eval.txt /*v:prevcount* v:profiling eval.txt /*v:profiling* v:progname eval.txt /*v:progname* v:progpath eval.txt /*v:progpath* +v:python3_version eval.txt /*v:python3_version* v:register eval.txt /*v:register* v:scrollstart eval.txt /*v:scrollstart* v:searchforward eval.txt /*v:searchforward* diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index f03570497d..5e4ad1fcfe 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -1384,6 +1384,9 @@ Other commands ~ isn't one *:Asm* jump to the window with the disassembly, create it if there isn't one + *:Var* jump to the window with the local and argument variables, + create it if there isn't one. This window updates whenever the + program is stopped Events ~ *termdebug-events* @@ -1460,6 +1463,15 @@ If there is no g:termdebug_config you can use: > let g:termdebug_disasm_window = 15 Any value greater than 1 will set the Asm window height to that value. + *termdebug_variables_window* +If you want the Var window shown by default, set the flag to 1. +the "variables_window_height" entry can be used to set the window height: > + let g:termdebug_config['variables_window'] = 1 + let g:termdebug_config['variables_window_height'] = 15 +If there is no g:termdebug_config you can use: > + let g:termdebug_variables_window = 15 +Any value greater than 1 will set the Var window height to that value. + Communication ~ *termdebug-communication* There is another, hidden, buffer, which is used for Vim to communicate with diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt index d69355bb15..0d830f6645 100644 --- a/runtime/doc/textprop.txt +++ b/runtime/doc/textprop.txt @@ -335,6 +335,10 @@ prop_list({lnum} [, {props}]) *prop_list()* length length in bytes, one more if line break is included id property ID + text text to be displayed before {col}. Only + present for |virtual-text| properties. + text_align alignment property of |virtual-text|. + text_wrap specifies whether |virtual-text| is wrapped. type name of the property type, omitted if the type was deleted type_bufnr buffer number for which this type was defined; diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt index ea8d538bf9..79b1574e22 100644 --- a/runtime/doc/tips.txt +++ b/runtime/doc/tips.txt @@ -431,14 +431,26 @@ comma-separated list of extension(s) you find yourself wanting to edit: > " vim -b : edit binary using xxd-format! augroup Binary - au! - au BufReadPre *.bin let &bin=1 - au BufReadPost *.bin if &bin | %!xxd - au BufReadPost *.bin set ft=xxd | endif - au BufWritePre *.bin if &bin | %!xxd -r - au BufWritePre *.bin endif - au BufWritePost *.bin if &bin | %!xxd - au BufWritePost *.bin set nomod | endif + autocmd! + autocmd BufReadPre *.bin set binary + autocmd BufReadPost *.bin + \ if &binary + \ | execute "silent %!xxd -c 32" + \ | set filetype=xxd + \ | redraw + \ | endif + autocmd BufWritePre *.bin + \ if &binary + \ | let s:view = winsaveview() + \ | execute "silent %!xxd -r -c 32" + \ | endif + autocmd BufWritePost *.bin + \ if &binary + \ | execute "silent %!xxd -c 32" + \ | set nomodified + \ | call winrestview(s:view) + \ | redraw + \ | endif augroup END ============================================================================== diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 60903f922e..93c19b5140 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -5535,7 +5535,6 @@ Undo: - Undo history wrong when ":next file" re-uses a buffer. (#5426) ex_next() should pass flag to do_argfile(), then to do_ecmd(). Is there a test for this? -- Add buffer argument to undotree(). (#4001) - Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18) - Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct 3. Doesn't work properly according to Yukihiro Nakadaira. diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt index 093da3015e..3a2474793a 100644 --- a/runtime/doc/uganda.txt +++ b/runtime/doc/uganda.txt @@ -46,8 +46,8 @@ II) It is allowed to distribute a modified (or extended) version of Vim, maintainer will do with your changes and under what license they will be distributed is negotiable. If there has been no negotiation then this license, or a later version, also applies to your changes. - The current maintainer is Bram Moolenaar . If this - changes it will be announced in appropriate places (most likely + The current maintainers are listed here: https://github.com/orgs/vim/people. + If this changes it will be announced in appropriate places (most likely vim.sf.net, www.vim.org and/or comp.editors). When it is completely impossible to contact the maintainer, the obligation to send him your changes ceases. Once the maintainer has confirmed that he has diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt index cc33482473..dc2274c14c 100644 --- a/runtime/doc/undo.txt +++ b/runtime/doc/undo.txt @@ -111,9 +111,19 @@ use CTRL-G u. This is useful if you want an insert command to be undoable in parts. E.g., for each sentence. |i_CTRL-G_u| Setting the value of 'undolevels' also closes the undo block. Even when the -new value is equal to the old value. In |Vim9| script: > - &undolevels = &undolevels +new value is equal to the old value. Use `g:undolevels` to explicitly read +and write only the global value of 'undolevels'. In |Vim9| script: > + &g:undolevels = &g:undolevels In legacy script: > + let &g:undolevels = &g:undolevels + +Note that the similar-looking assignment `let &undolevels=&undolevels` does not +preserve the global option value of 'undolevels' in the event that the local +option has been set to a different value. For example: > + " Start with different global and local values for 'undolevels'. + let &g:undolevels = 1000 + let &l:undolevels = 2000 + " This assignment changes the global option to 2000: let &undolevels = &undolevels ============================================================================== @@ -366,12 +376,20 @@ undo is possible. Use this if you are running out of memory. When you set 'undolevels' to -1 the undo information is not immediately cleared, this happens at the next change. To force clearing the undo information you can use these commands: > - :let old_undolevels = &undolevels - :set undolevels=-1 + :let old_undolevels = &l:undolevels + :setlocal undolevels=-1 :exe "normal a \\" - :let &undolevels = old_undolevels + :let &l:undolevels = old_undolevels :unlet old_undolevels +Note use of `&l:undolevels` to explicitly read the local value of 'undolevels' +and the use of `:setlocal` to change only the local option (which takes +precedence over the corresponding global option value). Saving the option value +via the use of `&undolevels` is unpredictable; it reads either the local value +(if one has been set) or the global value (otherwise). Also, if a local value +has been set, changing the option via `:set undolevels` will change both the +global and local values, requiring extra work to save and restore both values. + Marks for the buffer ('a to 'z) are also saved and restored, together with the text. diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt index bc68e61b88..f43b239564 100644 --- a/runtime/doc/usr_05.txt +++ b/runtime/doc/usr_05.txt @@ -308,17 +308,27 @@ This switches on three very clever mechanisms: *restore-cursor* *last-position-jump* > - autocmd BufReadPost * - \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' - \ | exe "normal! g`\"" - \ | endif + augroup RestoreCursor + autocmd! + autocmd BufReadPost * + \ let line = line("'\"") + \ | if line >= 1 && line <= line("$") && &filetype !~# 'commit' + \ && index(['xxd', 'gitrebase'], &filetype) == -1 + \ | execute "normal! g`\"" + \ | endif + augroup END Another autocommand. This time it is used after reading any file. The complicated stuff after it checks if the '" mark is defined, and jumps to it -if so. The backslash at the start of a line is used to continue the command -from the previous line. That avoids a line getting very long. -See |line-continuation|. This only works in a Vim script file, not when -typing commands at the command-line. +if so. It doesn't do that for a commit or rebase message, which are likely +a different one than last time, and when using xxd(1) to filter and edit +binary files, which transforms input files back and forth, causing them to +have dual nature, so to speak. See also |using-xxd|. + +The backslash at the start of a line is used to continue the command from the +previous line. That avoids a line getting very long. See |line-continuation|. +This only works in a Vim script file, not when typing commands at the +command line. > command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index bc294e1c03..3df9e58793 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -1373,7 +1373,7 @@ Various: *various-functions* libcallnr() idem, returning a number undofile() get the name of the undo file - undotree() return the state of the undo tree + undotree() return the state of the undo tree for a buffer shiftwidth() effective value of 'shiftwidth' diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index e1a27cc56a..1464158031 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -452,6 +452,8 @@ m *+python* Python 2 interface |python| m *+python/dyn* Python 2 interface |python-dynamic| |/dyn| m *+python3* Python 3 interface |python| m *+python3/dyn* Python 3 interface |python-dynamic| |/dyn| +m *+python3/dyn-stable* + Python 3 interface |python-dynamic| |python-stable| |/dyn| N *+quickfix* |:make| and |quickfix| commands N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout, 'redrawtime' option diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt index 5fa715e816..0e26108ed7 100644 --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -4629,7 +4629,7 @@ using an #ifdef. (Sergey Khorev) Mzscheme interface didn't link, missing function. Changed order of libraries in the configure script. -Ruby interface didn't compile on Mac. Changed #ifdef. (Kevin Ballard) +Ruby interface didn't compile on Mac. Changed #ifdef. (Lily Ballard) Patch 7.1b.001 (extra) Problem: Random text in a source file. No idea how it got there. diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index 03b732b5e8..e9549285ff 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 9.0. Last change: 2022 Nov 23 +*version9.txt* For Vim version 9.0. Last change: 2023 Aug 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -43,6 +43,17 @@ when the release was being prepared. Sven was a long time supporter of Vim. He registered the vim.org domain and created the first Vim website. We will remember him! + *Bram* *Moolenaar* *Bram-Moolenaar* +Vim version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd 2023 +while still working full-time on Vim. The Vim project would not exist without +his ongoing passion to lead and develop Vim and the community for more than 30 +years. Bram was also passionate about his |ICCF| foundation to help children +in Uganda. If you enjoy using Vim, please consider donating! +We will miss his guidance, passion and leadership. + +Obituary Articles: https://github.com/vim/vim/discussions/12742 +Say Farewell: https://github.com/vim/vim/discussions/12737 + ============================================================================== NEW FEATURES *new-9* diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index 6acbca5439..a68b97c87b 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -232,6 +232,9 @@ If the class extends a parent class, the same thing happens. In the second step the members of the parent class are done first. There is no need to call "super()" or "new()" on the parent. +When defining the new() method the return type should not be specified. It +always returns an object of the class. + ============================================================================== 3. class members and functions *Vim9-class-member* diff --git a/runtime/doc/xxd.1 b/runtime/doc/xxd.1 index b0cb183785..0e7f64fedd 100644 --- a/runtime/doc/xxd.1 +++ b/runtime/doc/xxd.1 @@ -6,7 +6,7 @@ .\" Changes by Bram Moolenaar .SH NAME .I xxd -\- make a hexdump or do the reverse. +\- make a hex dump or do the reverse. .SH SYNOPSIS .B xxd \-h[elp] @@ -57,20 +57,20 @@ are all equivalent. .PP .TP .IR \-a " | " \-autoskip -Toggle autoskip: A single '*' replaces nul-lines. Default off. +Toggle autoskip: A single '*' replaces NUL-lines. Default off. .TP .IR \-b " | " \-bits -Switch to bits (binary digits) dump, rather than hexdump. +Switch to bits (binary digits) dump, rather than hex dump. This option writes octets as eight digits "1"s and "0"s instead of a normal hexadecimal dump. Each line is preceded by a line number in hexadecimal and -followed by an ascii (or ebcdic) representation. The command line switches +followed by an ASCII (or EBCDIC) representation. The command line switches \-r, \-p, \-i do not work with this mode. .TP .IR "\-c cols " | " \-cols cols" Format .RI < cols > octets per line. Default 16 (\-i: 12, \-ps: 30, \-b: 6). Max 256. -No maxmimum for \-ps. With \-ps, 0 results in one long line of output. +No maximum for \-ps. With \-ps, 0 results in one long line of output. .TP .IR \-C " | " \-capitalize Capitalize variable names in C include file style, when using \-i. @@ -81,11 +81,11 @@ This does not change the hexadecimal representation. The option is meaningless in combinations with \-r, \-p or \-i. .TP .IR \-e -Switch to little-endian hexdump. +Switch to little-endian hex dump. This option treats byte groups as words in little-endian byte order. The default grouping of 4 bytes may be changed using .RI "" \-g . -This option only applies to hexdump, leaving the ASCII (or EBCDIC) +This option only applies to the hex dump, leaving the ASCII (or EBCDIC) representation unchanged. The command line switches \-r, \-p, \-i do not work with this mode. @@ -93,13 +93,13 @@ The command line switches .IR "\-g bytes " | " \-groupsize bytes" Separate the output of every .RI < bytes > -bytes (two hex characters or eight bit-digits each) by a whitespace. +bytes (two hex characters or eight bit digits each) by a whitespace. Specify .I \-g 0 to suppress grouping. .RI < Bytes "> defaults to " 2 in normal mode, \fI4\fP in little-endian mode and \fI1\fP in bits mode. -Grouping does not apply to postscript or include style. +Grouping does not apply to PostScript or include style. .TP .IR \-h " | " \-help Print a summary of available commands and exit. No hex dumping is performed. @@ -123,16 +123,16 @@ Add to the displayed file position. .TP .IR \-p " | " \-ps " | " \-postscript " | " \-plain -Output in postscript continuous hexdump style. Also known as plain hexdump +Output in PostScript continuous hex dump style. Also known as plain hex dump style. .TP .IR \-r " | " \-revert -Reverse operation: convert (or patch) hexdump into binary. +Reverse operation: convert (or patch) hex dump into binary. If not writing to stdout, xxd writes into its output file without truncating it. Use the combination .I \-r \-p to read plain hexadecimal dumps without line number information and without a -particular column layout. Additional Whitespace and line-breaks are allowed +particular column layout. Additional whitespace and line breaks are allowed anywhere. .TP .I \-seek offset @@ -140,7 +140,7 @@ When used after .IR \-r : revert with .RI < offset > -added to file positions found in hexdump. +added to file positions found in hex dump. .TP .I \-s [+][\-]seek Start at @@ -153,28 +153,28 @@ should be that many characters from the end of the input (or if combined with Without \-s option, xxd starts at the current file position. .TP .I \-u -Use upper case hex letters. Default is lower case. +Use upper-case hex letters. Default is lower-case. .TP .IR \-v " | " \-version Show version string. .SH CAVEATS .PP .I xxd \-r -has some builtin magic while evaluating line number information. -If the output file is seekable, then the linenumbers at the start of each -hexdump line may be out of order, lines may be missing, or overlapping. In +has some built-in magic while evaluating line number information. +If the output file is seekable, then the line numbers at the start of each +hex dump line may be out of order, lines may be missing, or overlapping. In these cases xxd will lseek(2) to the next position. If the output file is not seekable, only gaps are allowed, which will be filled by null-bytes. .PP .I xxd \-r never generates parse errors. Garbage is silently skipped. .PP -When editing hexdumps, please note that +When editing hex dumps, please note that .I xxd \-r skips everything on the input line after reading enough columns of hexadecimal -data (see option \-c). This also means, that changes to the printable ascii (or -ebcdic) columns are always ignored. Reverting a plain (or postscript) style -hexdump with xxd \-r \-p does not depend on the correct number of columns. Here anything that looks like a pair of hex-digits is interpreted. +data (see option \-c). This also means that changes to the printable ASCII (or +EBCDIC) columns are always ignored. Reverting a plain (or PostScript) style +hex dump with xxd \-r \-p does not depend on the correct number of columns. Here, anything that looks like a pair of hex digits is interpreted. .PP Note the difference between .br @@ -190,20 +190,20 @@ may be different from as lseek(2) is used to "rewind" input. A '+' makes a difference if the input source is stdin, and if stdin's file position is not at the start of the file by the time xxd is started and given its input. -The following examples may help to clarify (or further confuse!)... +The following examples may help to clarify (or further confuse!): .PP Rewind stdin before reading; needed because the `cat' has already read to the end of stdin. .br \fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR .PP -Hexdump from file position 0x480 (=1024+128) onwards. +Hex dump from file position 0x480 (=1024+128) onwards. The `+' sign means "relative to the current position", thus the `128' adds to the 1k where dd left off. .br \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file\fR .PP -Hexdump from file position 0x100 ( = 1024\-768) on. +Hex dump from file position 0x100 (=1024\-768) onwards. .br \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file\fR .PP @@ -224,7 +224,7 @@ Print 3 lines (hex 0x30 bytes) from the end of \fI% xxd \-s \-0x30 file\fR .PP .br -Print 120 bytes as continuous hexdump with 20 octets per line. +Print 120 bytes as a continuous hex dump with 20 octets per line. .br \fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR .br @@ -242,7 +242,7 @@ Print 120 bytes as continuous hexdump with 20 octets per line. .br .br -Hexdump the first 120 bytes of this man page with 12 octets per line. +Hex dump the first 120 bytes of this man page with 12 octets per line. .br \fI% xxd \-l 120 \-c 12 xxd.1\fR .br @@ -299,7 +299,7 @@ except for the last one which is 'A' (hex 0x41). \fI% echo "010000: 41" | xxd \-r > file\fR .PP .br -Hexdump this file with autoskip. +Hex dump this file with autoskip. .br \fI% xxd \-a \-c 12 file\fR .br @@ -310,26 +310,26 @@ Hexdump this file with autoskip. 000fffc: 0000 0000 40 ....A .PP Create a 1 byte file containing a single 'A' character. -The number after '\-r \-s' adds to the linenumbers found in the file; +The number after '\-r \-s' adds to the line numbers found in the file; in effect, the leading bytes are suppressed. .br \fI% echo "010000: 41" | xxd \-r \-s \-0x10000 > file\fR .PP Use xxd as a filter within an editor such as .B vim(1) -to hexdump a region marked between `a' and `z'. +to hex dump a region marked between `a' and `z'. .br \fI:'a,'z!xxd\fR .PP Use xxd as a filter within an editor such as .B vim(1) -to recover a binary hexdump marked between `a' and `z'. +to recover a binary hex dump marked between `a' and `z'. .br \fI:'a,'z!xxd \-r\fR .PP Use xxd as a filter within an editor such as .B vim(1) -to recover one line of a hexdump. Move the cursor over the line and type: +to recover one line of a hex dump. Move the cursor over the line and type: .br \fI!!xxd \-r\fR .PP @@ -348,8 +348,9 @@ The following error values are returned: no errors encountered. .TP \-1 -operation not supported ( -.I xxd \-r \-i +operation not supported +\%(\c +.I \%xxd \-r \-i still impossible). .TP 1 @@ -367,7 +368,7 @@ desired seek position is unreachable. uuencode(1), uudecode(1), patch(1) .br .SH WARNINGS -The tools weirdness matches its creators brain. +The tool's weirdness matches its creator's brain. Use entirely at your own risk. Copy files. Trace it. Become a wizard. .br .SH VERSION diff --git a/runtime/evim.vim b/runtime/evim.vim index d3f349e0d8..df7d756e2f 100644 --- a/runtime/evim.vim +++ b/runtime/evim.vim @@ -1,6 +1,7 @@ " Vim script for Evim key bindings -" Maintainer: Bram Moolenaar -" Last Change: 2022 May 10 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Don't use Vi-compatible mode. set nocompatible diff --git a/runtime/filetype.vim b/runtime/filetype.vim index cdeb556410..a434503418 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,8 @@ " Vim support file to detect file types " -" Maintainer: Bram Moolenaar -" Last Change: 2023 Jun 09 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -244,7 +245,7 @@ au BufNewFile,BufRead *.bib setf bib au BufNewFile,BufRead *.bst setf bst " Bicep -au BufNewFile,BufRead *.bicep setf bicep +au BufNewFile,BufRead *.bicep,*.bicepparam setf bicep " BIND configuration " sudoedit uses namedXXXX.conf @@ -254,6 +255,9 @@ au BufNewFile,BufRead named*.conf,rndc*.conf,rndc*.key setf named au BufNewFile,BufRead named.root setf bindzone au BufNewFile,BufRead *.db call dist#ft#BindzoneCheck('') +" Blade +au BufNewFile,BufRead *.blade.php setf blade + " Blank au BufNewFile,BufRead *.bl setf blank @@ -720,16 +724,19 @@ au BufNewFile,BufRead auto.master setf conf au BufNewFile,BufRead *.mas,*.master setf master " Forth -au BufNewFile,BufRead *.ft,*.fth setf forth +au BufNewFile,BufRead *.ft,*.fth,*.4th setf forth " Reva Forth au BufNewFile,BufRead *.frt setf reva " Fortran if has("fname_case") - au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran + au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95,*.F03,*.F08 setf fortran endif -au BufNewFile,BufRead *.f,*.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran +au BufNewFile,BufRead *.for,*.fortran,*.fpp,*.ftn,*.f77,*.f90,*.f95,*.f03,*.f08 setf fortran + +" Fortran or Forth +au BufNewFile,BufRead *.f call dist#ft#FTf() " Framescript au BufNewFile,BufRead *.fsl setf framescript @@ -891,6 +898,7 @@ if exists('$XDG_CONFIG_HOME') endif au BufNewFile,BufRead $HOME/.config/cabal/config setf cabalconfig au BufNewFile,BufRead cabal.config setf cabalconfig +au BufNewFile,BufRead *.persistentmodels setf haskellpersistent " Haste au BufNewFile,BufRead *.ht setf haste @@ -945,6 +953,9 @@ au BufNewFile,BufRead */etc/host.conf setf hostconf " Hosts access au BufNewFile,BufRead */etc/hosts.allow,*/etc/hosts.deny setf hostsaccess +" Hurl +au BufRead,BufNewFile *.hurl setf hurl + " Hyper Builder au BufNewFile,BufRead *.hb setf hb @@ -1057,6 +1068,9 @@ au BufNewFile,BufRead *.json5 setf json5 " JSON Patch (RFC 6902) au BufNewFile,BufRead *.json-patch setf json +" Geojson is also json +au BufNewFile,BufRead *.geojson setf json + " Jupyter Notebook is also json au BufNewFile,BufRead *.ipynb setf json @@ -1558,6 +1572,10 @@ au BufNewFile,BufRead *.rcp setf pilrc " Pine config au BufNewFile,BufRead .pinerc,pinerc,.pinercex,pinercex setf pine +" Pip requirements +au BufNewFile,BufRead *.pip setf requirements +au BufNewFile,BufRead requirements.txt setf requirements + " Pipenv Pipfiles au BufNewFile,BufRead Pipfile setf toml au BufNewFile,BufRead Pipfile.lock setf json @@ -1676,6 +1694,9 @@ au BufNewFile,BufRead *.pk setf poke " Protocols au BufNewFile,BufRead */etc/protocols setf protocols +" PyPA manifest files +au BufNewFile,BufRead MANIFEST.in setf pymanifest + " Pyret au BufNewFile,BufRead *.arr setf pyret @@ -1690,6 +1711,9 @@ au BufNewFile,BufRead *.ptl,*.pyi,SConstruct setf python " QL au BufRead,BufNewFile *.ql,*.qll setf ql +" QML +au BufRead,BufNewFile *.qml,*.qbs setf qml + " QMLdir au BufRead,BufNewFile qmldir setf qmldir @@ -2314,6 +2338,9 @@ au BufNewFile,BufRead */.config/upstart/*.override setf upstart " URL shortcut au BufNewFile,BufRead *.url setf urlshortcut +" V +au BufNewFile,BufRead *.vsh,*.vv setf v + " Vala au BufNewFile,BufRead *.vala setf vala @@ -2396,6 +2423,9 @@ au BufNewFile,BufRead .wgetrc,wgetrc setf wget " Wget2 config au BufNewFile,BufRead .wget2rc,wget2rc setf wget2 +" WebGPU Shading Language (WGSL) +au BufNewFile,BufRead *.wgsl setf wgsl + " Website MetaLanguage au BufNewFile,BufRead *.wml setf wml @@ -2484,6 +2514,9 @@ au BufNewFile,BufRead *.fsproj,*.fsproj.user setf xml " VBPROJ files are Visual Studio.NET's XML-based Visual Basic project config files au BufNewFile,BufRead *.vbproj,*.vbproj.user setf xml +" Unison Language +au BufNewFile,BufRead *.u,*.uu setf unison + " Qt Linguist translation source and Qt User Interface Files are XML " However, for .ts TypeScript is more common. au BufNewFile,BufRead *.ui setf xml @@ -2529,7 +2562,7 @@ au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc au BufNewFile,BufRead *.y call dist#ft#FTy() " Yaml -au BufNewFile,BufRead *.yaml,*.yml setf yaml +au BufNewFile,BufRead *.yaml,*.yml,*.eyaml setf yaml " Raml au BufNewFile,BufRead *.raml setf raml diff --git a/runtime/ftoff.vim b/runtime/ftoff.vim index 377c6ef829..a33b0962d0 100644 --- a/runtime/ftoff.vim +++ b/runtime/ftoff.vim @@ -1,7 +1,8 @@ " Vim support file to switch off detection of file types " -" Maintainer: Bram Moolenaar -" Last change: 2001 Jun 11 +" Maintainer: The Vim Project +" Last change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar if exists("did_load_filetypes") unlet did_load_filetypes diff --git a/runtime/ftplugin.vim b/runtime/ftplugin.vim index 2500a7f27b..93f6b05a4c 100644 --- a/runtime/ftplugin.vim +++ b/runtime/ftplugin.vim @@ -2,8 +2,9 @@ vim9script noclear # Vim support file to switch on loading plugins for file types # -# Maintainer: Bram Moolenaar -# Last change: 2022 Feb 11 +# Maintainer: The Vim Project +# Last change: 2023 Aug 10 +# Former Maintainer: Bram Moolenaar if exists("g:did_load_ftplugin") finish diff --git a/runtime/ftplugin/aap.vim b/runtime/ftplugin/aap.vim index b5065e5157..df839c99ae 100644 --- a/runtime/ftplugin/aap.vim +++ b/runtime/ftplugin/aap.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: Aap recipe -" Maintainer: Bram Moolenaar -" Last Change: 2021 Nov 14 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/btm.vim b/runtime/ftplugin/btm.vim index d3dc5b75f5..1c2c68599d 100644 --- a/runtime/ftplugin/btm.vim +++ b/runtime/ftplugin/btm.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: BTM -" Maintainer: Bram Moolenaar -" Last Change: 2004 Jul 06 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim index 3627089ec2..4ddc4a5392 100644 --- a/runtime/ftplugin/c.vim +++ b/runtime/ftplugin/c.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: C -" Maintainer: Bram Moolenaar -" Last Change: 2022 Apr 08 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/cpp.vim b/runtime/ftplugin/cpp.vim index f9d31cbec3..fc92935a15 100644 --- a/runtime/ftplugin/cpp.vim +++ b/runtime/ftplugin/cpp.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: C++ -" Maintainer: Bram Moolenaar -" Last Change: 2020 Jul 26 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/diff.vim b/runtime/ftplugin/diff.vim index bf37d464c0..f2a0820be9 100644 --- a/runtime/ftplugin/diff.vim +++ b/runtime/ftplugin/diff.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: Diff -" Maintainer: Bram Moolenaar -" Last Change: 2021 Nov 14 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim index 84f4d0563b..2a864bf916 100644 --- a/runtime/ftplugin/haskell.vim +++ b/runtime/ftplugin/haskell.vim @@ -17,6 +17,7 @@ let b:undo_ftplugin = "setl com< cms< fo<" setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s setlocal formatoptions-=t formatoptions+=croql setlocal omnifunc=haskellcomplete#Complete +setlocal iskeyword+=' let &cpo = s:cpo_save unlet s:cpo_save diff --git a/runtime/ftplugin/heex.vim b/runtime/ftplugin/heex.vim index 5274d59fbf..f79c69d2aa 100644 --- a/runtime/ftplugin/heex.vim +++ b/runtime/ftplugin/heex.vim @@ -14,3 +14,14 @@ setlocal comments=:<%!-- setlocal commentstring=<%!--\ %s\ --%> let b:undo_ftplugin = 'set sw< sts< et< com< cms<' + +" HTML: thanks to Johannes Zellner and Benji Fisher. +if exists("loaded_matchit") && !exists("b:match_words") + let b:match_ignorecase = 1 + let b:match_words = ',' .. + \ '<:>,' .. + \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .. + \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .. + \ '<\@<=\([^/!][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' + let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words" +endif diff --git a/runtime/ftplugin/mail.vim b/runtime/ftplugin/mail.vim index f12022305f..3cef84f528 100644 --- a/runtime/ftplugin/mail.vim +++ b/runtime/ftplugin/mail.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: Mail -" Maintainer: Bram Moolenaar -" Last Change: 2021 Oct 23 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/make.vim b/runtime/ftplugin/make.vim index 168bc38eb3..7227bb3739 100644 --- a/runtime/ftplugin/make.vim +++ b/runtime/ftplugin/make.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: Make -" Maintainer: Bram Moolenaar -" Last Change: 2020 Oct 16 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/nix.vim b/runtime/ftplugin/nix.vim new file mode 100644 index 0000000000..d417cc7805 --- /dev/null +++ b/runtime/ftplugin/nix.vim @@ -0,0 +1,17 @@ +" Vim filetype plugin +" Language: nix +" Maintainer: Keith Smiley +" Last Change: 2023 Jul 22 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl commentstring< comments<" + +setlocal comments=:# +setlocal commentstring=#\ %s diff --git a/runtime/ftplugin/objc.vim b/runtime/ftplugin/objc.vim index e41beb5dad..d129b33c1c 100644 --- a/runtime/ftplugin/objc.vim +++ b/runtime/ftplugin/objc.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: Objective C -" Maintainer: Bram Moolenaar -" Last Change: 2003 Jan 15 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/pymanifest.vim b/runtime/ftplugin/pymanifest.vim new file mode 100644 index 0000000000..a77e956ae5 --- /dev/null +++ b/runtime/ftplugin/pymanifest.vim @@ -0,0 +1,13 @@ +" Vim filetype plugin +" Language: PyPA manifest +" Maintainer: ObserverOfTime +" Last Change: 2023 Aug 08 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setl comments=:# commentstring=#\ %s + +let b:undo_ftplugin = 'setl com< cms<' diff --git a/runtime/ftplugin/qml.vim b/runtime/ftplugin/qml.vim new file mode 100644 index 0000000000..fd5ddbb4bc --- /dev/null +++ b/runtime/ftplugin/qml.vim @@ -0,0 +1,31 @@ +" Vim filetype plugin file +" Language: QML +" Maintainer: Chase Knowlden +" Last Change: 2023 Aug 16 + +if exists( 'b:did_ftplugin' ) + finish +endif +let b:did_ftplugin = 1 + +let s:cpoptions_save = &cpoptions +set cpoptions&vim + +" command for undo +let b:undo_ftplugin = "setlocal formatoptions< comments< commentstring<" + +if (has("gui_win32") || has("gui_gtk")) && !exists( 'b:browsefilter' ) + let b:browsefilter = + \ 'QML Files (*.qml,*.qbs)\t*.qml;*.qbs\n' . + \ 'All Files\t*\n' +endif + +" Set 'comments' to format dashed lists in comments. +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// +setlocal commentstring=//%s + +setlocal formatoptions-=t +setlocal formatoptions+=croql + +let &cpoptions = s:cpoptions_save +unlet s:cpoptions_save diff --git a/runtime/ftplugin/rust.vim b/runtime/ftplugin/rust.vim index 7efca5985b..ececcced22 100644 --- a/runtime/ftplugin/rust.vim +++ b/runtime/ftplugin/rust.vim @@ -1,7 +1,7 @@ " Language: Rust " Description: Vim ftplugin for Rust " Maintainer: Chris Morgan -" Maintainer: Kevin Ballard +" Maintainer: Lily Ballard " Last Change: June 08, 2016 " For bugs, patches and license go to https://github.com/rust-lang/rust.vim diff --git a/runtime/ftplugin/sed.vim b/runtime/ftplugin/sed.vim new file mode 100644 index 0000000000..0073872877 --- /dev/null +++ b/runtime/ftplugin/sed.vim @@ -0,0 +1,29 @@ +" Vim filetype plugin file +" Language: sed +" Maintainer: Doug Kearns +" Last Change: 2020 Apr 1 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +setlocal comments=:# +setlocal commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql + +let b:undo_ftplugin = "setl com< cms< fo<" + +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = "sed Script Files (*.sed)\t*.sed\n" .. + \ "All Files (*.*)\t*.*\n" + let b:undo_ftplugin ..= " | unlet! b:browsefilter" +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 diff --git a/runtime/ftplugin/toml.vim b/runtime/ftplugin/toml.vim index 1ef09a16e3..6bd79b1c0a 100644 --- a/runtime/ftplugin/toml.vim +++ b/runtime/ftplugin/toml.vim @@ -2,7 +2,7 @@ " Language: TOML " Homepage: https://github.com/cespare/vim-toml " Maintainer: Aman Verma -" Author: Kevin Ballard +" Author: Lily Ballard " Last Change: Sep 21, 2021 if exists('b:did_ftplugin') diff --git a/runtime/ftplugin/unison.vim b/runtime/ftplugin/unison.vim new file mode 100644 index 0000000000..76dbaef6aa --- /dev/null +++ b/runtime/ftplugin/unison.vim @@ -0,0 +1,14 @@ +" Vim filetype plugin file +" Language: unison +" Maintainer: Anton Parkhomenko +" Latest Revision: 2023-08-07 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl cms< isk<" + +setlocal commentstring=--\ %s +setlocal iskeyword+=!,' diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim index 1ae1d2346b..e25054ba89 100644 --- a/runtime/ftplugin/vim.vim +++ b/runtime/ftplugin/vim.vim @@ -1,7 +1,8 @@ " Vim filetype plugin " Language: Vim -" Maintainer: Bram Moolenaar -" Last Change: 2023 Feb 07 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugin/zimbu.vim b/runtime/ftplugin/zimbu.vim index 9d9fa6f406..2ce08e5ca4 100644 --- a/runtime/ftplugin/zimbu.vim +++ b/runtime/ftplugin/zimbu.vim @@ -1,7 +1,8 @@ " Vim filetype plugin file " Language: Zimbu -" Maintainer: Bram Moolenaar -" Last Change: 2022 Sep 07 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/runtime/ftplugof.vim b/runtime/ftplugof.vim index e0505ce62f..46351d2033 100644 --- a/runtime/ftplugof.vim +++ b/runtime/ftplugof.vim @@ -2,8 +2,9 @@ vim9script # Vim support file to switch off loading plugins for file types # -# Maintainer: Bram Moolenaar -# Last Change: 2022 Feb 09 +# Maintainer: The Vim Project +# Last Change: 2023 Aug 10 +# Former Maintainer: Bram Moolenaar if exists("g:did_load_ftplugin") unlet g:did_load_ftplugin diff --git a/runtime/gvimrc_example.vim b/runtime/gvimrc_example.vim index 083dacee90..e42f365b62 100644 --- a/runtime/gvimrc_example.vim +++ b/runtime/gvimrc_example.vim @@ -2,8 +2,9 @@ " The commands in this are executed when the GUI is started, after the vimrc " has been executed. " -" Maintainer: Bram Moolenaar -" Last change: 2016 Apr 05 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " " To use it, copy it to " for Unix: ~/.gvimrc diff --git a/runtime/indent.vim b/runtime/indent.vim index a3249956a4..72b5587341 100644 --- a/runtime/indent.vim +++ b/runtime/indent.vim @@ -1,7 +1,8 @@ " Vim support file to switch on loading indent files for file types " -" Maintainer: Bram Moolenaar -" Last Change: 2022 Feb 11 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar if exists("did_indent_on") finish diff --git a/runtime/indent/README.txt b/runtime/indent/README.txt index 649870636e..05ab126c8c 100644 --- a/runtime/indent/README.txt +++ b/runtime/indent/README.txt @@ -6,15 +6,16 @@ at ":help indent-expression". Looking at the existing files should give you inspiration. If you make a new indent file which would be useful for others, please send it -to Bram@vim.org. Include instructions for detecting the file type for this -language, by file name extension or by checking a few lines in the file. -And please stick to the rules below. +to the vim-dev mailing list . Include instructions for +detecting the file type for this language, by file name extension or by +checking a few lines in the file. And please stick to the rules below. If you have remarks about an existing file, send them to the maintainer of -that file. Only when you get no response send a message to Bram@vim.org. +that file. Only when you get no response send a message to the vim-dev +mailing list: . If you are the maintainer of an indent file and make improvements, e-mail the -new version to Bram@vim.org. +new version to the vim-dev mailing list: . Rules for making an indent file: diff --git a/runtime/indent/aap.vim b/runtime/indent/aap.vim index 35828b4c1a..23c104985e 100644 --- a/runtime/indent/aap.vim +++ b/runtime/indent/aap.vim @@ -1,7 +1,8 @@ " Vim indent file " Language: Aap recipe -" Maintainer: Bram Moolenaar -" Last Change: 2005 Jun 24 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only load this indent file when no other was loaded. if exists("b:did_indent") diff --git a/runtime/indent/c.vim b/runtime/indent/c.vim index e224382f63..7f285e1b98 100644 --- a/runtime/indent/c.vim +++ b/runtime/indent/c.vim @@ -1,7 +1,8 @@ " Vim indent file " Language: C -" Maintainer: Bram Moolenaar -" Last Change: 2005 Mar 27 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only load this indent file when no other was loaded. if exists("b:did_indent") diff --git a/runtime/indent/cpp.vim b/runtime/indent/cpp.vim index ffa37d7208..bb4dfd185e 100644 --- a/runtime/indent/cpp.vim +++ b/runtime/indent/cpp.vim @@ -1,7 +1,8 @@ " Vim indent file " Language: C++ -" Maintainer: Bram Moolenaar -" Last Change: 2008 Nov 29 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only load this indent file when no other was loaded. if exists("b:did_indent") diff --git a/runtime/indent/cuda.vim b/runtime/indent/cuda.vim index 68ee9cec0c..5980ddda44 100644 --- a/runtime/indent/cuda.vim +++ b/runtime/indent/cuda.vim @@ -1,7 +1,8 @@ " Vim indent file " Language: CUDA -" Maintainer: Bram Moolenaar -" Last Change: 2008 Nov 29 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only load this indent file when no other was loaded. if exists("b:did_indent") diff --git a/runtime/indent/lua.vim b/runtime/indent/lua.vim index 0d1f934a03..35b08d4037 100644 --- a/runtime/indent/lua.vim +++ b/runtime/indent/lua.vim @@ -27,6 +27,16 @@ if exists("*GetLuaIndent") endif function! GetLuaIndent() + let ignorecase_save = &ignorecase + try + let &ignorecase = 0 + return GetLuaIndentIntern() + finally + let &ignorecase = ignorecase_save + endtry +endfunction + +function! GetLuaIndentIntern() " Find a non-blank line above the current line. let prevlnum = prevnonblank(v:lnum - 1) @@ -41,7 +51,7 @@ function! GetLuaIndent() let prevline = getline(prevlnum) let midx = match(prevline, '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\|then\>\)') if midx == -1 - let midx = match(prevline, '{\s*$') + let midx = match(prevline, '{\s*\%(--\%([^[].*\)\?\)\?$') if midx == -1 let midx = match(prevline, '\\s*\%(\k\|[.:]\)\{-}\s*(') endif diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim index 8c3d0b0670..42ab4f3778 100644 --- a/runtime/indent/python.vim +++ b/runtime/indent/python.vim @@ -1,8 +1,9 @@ " Vim indent file -" Language: Python -" Maintainer: Bram Moolenaar +" Language: Python +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Original Author: David Bustos -" Last Change: 2021 Sep 26 " Only load this indent file when no other was loaded. if exists("b:did_indent") diff --git a/runtime/indent/qml.vim b/runtime/indent/qml.vim new file mode 100644 index 0000000000..8c9fa91250 --- /dev/null +++ b/runtime/indent/qml.vim @@ -0,0 +1,59 @@ +" Vim indent file +" Language: QML +" Maintainer: Chase Knowlden +" Last Change: 2023 Aug 16 +" +" Improved JavaScript indent script. + +" Indent script in place for this already? +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 +let b:undo_indent = "setlocal indentexpr< indentkeys<" + +setlocal indentexpr=s:GetQmlIndent() +setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e,*,=*/ + +" Only define functions once per session +if exists("*s:GetQmlIndent") + finish +endif + +" Clean up a line of code by removing trailing '//' and '/* */' comments, and trimming +" whitespace +function! s:Trim(line) + return substitute(substitute(substitute(a:line, '// .*', '', ''), '/\* .* \*/', '', ''), '^\s*\|\s*$', '', 'g') +endfunction + +function! s:GetQmlIndent() + let num = v:lnum + let line = s:Trim(getline(num)) + + let pnum = prevnonblank(num - 1) + if pnum == 0 + return 0 + endif + let pline = s:Trim(getline(pnum)) + + let ind = indent(pnum) + + " bracket/brace/paren blocks + if pline =~ '[{[(]$' + let ind += &sw + endif + if line =~ '^[}\])]' + let ind -= &sw + endif + + " '/*' comments + if pline =~ '^/\*.*\*/' + " no indent for single-line form + elseif pline =~ '^/\*' + let ind += 1 + elseif pline =~ '^\*/' + let ind -= 1 + endif + + return ind +endfunction diff --git a/runtime/indent/rapid.vim b/runtime/indent/rapid.vim new file mode 100644 index 0000000000..f97ebf84db --- /dev/null +++ b/runtime/indent/rapid.vim @@ -0,0 +1,255 @@ +" ABB Rapid Command indent file for Vim +" Language: ABB Rapid Command +" Maintainer: Patrick Meiser-Knosowski +" Version: 2.2.7 +" Last Change: 12. May 2023 +" Credits: Based on indent/vim.vim +" +" Suggestions of improvement are very welcome. Please email me! +" +" Known bugs: ../doc/rapid.txt +" +" TODO +" * indent wrapped lines which do not end with an ; or special key word, +" maybe this is a better idea, but then () and [] has to be changed as +" well +" + +if exists("g:rapidNoSpaceIndent") + if !exists("g:rapidSpaceIndent") + let g:rapidSpaceIndent = !g:rapidNoSpaceIndent + endif + unlet g:rapidNoSpaceIndent +endif + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") || get(g:,'rapidNoIndent',0) + finish +endif +let b:did_indent = 1 + +setlocal nolisp +setlocal nosmartindent +setlocal autoindent +setlocal indentexpr=GetRapidIndent() +if get(g:,'rapidNewStyleIndent',0) + setlocal indentkeys=!^F,o,O,0=~endmodule,0=~error,0=~undo,0=~backward,0=~endproc,0=~endrecord,0=~endtrap,0=~endfunc,0=~else,0=~endif,0=~endtest,0=~endfor,0=~endwhile,:,<[>,<]>,<(>,<)> +else + setlocal indentkeys=!^F,o,O,0=~endmodule,0=~error,0=~undo,0=~backward,0=~endproc,0=~endrecord,0=~endtrap,0=~endfunc,0=~else,0=~endif,0=~endtest,0=~endfor,0=~endwhile,: +endif +let b:undo_indent="setlocal lisp< si< ai< inde< indk<" + +if get(g:,'rapidSpaceIndent',1) + " Use spaces for indention, 2 is enough. + " More or even tabs wastes space on the teach pendant. + setlocal softtabstop=2 + setlocal shiftwidth=2 + setlocal expandtab + setlocal shiftround + let b:undo_indent = b:undo_indent." sts< sw< et< sr<" +endif + +" Only define the function once. +if exists("*GetRapidIndent") + finish +endif + +let s:keepcpo= &cpo +set cpo&vim + +function GetRapidIndent() + let ignorecase_save = &ignorecase + try + let &ignorecase = 0 + return s:GetRapidIndentIntern() + finally + let &ignorecase = ignorecase_save + endtry +endfunction + +function s:GetRapidIndentIntern() abort + + let l:currentLineNum = v:lnum + let l:currentLine = getline(l:currentLineNum) + + if l:currentLine =~ '^!' && !get(g:,'rapidCommentIndent',0) + " If current line is ! line comment, do not change indent + " This may be usefull if code is commented out at the first column. + return 0 + endif + + " Find a non-blank line above the current line. + let l:preNoneBlankLineNum = s:RapidPreNoneBlank(v:lnum - 1) + if l:preNoneBlankLineNum == 0 + " At the start of the file use zero indent. + return 0 + endif + + let l:preNoneBlankLine = getline(l:preNoneBlankLineNum) + let l:ind = indent(l:preNoneBlankLineNum) + + " Define add a 'shiftwidth' pattern + let l:addShiftwidthPattern = '\c\v^\s*(' + let l:addShiftwidthPattern .= '((local|task)\s+)?(module|record|proc|func|trap)\s+\k' + let l:addShiftwidthPattern .= '|(backward|error|undo)>' + let l:addShiftwidthPattern .= ')' + " + " Define Subtract 'shiftwidth' pattern + let l:subtractShiftwidthPattern = '\c\v^\s*(' + let l:subtractShiftwidthPattern .= 'end(module|record|proc|func|trap)>' + let l:subtractShiftwidthPattern .= '|(backward|error|undo)>' + let l:subtractShiftwidthPattern .= ')' + + " Add shiftwidth + if l:preNoneBlankLine =~ l:addShiftwidthPattern + \|| s:RapidLenTilStr(l:preNoneBlankLineNum, "then", 0)>=0 + \|| s:RapidLenTilStr(l:preNoneBlankLineNum, "else", 0)>=0 + \|| s:RapidLenTilStr(l:preNoneBlankLineNum, "do", 0)>=0 + \|| s:RapidLenTilStr(l:preNoneBlankLineNum, "case", 0)>=0 + \|| s:RapidLenTilStr(l:preNoneBlankLineNum, "default", 0)>=0 + let l:ind += &sw + endif + + " Subtract shiftwidth + if l:currentLine =~ l:subtractShiftwidthPattern + \|| s:RapidLenTilStr(l:currentLineNum, "endif", 0)>=0 + \|| s:RapidLenTilStr(l:currentLineNum, "endfor", 0)>=0 + \|| s:RapidLenTilStr(l:currentLineNum, "endwhile", 0)>=0 + \|| s:RapidLenTilStr(l:currentLineNum, "endtest", 0)>=0 + \|| s:RapidLenTilStr(l:currentLineNum, "else", 0)>=0 + \|| s:RapidLenTilStr(l:currentLineNum, "elseif", 0)>=0 + \|| s:RapidLenTilStr(l:currentLineNum, "case", 0)>=0 + \|| s:RapidLenTilStr(l:currentLineNum, "default", 0)>=0 + let l:ind = l:ind - &sw + endif + + " First case (or default) after a test gets the indent of the test. + if (s:RapidLenTilStr(l:currentLineNum, "case", 0)>=0 || s:RapidLenTilStr(l:currentLineNum, "default", 0)>=0) && s:RapidLenTilStr(l:preNoneBlankLineNum, "test", 0)>=0 + let l:ind += &sw + endif + + " continued lines with () or [] + let l:OpenSum = s:RapidLoneParen(l:preNoneBlankLineNum,"(") + s:RapidLoneParen(l:preNoneBlankLineNum,"[") + if get(g:,'rapidNewStyleIndent',0) + let l:CloseSum = s:RapidLoneParen(l:preNoneBlankLineNum,")") + s:RapidLoneParen(l:currentLineNum,"]") + else + let l:CloseSum = s:RapidLoneParen(l:preNoneBlankLineNum,")") + s:RapidLoneParen(l:preNoneBlankLineNum,"]") + endif + if l:OpenSum > l:CloseSum + let l:ind += (l:OpenSum * 4 * &sw) + elseif l:OpenSum < l:CloseSum + let l:ind -= (l:CloseSum * 4 * &sw) + endif + + return l:ind +endfunction + +" Returns the length of the line until a:str occur outside a string or +" comment. Search starts at string index a:startIdx. +" If a:str is a word also add word bounderies and case insesitivity. +" Note: rapidTodoComment and rapidDebugComment are not taken into account. +function s:RapidLenTilStr(lnum, str, startIdx) abort + + let l:line = getline(a:lnum) + let l:len = strlen(l:line) + let l:idx = a:startIdx + let l:str = a:str + if l:str =~ '^\k\+$' + let l:str = '\c\<' . l:str . '\>' + endif + + while l:len > l:idx + let l:idx = match(l:line, l:str, l:idx) + if l:idx < 0 + " a:str not found + return -1 + endif + let l:synName = synIDattr(synID(a:lnum,l:idx+1,0),"name") + if l:synName != "rapidString" + \&& l:synName != "rapidConcealableString" + \&& (l:synName != "rapidComment" || l:str =~ '^!') + " a:str found outside string or line comment + return l:idx + endif + " a:str is part of string or line comment + let l:idx += 1 " continue search for a:str + endwhile + + " a:str not found or l:len <= a:startIdx + return -1 +endfunction + +" a:lchar shoud be one of (, ), [, ], { or } +" returns the number of opening/closing parenthesise which have no +" closing/opening match in getline(a:lnum) +function s:RapidLoneParen(lnum,lchar) abort + if a:lchar == "(" || a:lchar == ")" + let l:opnParChar = "(" + let l:clsParChar = ")" + elseif a:lchar == "[" || a:lchar == "]" + let l:opnParChar = "[" + let l:clsParChar = "]" + elseif a:lchar == "{" || a:lchar == "}" + let l:opnParChar = "{" + let l:clsParChar = "}" + else + return 0 + endif + + let l:line = getline(a:lnum) + + " look for the first ! which is not part of a string + let l:len = s:RapidLenTilStr(a:lnum,"!",0) + if l:len == 0 + return 0 " first char is !; ignored + endif + + let l:opnParen = 0 + " count opening brakets + let l:i = 0 + while l:i >= 0 + let l:i = s:RapidLenTilStr(a:lnum, l:opnParChar, l:i) + if l:i >= 0 + let l:opnParen += 1 + let l:i += 1 + endif + endwhile + + let l:clsParen = 0 + " count closing brakets + let l:i = 0 + while l:i >= 0 + let l:i = s:RapidLenTilStr(a:lnum, l:clsParChar, l:i) + if l:i >= 0 + let l:clsParen += 1 + let l:i += 1 + endif + endwhile + + if (a:lchar == "(" || a:lchar == "[" || a:lchar == "{") && l:opnParen>l:clsParen + return (l:opnParen-l:clsParen) + elseif (a:lchar == ")" || a:lchar == "]" || a:lchar == "}") && l:clsParen>l:opnParen + return (l:clsParen-l:opnParen) + endif + + return 0 +endfunction + +" This function works almost like prevnonblank() but handles %%%-headers and +" comments like blank lines +function s:RapidPreNoneBlank(lnum) abort + + let nPreNoneBlank = prevnonblank(a:lnum) + + while nPreNoneBlank>0 && getline(nPreNoneBlank) =~ '\v\c^\s*(\%\%\%|!)' + " Previouse none blank line irrelevant. Look further aback. + let nPreNoneBlank = prevnonblank(nPreNoneBlank - 1) + endwhile + + return nPreNoneBlank +endfunction + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim:sw=2 sts=2 et diff --git a/runtime/indent/rust.vim b/runtime/indent/rust.vim index d30629b64e..2b544f4a67 100644 --- a/runtime/indent/rust.vim +++ b/runtime/indent/rust.vim @@ -132,6 +132,22 @@ function GetRustIndent(lnum) return indent(prevlinenum) + 6 endif + "match newline after struct with generic bound like + "struct SomeThing + "| <-- newline indent should same as prevline + if prevline[len(prevline) - 1] == ">" + \ && prevline =~# "\s*struct.*>$" + return indent(prevlinenum) + endif + + "match newline after where like: + "struct SomeThing + "where + " T: Display, + if prevline =~# '^\s*where$' + return indent(prevlinenum) + 4 + endif + if prevline[len(prevline) - 1] == "," \ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]' \ && prevline !~ '^\s*fn\s' diff --git a/runtime/indent/testdir/rapid.in b/runtime/indent/testdir/rapid.in new file mode 100644 index 0000000000..515912ed89 --- /dev/null +++ b/runtime/indent/testdir/rapid.in @@ -0,0 +1,266 @@ +! vim: set ft=rapid : + +! START_INDENT + +%%% + VERSION:1 + LANGUAGE:ENGLISH +%%% + +module LowerCaseModule + +task pers num n1 := 0; +local pers num n2 := 1; +var bool b1 := false; +var intnum i1; + +! put some stuff in those strings that may confuse indentation +const string st1 := "endmodule ("; +pers string st_Appl_Info{3,3}:=[ +[ +"[" +, +"default" +, +"case" +], +[ +"else" +, +"then" +, +"endif" +], +[ +"do" +, +"}" +, +")" +], +]; + +pers tooldata tTool1:=[TRUE, +[ +[97.4, 0, 223.1], +[0.924, 0, 0.383 ,0] +], +[5, +[23, 0, 75], +[1, 0, 0, 0], 0, 0, 0 +] +]; +const robtarget p1:=[ +[600, 500, 225.3], +[1, 0, 0, 0], +[1, 1, 0, 0], +[ 11, 12.3, 9E9, 9E9, 9E9, 9E9] +]; + +record myRec +num nRecNum1 +bool bRecBool1 +endrecord + +proc proc1(num n1, +num n2) +var string st1; +n1 := n1+1; +MoveJSync p1, vmax, z30, tool1, "proc2"; +backward +MoveJSync p1, v100, fine, tool1, "proc2"; +undo +n1 := n1-1; +error +trynext; +endproc + +func num nFunc1( +switch s1 +|switch s2 +,num n1 +,bool b1) +var num nVar; +if not Present(s1) return; +if Present(s1) then +Incr n1;' +elseif Present(s2) then +b1:=false; +else +while n1>0 do +Decr n1; +test n1 + +case 1: +test1; +case 2: +test2; +default: +WaitUntil false; +endtest +endwhile +endif +for i from 1 to 10 step 2 do +for j from 1 to 10 do +st_Appl_Info{i,j} := ""; +endfor +endfor +! return 1; +return 0; +error +return -1; +endfunc + +trap Trap1 +Reset do1; +endtrap + +endmodule + +MODULE UpperCaseModule(SYSMODULE,NOSTEPIN) +TASK pers num n1 := 0; +LOCAL pers num n2 := 1; +VAR bool b1 := false; +VAR intnum i1; + +LOCAL FUNC num nFunc1( +switch s1 +|switch s2 +,num n1 +,bool b1) +VAR num nVar; +IF NOT PRESENT(s1) RETURN; +IF PRESENT(s1) THEN +INCR n1;' +ELSEIF PRESENT(s2) THEN +b1:=FALSE; +ELSE +WHILE n1>0 DO +DECR n1; +TEST n1 + +CASE 1: +test1; +CASE 2: +test2; +DEFAULT: +WAITUNTIL FALSE; +ENDTEST +ENDWHILE +ENDIF +FOR i FROM 1 TO 10 STEP 2 DO +FOR j FROM 1 TO 10 DO +st_Appl_Info{i,j} := ""; +ENDFOR +ENDFOR +! RETURN 1; +RETURN 0; +ERROR +RETURN -1; +ENDFUNC + +TRAP Trap1 +Reset do1; +ENDTRAP + +ENDMODULE + +Module MixedCaseModule(SysModule) +Task pers num n1 := 0; +Local pers num n2 := 1; +Var bool b1 := false; +Var intnum i1; + +Task Func num nFunc1( +switch s1 +|switch s2 +,num n1 +,bool b1) +Var num nVar; +If Not Present(s1) Return; +If Present(s1) Then +Incr n1;' +ElseIf Present(s2) Then +b1:=false; +Else +While n1>0 Do +Decr n1; +Test n1 + +Case 1: +test1; +Case 2: +test2; +Default: +WaitUntil false; +EndTest +EndWhile +EndIf +For i From 1 To 10 Step 2 Do +For j From 1 To 10 Do +st_Appl_Info{i,j} := ""; +EndFor +EndFor +! Return 1; +Return 0; +Error +Return -1; +EndFunc + +Trap Trap1 +Reset do1; +EndTrap + +EndModule + +! END_INDENT + +! START_INDENT +! INDENT_EXE let g:rapidSpaceIndent = 0 +! INDENT_EXE set shiftwidth=4 + +proc bla() +var num i; +Incr i; +endproc + +! END_INDENT + +! START_INDENT +! INDENT_EXE let g:rapidCommentIndent = 1 +! +proc bla() +! indent this first column comment because of g:rapidCommentIndent=1 +endproc +! END_INDENT + +! START_INDENT +! INDENT_EXE let g:rapidNewStyleIndent = 1 +pers string st_Appl_Info{3,3}:= +[ +[ +"[" +, +"default" +, +"case" +] +, +[ +"else" +, +"then" +, +"endif" +] +, +[ +"do" +, +"}" +, +")" +] +, +]; +! END_INDENT diff --git a/runtime/indent/testdir/rapid.ok b/runtime/indent/testdir/rapid.ok new file mode 100644 index 0000000000..ce336821c4 --- /dev/null +++ b/runtime/indent/testdir/rapid.ok @@ -0,0 +1,266 @@ +! vim: set ft=rapid : + +! START_INDENT + +%%% +VERSION:1 +LANGUAGE:ENGLISH +%%% + +module LowerCaseModule + + task pers num n1 := 0; + local pers num n2 := 1; + var bool b1 := false; + var intnum i1; + +! put some stuff in those strings that may confuse indentation + const string st1 := "endmodule ("; + pers string st_Appl_Info{3,3}:=[ + [ + "[" + , + "default" + , + "case" + ], + [ + "else" + , + "then" + , + "endif" + ], + [ + "do" + , + "}" + , + ")" + ], + ]; + + pers tooldata tTool1:=[TRUE, + [ + [97.4, 0, 223.1], + [0.924, 0, 0.383 ,0] + ], + [5, + [23, 0, 75], + [1, 0, 0, 0], 0, 0, 0 + ] + ]; + const robtarget p1:=[ + [600, 500, 225.3], + [1, 0, 0, 0], + [1, 1, 0, 0], + [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] + ]; + + record myRec + num nRecNum1 + bool bRecBool1 + endrecord + + proc proc1(num n1, + num n2) + var string st1; + n1 := n1+1; + MoveJSync p1, vmax, z30, tool1, "proc2"; + backward + MoveJSync p1, v100, fine, tool1, "proc2"; + undo + n1 := n1-1; + error + trynext; + endproc + + func num nFunc1( + switch s1 + |switch s2 + ,num n1 + ,bool b1) + var num nVar; + if not Present(s1) return; + if Present(s1) then + Incr n1;' + elseif Present(s2) then + b1:=false; + else + while n1>0 do + Decr n1; + test n1 + + case 1: + test1; + case 2: + test2; + default: + WaitUntil false; + endtest + endwhile + endif + for i from 1 to 10 step 2 do + for j from 1 to 10 do + st_Appl_Info{i,j} := ""; + endfor + endfor +! return 1; + return 0; + error + return -1; + endfunc + + trap Trap1 + Reset do1; + endtrap + +endmodule + +MODULE UpperCaseModule(SYSMODULE,NOSTEPIN) + TASK pers num n1 := 0; + LOCAL pers num n2 := 1; + VAR bool b1 := false; + VAR intnum i1; + + LOCAL FUNC num nFunc1( + switch s1 + |switch s2 + ,num n1 + ,bool b1) + VAR num nVar; + IF NOT PRESENT(s1) RETURN; + IF PRESENT(s1) THEN + INCR n1;' + ELSEIF PRESENT(s2) THEN + b1:=FALSE; + ELSE + WHILE n1>0 DO + DECR n1; + TEST n1 + + CASE 1: + test1; + CASE 2: + test2; + DEFAULT: + WAITUNTIL FALSE; + ENDTEST + ENDWHILE + ENDIF + FOR i FROM 1 TO 10 STEP 2 DO + FOR j FROM 1 TO 10 DO + st_Appl_Info{i,j} := ""; + ENDFOR + ENDFOR +! RETURN 1; + RETURN 0; + ERROR + RETURN -1; + ENDFUNC + + TRAP Trap1 + Reset do1; + ENDTRAP + +ENDMODULE + +Module MixedCaseModule(SysModule) + Task pers num n1 := 0; + Local pers num n2 := 1; + Var bool b1 := false; + Var intnum i1; + + Task Func num nFunc1( + switch s1 + |switch s2 + ,num n1 + ,bool b1) + Var num nVar; + If Not Present(s1) Return; + If Present(s1) Then + Incr n1;' + ElseIf Present(s2) Then + b1:=false; + Else + While n1>0 Do + Decr n1; + Test n1 + + Case 1: + test1; + Case 2: + test2; + Default: + WaitUntil false; + EndTest + EndWhile + EndIf + For i From 1 To 10 Step 2 Do + For j From 1 To 10 Do + st_Appl_Info{i,j} := ""; + EndFor + EndFor +! Return 1; + Return 0; + Error + Return -1; + EndFunc + + Trap Trap1 + Reset do1; + EndTrap + +EndModule + +! END_INDENT + +! START_INDENT +! INDENT_EXE let g:rapidSpaceIndent = 0 +! INDENT_EXE set shiftwidth=4 + +proc bla() + var num i; + Incr i; +endproc + +! END_INDENT + +! START_INDENT +! INDENT_EXE let g:rapidCommentIndent = 1 +! +proc bla() + ! indent this first column comment because of g:rapidCommentIndent=1 +endproc +! END_INDENT + +! START_INDENT +! INDENT_EXE let g:rapidNewStyleIndent = 1 +pers string st_Appl_Info{3,3}:= +[ + [ + "[" + , + "default" + , + "case" + ] + , + [ + "else" + , + "then" + , + "endif" + ] + , + [ + "do" + , + "}" + , + ")" + ] + , +]; +! END_INDENT diff --git a/runtime/indent/testdir/vim.in b/runtime/indent/testdir/vim.in index c60d2d1160..c2e149ab37 100644 --- a/runtime/indent/testdir/vim.in +++ b/runtime/indent/testdir/vim.in @@ -483,6 +483,13 @@ endif endif " END_INDENT +" START_INDENT +if true +var d = { +end: 0} +endif +" END_INDENT + " START_INDENT nunmap ( nunmap ) diff --git a/runtime/indent/testdir/vim.ok b/runtime/indent/testdir/vim.ok index 57f0dbf34d..b10e081dd8 100644 --- a/runtime/indent/testdir/vim.ok +++ b/runtime/indent/testdir/vim.ok @@ -483,6 +483,13 @@ if true endif " END_INDENT +" START_INDENT +if true + var d = { + end: 0} +endif +" END_INDENT + " START_INDENT nunmap ( nunmap ) diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim index 7b45d41ad6..97a4a3662d 100644 --- a/runtime/indent/vim.vim +++ b/runtime/indent/vim.vim @@ -2,8 +2,9 @@ vim9script # Vim indent file # Language: Vim script -# Maintainer: Bram Moolenaar -# Last Change: 2023 Feb 02 +# Maintainer: The Vim Project +# Last Change: 2023 Aug 10 +# Former Maintainer: Bram Moolenaar # Only load this indent file when no other was loaded. if exists('b:did_indent') diff --git a/runtime/indent/xhtml.vim b/runtime/indent/xhtml.vim index 2197b7901c..e5c9cc307f 100644 --- a/runtime/indent/xhtml.vim +++ b/runtime/indent/xhtml.vim @@ -1,7 +1,8 @@ " Vim indent file " Language: XHTML -" Maintainer: Bram Moolenaar (for now) -" Last Change: 2005 Jun 24 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only load this indent file when no other was loaded. if exists("b:did_indent") diff --git a/runtime/indent/zimbu.vim b/runtime/indent/zimbu.vim index 0e6e2ab1d1..08369e42e5 100644 --- a/runtime/indent/zimbu.vim +++ b/runtime/indent/zimbu.vim @@ -1,7 +1,8 @@ " Vim indent file " Language: Zimbu -" Maintainer: Bram Moolenaar -" Last Change: 2021 Sep 26 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Only load this indent file when no other was loaded. if exists("b:did_indent") diff --git a/runtime/indoff.vim b/runtime/indoff.vim index 0d930352bb..57d5e5400e 100644 --- a/runtime/indoff.vim +++ b/runtime/indoff.vim @@ -1,7 +1,8 @@ " Vim support file to switch off loading indent files for file types " -" Maintainer: Bram Moolenaar -" Last Change: 2001 Jun 11 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar if exists("did_indent_on") unlet did_indent_on diff --git a/runtime/keymap/russian-typograph.vim b/runtime/keymap/russian-typograph.vim index e0fbf22884..7c5aed6089 100644 --- a/runtime/keymap/russian-typograph.vim +++ b/runtime/keymap/russian-typograph.vim @@ -1,54 +1,140 @@ " Vim Keymap file for Russian characters -" layout English-US standard 104 key 'QWERTY', 'JCUKEN' +" layout English-US 104 key 'QWERTY' " -" Maintainer: Restorer -" Last Changed: 20 Jan 2019 -" Description: РаÑкладка Ñделана на оÑнове раÑкладки «руÑÑÐºÐ°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð¾Ð¿Ð¸Ñь» -" (KBDRU1.DLL), поÑтавлÑемой в ÑоÑтаве ОС MS Windows. Эта раÑкладка позволÑет -" печать практичеÑки вÑе знаки Ð¿Ñ€ÐµÐ¿Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ†Ð¸Ñ„Ñ€Ð¾Ð²Ð¾Ð¹ Ñ€Ñд и не Ñ‚Ñ€ÐµÐ±ÑƒÑ Ð¿Ñ€Ð¸ -" Ñтом Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… клавиш, ну и также удобное раÑположение буквы «Ð». -" Однако были внеÑены некоторые Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ (улучшениÑ?), в чаÑтноÑти: -" †раздельные Ñимволы круглых Ñкобок (), раÑположены на тех же позициÑÑ…, что и -" в US-International; -" †раздельные Ñимволы типографÑких кавычек «», раÑположены на клавишах «3» и -" «4» ÑоответÑтвенно; -" †на Ñтих же клавишах находÑÑ‚ÑÑ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ðµ кавычки “лапкиâ€, набираемые при -" нажатой клавише «ALT»; -" †возможноÑть набирать Ñимволы, отÑутÑтвующие в руÑÑкой раÑкладке клавиатуры, -" а именно @#$^&*{}[]"'`~<>, которые раÑположены на тех же меÑтах, что и раньше. -" Ð”Ð»Ñ Ñтого не требуетÑÑ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡Ð°Ñ‚ÑŒÑÑ Ð² латинÑкую раÑкладку клавиатуры, а -" оÑтаваÑÑÑŒ в руÑÑкой, иÑпользовать Ð´Ð»Ñ Ñтого дополнительные клавиши «SHIFT» и -" «ALT»; -" †и ещё неÑколько удобÑтв, которые позволÑÑŽÑ‚ быÑтро и Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ уÑилиÑми -" набирать текÑÑ‚. +" Maintainer: Restorer +" Last Changed: 25 Apr 2023 +" Version: 3.3 +" Description: опиÑание дано поÑле изображений клавиатуры -scriptencoding utf-8 +" РаÑположение Ñимволов Ð´Ð»Ñ Ñ€ÑƒÑÑкого Ñзыка при подключенном файле Ñ Ñ€Ð°Ñкладкой +" клавиатуры «руÑÑÐºÐ°Ñ Ñ‚Ð¸Ð¿Ð¾Ð³Ñ€Ð°Ñ„ÑкаÑ» (russian-typograph.vim). ВерÑÐ¸Ñ 3.3 -" Переключение Ñзыка ввода Ñо Ñтандартного ÑÐ¾Ñ‡ÐµÑ‚Ð°Ð½Ð¸Ñ Ð½Ð° указанные ниже -" Ð”Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ð² вÑтавки и замены -""или SHIFT+SPACE -" inoremap -""или CTRL+SPACE" -" inoremap -" Ð”Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð° командной Ñтроки -""или SHIFT+SPACE -" cnoremap -""или CTRL+SPACE" -" cnoremap -" Одной командой Ð´Ð»Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ð² вÑтавки, замены и командной Ñтроки -" noremap! -" noremap! + +" Ðи одна из клавиш модификаторов не нажата + +" ,---,---,---,---,---,---,---,---,---,---,---,---,---,-------, +" | % | ! | — | « | » | : | , | . | ? | ( | ) | †| ; | <--- | +" |---'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-----| +" | ->| | й | ц | у | к | е | н | г | ш | щ | з | Ñ… | ÑŠ | / | +" |-----',--',--',--',--',--',--',--',--',--',--',--',--'-----| +" | Caps | Ñ„ | Ñ‹ | в | а | п | Ñ€ | о | л | д | ж | Ñ | Enter | +" |------'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'--------| +" | Shift | Ñ | ч | Ñ | м | и | Ñ‚ | ÑŒ | б | ÑŽ | Ñ‘ | Shift | +" |------,-',--'--,'---'---'---'---'---'---'-,-'---',--,------| +" | Ctrl | | Alt | | Alt | | Ctrl | +" '------' '-----'--------------------------'------' '------' + + +" Ðажата клавиша SHIFT + +" ,---,---,---,---,---,---,---,---,---,---,---,---,---,-------, +" | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | <--- | +" |---'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-----| +" | ->| | Й | Ц | У | К | Е | Ð | Г | Ш | Щ | З | Ð¥ | Ъ | § | +" |-----',--',--',--',--',--',--',--',--',--',--',--',--'-----| +" | Caps | Ф | Ы | Ð’ | Ð | П | Р | О | Л | Д | Ж | Э | Enter | +" |------'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'--------| +" | SHIFT | Я | Ч | С | М | И | Т | Ь | Б | Ю | Ð | SHIFT | +" |------,-',--'--,'---'---'---'---'---'---'-,-'---',--,------| +" | Ctrl | | Alt | | Alt | | Ctrl | +" '------' '-----'--------------------------'------' '------' + + +" Ðажата клавиша ALT + +" ,---,---,---,---,---,---,---,---,---,---,---,---,---,-------, +" | ` | â„– | – | „ | “ | | | … | | | | ‑ | ± | <--- | +" |---'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-----| +" | ->| | | | | | | | | | | | [ | ] | \ | +" |-----',--',--',--',--',--',--',--',--',--',--',--',--'-----| +" | Caps | | | | | | ₽ | | | | | ' | Enter | +" |------'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'--------| +" | Shift | | | | | | | | | | | Shift | +" |------,-',--'--,'---'---'---'---'---'---'-,-'---',--,------| +" | Ctrl | | ALT | NNBSP | ALT | | Ctrl | +" '------' '-----'--------------------------'------' '------' + + +" Ðажаты клавиши SHIFT и ALT + +" ,---,---,---,---,---,---,---,---,---,---,---,---,---,-------, +" | ~ | | @ | # | $ | | ^ | & | * | | | _ | | <--- | +" |---'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-----| +" | ->| | | | | | | | | | | | { | } | | | +" |-----',--',--',--',--',--',--',--',--',--',--',--',--'-----| +" | Caps | | | | | | | | | | | " | Enter | +" |------'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'--------| +" | SHIFT | | | | | | | | < | > | | SHIFT | +" |------,-',--'--,'---'---'---'---'---'---'-,-'---',--,------| +" | Ctrl | | ALT | | ALT | | Ctrl | +" '------' '-----'--------------------------'------' '------' + + +" Ðажаты клавиши SHIFT и CTRL + +" ,---,---,---,---,---,---,---,---,---,---,---,---,---,-------, +" | | | | | | | | | | | | | | <--- | +" |---'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-----| +" | ->| | | | | | | | | | | | | | | +" |-----',--',--',--',--',--',--',--',--',--',--',--',--'-----| +" | Caps | | | | | | | | | | | | Enter | +" |------'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'--------| +" | SHIFT | | | | | | | | | | | SHIFT | +" |------,-',--'--,'---'---'---'---'---'---'-,-'---',--,------| +" | CTRL | | Alt | NBSP | Alt | | CTRL | +" '------' '-----'--------------------------'------' '------' + + +" Ðажаты клавиши ALT и CTRL + +" ,---,---,---,---,---,---,---,---,---,---,---,---,---,-------, +" | | | | | | | | | | | | | | <--- | +" |---'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-----| +" | ->| | | | ÑƒÌ | | ÐµÌ | | | | | | | | | +" |-----',--',--',--',--',--',--',--',--',--',--',--',--'-----| +" | Caps | | Ñ‹Ì | | Ð°Ì | | | Ð¾Ì | | | | ÑÌ | Enter | +" |------'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'--------| +" | Shift | ÑÌ | | | | Ð¸Ì | | | | ÑŽÌ | | Shift | +" |------,-',--'--,'---'---'---'---'---'---'-,-'---',--,------| +" | CTRL | | ALT | | ALT | | CTRL | +" '------' '-----'--------------------------'------' '------' + + +" Ðажаты клавиши SHIFT, ALT и CTRL + +" ,---,---,---,---,---,---,---,---,---,---,---,---,---,-------, +" | | | | | | | | | | | | | | <--- | +" |---'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-----| +" | ->| | | | Ð£Ì | | Ð•Ì | | | | | | | | | +" |-----',--',--',--',--',--',--',--',--',--',--',--',--'-----| +" | Caps | | Ð«Ì | | ÐÌ | | | ÐžÌ | | | | Ð­Ì | Enter | +" |------'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'-,-'--------| +" | SHIFT | Ð¯Ì | | | | Ð˜Ì | | | | Ð®Ì | | SHIFT | +" |------,-',--'--,'---'---'---'---'---'---'-,-'---',--,------| +" | CTRL | | ALT | | ALT | | CTRL | +" '------' '-----'--------------------------'------' '------' + + +" РаÑкладка Ñделана на оÑнове раÑкладки «руÑÑÐºÐ°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð¾Ð¿Ð¸Ñь» (KBDRU1.DLL), +" поÑтавлÑемой в ÑоÑтаве ОС MS Windows. " -" Стандартное переключение по CTRL+^ поÑле Ñтих переназначений также ÑохранÑетÑÑ +" Как видите, принцип доÑтаточно проÑтой, — при наборе руÑÑкого текÑта вÑе +" буквы, знаки пунктуации и большинÑтво Ñпециальных Ñимволов находÑÑ‚ÑÑ Ð¿Ð¾Ð´ +" пальцами и их набор не требует Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ°ÐºÐ¸Ñ…-то дополнительных клавиш. При +" наборе Ñимволов, которые отÑутÑтвуют в руÑÑкой раÑкладке, но еÑть в раÑкладке +" US-International, требуетÑÑ Ð½Ð°Ð¶Ð°Ñ‚ÑŒ или клавишу , еÑли в английÑкой +" раÑкладке они набираютÑÑ Ð±ÐµÐ· модификаторов, или нажать +, еÑли они +" набираютÑÑ Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ . + +" scriptencoding utf-8 let b:keymap_name ="RUS" loadkeymap -" DIGITAL ROW +" DIGITAL ROW -" The Shift key is not pressed -" +" None of the modifier keys are pressed " PERCENT SIGN " EXCLAMATION MARK " EM DASH @@ -63,8 +149,7 @@ loadkeymap " HYPHEN " SEMICOLON -" The Shift key is pressed - +" The SHIFT key is pressed " EQUALS SIGN " DIGIT ONE " DIGIT TWO @@ -79,112 +164,188 @@ loadkeymap " HYPHEN-MINUS " PLUS SIGN -" ALPHABETICAL 1st ROW - - " CYRILLIC SMALL LETTER SHORT I - " CYRILLIC CAPITAL LETTER SHORT I - " CYRILLIC SMALL LETTER TSE - " CYRILLIC CAPITAL LETTER TSE - " CYRILLIC SMALL LETTER U - " CYRILLIC CAPITAL LETTER U - " CYRILLIC SMALL LETTER KA - " CYRILLIC CAPITAL LETTER KA - " CYRILLIC SMALL LETTER IE - " CYRILLIC CAPITAL LETTER IE - " CYRILLIC SMALL LETTER EN - " CYRILLIC CAPITAL LETTER EN - " CYRILLIC SMALL LETTER GHE - " CYRILLIC CAPITAL LETTER GHE - " CYRILLIC SMALL LETTER SHA - " CYRILLIC CAPITAL LETTER SHA - " CYRILLIC SMALL LETTER SHCHA - " CYRILLIC CAPITAL LETTER SHCHA - " CYRILLIC SMALL LETTER ZE - " CYRILLIC CAPITAL LETTER ZE - " CYRILLIC SMALL LETTER HA - " CYRILLIC CAPITAL LETTER HA - " CYRILLIC SMALL LETTER HARD SIGN - " CYRILLIC CAPITAL LETTER HARD SIGN - -" ALPHABETIC 2nd ROW - - " CYRILLIC SMALL LETTER EF - " CYRILLIC CAPITAL LETTER EF - " CYRILLIC SMALL LETTER YERU - " CYRILLIC CAPITAL LETTER YERU - " CYRILLIC SMALL LETTER VE - " CYRILLIC CAPITAL LETTER VE - " CYRILLIC SMALL LETTER A - " CYRILLIC CAPITAL LETTER A - " CYRILLIC SMALL LETTER PE - " CYRILLIC CAPITAL LETTER PE - " CYRILLIC SMALL LETTER ER - " CYRILLIC CAPITAL LETTER ER - " CYRILLIC SMALL LETTER O - " CYRILLIC CAPITAL LETTER O - " CYRILLIC SMALL LETTER EL - " CYRILLIC CAPITAL LETTER EL - " CYRILLIC SMALL LETTER DE - " CYRILLIC CAPITAL LETTER DE - " CYRILLIC SMALL LETTER ZHE - " CYRILLIC CAPITAL LETTER ZHE - " CYRILLIC SMALL LETTER E - " CYRILLIC CAPITAL LETTER E - -" ALPHABETIC 3rd ROW - - " CYRILLIC SMALL LETTER YA - " CYRILLIC CAPITAL LETTER YA - " CYRILLIC SMALL LETTER CHE - " CYRILLIC CAPITAL LETTER CHE - " CYRILLIC SMALL LETTER ES - " CYRILLIC CAPITAL LETTER ES - " CYRILLIC SMALL LETTER EM - " CYRILLIC CAPITAL LETTER EM - " CYRILLIC SMALL LETTER I - " CYRILLIC CAPITAL LETTER I - " CYRILLIC SMALL LETTER TE - " CYRILLIC CAPITAL LETTER TE - " CYRILLIC SMALL LETTER SOFT SIGN - " CYRILLIC CAPITAL LETTER SOFT SIGN - " CYRILLIC SMALL LETTER BE - " CYRILLIC CAPITAL LETTER BE - " CYRILLIC SMALL LETTER YU - " CYRILLIC CAPITAL LETTER YU - " CYRILLIC SMALL LETTER IO - " CYRILLIC CAPITAL LETTER IO - -" VK_OEM_5 key (scan code 2b) - -" The Shift key is not pressed - " SOLIDUS -" The Shift key is pressed - " REVERSE SOLIDUS - -" Alt key pressed - +" The ALT key pressed " GRAVE ACCENT " NUMERO SIGN - " LEFT DOUBLE QUOTATION MARK - " RIGHT DOUBLE QUOTATION MARK + " EN DASH + " DOUBLE LOW-9 QUOTATION MARK + " LEFT DOUBLE QUOTATION MARK + " HORIZONTAL ELLIPSIS + " NON-BREAKING HYPHEN + " PLUS-MINUS SIGN + +" The SHIFT and ALT keys pressed + " TILDE + " COMMERCIAL AT + " NUMBER SIGN + " DOLLAR SIGN + " CIRCUMFLEX ACCENT + " AMPERSAND + " ASTERISK + " LOW LINE + + +" ALPHABETICAL 1st ROW + +" None of the modifier keys are pressed + " CYRILLIC SMALL LETTER SHORT I + " CYRILLIC SMALL LETTER TSE + " CYRILLIC SMALL LETTER U + " CYRILLIC SMALL LETTER KA + " CYRILLIC SMALL LETTER IE + " CYRILLIC SMALL LETTER EN + " CYRILLIC SMALL LETTER GHE + " CYRILLIC SMALL LETTER SHA + " CYRILLIC SMALL LETTER SHCHA + " CYRILLIC SMALL LETTER ZE + " CYRILLIC SMALL LETTER HA + " CYRILLIC SMALL LETTER HARD SIGN + +" The SHIFT key is pressed + " CYRILLIC CAPITAL LETTER SHORT I + " CYRILLIC CAPITAL LETTER TSE + " CYRILLIC CAPITAL LETTER U + " CYRILLIC CAPITAL LETTER KA + " CYRILLIC CAPITAL LETTER IE + " CYRILLIC CAPITAL LETTER EN + " CYRILLIC CAPITAL LETTER GHE + " CYRILLIC CAPITAL LETTER SHA + " CYRILLIC CAPITAL LETTER SHCHA + " CYRILLIC CAPITAL LETTER ZE + " CYRILLIC CAPITAL LETTER HA + " CYRILLIC CAPITAL LETTER HARD SIGN + +" The ALT key pressed " LEFT SQUARE BRACKET " RIGHT SQUARE BRACKET - " APOSTROPHE -" Alt and Shift keys pressed - - " TILDE - " COMMERCIAL AT - " NUMBER SIGN - " DOLLAR SIGN - " CIRCUMFLEX ACCENT - " AMPERSAND - " ASTERISK - " LOW LINE +" The SHIFT and ALT keys pressed " LEFT CURLY BRACKET " RIGHT CURLY BRACKET + +" The ALT and CTRL key pressed + " CYRILLIC SMALL LETTER U with COMBINING ACUTE ACCENT + " CYRILLIC SMALL LETTER IE with COMBINING ACUTE ACCENT + +" The SHIFT and ALT and CTRL keys pressed + " CYRILLIC CAPITAL LETTER U with COMBINING ACUTE ACCENT + " CYRILLIC CAPITAL LETTER IE with COMBINING ACUTE ACCENT + + +" ALPHABETIC 2st ROW + +" None of the modifier keys are pressed + " CYRILLIC SMALL LETTER EF + " CYRILLIC SMALL LETTER YERU + " CYRILLIC SMALL LETTER VE + " CYRILLIC SMALL LETTER A + " CYRILLIC SMALL LETTER PE + " CYRILLIC SMALL LETTER ER + " CYRILLIC SMALL LETTER O + " CYRILLIC SMALL LETTER EL + " CYRILLIC SMALL LETTER DE + " CYRILLIC SMALL LETTER ZHE + " CYRILLIC SMALL LETTER E + +" The SHIFT key is pressed + " CYRILLIC CAPITAL LETTER EF + " CYRILLIC CAPITAL LETTER YERU + " CYRILLIC CAPITAL LETTER VE + " CYRILLIC CAPITAL LETTER A + " CYRILLIC CAPITAL LETTER PE + " CYRILLIC CAPITAL LETTER ER + " CYRILLIC CAPITAL LETTER O + " CYRILLIC CAPITAL LETTER EL + " CYRILLIC CAPITAL LETTER DE + " CYRILLIC CAPITAL LETTER ZHE + " CYRILLIC CAPITAL LETTER E + +" The ALT key pressed + " APOSTROPHE + " RUBLE SIGN + +" The SHIFT and ALT keys pressed " QUOTATION MARK + +" The ALT and CTRL key pressed + " CYRILLIC SMALL LETTER YERU with COMBINING ACUTE ACCENT + " CYRILLIC SMALL LETTER A with COMBINING ACUTE ACCENT + " CYRILLIC SMALL LETTER O with COMBINING ACUTE ACCENT + " CYRILLIC SMALL LETTER E with COMBINING ACUTE ACCENT + +" The SHIFT and ALT and CTRL keys pressed + " CYRILLIC CAPITAL LETTER YERU with COMBINING ACUTE ACCENT + " CYRILLIC CAPITAL LETTER A with COMBINING ACUTE ACCENT + " CYRILLIC CAPITAL LETTER O with COMBINING ACUTE ACCENT + " CYRILLIC CAPITAL LETTER E with COMBINING ACUTE ACCENT + + +" ALPHABETIC 3st ROW + +" None of the modifier keys are pressed + " CYRILLIC SMALL LETTER YA + " CYRILLIC SMALL LETTER CHE + " CYRILLIC SMALL LETTER ES + " CYRILLIC SMALL LETTER EM + " CYRILLIC SMALL LETTER I + " CYRILLIC SMALL LETTER TE + " CYRILLIC SMALL LETTER SOFT SIGN + " CYRILLIC SMALL LETTER BE + " CYRILLIC SMALL LETTER YU + " CYRILLIC SMALL LETTER IO + +" The SHIFT key is pressed + " CYRILLIC CAPITAL LETTER YA + " CYRILLIC CAPITAL LETTER CHE + " CYRILLIC CAPITAL LETTER ES + " CYRILLIC CAPITAL LETTER EM + " CYRILLIC CAPITAL LETTER I + " CYRILLIC CAPITAL LETTER TE + " CYRILLIC CAPITAL LETTER SOFT SIGN + " CYRILLIC CAPITAL LETTER BE + " CYRILLIC CAPITAL LETTER YU + " CYRILLIC CAPITAL LETTER IO + +" The ALT key pressed + + +" The SHIFT and ALT keys pressed " LESS-THAN SIGN " GREATER-THAN SIGN + +" The ALT and CTRL key pressed + " CYRILLIC SMALL LETTER YA with COMBINING ACUTE ACCENT + " CYRILLIC SMALL LETTER I with COMBINING ACUTE ACCENT + " CYRILLIC SMALL LETTER YU with COMBINING ACUTE ACCENT + +" The SHIFT and ALT and CTRL keys pressed + " CYRILLIC CAPITAL LETTER YA with COMBINING ACUTE ACCENT + " CYRILLIC CAPITAL LETTER I with COMBINING ACUTE ACCENT + " CYRILLIC CAPITAL LETTER Y with COMBINING ACUTE ACCENT + + +" VK_OEM_5 key (scan code 2b) + +" None of the modifier keys are pressed + " SOLIDUS + +" The SHIFT key is pressed + " SECTION SIGN + +" The ALT key is pressed + " REVERSE SOLIDUS + +" The SHIFT and ALT keys pressed " VERTICAL LINE + +" SPACE BAR key + +" The ALT key pressed + " NARROW NO-BREAK SPACE + +" The SHIFT and CTRL keys pressed + " NO-BREAK SPACE + +" \///\\ + diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim index 17433f4ab8..95a4127961 100644 --- a/runtime/macros/less.vim +++ b/runtime/macros/less.vim @@ -1,6 +1,7 @@ " Vim script to work like "less" -" Maintainer: Bram Moolenaar -" Last Change: 2020 Dec 17 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Avoid loading this file twice, allow the user to define his own script. if exists("loaded_less") diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim index b9cd8cb7b7..4dfd2cc791 100644 --- a/runtime/makemenu.vim +++ b/runtime/makemenu.vim @@ -1,8 +1,9 @@ vim9script # Script to define the syntax menu in synmenu.vim -# Maintainer: Bram Moolenaar -# Last Change: 2022 Jun 27 +# Maintainer: The Vim Project +# Last Change: 2023 Aug 10 +# Former Maintainer: Bram Moolenaar # This is used by "make menu" in the src directory. edit :p:h/synmenu.vim diff --git a/runtime/menu.vim b/runtime/menu.vim index 283e8a2367..f99fd3712e 100644 --- a/runtime/menu.vim +++ b/runtime/menu.vim @@ -1,8 +1,9 @@ " Vim support file to define the default menus " You can also use this as a start for your own set of menus. " -" Maintainer: Bram Moolenaar -" Last Change: 2023 May 03 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Note that ":an" (short for ":anoremenu") is often used to make a menu work " in all modes and avoid side effects from mappings defined by the user. diff --git a/runtime/mswin.vim b/runtime/mswin.vim index 2b04c1aea3..1c28cadac0 100644 --- a/runtime/mswin.vim +++ b/runtime/mswin.vim @@ -1,7 +1,8 @@ " Set options and add mapping such that Vim behaves a lot like MS-Windows " -" Maintainer: Bram Moolenaar -" Last Change: 2018 Dec 07 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Bail out if this isn't wanted. if exists("g:skip_loading_mswin") && g:skip_loading_mswin diff --git a/runtime/optwin.vim b/runtime/optwin.vim index 7d1af4355e..7b4b273b0e 100644 --- a/runtime/optwin.vim +++ b/runtime/optwin.vim @@ -1,7 +1,8 @@ " These commands create the option window. " -" Maintainer: Bram Moolenaar -" Last Change: 2022 Dec 16 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " If there already is an option window, jump to that one. let buf = bufnr('option-window') diff --git a/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim b/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim index 7a65630786..7a71de4764 100644 --- a/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim +++ b/runtime/pack/dist/opt/cfilter/plugin/cfilter.vim @@ -1,7 +1,7 @@ vim9script # cfilter.vim: Plugin to filter entries from a quickfix/location list -# Last Change: Jun 30, 2022 +# Last Change: August 16, 2023 # Maintainer: Yegappan Lakshmanan (yegappan AT yahoo DOT com) # Version: 2.0 # @@ -31,11 +31,11 @@ def Qf_filter(qf: bool, searchpat: string, bang: string) if qf Xgetlist = function('getqflist') Xsetlist = function('setqflist') - cmd = ':Cfilter' .. bang + cmd = $':Cfilter{bang}' else Xgetlist = function('getloclist', [0]) Xsetlist = function('setloclist', [0]) - cmd = ':Lfilter' .. bang + cmd = $':Lfilter{bang}' endif firstchar = searchpat[0] @@ -62,7 +62,7 @@ def Qf_filter(qf: bool, searchpat: string, bang: string) endif items = filter(Xgetlist(), Cond) - title = cmd .. ' /' .. pat .. '/' + title = $'{cmd} /{pat}/' Xsetlist([], ' ', {title: title, items: items}) enddef diff --git a/runtime/pack/dist/opt/matchit/autoload/matchit.vim b/runtime/pack/dist/opt/matchit/autoload/matchit.vim index eafb7c0551..dc2aba696d 100644 --- a/runtime/pack/dist/opt/matchit/autoload/matchit.vim +++ b/runtime/pack/dist/opt/matchit/autoload/matchit.vim @@ -1,6 +1,6 @@ " matchit.vim: (global plugin) Extended "%" matching " autload script of matchit plugin, see ../plugin/matchit.vim -" Last Change: Jun 10, 2021 +" Last Change: Jan 24, 2022 " Neovim does not support scriptversion if has("vimscript-4") @@ -42,6 +42,10 @@ function s:RestoreOptions() let restore_options = " ve=" .. &ve .. restore_options set ve= endif + if &smartcase + let restore_options = " smartcase " .. restore_options + set nosmartcase + endif return restore_options endfunction @@ -134,9 +138,6 @@ function matchit#Match_wrapper(word, forward, mode) range let curcol = match(matchline, regexp) " If there is no match, give up. if curcol == -1 - " Make sure macros abort properly - "exe "norm! \" - call feedkeys("\e", 'tni') return s:CleanUp(restore_options, a:mode, startpos) endif let endcol = matchend(matchline, regexp) @@ -756,15 +757,15 @@ endfun fun! s:ParseSkip(str) let skip = a:str if skip[1] == ":" - if skip[0] == "s" + if skip[0] ==# "s" let skip = "synIDattr(synID(line('.'),col('.'),1),'name') =~? '" .. \ strpart(skip,2) .. "'" - elseif skip[0] == "S" + elseif skip[0] ==# "S" let skip = "synIDattr(synID(line('.'),col('.'),1),'name') !~? '" .. \ strpart(skip,2) .. "'" - elseif skip[0] == "r" + elseif skip[0] ==# "r" let skip = "strpart(getline('.'),0,col('.'))=~'" .. strpart(skip,2) .. "'" - elseif skip[0] == "R" + elseif skip[0] ==# "R" let skip = "strpart(getline('.'),0,col('.'))!~'" .. strpart(skip,2) .. "'" endif endif diff --git a/runtime/pack/dist/opt/matchit/doc/matchit.txt b/runtime/pack/dist/opt/matchit/doc/matchit.txt index 52f448f787..d072d59aea 100644 --- a/runtime/pack/dist/opt/matchit/doc/matchit.txt +++ b/runtime/pack/dist/opt/matchit/doc/matchit.txt @@ -1,10 +1,10 @@ -*matchit.txt* Extended "%" matching +*matchit.txt* Extended "%" matching For instructions on installing this file, type `:help matchit-install` inside Vim. -For Vim version 8.2. Last change: 2021 Dec 24 +For Vim version 9.0. Last change: 2023 June 28 VIM REFERENCE MANUAL by Benji Fisher et al @@ -148,10 +148,6 @@ To use the matchit plugin add this line to your |vimrc|: > The script should start working the next time you start Vim. -To use the matching plugin after startup, you can use this command (note the -omitted '!'): > - packadd matchit - To use the matchit plugin after Vim has started, execute this command: > packadd matchit @@ -176,6 +172,22 @@ fail to skip matching groups in comments and strings. If the |filetype| mechanism is turned off, the |b:match_words| variable will probably not be defined automatically. +2.1 Temporarily disable the matchit plugin *matchit-disable* *:MatchDisable* + +To temporarily reset the plugins, that are setup you can run the following +command: > + :MatchDisable + +This will delete all the defined key mappings to the Vim default. +Now the "%" command will work like before loading the plugin |%| + +2.2 Re-enable the matchit plugin *:MatchEnable* + +To re-enable the plugin, after it was disabled, use the following command: > + :MatchEnable + +This will resetup the key mappings. + ============================================================================== 3. Configuration *matchit-configure* @@ -244,6 +256,9 @@ Examples: comment character) you can > :let b:match_skip = 'r:\(^\|[^\\]\)\(\\\\\)*%' < + See the $VIMRUNTIME/ftplugin/vim.vim for an example that uses both + syntax and a regular expression. + ============================================================================== 4. Supporting a New Language *matchit-newlang* *b:match_words* diff --git a/runtime/pack/dist/opt/matchit/plugin/matchit.vim b/runtime/pack/dist/opt/matchit/plugin/matchit.vim index 51ba3a7f51..d6c735d7b4 100644 --- a/runtime/pack/dist/opt/matchit/plugin/matchit.vim +++ b/runtime/pack/dist/opt/matchit/plugin/matchit.vim @@ -1,7 +1,7 @@ " matchit.vim: (global plugin) Extended "%" matching " Maintainer: Christian Brabandt -" Version: 1.18 -" Last Change: 2020 Dec 23 +" Version: 1.19 +" Last Change: 2023, June 28th " Repository: https://github.com/chrisbra/matchit " Previous URL:http://www.vim.org/script.php?script_id=39 " Previous Maintainer: Benji Fisher PhD @@ -46,44 +46,65 @@ let g:loaded_matchit = 1 let s:save_cpo = &cpo set cpo&vim -nnoremap (MatchitNormalForward) :call matchit#Match_wrapper('',1,'n') -nnoremap (MatchitNormalBackward) :call matchit#Match_wrapper('',0,'n') -xnoremap (MatchitVisualForward) :call matchit#Match_wrapper('',1,'v') - \:if col("''") != col("$") \| exe ":normal! m'" \| endifgv`` -xnoremap (MatchitVisualBackward) :call matchit#Match_wrapper('',0,'v')m'gv`` -onoremap (MatchitOperationForward) :call matchit#Match_wrapper('',1,'o') -onoremap (MatchitOperationBackward) :call matchit#Match_wrapper('',0,'o') - -" Analogues of [{ and ]} using matching patterns: -nnoremap (MatchitNormalMultiBackward) :call matchit#MultiMatch("bW", "n") -nnoremap (MatchitNormalMultiForward) :call matchit#MultiMatch("W", "n") -xnoremap (MatchitVisualMultiBackward) :call matchit#MultiMatch("bW", "n")m'gv`` -xnoremap (MatchitVisualMultiForward) :call matchit#MultiMatch("W", "n")m'gv`` -onoremap (MatchitOperationMultiBackward) :call matchit#MultiMatch("bW", "o") -onoremap (MatchitOperationMultiForward) :call matchit#MultiMatch("W", "o") - -" text object: -xmap (MatchitVisualTextObject) (MatchitVisualMultiBackward)o(MatchitVisualMultiForward) - -if !exists("g:no_plugin_maps") - nmap % (MatchitNormalForward) - nmap g% (MatchitNormalBackward) - xmap % (MatchitVisualForward) - xmap g% (MatchitVisualBackward) - omap % (MatchitOperationForward) - omap g% (MatchitOperationBackward) +fun MatchEnable() + nnoremap (MatchitNormalForward) :call matchit#Match_wrapper('',1,'n') + nnoremap (MatchitNormalBackward) :call matchit#Match_wrapper('',0,'n') + xnoremap (MatchitVisualForward) :call matchit#Match_wrapper('',1,'v') + \:if col("''") != col("$") \| exe ":normal! m'" \| endifgv`` + xnoremap (MatchitVisualBackward) :call matchit#Match_wrapper('',0,'v')m'gv`` + onoremap (MatchitOperationForward) :call matchit#Match_wrapper('',1,'o') + onoremap (MatchitOperationBackward) :call matchit#Match_wrapper('',0,'o') " Analogues of [{ and ]} using matching patterns: - nmap [% (MatchitNormalMultiBackward) - nmap ]% (MatchitNormalMultiForward) - xmap [% (MatchitVisualMultiBackward) - xmap ]% (MatchitVisualMultiForward) - omap [% (MatchitOperationMultiBackward) - omap ]% (MatchitOperationMultiForward) + nnoremap (MatchitNormalMultiBackward) :call matchit#MultiMatch("bW", "n") + nnoremap (MatchitNormalMultiForward) :call matchit#MultiMatch("W", "n") + xnoremap (MatchitVisualMultiBackward) :call matchit#MultiMatch("bW", "n")m'gv`` + xnoremap (MatchitVisualMultiForward) :call matchit#MultiMatch("W", "n")m'gv`` + onoremap (MatchitOperationMultiBackward) :call matchit#MultiMatch("bW", "o") + onoremap (MatchitOperationMultiForward) :call matchit#MultiMatch("W", "o") - " Text object - xmap a% (MatchitVisualTextObject) -endif + " text object: + xmap (MatchitVisualTextObject) (MatchitVisualMultiBackward)o(MatchitVisualMultiForward) + + if !exists("g:no_plugin_maps") + nmap % (MatchitNormalForward) + nmap g% (MatchitNormalBackward) + xmap % (MatchitVisualForward) + xmap g% (MatchitVisualBackward) + omap % (MatchitOperationForward) + omap g% (MatchitOperationBackward) + + " Analogues of [{ and ]} using matching patterns: + nmap [% (MatchitNormalMultiBackward) + nmap ]% (MatchitNormalMultiForward) + xmap [% (MatchitVisualMultiBackward) + xmap ]% (MatchitVisualMultiForward) + omap [% (MatchitOperationMultiBackward) + omap ]% (MatchitOperationMultiForward) + + " Text object + xmap a% (MatchitVisualTextObject) + endif +endfun + +fun MatchDisable() + " remove all the setup keymappings + nunmap % + nunmap g% + xunmap % + xunmap g% + ounmap % + ounmap g% + + nunmap [% + nunmap ]% + xunmap [% + xunmap ]% + ounmap [% + ounmap ]% + + xunmap a% +endfun " Call this function to turn on debugging information. Every time the main " script is run, buffer variables will be saved. These can be used directly @@ -91,6 +112,14 @@ endif if !exists(":MatchDebug") command! -nargs=0 MatchDebug call matchit#Match_debug() endif +if !exists(":MatchDisable") + command! -nargs=0 MatchDisable :call MatchDisable() +endif +if !exists(":MatchEnable") + command! -nargs=0 MatchEnable :call MatchEnable() +endif + +call MatchEnable() let &cpo = s:save_cpo unlet s:save_cpo diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index d053851024..466a77fd84 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -69,6 +69,7 @@ let s:pc_id = 12 let s:asm_id = 13 let s:break_id = 14 " breakpoint number is added to this let s:stopped = 1 +let s:running = 0 let s:parsing_disasm_msg = 0 let s:asm_lines = [] @@ -121,6 +122,10 @@ func s:GetCommand() return type(cmd) == v:t_list ? copy(cmd) : [cmd] endfunc +func s:Echoerr(msg) + echohl ErrorMsg | echom '[termdebug] ' .. a:msg | echohl None +endfunc + func s:StartDebug(bang, ...) " First argument is the command to debug, second core file or process ID. call s:StartDebug_internal({'gdb_args': a:000, 'bang': a:bang}) @@ -133,18 +138,21 @@ endfunc func s:StartDebug_internal(dict) if exists('s:gdbwin') - echoerr 'Terminal debugger already running, cannot run two' + call s:Echoerr('Terminal debugger already running, cannot run two') return endif let gdbcmd = s:GetCommand() if !executable(gdbcmd[0]) - echoerr 'Cannot execute debugger program "' .. gdbcmd[0] .. '"' + call s:Echoerr('Cannot execute debugger program "' .. gdbcmd[0] .. '"') return endif let s:ptywin = 0 let s:pid = 0 let s:asmwin = 0 + let s:asmbuf = 0 + let s:varwin = 0 + let s:varbuf = 0 if exists('#User#TermdebugStartPre') doauto User TermdebugStartPre @@ -153,7 +161,7 @@ func s:StartDebug_internal(dict) " Uncomment this line to write logging in "debuglog". " call ch_logfile('debuglog', 'w') - let s:sourcewin = win_getid(winnr()) + let s:sourcewin = win_getid() " Remember the old value of 'signcolumn' for each buffer that it's set in, so " that we can restore the value for all buffers. @@ -201,11 +209,17 @@ func s:StartDebug_internal(dict) endif if s:GetDisasmWindow() - let curwinid = win_getid(winnr()) + let curwinid = win_getid() call s:GotoAsmwinOrCreateIt() call win_gotoid(curwinid) endif + if s:GetVariablesWindow() + let curwinid = win_getid() + call s:GotoVariableswinOrCreateIt() + call win_gotoid(curwinid) + endif + if exists('#User#TermdebugStartPost') doauto User TermdebugStartPost endif @@ -215,13 +229,20 @@ endfunc func s:CloseBuffers() exe 'bwipe! ' . s:ptybuf exe 'bwipe! ' . s:commbuf + if s:asmbuf > 0 + exe 'bwipe! ' . s:asmbuf + endif + if s:varbuf > 0 + exe 'bwipe! ' . s:varbuf + endif + s:running = 0 unlet! s:gdbwin endfunc func s:CheckGdbRunning() let gdbproc = term_getjob(s:gdbbuf) if gdbproc == v:null || job_status(gdbproc) !=# 'run' - echoerr string(s:GetCommand()[0]) . ' exited unexpectedly' + call s:Echoerr(string(s:GetCommand()[0]) . ' exited unexpectedly') call s:CloseBuffers() return '' endif @@ -235,11 +256,11 @@ func s:StartDebug_term(dict) \ 'vertical': s:vertical, \ }) if s:ptybuf == 0 - echoerr 'Failed to open the program terminal window' + call s:Echoerr('Failed to open the program terminal window') return endif let pty = job_info(term_getjob(s:ptybuf))['tty_out'] - let s:ptywin = win_getid(winnr()) + let s:ptywin = win_getid() if s:vertical " Assuming the source code window will get a signcolumn, use two more " columns for that, thus one less for the terminal window. @@ -257,7 +278,7 @@ func s:StartDebug_term(dict) \ 'hidden': 1, \ }) if s:commbuf == 0 - echoerr 'Failed to open the communication terminal window' + call s:Echoerr('Failed to open the communication terminal window') exe 'bwipe! ' . s:ptybuf return endif @@ -298,11 +319,11 @@ func s:StartDebug_term(dict) \ 'term_finish': 'close', \ }) if s:gdbbuf == 0 - echoerr 'Failed to open the gdb terminal window' + call s:Echoerr('Failed to open the gdb terminal window') call s:CloseBuffers() return endif - let s:gdbwin = win_getid(winnr()) + let s:gdbwin = win_getid() " Wait for the "startupdone" message before sending any commands. let try_count = 0 @@ -350,7 +371,7 @@ func s:StartDebug_term(dict) " response can be in the same line or the next line let response = line1 . line2 if response =~ 'Undefined command' - echoerr 'Sorry, your gdb is too old, gdb 7.12 is required' + call s:Echoerr('Sorry, your gdb is too old, gdb 7.12 is required') " CHECKME: possibly send a "server show version" here call s:CloseBuffers() return @@ -369,7 +390,7 @@ func s:StartDebug_term(dict) endif let try_count += 1 if try_count > 100 - echoerr 'Cannot check if your gdb works, continuing anyway' + call s:Echoerr('Cannot check if your gdb works, continuing anyway') break endif sleep 10m @@ -390,7 +411,7 @@ func s:StartDebug_prompt(dict) else new endif - let s:gdbwin = win_getid(winnr()) + let s:gdbwin = win_getid() let s:promptbuf = bufnr('') call prompt_setprompt(s:promptbuf, 'gdb> ') set buftype=prompt @@ -428,7 +449,7 @@ func s:StartDebug_prompt(dict) \ 'out_cb': function('s:GdbOutCallback'), \ }) if job_status(s:gdbjob) != "run" - echoerr 'Failed to start gdb' + call s:Echoerr('Failed to start gdb') exe 'bwipe! ' . s:promptbuf return endif @@ -447,11 +468,11 @@ func s:StartDebug_prompt(dict) \ 'term_name': 'debugged program', \ }) if s:ptybuf == 0 - echoerr 'Failed to open the program terminal window' + call s:Echoerr('Failed to open the program terminal window') call job_stop(s:gdbjob) return endif - let s:ptywin = win_getid(winnr()) + let s:ptywin = win_getid() let pty = job_info(term_getjob(s:ptybuf))['tty_out'] call s:SendCommand('tty ' . pty) @@ -583,7 +604,7 @@ func s:PromptInterrupt() " Using job_stop() does not work on MS-Windows, need to send SIGTRAP to " the debugger program so that gdb responds again. if s:pid == 0 - echoerr 'Cannot interrupt gdb, did not find a process ID' + call s:Echoerr('Cannot interrupt gdb, did not find a process ID') else call debugbreak(s:pid) endif @@ -615,7 +636,7 @@ func s:GdbOutCallback(channel, text) return endif - let curwinid = win_getid(winnr()) + let curwinid = win_getid() call win_gotoid(s:gdbwin) " Add the output above the current prompt. @@ -634,7 +655,7 @@ endfunc " - change \\ to \ func s:DecodeMessage(quotedText, literal) if a:quotedText[0] != '"' - echoerr 'DecodeMessage(): missing quote in ' . a:quotedText + call s:Echoerr('DecodeMessage(): missing quote in ' . a:quotedText) return endif let msg = a:quotedText @@ -688,13 +709,20 @@ func s:EndTermDebug(job, status) endif exe 'bwipe! ' . s:commbuf + if s:asmbuf > 0 + exe 'bwipe! ' . s:asmbuf + endif + if s:varbuf > 0 + exe 'bwipe! ' . s:varbuf + endif + let s:running = 0 unlet s:gdbwin call s:EndDebugCommon() endfunc func s:EndDebugCommon() - let curwinid = win_getid(winnr()) + let curwinid = win_getid() if exists('s:ptybuf') && s:ptybuf exe 'bwipe! ' . s:ptybuf @@ -746,7 +774,7 @@ func s:EndPromptDebug(job, status) doauto User TermdebugStopPre endif - let curwinid = win_getid(winnr()) + let curwinid = win_getid() call win_gotoid(s:gdbwin) set nomodified close @@ -777,9 +805,9 @@ endfunc " - CommOutput: ^error,msg="No function contains specified address." func s:HandleDisasmMsg(msg) if a:msg =~ '^\^done' - let curwinid = win_getid(winnr()) + let curwinid = win_getid() if win_gotoid(s:asmwin) - silent normal! gg0"_dG + silent! %delete _ call setline(1, s:asm_lines) set nomodified set filetype=asm @@ -822,6 +850,49 @@ func s:HandleDisasmMsg(msg) endif endfunc +func s:ParseVarinfo(varinfo) + let dict = {} + let nameIdx = matchstrpos(a:varinfo, '{name="\([^"]*\)"') + let dict['name'] = a:varinfo[nameIdx[1] + 7 : nameIdx[2] - 2] + let typeIdx = matchstrpos(a:varinfo, ',type="\([^"]*\)"') + let dict['type'] = a:varinfo[typeIdx[1] + 7 : typeIdx[2] - 2] + let valueIdx = matchstrpos(a:varinfo, ',value="\(.*\)"}') + if valueIdx[1] == -1 + let dict['value'] = 'Complex value' + else + let dict['value'] = a:varinfo[valueIdx[1] + 8 : valueIdx[2] - 3] + endif + return dict +endfunc + +func s:HandleVariablesMsg(msg) + let curwinid = win_getid() + if win_gotoid(s:varwin) + + silent! %delete _ + let spaceBuffer = 20 + call setline(1, 'Type' . + \ repeat(' ', 16) . + \ 'Name' . + \ repeat(' ', 16) . + \ 'Value') + let cnt = 1 + let capture = '{name=".\{-}",\%(arg=".\{-}",\)\{0,1\}type=".\{-}"\%(,value=".\{-}"\)\{0,1\}}' + let varinfo = matchstr(a:msg, capture, 0, cnt) + while varinfo != '' + let vardict = s:ParseVarinfo(varinfo) + call setline(cnt + 1, vardict['type'] . + \ repeat(' ', max([20 - len(vardict['type']), 1])) . + \ vardict['name'] . + \ repeat(' ', max([20 - len(vardict['name']), 1])) . + \ vardict['value']) + let cnt += 1 + let varinfo = matchstr(a:msg, capture, 0, cnt) + endwhile + endif + call win_gotoid(curwinid) +endfunc + " Handle a message received from gdb on the GDB/MI interface. func s:CommOutput(chan, msg) let msgs = split(a:msg, "\r") @@ -852,6 +923,8 @@ func s:CommOutput(chan, msg) elseif msg =~ '^disassemble' let s:parsing_disasm_msg = 1 let s:asm_lines = [] + elseif msg =~ '^\^done,variables=' + call s:HandleVariablesMsg(msg) endif endif endfor @@ -897,6 +970,7 @@ func s:InstallCommands() command Program call s:GotoProgram() command Source call s:GotoSourcewinOrCreateIt() command Asm call s:GotoAsmwinOrCreateIt() + command Var call s:GotoVariableswinOrCreateIt() command Winbar call s:InstallWinbar(1) let map = 1 @@ -950,7 +1024,7 @@ func s:InstallWinbar(force) nnoremenu WinBar.Cont :Continue nnoremenu WinBar.Stop :Stop nnoremenu WinBar.Eval :Evaluate - call add(s:winbar_winids, win_getid(winnr())) + call add(s:winbar_winids, win_getid()) endif endfunc @@ -971,6 +1045,7 @@ func s:DeleteCommands() delcommand Program delcommand Source delcommand Asm + delcommand Var delcommand Winbar if exists('s:k_map_saved') @@ -984,7 +1059,7 @@ func s:DeleteCommands() if has('menu') " Remove the WinBar entries from all windows where it was added. - let curwinid = win_getid(winnr()) + let curwinid = win_getid() for winid in s:winbar_winids if win_gotoid(winid) aunmenu WinBar.Step @@ -1083,7 +1158,7 @@ func s:ClearBreakpoint() endif echomsg 'Breakpoint ' . id . ' cleared from line ' . lnum . '.' else - echoerr 'Internal error trying to remove breakpoint at line ' . lnum . '!' + call s:Echoerr('Internal error trying to remove breakpoint at line ' . lnum . '!') endif else echomsg 'No breakpoint to remove at line ' . lnum . '.' @@ -1234,13 +1309,13 @@ func s:HandleError(msg) return endif let msgVal = substitute(a:msg, '.*msg="\(.*\)"', '\1', '') - echoerr substitute(msgVal, '\\"', '"', 'g') + call s:Echoerr(substitute(msgVal, '\\"', '"', 'g')) endfunc func s:GotoSourcewinOrCreateIt() if !win_gotoid(s:sourcewin) new - let s:sourcewin = win_getid(winnr()) + let s:sourcewin = win_getid() call s:InstallWinbar(0) endif endfunc @@ -1273,19 +1348,21 @@ func s:GotoAsmwinOrCreateIt() exe 'new' endif - let s:asmwin = win_getid(winnr()) + let s:asmwin = win_getid() setlocal nowrap setlocal number setlocal noswapfile setlocal buftype=nofile + setlocal bufhidden=wipe + setlocal signcolumn=no setlocal modifiable - let asmbuf = bufnr('Termdebug-asm-listing') - if asmbuf > 0 - exe 'buffer' . asmbuf + if s:asmbuf > 0 + exe 'buffer' . s:asmbuf else - exe 'file Termdebug-asm-listing' + silent file Termdebug-asm-listing + let s:asmbuf = bufnr('Termdebug-asm-listing') endif if s:GetDisasmWindowHeight() > 0 @@ -1306,17 +1383,75 @@ func s:GotoAsmwinOrCreateIt() endif endfunc +func s:GetVariablesWindow() + if exists('g:termdebug_config') + return get(g:termdebug_config, 'variables_window', 0) + endif + if exists('g:termdebug_disasm_window') + return g:termdebug_variables_window + endif + return 0 +endfunc + +func s:GetVariablesWindowHeight() + if exists('g:termdebug_config') + return get(g:termdebug_config, 'variables_window_height', 0) + endif + if exists('g:termdebug_variables_window') && g:termdebug_variables_window > 1 + return g:termdebug_variables_window + endif + return 0 +endfunc + +func s:GotoVariableswinOrCreateIt() + if !win_gotoid(s:varwin) + if win_gotoid(s:sourcewin) + exe 'rightbelow new' + else + exe 'new' + endif + + let s:varwin = win_getid() + + setlocal nowrap + setlocal noswapfile + setlocal buftype=nofile + setlocal bufhidden=wipe + setlocal signcolumn=no + setlocal modifiable + + if s:varbuf > 0 + exe 'buffer' . s:varbuf + else + silent file Termdebug-variables-listing + let s:varbuf = bufnr('Termdebug-variables-listing') + endif + + if s:GetVariablesWindowHeight() > 0 + exe 'resize ' .. s:GetVariablesWindowHeight() + endif + endif + + if s:running + call s:SendCommand('-stack-list-variables 2') + endif +endfunc + " Handle stopping and running message from gdb. " Will update the sign that shows the current position. func s:HandleCursor(msg) - let wid = win_getid(winnr()) + let wid = win_getid() if a:msg =~ '^\*stopped' call ch_log('program stopped') let s:stopped = 1 + if a:msg =~ '^\*stopped,reason="exited-normally"' + let s:running = 0 + endif elseif a:msg =~ '^\*running' call ch_log('program running') let s:stopped = 0 + let s:running = 1 endif if a:msg =~ 'fullname=' @@ -1330,7 +1465,7 @@ func s:HandleCursor(msg) if asm_addr != '' let s:asm_addr = asm_addr - let curwinid = win_getid(winnr()) + let curwinid = win_getid() if win_gotoid(s:asmwin) let lnum = search('^' . s:asm_addr) if lnum == 0 @@ -1345,25 +1480,29 @@ func s:HandleCursor(msg) endif endif + if s:running && s:stopped && bufwinnr('Termdebug-variables-listing') != -1 + call s:SendCommand('-stack-list-variables 2') + endif + if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname) let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '') if lnum =~ '^[0-9]*$' call s:GotoSourcewinOrCreateIt() if expand('%:p') != fnamemodify(fname, ':p') -echomsg 'different fname: "' .. expand('%:p') .. '" vs "' .. fnamemodify(fname, ':p') .. '"' - augroup Termdebug - " Always open a file read-only instead of showing the ATTENTION - " prompt, since it is unlikely we want to edit the file. - " The file may be changed but not saved, warn for that. - au SwapExists * echohl WarningMsg - \ | echo 'Warning: file is being edited elsewhere' - \ | echohl None - \ | let v:swapchoice = 'o' + echomsg 'different fname: "' .. expand('%:p') .. '" vs "' .. fnamemodify(fname, ':p') .. '"' + augroup Termdebug + " Always open a file read-only instead of showing the ATTENTION + " prompt, since it is unlikely we want to edit the file. + " The file may be changed but not saved, warn for that. + au SwapExists * echohl WarningMsg + \ | echo 'Warning: file is being edited elsewhere' + \ | echohl None + \ | let v:swapchoice = 'o' augroup END if &modified " TODO: find existing window exe 'split ' . fnameescape(fname) - let s:sourcewin = win_getid(winnr()) + let s:sourcewin = win_getid() call s:InstallWinbar(0) else exe 'edit ' . fnameescape(fname) diff --git a/runtime/plugin/gzip.vim b/runtime/plugin/gzip.vim index 7214488579..c02bd99567 100644 --- a/runtime/plugin/gzip.vim +++ b/runtime/plugin/gzip.vim @@ -1,6 +1,7 @@ " Vim plugin for editing compressed files. -" Maintainer: Bram Moolenaar -" Last Change: 2016 Oct 30 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Exit quickly when: " - this plugin was already loaded diff --git a/runtime/plugin/manpager.vim b/runtime/plugin/manpager.vim index 1738dc9439..076aca5f83 100644 --- a/runtime/plugin/manpager.vim +++ b/runtime/plugin/manpager.vim @@ -30,10 +30,10 @@ function s:ManPager() setlocal modifiable " Emulate 'col -b' - silent! keepj keepp %s/\v(.)\b\ze\1?//ge + exe 'silent! keepj keepp %s/\v(.)\b\ze\1?//e' .. (&gdefault ? '' : 'g') " Remove ansi sequences - silent! keepj keepp %s/\v\e\[%(%(\d;)?\d{1,2})?[mK]//ge + exe 'silent! keepj keepp %s/\v\e\[%(%(\d;)?\d{1,2})?[mK]//e' .. (&gdefault ? '' : 'g') " Remove empty lines above the header call cursor(1, 1) diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim index e19b283228..b33ecd557c 100644 --- a/runtime/plugin/matchparen.vim +++ b/runtime/plugin/matchparen.vim @@ -1,6 +1,7 @@ " Vim plugin for showing matching parens -" Maintainer: Bram Moolenaar -" Last Change: 2022 Dec 01 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Exit quickly when: " - this plugin was already loaded (or disabled) diff --git a/runtime/plugin/spellfile.vim b/runtime/plugin/spellfile.vim index 437296090c..1730ac8a95 100644 --- a/runtime/plugin/spellfile.vim +++ b/runtime/plugin/spellfile.vim @@ -1,6 +1,7 @@ " Vim plugin for downloading spell files -" Maintainer: Bram Moolenaar -" Last Change: 2006 Feb 01 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Exit quickly when: " - this plugin was already loaded diff --git a/runtime/scripts.vim b/runtime/scripts.vim index 185f1676d3..ced4c239b5 100644 --- a/runtime/scripts.vim +++ b/runtime/scripts.vim @@ -1,7 +1,8 @@ " Vim support file to detect file types in scripts " -" Maintainer: Bram Moolenaar -" Last change: 2023 Jun 08 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " This file is called by an autocommand for every file that has just been " loaded into a buffer. It checks if the type of file can be recognized by diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim index 9d7da7dee3..9a6ec997d3 100644 --- a/runtime/synmenu.vim +++ b/runtime/synmenu.vim @@ -1,8 +1,9 @@ " Vim support file to define the syntax selection menu " This file is normally sourced from menu.vim. " -" Maintainer: Bram Moolenaar -" Last Change: 2022 Oct 04 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Define the SetSyn function, used for the Syntax menu entries. " Set 'filetype' and also 'syntax' if it is manually selected. diff --git a/runtime/syntax/README.txt b/runtime/syntax/README.txt index d6a86e5ca9..756ae41587 100644 --- a/runtime/syntax/README.txt +++ b/runtime/syntax/README.txt @@ -28,14 +28,16 @@ whitespace.vim View Tabs and Spaces. If you want to write a syntax file, read the docs at ":help usr_44.txt". If you make a new syntax file which would be useful for others, please send it -to Bram@vim.org. Include instructions for detecting the file type for this -language, by file name extension or by checking a few lines in the file. -And please write the file in a portable way, see ":help 44.12". +to the vim-dev mailing list . Include instructions for +detecting the file type for this language, by file name extension or by +checking a few lines in the file. And please write the file in a portable way, +see ":help 44.12". If you have remarks about an existing file, send them to the maintainer of -that file. Only when you get no response send a message to Bram@vim.org. +that file. Only when you get no response send a message to the vim-dev +mailing list: . If you are the maintainer of a syntax file and make improvements, send the new -version to Bram@vim.org. +version to the vim-dev mailing list: For further info see ":help syntax" in Vim. diff --git a/runtime/syntax/aap.vim b/runtime/syntax/aap.vim index 8399a4d224..87cedab30f 100644 --- a/runtime/syntax/aap.vim +++ b/runtime/syntax/aap.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: A-A-P recipe -" Maintainer: Bram Moolenaar -" Last Change: 2004 Jun 13 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/bindzone.vim b/runtime/syntax/bindzone.vim index bb790bb75c..fede3d97d5 100644 --- a/runtime/syntax/bindzone.vim +++ b/runtime/syntax/bindzone.vim @@ -33,7 +33,7 @@ syn match zoneDomain contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\ syn match zoneSpecial contained /^[@*.]\s/ syn match zoneTTL contained /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite syn keyword zoneClass contained IN CHAOS CH HS HESIOD nextgroup=zoneRRType,zoneTTL skipwhite -syn keyword zoneRRType contained A AAAA CERT CNAME DNAME DNSKEY DS HINFO LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RP RRSIG SSHFP SOA SPF SRV TLSA TXT nextgroup=zoneRData skipwhite +syn keyword zoneRRType contained A AAAA CAA CERT CNAME DNAME DNSKEY DS HINFO LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM OPENPGPKEY PTR RP RRSIG SMIMEA SOA SPF SRV SSHFP TLSA TXT nextgroup=zoneRData skipwhite syn match zoneRData contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown syn match zoneIPAddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/ diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim index 04b132d3ff..5ed8fdc847 100644 --- a/runtime/syntax/c.vim +++ b/runtime/syntax/c.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: C -" Maintainer: Bram Moolenaar -" Last Change: 2023 Mar 08 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/colortest.vim b/runtime/syntax/colortest.vim index 58de7aaf13..1dd860c1d3 100644 --- a/runtime/syntax/colortest.vim +++ b/runtime/syntax/colortest.vim @@ -1,7 +1,8 @@ " Vim script for testing colors -" Maintainer: Bram Moolenaar +" Maintainer: The Vim Project " Contributors: Rafael Garcia-Suarez, Charles Campbell -" Last Change: 2008 Jun 04 +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " edit this file, then do ":source %", and check if the colors match diff --git a/runtime/syntax/conf.vim b/runtime/syntax/conf.vim index 6a78ef8c6e..15a1fffab3 100644 --- a/runtime/syntax/conf.vim +++ b/runtime/syntax/conf.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: generic configure file -" Maintainer: Bram Moolenaar -" Last Change: 2021 May 01 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim index 564dc151bc..f8104ea2c5 100644 --- a/runtime/syntax/css.vim +++ b/runtime/syntax/css.vim @@ -452,12 +452,12 @@ syn match cssAttrComma "," " Pseudo class " https://www.w3.org/TR/selectors-4/ syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn -syn keyword cssPseudoClassId contained link visited active hover before after left right -syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid +syn keyword cssPseudoClassId contained link visited active hover before after left right any-link +syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid default defined autofill fullscreen host indeterminate in-range modal optional out-of-range picture-in-picture placeholder-shown paused playing read-only read-write required scope syn match cssPseudoClassId contained "\" syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>" syn match cssPseudoClassId contained "\" -syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier +syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(where\|has\|host\|not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier " ------------------------------------ " Vendor specific properties syn match cssPseudoClassId contained "\" diff --git a/runtime/syntax/ctrlh.vim b/runtime/syntax/ctrlh.vim index b4bf3477e6..b34f335785 100644 --- a/runtime/syntax/ctrlh.vim +++ b/runtime/syntax/ctrlh.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: CTRL-H (e.g., ASCII manpages) -" Maintainer: Bram Moolenaar -" Last Change: 2005 Jun 20 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Existing syntax is kept, this file can be used as an addition diff --git a/runtime/syntax/diff.vim b/runtime/syntax/diff.vim index 408556ac13..4cadf5dae8 100644 --- a/runtime/syntax/diff.vim +++ b/runtime/syntax/diff.vim @@ -1,8 +1,9 @@ " Vim syntax file " Language: Diff (context or unified) -" Maintainer: Bram Moolenaar -" Translations by Jakson Alves de Aquino. -" Last Change: 2020 Dec 30 +" Maintainer: The Vim Project +" Translations by Jakson Alves de Aquino. +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/dosini.vim b/runtime/syntax/dosini.vim index cf42819bcd..66e17ec9af 100644 --- a/runtime/syntax/dosini.vim +++ b/runtime/syntax/dosini.vim @@ -1,12 +1,12 @@ " Vim syntax file " Language: Configuration File (ini file) for MSDOS/MS Windows -" Version: 2.2 +" Version: 2.3 " Original Author: Sean M. McKee " Previous Maintainer: Nima Talebi " Current Maintainer: Hong Xu " Homepage: http://www.vim.org/scripts/script.php?script_id=3747 " Repository: https://github.com/xuhdev/syntax-dosini.vim -" Last Change: 2018 Sep 11 +" Last Change: 2023 Aug 20 " quit when a syntax file was already loaded @@ -14,6 +14,10 @@ if exists("b:current_syntax") finish endif +" using of line-continuation requires cpo&vim +let s:cpo_save = &cpo +set cpo&vim + " shut case off syn case ignore @@ -24,6 +28,8 @@ syn match dosiniNumber "=\zs\s*\d*\.\d\+\s*$" syn match dosiniNumber "=\zs\s*\d\+e[+-]\=\d\+\s*$" syn region dosiniHeader start="^\s*\[" end="\]" syn match dosiniComment "^[#;].*$" +syn region dosiniSection start="\s*\[.*\]" end="\ze\s*\[.*\]" fold + \ contains=dosiniLabel,dosiniValue,dosiniNumber,dosiniHeader,dosiniComment " Define the default highlighting. " Only when an item doesn't have highlighting yet @@ -37,4 +43,7 @@ hi def link dosiniValue String let b:current_syntax = "dosini" +let &cpo = s:cpo_save +unlet s:cpo_save + " vim: sts=2 sw=2 et diff --git a/runtime/syntax/editorconfig.vim b/runtime/syntax/editorconfig.vim index 6740624bc3..7f75ab6287 100644 --- a/runtime/syntax/editorconfig.vim +++ b/runtime/syntax/editorconfig.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: EditorConfig " Maintainer: Gregory Anders -" Last Change: 2023-01-03 +" Last Change: 2023-07-20 if exists('b:current_syntax') finish @@ -10,7 +10,7 @@ endif runtime! syntax/dosini.vim unlet! b:current_syntax -syntax match editorconfigUnknownProperty "^\s*\zs\w\+\ze\s*=" +syntax match editorconfigUnknownProperty "^\s*\zs[a-zA-Z0-9_-]\+\ze\s*=" syntax keyword editorconfigProperty root charset end_of_line indent_style syntax keyword editorconfigProperty indent_size tab_width max_line_length diff --git a/runtime/syntax/fortran.vim b/runtime/syntax/fortran.vim index b5c9b1ef8d..fc6c82b480 100644 --- a/runtime/syntax/fortran.vim +++ b/runtime/syntax/fortran.vim @@ -1,6 +1,6 @@ " Vim syntax file " Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77) -" Version: (v104) 2021 April 06 +" Version: (v105) 2023 August 14 " Maintainer: Ajit J. Thakkar ; " Usage: For instructions, do :help fortran-syntax from Vim " Credits: @@ -11,7 +11,7 @@ " Walter Dieudonne, Alexander Wagner, Roman Bertle, Charles Rendleman, " Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann, " Stefano Zaghi, Vishnu V. Krishnan, Judicael Grasset, Takuma Yoshida, -" Eisuke Kawashima, Andre Chalella, and Fritz Reese. +" Eisuke Kawashima, Andre Chalella, Fritz Reese, and Karl D. Hammond. if exists("b:current_syntax") finish @@ -95,16 +95,14 @@ if exists("fortran_more_precise") syn match fortranConstructName "\(\" -syn match fortranType "\" -syn match fortranType "\" -syn match fortranType "\" -syn match fortranType "\" -syn match fortranType "\" +syn match fortranType "\" +syn match fortranType "\" syn keyword fortranType intrinsic -syn match fortranType "\" +syn match fortranType "\\s\+\(none\)\?" syn keyword fortranStructure dimension syn keyword fortranStorageClass parameter save syn match fortranUnitHeader "\" @@ -131,7 +129,8 @@ syn match fortranTypeOb "\" -syn match fortranType "\" +syn match fortranType "\\(\s\+is\>\)\?" +syn match fortranType "^\s*\(type\s\+\(is\)\? \)\?\s*\(real\|integer\|logical\|complex\|character\)\>" +syn match fortranType "^\s*\(implicit \)\?\s*\(real\|integer\|logical\|complex\|character\)\>" "Numbers of various sorts " Integers @@ -206,9 +206,6 @@ syn region fortranStringR start=+'+ end=+'+ contains=fortranContinueMark,fortran syn keyword fortranIntrinsicR dim lge lgt lle llt mod syn keyword fortranKeywordDel assign pause -syn match fortranType "\" -syn keyword fortranType none - syn keyword fortranStructure private public intent optional syn keyword fortranStructure pointer target allocatable syn keyword fortranStorageClass in out @@ -222,7 +219,8 @@ syn keyword fortranUnitHeader result operator assignment syn match fortranUnitHeader "\" syn keyword fortranKeyword allocate deallocate nullify cycle exit syn match fortranConditional "\" -syn keyword fortranConditional case default where elsewhere +syn match fortranConditional "\" +syn keyword fortranConditional where elsewhere syn match fortranOperator "\(\(>\|<\)=\=\|==\|/=\|=\)" syn match fortranOperator "=>" @@ -231,8 +229,7 @@ syn region fortranString start=+"+ end=+"+ contains=fortranLeftMargin,fortranCon syn keyword fortranIO pad position action delim readwrite syn keyword fortranIO eor advance nml -syn keyword fortranIntrinsic adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack precision present product radix random_number random_seed range repeat reshape rrspacing -syn keyword fortranIntrinsic scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify +syn match fortranIntrinsic '\<\(adjustl\|adjustr\|all\|allocated\|any\|associated\|bit_size\|btest\|ceiling\|count\|cshift\|date_and_time\|digits\|dot_product\|eoshift\|epsilon\|exponent\|floor\|fraction\|huge\|iand\|ibclr\|ibits\|ibset\|ieor\|ior\|ishft\|ishftc\|lbound\|len_trim\|matmul\|maxexponent\|maxloc\|maxval\|merge\|minexponent\|minloc\|minval\|modulo\|mvbits\|nearest\|pack\|precision\|present\|product\|radix\|random_number\|random_seed\|range\|repeat\|reshape\|rrspacing\|scale\|scan\|selected_int_kind\|selected_real_kind\|set_exponent\|shape\|size\|spacing\|spread\|sum\|system_clock\|tiny\|transpose\|trim\|ubound\|unpack\|verify\)\>\ze\s*(' syn match fortranIntrinsic "\\(\s*\.\)\@!"me=s+3 syn match fortranIntrinsic "\\s*[(,]"me=s+4 @@ -306,9 +303,9 @@ if b:fortran_dialect == "f08" syn match fortranType "\" + syn match fortranConditional "\" + syn match fortranConditional "\" syn match fortranUnitHeader "\" syn match fortranOperator "\([\|]\)" @@ -525,11 +522,6 @@ else hi! def link fortranConditionalR fortranConditional endif -" CUDA -hi def link fortranIntrinsicCUDA fortranIntrinsic -hi def link fortranTypeCUDA fortranType -hi def link fortranStringCUDA fortranString - hi def link fortranFormatSpec Identifier hi def link fortranFloat Float hi def link fortranPreCondit PreCondit @@ -543,8 +535,15 @@ hi def link fortranComment Comment hi def link fortranSerialNumber Todo hi def link fortranTab Error -" Uncomment the next line if you use extra intrinsics provided by vendors -"hi def link fortranExtraIntrinsic Function +if exists("fortran_CUDA") + hi def link fortranIntrinsicCUDA fortranIntrinsic + hi def link fortranTypeCUDA fortranType + hi def link fortranStringCUDA fortranString +endif + +if exists("fortran_vendor_intrinsics") + hi def link fortranExtraIntrinsic Function +endif let b:current_syntax = "fortran" diff --git a/runtime/syntax/freebasic.vim b/runtime/syntax/freebasic.vim index 7549d02555..5c43289c16 100644 --- a/runtime/syntax/freebasic.vim +++ b/runtime/syntax/freebasic.vim @@ -2,7 +2,7 @@ " Language: FreeBASIC " Maintainer: Doug Kearns " Previous Maintainer: Mark Manning -" Last Change: 2022 Jun 26 +" Last Change: 2023 Aug 14 " " Description: " @@ -338,13 +338,13 @@ syn keyword freebasicPredefined __FB_64BIT__ __FB_ARGC__ __FB_ARG_COUNT__ __FB_ syn keyword freebasicPredefined __FB_ARG_RIGHTOF__ __FB_ARGV__ __FB_ARM__ __FB_ASM__ __FB_BACKEND__ syn keyword freebasicPredefined __FB_BIGENDIAN__ __FB_BUILD_DATE__ __FB_BUILD_DATE_ISO__ __FB_BUILD_SHA1__ syn keyword freebasicPredefined __FB_CYGWIN__ __FB_DARWIN__ __FB_DEBUG__ __FB_DOS__ __FB_ERR__ __FB_EVAL__ -syn keyword freebasicPredefined __FB_FPMODE__ __FB_FPU__ __FB_FREEBSD__ __FB_GCC__ __FB_GUI__ __FB_JOIN__ +syn keyword freebasicPredefined __FB_FPMODE__ __FB_FPU__ __FB_FREEBSD__ __FB_GCC__ __FB_GUI__ __FB_IIF__ __FB_JOIN__ syn keyword freebasicPredefined __FB_LANG__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__ __FB_MT__ __FB_NETBSD__ syn keyword freebasicPredefined __FB_OPENBSD__ __FB_OPTIMIZE__ __FB_OPTION_BYVAL__ __FB_OPTION_DYNAMIC__ syn keyword freebasicPredefined __FB_OPTION_ESCAPE__ __FB_OPTION_EXPLICIT__ __FB_OPTION_GOSUB__ syn keyword freebasicPredefined __FB_OPTION_PRIVATE__ __FB_OUT_DLL__ __FB_OUT_EXE__ __FB_OUT_LIB__ __FB_OUT_OBJ__ -syn keyword freebasicPredefined __FB_PCOS__ __FB_PPC__ __FB_QUOTE__ __FB_SIGNATURE__ __FB_SSE__ __FB_UNIQUEID__ -syn keyword freebasicPredefined __FB_UNIQUEID_POP__ __FB_UNIQUEID_PUSH__ __FB_UNIX__ __FB_UNQUOTE__ +syn keyword freebasicPredefined __FB_PCOS__ __FB_PPC__ __FB_QUERY_SYMBOL__ __FB_QUOTE__ __FB_SIGNATURE__ __FB_SSE__ +syn keyword freebasicPredefined __FB_UNIQUEID__ __FB_UNIQUEID_POP__ __FB_UNIQUEID_PUSH__ __FB_UNIX__ __FB_UNQUOTE__ syn keyword freebasicPredefined __FB_VECTORIZE__ __FB_VER_MAJOR__ __FB_VER_MINOR__ __FB_VER_PATCH__ __FB_VERSION__ syn keyword freebasicPredefined __FB_WIN32__ __FB_X86__ __FB_XBOX__ syn keyword freebasicPredefined __FILE__ __FILE_NQ__ __FUNCTION__ __FUNCTION_NQ__ diff --git a/runtime/syntax/haskell.vim b/runtime/syntax/haskell.vim index 1b70b9344a..b48b278084 100644 --- a/runtime/syntax/haskell.vim +++ b/runtime/syntax/haskell.vim @@ -108,6 +108,8 @@ syn match hsLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contain syn region hsBlockComment start="{-" end="-}" contains=hsBlockComment,@Spell syn region hsPragma start="{-#" end="#-}" +syn keyword hsTodo contained FIXME TODO XXX NOTE + " C Preprocessor directives. Shamelessly ripped from c.vim and trimmed " First, see whether to flag directive-like lines or not if (!exists("hs_allow_hash_operator")) diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim index b51ad72bb7..10206febb4 100644 --- a/runtime/syntax/help.vim +++ b/runtime/syntax/help.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: Vim help file -" Maintainer: Bram Moolenaar (Bram@vim.org) -" Last Change: 2022 Nov 13 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/iss.vim b/runtime/syntax/iss.vim index 34bb698368..212c0f6dbe 100644 --- a/runtime/syntax/iss.vim +++ b/runtime/syntax/iss.vim @@ -2,10 +2,9 @@ " Language: Inno Setup File (iss file) and My InnoSetup extension " Maintainer: Jason Mills (jmills@cs.mun.ca) " Previous Maintainer: Dominique Stéphan (dominique@mggen.com) -" Last Change: 2021 Aug 30 +" Last Change: 2023 Jan 26 " " Todo: -" - The parameter String: is matched as flag string (because of case ignore). " - Pascal scripting syntax is not recognized. " - Embedded double quotes confuse string matches. e.g. "asfd""asfa" @@ -17,6 +16,9 @@ endif " shut case off syn case ignore +" match keywords with colon +syn iskeyword @,48-57,_,192-255,: + " Preprocessor syn region issPreProc start="^\s*#" end="$" @@ -30,25 +32,25 @@ syn match issDirective "^[^=]\+=" syn match issURL "http[s]\=:\/\/.*$" " Parameters used for any section. -" syn match issParam"[^: ]\+:" -syn match issParam "Name:" -syn match issParam "MinVersion:\|OnlyBelowVersion:\|Languages:" -syn match issParam "Source:\|DestDir:\|DestName:\|CopyMode:" -syn match issParam "Attribs:\|Permissions:\|FontInstall:\|Flags:" -syn match issParam "FileName:\|Parameters:\|WorkingDir:\|HotKey:\|Comment:" -syn match issParam "IconFilename:\|IconIndex:" -syn match issParam "Section:\|Key:\|String:" -syn match issParam "Root:\|SubKey:\|ValueType:\|ValueName:\|ValueData:" -syn match issParam "RunOnceId:" -syn match issParam "Type:\|Excludes:" -syn match issParam "Components:\|Description:\|GroupDescription:\|Types:\|ExtraDiskSpaceRequired:" -syn match issParam "StatusMsg:\|RunOnceId:\|Tasks:" -syn match issParam "MessagesFile:\|LicenseFile:\|InfoBeforeFile:\|InfoAfterFile:" +" syn match issParam "[^: ]\+:" +syn keyword issParam Name: +syn keyword issParam MinVersion: OnlyBelowVersion: Languages: +syn keyword issParam Source: DestDir: DestName: CopyMode: ExternalSize: +syn keyword issParam Attribs: Permissions: FontInstall: Flags: +syn keyword issParam FileName: Parameters: WorkingDir: HotKey: Comment: +syn keyword issParam IconFilename: IconIndex: +syn keyword issParam Section: Key: String: +syn keyword issParam Root: SubKey: ValueType: ValueName: ValueData: +syn keyword issParam RunOnceId: +syn keyword issParam Type: Excludes: +syn keyword issParam Components: Description: GroupDescription: Types: ExtraDiskSpaceRequired: +syn keyword issParam StatusMsg: RunOnceId: Tasks: +syn keyword issParam MessagesFile: LicenseFile: InfoBeforeFile: InfoAfterFile: syn match issComment "^\s*;.*$" contains=@Spell " folder constant -syn match issFolder "{[^{]*}" contains=@NoSpell +syn match issFolder "{\@1 " Version: 3.0.0 -" Last Change: 18. Apr 2022 +" Last Change: 22. Jun 2023 " Credits: Thanks for contributions to this to Michael Jagusch " Thanks for beta testing to Thomas Baginski " @@ -109,11 +109,11 @@ highlight default link krlGeomOperator Operator " Type, StorageClass and Typedef {{{ " Simple data types -syn keyword krlType bool char real int containedin=krlAnyType +syn keyword krlType bool char real int " External program and function -syn keyword krlType ext extfct extfctp extp containedin=krlAnyType +syn keyword krlType ext extfct extfctp extp " Communication -syn keyword krlType signal channel containedin=krlAnyType +syn keyword krlType signal channel highlight default link krlType Type " StorageClass syn keyword krlStorageClass decl global const struc enum @@ -200,19 +200,20 @@ syn keyword krlEnum adap_acc model_type control_parameter eko_mode " " Predefined structures and enums found in /steu/mada/$custom.dat syn keyword krlStructure pro_io_t ser ext_mod_t coop_krc ws_config bin_type coop_update_t ldc_reaction -syn keyword krlEnum axis_of_coordinates spline_para_variant target_status cp_vel_type cp_statmon +syn keyword krlEnum axis_of_coordinates motion_mode spline_para_variant spreadstartpolicy target_status cp_vel_type cp_statmon " " Predefined structures and enums found in /steu/mada/$machine.dat syn keyword krlStructure emstop_path boxstatesafein boxstatesafeout syn keyword krlEnum digincode " " Predefined structures and enums found in /steu/mada/$option.dat -syn keyword krlStructure msg_t +syn keyword krlStructure installed_motion_modes msg_t +syn keyword krlEnum step_enum " syn keyword krlEnum " " Predefined structures and enums found in /r1/system/$config.dat " BasisTech -syn keyword krlStructure dig_out_type ctrl_in_t ctrl_out_t fct_out_t fct_in_t odat basis_sugg_t out_sugg_t md_state machine_def_t machine_tool_t machine_frame_t trigger_para constvel_para condstop_para adat tm_sugg_t tqm_tqdat_t sps_prog_type +syn keyword krlStructure dig_out_type ctrl_in_t ctrl_out_t fct_out_t fct_in_t odat hdat basis_sugg_t out_sugg_t md_state machine_def_t machine_tool_t machine_frame_t trigger_para constvel_para condstop_para adat tm_sugg_t tqm_tqdat_t sps_prog_type syn keyword krlEnum bas_command out_modetype ipo_m_t apo_mode_t funct_type p00_command timer_actiontype " " GripperTech @@ -271,7 +272,9 @@ highlight default link krlStatement Statement syn keyword krlConditional if then else endif switch case default endswitch skip endskip highlight default link krlConditional Conditional " Repeat -syn keyword krlRepeat for to step endfor while endwhile repeat until loop endloop exit +syn keyword krlRepeat for to endfor while endwhile repeat until loop endloop exit +" STEP is used as variable in VKRC, this pattern should match STEP -, 5(constant number) or VAR +syn match krlRepeat /\v\cstep\s+%(-|\w)/me=e-1 highlight default link krlRepeat Repeat " Label syn keyword krlLabel goto @@ -390,7 +393,7 @@ if get(g:, 'krlShowError', 1) " some more or less common typos " " vars or funcs >24 chars are not possible in krl. a234567890123456789012345 - syn match krlError0 /\w\{25,}/ containedin=krlFunction,krlNames,krlLabel,krlAnyType,krlEnumVal,krlSysvars + syn match krlError0 /\w\{25,}/ containedin=krlFunction,krlNames,krlLabel,krlEnumVal,krlSysvars " " should be interrupt (on|off) \w+ syn match krlError1 /\vinterrupt[ \t(]+[_$a-zA-Z0-9]+[_$a-zA-Z0-9.\[\]()+\-*/]*[ \t)]+o%(n|ff)>/ diff --git a/runtime/syntax/man.vim b/runtime/syntax/man.vim index 4e08cd7342..dfbb35a700 100644 --- a/runtime/syntax/man.vim +++ b/runtime/syntax/man.vim @@ -20,7 +20,9 @@ runtime! syntax/ctrlh.vim syn case ignore -syn match manReference "\f\+([1-9][a-z]\=)" +" See notes about hyphenation in s:ParseIntoPageAndSection of +" autoload/dist/man.vim. +syn match manReference "\%(\f\+[\u2010-]\%(\n\|\r\n\=\)\s\+\)\=\f\+([1-9]\l*)" syn match manSectionHeading "^\a.*$" syn match manSubHeading "^\s\{3\}\a.*$" syn match manOptionDesc "^\s*[+-][a-z0-9]\S*" diff --git a/runtime/syntax/manual.vim b/runtime/syntax/manual.vim index c0e53fa7b4..8388336f25 100644 --- a/runtime/syntax/manual.vim +++ b/runtime/syntax/manual.vim @@ -1,6 +1,7 @@ " Vim syntax support file -" Maintainer: Bram Moolenaar -" Last Change: 2016 Feb 01 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " This file is used for ":syntax manual". " It installs the Syntax autocommands, but no the FileType autocommands. diff --git a/runtime/syntax/model.vim b/runtime/syntax/model.vim index 5f3b7f8721..ea661eb5b5 100644 --- a/runtime/syntax/model.vim +++ b/runtime/syntax/model.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: Model -" Maintainer: Bram Moolenaar -" Last Change: 2005 Jun 20 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " very basic things only (based on the vgrindefs file). " If you use this language, please improve it, and send me the patches! diff --git a/runtime/syntax/muttrc.vim b/runtime/syntax/muttrc.vim index 830664e0eb..bf53a42f94 100644 --- a/runtime/syntax/muttrc.vim +++ b/runtime/syntax/muttrc.vim @@ -1,10 +1,10 @@ " Vim syntax file " Language: Mutt setup files " Original: Preben 'Peppe' Guldberg -" Maintainer: Kyle Wheeler -" Last Change: 21 May 2018 +" Maintainer: Luna Celeste +" Last Change: 14 Aug 2023 -" This file covers mutt version 1.10.0 +" This file covers mutt version 2.2.10 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -103,88 +103,96 @@ syn match muttrcKeyName contained "" syn keyword muttrcVarBool skipwhite contained \ allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split - \ auto_tag autoedit beep beep_new bounce_delivered braille_friendly - \ browser_abbreviate_mailboxes change_folder_next check_mbox_size check_new - \ collapse_unread confirmappend confirmcreate crypt_autoencrypt crypt_autopgp - \ crypt_autosign crypt_autosmime crypt_confirmhook crypt_opportunistic_encrypt - \ crypt_replyencrypt crypt_replysign crypt_replysignencrypted crypt_timestamp - \ crypt_use_gpgme crypt_use_pka delete_untag digest_collapse duplicate_threads - \ edit_hdrs edit_headers encode_from envelope_from fast_reply fcc_clear - \ flag_safe followup_to force_name forw_decode forw_decrypt forw_quote - \ forward_decode forward_decrypt forward_quote hdrs header - \ header_color_partial help hidden_host hide_limited hide_missing - \ hide_thread_subject hide_top_limited hide_top_missing history_remove_dups - \ honor_disposition idn_decode idn_encode ignore_linear_white_space - \ ignore_list_reply_to imap_check_subscribed imap_list_subscribed imap_passive - \ imap_peek imap_servernoise implicit_autoview include_onlyfirst keep_flagged + \ auto_tag autoedit auto_subscribe background_edit background_confirm_quit beep beep_new + \ bounce_delivered braille_friendly browser_abbreviate_mailboxes browser_sticky_cursor + \ change_folder_next check_mbox_size check_new collapse_unread compose_confirm_detach_first + \ confirmappend confirmcreate copy_decode_weed count_alternatives crypt_autoencrypt crypt_autopgp + \ crypt_autosign crypt_autosmime crypt_confirmhook crypt_protected_headers_read + \ crypt_protected_headers_save crypt_protected_headers_write crypt_opportunistic_encrypt + \ crypt_opportunistic_encrypt_strong_keys crypt_replyencrypt crypt_replysign + \ crypt_replysignencrypted crypt_timestamp crypt_use_gpgme crypt_use_pka cursor_overlay + \ delete_untag digest_collapse duplicate_threads edit_hdrs edit_headers encode_from + \ envelope_from fast_reply fcc_before_send fcc_clear flag_safe followup_to force_name forw_decode + \ forw_decrypt forw_quote forward_decode forward_quote hdrs header + \ header_color_partial help hidden_host hide_limited hide_missing hide_thread_subject + \ hide_top_limited hide_top_missing history_remove_dups honor_disposition idn_decode idn_encode + \ ignore_linear_white_space ignore_list_reply_to imap_check_subscribed imap_condstore imap_deflate + \ imap_list_subscribed imap_passive imap_peek imap_qresync imap_servernoise + \ implicit_autoview include_encrypted include_onlyfirst keep_flagged local_date_header \ mail_check_recent mail_check_stats mailcap_sanitize maildir_check_cur \ maildir_header_cache_verify maildir_trash mark_old markers menu_move_off \ menu_scroll message_cache_clean meta_key metoo mh_purge mime_forward_decode - \ mime_type_query_first narrow_tree pager_stop pgp_auto_decode + \ mime_type_query_first muttlisp_inline_eval narrow_tree pager_stop pgp_auto_decode \ pgp_auto_traditional pgp_autoencrypt pgp_autoinline pgp_autosign - \ pgp_check_exit pgp_create_traditional pgp_ignore_subkeys pgp_long_ids - \ pgp_replyencrypt pgp_replyinline pgp_replysign pgp_replysignencrypted - \ pgp_retainable_sigs pgp_self_encrypt pgp_self_encrypt_as pgp_show_unusable - \ pgp_strict_enc pgp_use_gpg_agent pipe_decode pipe_split pop_auth_try_all - \ pop_last postpone_encrypt postpone_encrypt_as print_decode print_split - \ prompt_after read_only reflow_space_quotes reflow_text reflow_wrap - \ reply_self resolve resume_draft_files resume_edited_draft_files - \ reverse_alias reverse_name reverse_realname rfc2047_parameters save_address - \ save_empty save_name score sidebar_folder_indent sidebar_new_mail_only - \ sidebar_next_new_wrap sidebar_short_path sidebar_sort sidebar_visible - \ sig_dashes sig_on_top smart_wrap smime_ask_cert_label - \ smime_decrypt_use_default_key smime_is_default smime_self_encrypt - \ smime_self_encrypt_as sort_re ssl_force_tls ssl_use_sslv2 ssl_use_sslv3 - \ ssl_use_tlsv1 ssl_usesystemcerts ssl_verify_dates ssl_verify_host - \ ssl_verify_partial_chains status_on_top strict_mime strict_threads suspend - \ text_flowed thorough_search thread_received tilde ts_enabled uncollapse_jump - \ use_8bitmime use_domain use_envelope_from use_from use_idn use_ipv6 - \ uncollapse_new user_agent wait_key weed wrap_search write_bcc + \ pgp_check_exit pgp_check_gpg_decrypt_status_fd pgp_create_traditional + \ pgp_ignore_subkeys pgp_long_ids pgp_replyencrypt pgp_replyinline + \ pgp_replysign pgp_replysignencrypted pgp_retainable_sigs pgp_self_encrypt + \ pgp_self_encrypt_as pgp_show_unusable pgp_strict_enc pgp_use_gpg_agent + \ pipe_decode pipe_decode_weed pipe_split pop_auth_try_all pop_last postpone_encrypt + \ postpone_encrypt_as print_decode print_decode_weed print_split prompt_after read_only + \ reflow_space_quotes reflow_text reflow_wrap reply_self resolve + \ resume_draft_files resume_edited_draft_files reverse_alias reverse_name + \ reverse_realname rfc2047_parameters save_address save_empty save_name score + \ sidebar_folder_indent sidebar_new_mail_only sidebar_next_new_wrap + \ sidebar_relative_shortpath_indent sidebar_short_path sidebar_sort sidebar_use_mailbox_shortcuts + \ sidebar_visible sig_on_top sig_dashes size_show_bytes size_show_fraction size_show_mb + \ size_units_on_left smart_wrap smime_ask_cert_label smime_decrypt_use_default_key + \ smime_is_default smime_self_encrypt smime_self_encrypt_as sort_re + \ ssl_force_tls ssl_use_sslv2 ssl_use_sslv3 ssl_use_tlsv1 ssl_use_tlsv1_3 ssl_usesystemcerts + \ ssl_verify_dates ssl_verify_host ssl_verify_partial_chains status_on_top + \ strict_mime strict_threads suspend text_flowed thorough_search + \ thread_received tilde ts_enabled tunnel_is_secure uncollapse_jump use_8bitmime use_domain + \ use_envelope_from use_from use_idn use_ipv6 uncollapse_new user_agent + \ wait_key weed wrap_search write_bcc \ nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr syn keyword muttrcVarBool skipwhite contained \ noallow_8bit noallow_ansi noarrow_cursor noascii_chars noaskbcc noaskcc - \ noattach_split noauto_tag noautoedit nobeep nobeep_new nobounce_delivered - \ nobraille_friendly nobrowser_abbreviate_mailboxes nochange_folder_next - \ nocheck_mbox_size nocheck_new nocollapse_unread noconfirmappend - \ noconfirmcreate nocrypt_autoencrypt nocrypt_autopgp nocrypt_autosign - \ nocrypt_autosmime nocrypt_confirmhook nocrypt_opportunistic_encrypt - \ nocrypt_replyencrypt nocrypt_replysign nocrypt_replysignencrypted - \ nocrypt_timestamp nocrypt_use_gpgme nocrypt_use_pka nodelete_untag - \ nodigest_collapse noduplicate_threads noedit_hdrs noedit_headers - \ noencode_from noenvelope_from nofast_reply nofcc_clear noflag_safe + \ noattach_split noauto_tag noautoedit noauto_subscribe nobackground_edit + \ nobackground_confirm_quit nobeep nobeep_new nobounce_delivered + \ nobraille_friendly nobrowser_abbreviate_mailboxes nobrowser_sticky_cursor nochange_folder_next + \ nocheck_mbox_size nocheck_new nocompose_confirm_detach_first nocollapse_unread noconfirmappend + \ noconfirmcreate nocopy_decode_weed nocount_alternatives nocrypt_autoencrypt nocrypt_autopgp + \ nocrypt_autosign nocrypt_autosmime nocrypt_confirmhook nocrypt_protected_headers_read + \ nocrypt_protected_headers_save nocrypt_protected_headers_write nocrypt_opportunistic_encrypt + \ nocrypt_opportunistic_encrypt_strong_keys nocrypt_replyencrypt nocrypt_replysign + \ nocrypt_replysignencrypted nocrypt_timestamp nocrypt_use_gpgme nocrypt_use_pka nocursor_overlay + \ nodelete_untag nodigest_collapse noduplicate_threads noedit_hdrs noedit_headers + \ noencode_from noenvelope_from nofast_reply nofcc_before_send nofcc_clear noflag_safe \ nofollowup_to noforce_name noforw_decode noforw_decrypt noforw_quote - \ noforward_decode noforward_decrypt noforward_quote nohdrs noheader + \ noforward_decode noforward_quote nohdrs noheader \ noheader_color_partial nohelp nohidden_host nohide_limited nohide_missing \ nohide_thread_subject nohide_top_limited nohide_top_missing \ nohistory_remove_dups nohonor_disposition noidn_decode noidn_encode \ noignore_linear_white_space noignore_list_reply_to noimap_check_subscribed - \ noimap_list_subscribed noimap_passive noimap_peek noimap_servernoise - \ noimplicit_autoview noinclude_onlyfirst nokeep_flagged nomail_check_recent - \ nomail_check_stats nomailcap_sanitize nomaildir_check_cur - \ nomaildir_header_cache_verify nomaildir_trash nomark_old nomarkers - \ nomenu_move_off nomenu_scroll nomessage_cache_clean nometa_key nometoo - \ nomh_purge nomime_forward_decode nomime_type_query_first nonarrow_tree - \ nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt - \ nopgp_autoinline nopgp_autosign nopgp_check_exit nopgp_create_traditional + \ noimap_condstore noimap_deflate noimap_list_subscribed noimap_passive noimap_peek + \ noimap_qresync noimap_servernoise noimplicit_autoview noinclude_encrypted noinclude_onlyfirst + \ nokeep_flagged nolocal_date_header nomail_check_recent nomail_check_stats nomailcap_sanitize + \ nomaildir_check_cur nomaildir_header_cache_verify nomaildir_trash nomark_old + \ nomarkers nomenu_move_off nomenu_scroll nomessage_cache_clean nometa_key + \ nometoo nomh_purge nomime_forward_decode nomime_type_query_first nomuttlisp_inline_eval + \ nonarrow_tree nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt + \ nopgp_autoinline nopgp_autosign nopgp_check_exit + \ nopgp_check_gpg_decrypt_status_fd nopgp_create_traditional \ nopgp_ignore_subkeys nopgp_long_ids nopgp_replyencrypt nopgp_replyinline \ nopgp_replysign nopgp_replysignencrypted nopgp_retainable_sigs \ nopgp_self_encrypt nopgp_self_encrypt_as nopgp_show_unusable - \ nopgp_strict_enc nopgp_use_gpg_agent nopipe_decode nopipe_split + \ nopgp_strict_enc nopgp_use_gpg_agent nopipe_decode nopipe_decode_weed nopipe_split \ nopop_auth_try_all nopop_last nopostpone_encrypt nopostpone_encrypt_as - \ noprint_decode noprint_split noprompt_after noread_only + \ noprint_decode noprint_decode_weed noprint_split noprompt_after noread_only \ noreflow_space_quotes noreflow_text noreflow_wrap noreply_self noresolve \ noresume_draft_files noresume_edited_draft_files noreverse_alias \ noreverse_name noreverse_realname norfc2047_parameters nosave_address \ nosave_empty nosave_name noscore nosidebar_folder_indent - \ nosidebar_new_mail_only nosidebar_next_new_wrap nosidebar_short_path - \ nosidebar_sort nosidebar_visible nosig_dashes nosig_on_top nosmart_wrap - \ nosmime_ask_cert_label nosmime_decrypt_use_default_key nosmime_is_default - \ nosmime_self_encrypt nosmime_self_encrypt_as nosort_re nossl_force_tls - \ nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1 nossl_usesystemcerts + \ nosidebar_new_mail_only nosidebar_next_new_wrap nosidebar_relative_shortpath_indent + \ nosidebar_short_path nosidebar_sort nosidebar_visible nosidebar_use_mailbox_shortcuts + \ nosig_dashes nosig_on_top nosize_show_bytes nosize_show_fraction nosize_show_mb + \ nosize_units_on_left nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key + \ nosmime_is_default nosmime_self_encrypt nosmime_self_encrypt_as nosort_re nossl_force_tls + \ nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1 nossl_use_tlsv1_3 nossl_usesystemcerts \ nossl_verify_dates nossl_verify_host nossl_verify_partial_chains \ nostatus_on_top nostrict_mime nostrict_threads nosuspend notext_flowed - \ nothorough_search nothread_received notilde nots_enabled nouncollapse_jump + \ nothorough_search nothread_received notilde nots_enabled notunnel_is_secure nouncollapse_jump \ nouse_8bitmime nouse_domain nouse_envelope_from nouse_from nouse_idn \ nouse_ipv6 nouncollapse_new nouser_agent nowait_key noweed nowrap_search \ nowrite_bcc @@ -192,50 +200,53 @@ syn keyword muttrcVarBool skipwhite contained syn keyword muttrcVarBool skipwhite contained \ invallow_8bit invallow_ansi invarrow_cursor invascii_chars invaskbcc - \ invaskcc invattach_split invauto_tag invautoedit invbeep invbeep_new - \ invbounce_delivered invbraille_friendly invbrowser_abbreviate_mailboxes - \ invchange_folder_next invcheck_mbox_size invcheck_new invcollapse_unread - \ invconfirmappend invconfirmcreate invcrypt_autoencrypt invcrypt_autopgp - \ invcrypt_autosign invcrypt_autosmime invcrypt_confirmhook - \ invcrypt_opportunistic_encrypt invcrypt_replyencrypt invcrypt_replysign - \ invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme - \ invcrypt_use_pka invdelete_untag invdigest_collapse invduplicate_threads + \ invaskcc invattach_split invauto_tag invautoedit invauto_subscribe nobackground_edit + \ nobackground_confirm_quit invbeep invbeep_new invbounce_delivered invbraille_friendly + \ invbrowser_abbreviate_mailboxes invbrowser_sticky_cursor invchange_folder_next + \ invcheck_mbox_size invcheck_new invcollapse_unread invcompose_confirm_detach_first + \ invconfirmappend invcopy_decode_weed invconfirmcreate invcount_alternatives invcrypt_autopgp + \ invcrypt_autoencrypt invcrypt_autosign invcrypt_autosmime invcrypt_confirmhook + \ invcrypt_protected_headers_read invcrypt_protected_headers_save invcrypt_protected_headers_write + \ invcrypt_opportunistic_encrypt invcrypt_opportunistic_encrypt_strong_keys invcrypt_replysign + \ invcrypt_replyencrypt invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme + \ invcrypt_use_pka invcursor_overlay invdelete_untag invdigest_collapse invduplicate_threads \ invedit_hdrs invedit_headers invencode_from invenvelope_from invfast_reply - \ invfcc_clear invflag_safe invfollowup_to invforce_name invforw_decode - \ invforw_decrypt invforw_quote invforward_decode invforward_decrypt + \ invfcc_before_send invfcc_clear invflag_safe invfollowup_to invforce_name invforw_decode + \ invforw_decrypt invforw_quote invforward_decode \ invforward_quote invhdrs invheader invheader_color_partial invhelp \ invhidden_host invhide_limited invhide_missing invhide_thread_subject \ invhide_top_limited invhide_top_missing invhistory_remove_dups \ invhonor_disposition invidn_decode invidn_encode \ invignore_linear_white_space invignore_list_reply_to - \ invimap_check_subscribed invimap_list_subscribed invimap_passive - \ invimap_peek invimap_servernoise invimplicit_autoview invinclude_onlyfirst - \ invkeep_flagged invmail_check_recent invmail_check_stats invmailcap_sanitize - \ invmaildir_check_cur invmaildir_header_cache_verify invmaildir_trash - \ invmark_old invmarkers invmenu_move_off invmenu_scroll - \ invmessage_cache_clean invmeta_key invmetoo invmh_purge - \ invmime_forward_decode invmime_type_query_first invnarrow_tree invpager_stop - \ invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt + \ invimap_check_subscribed invimap_condstore invimap_deflate invimap_list_subscribed + \ invimap_passive invimap_peek invimap_qresync invimap_servernoise invimplicit_autoview + \ invinclude_encrypted invinclude_onlyfirst invkeep_flagged invlocal_date_header + \ invmail_check_recent invmail_check_stats invmailcap_sanitize invmaildir_check_cur + \ invmaildir_header_cache_verify invmaildir_trash invmark_old invmarkers invmenu_move_off + \ invmenu_scroll invmessage_cache_clean invmeta_key invmetoo invmh_purge + \ invmime_forward_decode invmime_type_query_first invmuttlisp_inline_eval invnarrow_tree + \ invpager_stop invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt \ invpgp_autoinline invpgp_autosign invpgp_check_exit - \ invpgp_create_traditional invpgp_ignore_subkeys invpgp_long_ids - \ invpgp_replyencrypt invpgp_replyinline invpgp_replysign - \ invpgp_replysignencrypted invpgp_retainable_sigs invpgp_self_encrypt - \ invpgp_self_encrypt_as invpgp_show_unusable invpgp_strict_enc - \ invpgp_use_gpg_agent invpipe_decode invpipe_split invpop_auth_try_all - \ invpop_last invpostpone_encrypt invpostpone_encrypt_as invprint_decode - \ invprint_split invprompt_after invread_only invreflow_space_quotes - \ invreflow_text invreflow_wrap invreply_self invresolve invresume_draft_files - \ invresume_edited_draft_files invreverse_alias invreverse_name - \ invreverse_realname invrfc2047_parameters invsave_address invsave_empty - \ invsave_name invscore invsidebar_folder_indent invsidebar_new_mail_only - \ invsidebar_next_new_wrap invsidebar_short_path invsidebar_sort - \ invsidebar_visible invsig_dashes invsig_on_top invsmart_wrap - \ invsmime_ask_cert_label invsmime_decrypt_use_default_key invsmime_is_default - \ invsmime_self_encrypt invsmime_self_encrypt_as invsort_re invssl_force_tls - \ invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1 invssl_usesystemcerts + \ invpgp_check_gpg_decrypt_status_fd invpgp_create_traditional + \ invpgp_ignore_subkeys invpgp_long_ids invpgp_replyencrypt invpgp_replyinline + \ invpgp_replysign invpgp_replysignencrypted invpgp_retainable_sigs + \ invpgp_self_encrypt invpgp_self_encrypt_as invpgp_show_unusable + \ invpgp_strict_enc invpgp_use_gpg_agent invpipe_decode invpipe_decode_weed invpipe_split + \ invpop_auth_try_all invpop_last invpostpone_encrypt invpostpone_encrypt_as + \ invprint_decode invprint_decode_weed invprint_split invprompt_after invread_only + \ invreflow_space_quotes invreflow_text invreflow_wrap invreply_self invresolve + \ invresume_draft_file sinvresume_edited_draft_files invreverse_alias + \ invreverse_name invreverse_realname invrfc2047_parameters invsave_address + \ invsave_empty invsave_name invscore invsidebar_folder_indent + \ invsidebar_new_mail_only invsidebar_next_new_wrap invsidebar_relative_shortpath_indent + \ invsidebar_short_path invsidebar_sort sidebar_use_mailbox_shortcuts invsidebar_visible + \ invsig_dashes invsig_on_top invsize_show_bytes invsize_show_fraction invsize_show_mb + \ invsize_units_on_left invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key + \ invsmime_is_default invsmime_self_encrypt invsmime_self_encrypt_as invsort_re invssl_force_tls + \ invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1 invssl_use_tlsv1_3 invssl_usesystemcerts \ invssl_verify_dates invssl_verify_host invssl_verify_partial_chains \ invstatus_on_top invstrict_mime invstrict_threads invsuspend invtext_flowed - \ invthorough_search invthread_received invtilde invts_enabled + \ invthorough_search invthread_received invtilde invts_enabled invtunnel_is_secure \ invuncollapse_jump invuse_8bitmime invuse_domain invuse_envelope_from \ invuse_from invuse_idn invuse_ipv6 invuncollapse_new invuser_agent \ invwait_key invweed invwrap_search invwrite_bcc @@ -243,32 +254,32 @@ syn keyword muttrcVarBool skipwhite contained syn keyword muttrcVarQuad skipwhite contained \ abort_nosubject abort_unmodified abort_noattach bounce copy crypt_verify_sig - \ delete fcc_attach forward_edit honor_followup_to include mime_forward - \ mime_forward_rest mime_fwd move pgp_mime_auto pgp_verify_sig pop_delete - \ pop_reconnect postpone print quit recall reply_to ssl_starttls + \ delete fcc_attach forward_attachments forward_decrypt forward_edit honor_followup_to include + \ mime_forward mime_forward_rest mime_fwd move pgp_mime_auto pgp_verify_sig pop_delete + \ pop_reconnect postpone print quit recall reply_to send_multipart_alternative ssl_starttls \ nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr syn keyword muttrcVarQuad skipwhite contained \ noabort_nosubject noabort_unmodified noabort_noattach nobounce nocopy - \ nocrypt_verify_sig nodelete nofcc_attach noforward_edit nohonor_followup_to - \ noinclude nomime_forward nomime_forward_rest nomime_fwd nomove + \ nocrypt_verify_sig nodelete nofcc_attach noforward_attachments noforward_decrypt noforward_edit + \ nohonor_followup_to noinclude nomime_forward nomime_forward_rest nomime_fwd nomove \ nopgp_mime_auto nopgp_verify_sig nopop_delete nopop_reconnect nopostpone - \ noprint noquit norecall noreply_to nossl_starttls + \ noprint noquit norecall noreply_to nosend_multipart_alternative nossl_starttls \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr syn keyword muttrcVarQuad skipwhite contained \ invabort_nosubject invabort_unmodified invabort_noattach invbounce invcopy - \ invcrypt_verify_sig invdelete invfcc_attach invforward_edit - \ invhonor_followup_to invinclude invmime_forward invmime_forward_rest + \ invcrypt_verify_sig invdelete invfcc_attach invforward_attachments invforward_decrypt + \ invforward_edit invhonor_followup_to invinclude invmime_forward invmime_forward_rest \ invmime_fwd invmove invpgp_mime_auto invpgp_verify_sig invpop_delete \ invpop_reconnect invpostpone invprint invquit invrecall invreply_to - \ invssl_starttls + \ invsend_multipart_alternative invssl_starttls \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr syn keyword muttrcVarNum skipwhite contained - \ connect_timeout error_history history imap_keepalive imap_pipeline_depth + \ connect_timeout error_history history imap_fetch_chunk_size imap_keepalive imap_pipeline_depth \ imap_poll_timeout mail_check mail_check_stats_interval menu_context net_inc - \ pager_context pager_index_lines pgp_timeout pop_checkinterval read_inc + \ pager_context pager_index_lines pager_skip_quoted_context pgp_timeout pop_checkinterval read_inc \ save_history score_threshold_delete score_threshold_flag \ score_threshold_read search_context sendmail_wait sidebar_width sleep_time \ smime_timeout ssl_min_dh_prime_bits time_inc timeout wrap wrap_headers @@ -365,10 +376,14 @@ syn keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqu syn match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr syn keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt syn match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr +syn keyword muttrcVarStr contained skipwhite background_format nextgroup=muttrcVarEqualsBackgroundFormatFmt +syn match muttrcVarEqualsBackgroundFormatFmt contained skipwhite "=" nextgroup=muttrcBackgroundFormatStr syn keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt syn match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr syn keyword muttrcVarStr contained skipwhite folder_format nextgroup=muttrcVarEqualsFolderFmt syn match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr +syn keyword muttrcVarStr contained skipwhite message_id_format nextgroup=muttrcVarEqualsMessageIdFmt +syn match muttrcVarEqualsMessageIdFmt contained skipwhite "=" nextgroup=muttrcMessageIdFormatStr syn keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt syn match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr syn keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt @@ -390,27 +405,29 @@ syn match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad, syn match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr syn keyword muttrcVarStr contained skipwhite - \ abort_noattach_regexp alias_file assumed_charset attach_charset attach_sep + \ abort_noattach_regexp alias_file assumed_charset attach_charset attach_save_dir attach_sep \ attribution_locale certificate_file charset config_charset content_type - \ default_hook display_filter dotlock_program dsn_notify dsn_return editor - \ entropy_file envelope_from_address escape folder forw_format + \ crypt_protected_headers_subject default_hook display_filter dotlock_program dsn_notify + \ dsn_return editor entropy_file envelope_from_address escape fcc_delimiter folder forw_format \ forward_attribution_intro forward_attribution_trailer forward_format from gecos_mask \ hdr_format header_cache header_cache_compress header_cache_pagesize history_file \ hostname imap_authenticators imap_delim_chars imap_headers imap_idle imap_login - \ imap_pass imap_user indent_str indent_string ispell locale mailcap_path - \ mark_macro_prefix mask mbox mbox_type message_cachedir mh_seq_flagged mh_seq_replied - \ mh_seq_unseen mime_type_query_command mixmaster msg_format new_mail_command pager - \ pgp_default_key pgp_decryption_okay pgp_good_sign pgp_mime_signature_description + \ imap_oauth_refresh_command imap_pass imap_user indent_str indent_string ispell locale + \ mailcap_pat hmark_macro_prefix mask mbox mbox_type message_cachedir mh_seq_flagged + \ mh_seq_replied mh_seq_unseen mime_type_query_command mixmaster msg_format new_mail_command + \ pager pgp_default_key pgp_decryption_okay pgp_good_sign pgp_mime_signature_description \ pgp_mime_signature_filename pgp_sign_as pgp_sort_keys pipe_sep pop_authenticators - \ pop_host pop_pass pop_user post_indent_str post_indent_string postpone_encrypt_as - \ postponed preconnect print_cmd print_command query_command quote_regexp realname - \ record reply_regexp send_charset sendmail shell sidebar_delim sidebar_delim_chars - \ sidebar_divider_char sidebar_format sidebar_indent_string sidebar_sort_method - \ signature simple_search smileys smime_ca_location smime_certificates + \ pop_host pop_oauth_refresh_command pop_pass pop_user post_indent_str post_indent_string + \ postpone_encrypt_as postponed preconnect print_cmd print_command query_command + \ quote_regexp realname record reply_regexp send_charset send_multipart_alternative_filter + \ sendmail shell sidebar_delim + \ sidebar_delim_chars sidebar_divider_char sidebar_format sidebar_indent_string + \ sidebar_sort_method signature simple_search smileys smime_ca_location smime_certificates \ smime_default_key smime_encrypt_with smime_keys smime_sign_as smime_sign_digest_alg - \ smtp_authenticators smtp_pass smtp_url sort sort_alias sort_aux sort_browser - \ spam_separator spoolfile ssl_ca_certificates_file ssl_ciphers ssl_client_cert - \ status_chars tmpdir to_chars trash ts_icon_format ts_status_format tunnel visual + \ smtp_authenticators smtp_oauth_refresh_command smtp_pass smtp_url sort sort_alias + \ sort_aux sort_browser sort_thread_groups spam_separator spoolfile ssl_ca_certificates_file + \ ssl_ciphers ssl_client_cert ssl_verify_host_override status_chars tmpdir to_chars trash + \ ts_icon_format ts_status_format tunnel visual \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr " Present in 1.4.2.1 (pgp_create_traditional was a bool then) @@ -422,11 +439,11 @@ syn keyword muttrcMenu contained alias attach browser compose editor index page syn match muttrcMenuList "\S\+" contained contains=muttrcMenu syn match muttrcMenuCommas /,/ contained -syn keyword muttrcHooks contained skipwhite account-hook charset-hook iconv-hook message-hook folder-hook mbox-hook save-hook fcc-hook fcc-save-hook send-hook send2-hook reply-hook crypt-hook +syn keyword muttrcHooks contained skipwhite account-hook charset-hook iconv-hook index-format-hook message-hook folder-hook mbox-hook save-hook fcc-hook fcc-save-hook send-hook send2-hook reply-hook crypt-hook syn keyword muttrcCommand skipwhite - \ alternative_order auto_view exec hdr_order iconv-hook ignore mailboxes - \ mailto_allow mime_lookup my_hdr pgp-hook push score sidebar_whitelist source + \ alternative_order auto_view cd exec hdr_order iconv-hook ignore index-format-hook mailboxes + \ mailto_allow mime_lookup my_hdr pgp-hook push run score sidebar_whitelist source \ unalternative_order unalternative_order unauto_view ungroup unhdr_order \ unignore unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore \ unsidebar_whitelist @@ -470,19 +487,24 @@ syn match muttrcFunction contained "\" syn match muttrcFunction contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>" syn match muttrcFunction contained "\<\%(delete\|filter\|first\|last\|next\|pipe\|previous\|print\|save\|select\|tag\|undelete\)-entry\>" syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" @@ -490,15 +512,15 @@ syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" -syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\" syn match muttrcFunction contained "\<\%(un\)\?setenv\>" -syn match muttrcFunction contained "\" -syn match muttrcFunction contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|clear-flag\|complete\%(-query\)\?\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-reply\|mail\|mail-key\|mark-as-new\|middle-page\|new-mime\|noop\|pgp-menu\|query\|query-append\|quit\|quote-char\|read-subthread\|redraw-screen\|refresh\|rename-file\|reply\|select-new\|set-flag\|shell-escape\|skip-quoted\|sort\|subscribe\|sync-mailbox\|top\|top-page\|transpose-chars\|unsubscribe\|untag-pattern\|verify-key\|what-key\|write-fcc\)\>" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|check-stats\|clear-flag\|complete\%(-query\)\?\|compose-to-sender\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-action\|list-reply\|mail\|mail-key\|mark-as-new\|middle-page\|new-mime\|noop\|pgp-menu\|query\|query-append\|quit\|quote-char\|read-subthread\|redraw-screen\|refresh\|rename-file\|reply\|select-new\|set-flag\|shell-escape\|skip-headers\|skip-quoted\|sort\|subscribe\|sync-mailbox\|top\|top-page\|transpose-chars\|unsubscribe\|untag-pattern\|verify-key\|what-key\|write-fcc\)\>" syn keyword muttrcFunction contained imap-logout-all if use_mutt_sidebar == 1 syn match muttrcFunction contained "\/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern syn match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|\|fcc\%(-save\)\?\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern +syn match muttrcIndexFormatHookName contained /\S\+/ skipwhite nextgroup=muttrcPattern,muttrcString +syn match muttrcIndexFormatHook /index-format-hook/ skipwhite nextgroup=muttrcIndexFormatHookName,muttrcString + syn match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction syn match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL syn match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL @@ -751,6 +776,8 @@ hi def link muttrcShellString muttrcEscape hi def link muttrcRXHooks muttrcCommand hi def link muttrcRXHookNot Type hi def link muttrcPatHooks muttrcCommand +hi def link muttrcIndexFormatHookName muttrcCommand +hi def link muttrcIndexFormatHook muttrcCommand hi def link muttrcPatHookNot Type hi def link muttrcFormatConditionals2 Type hi def link muttrcIndexFormatStr muttrcString @@ -761,11 +788,13 @@ hi def link muttrcAliasFormatEscapes muttrcEscape hi def link muttrcAttachFormatStr muttrcString hi def link muttrcAttachFormatEscapes muttrcEscape hi def link muttrcAttachFormatConditionals muttrcFormatConditionals2 +hi def link muttrcBackgroundFormatStr muttrcString hi def link muttrcComposeFormatStr muttrcString hi def link muttrcComposeFormatEscapes muttrcEscape hi def link muttrcFolderFormatStr muttrcString hi def link muttrcFolderFormatEscapes muttrcEscape hi def link muttrcFolderFormatConditionals muttrcFormatConditionals2 +hi def link muttrcMessageIdFormatStr muttrcString hi def link muttrcMixFormatStr muttrcString hi def link muttrcMixFormatEscapes muttrcEscape hi def link muttrcMixFormatConditionals muttrcFormatConditionals2 @@ -787,10 +816,6 @@ hi def link muttrcTimeEscapes muttrcEscape hi def link muttrcPGPTimeEscapes muttrcEscape hi def link muttrcStrftimeEscapes Type hi def link muttrcStrftimeFormatStr muttrcString -hi def link muttrcFormatErrors Error - -hi def link muttrcBindFunctionNL SpecialChar -hi def link muttrcBindKeyNL SpecialChar hi def link muttrcBindMenuListNL SpecialChar hi def link muttrcMacroDescrNL SpecialChar hi def link muttrcMacroBodyNL SpecialChar diff --git a/runtime/syntax/nix.vim b/runtime/syntax/nix.vim index c07676a4a8..671b269c04 100644 --- a/runtime/syntax/nix.vim +++ b/runtime/syntax/nix.vim @@ -1,11 +1,12 @@ " Vim syntax file " Language: Nix -" Maintainer: James Fleming +" Maintainer: James Fleming +" (Github username: equill) " Original Author: Daiderd Jordan " Acknowledgement: Based on vim-nix maintained by Daiderd Jordan " https://github.com/LnL7/vim-nix " License: MIT -" Last Change: 2022 Dec 06 +" Last Change: 2023 Aug 19 if exists("b:current_syntax") finish @@ -68,7 +69,8 @@ syn match nixAttribute "[a-zA-Z_][a-zA-Z0-9_'-]*\ze\%([^a-zA-Z0-9_'.-]\|$\)" con syn region nixAttributeAssignment start="=" end="\ze;" contained contains=@nixExpr syn region nixAttributeDefinition start=/\ze[a-zA-Z_"$]/ end=";" contained contains=nixComment,nixAttribute,nixInterpolation,nixSimpleString,nixAttributeDot,nixAttributeAssignment -syn region nixInheritAttributeScope start="(" end="\ze)" contained contains=@nixExpr +syn region nixInheritAttributeSubExpr start="("ms=e+1 end="\ze)" contained contains=nixAttributeDot,@nixExpr +syn region nixInheritAttributeScope start="\ze(" end=")" contained contains=nixInheritAttributeSubExpr syn region nixAttributeDefinition matchgroup=nixInherit start="\" end=";" contained contains=nixComment,nixInheritAttributeScope,nixAttribute syn region nixAttributeSet start="{" end="}" contains=nixComment,nixAttributeDefinition diff --git a/runtime/syntax/nosyntax.vim b/runtime/syntax/nosyntax.vim index 0ab3412373..a761d712b7 100644 --- a/runtime/syntax/nosyntax.vim +++ b/runtime/syntax/nosyntax.vim @@ -1,6 +1,7 @@ " Vim syntax support file -" Maintainer: Bram Moolenaar -" Last Change: 2006 Apr 16 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " This file is used for ":syntax off". " It removes the autocommands and stops highlighting for all buffers. diff --git a/runtime/syntax/pymanifest.vim b/runtime/syntax/pymanifest.vim new file mode 100644 index 0000000000..54295c45dc --- /dev/null +++ b/runtime/syntax/pymanifest.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: PyPA manifest +" Maintainer: ObserverOfTime +" Filenames: MANIFEST.in +" Last Change: 2023 Aug 12 + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +syn iskeyword @,- + +" Comments +syn keyword pymanifestTodo contained TODO FIXME XXX +syn match pymanifestComment /\\\@1 -" Last change: 2001 Jan 15 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/qml.vim b/runtime/syntax/qml.vim new file mode 100644 index 0000000000..d6f2abec37 --- /dev/null +++ b/runtime/syntax/qml.vim @@ -0,0 +1,1130 @@ +" Vim syntax file +" Language: QML +" Previous Maintainer: Peter Hoeg +" Maintainer: Chase Knowlden +" Changes: `git log` is your friend +" Last Change: 2023 Aug 16 +" +" This file is bassed on the original work done by Warwick Allison +" whose did about 99% of the work here. + +" Based on javascript syntax (as is QML) + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'qml' +endif + +" Drop fold if it set but vim doesn't support it. +if !has("folding") + unlet! qml_fold +endif + +syn case ignore + +syn cluster qmlExpr contains=qmlStringD,qmlStringS,qmlStringT,SqmlCharacter,qmlNumber,qmlObjectLiteralType,qmlBoolean,qmlType,qmlJsType,qmlNull,qmlGlobal,qmlFunction,qmlArrowFunction,qmlNullishCoalescing +syn keyword qmlCommentTodo TODO FIXME XXX TBD contained +syn match qmlLineComment "\/\/.*" contains=@Spell,qmlCommentTodo +syn match qmlCommentSkip "^[ \t]*\*\($\|[ \t]\+\)" +syn region qmlComment start="/\*" end="\*/" contains=@Spell,qmlCommentTodo fold +syn match qmlSpecial "\\\d\d\d\|\\." +syn region qmlStringD start=+"+ skip=+\\\\\|\\"\|\\$+ end=+"+ keepend contains=qmlSpecial,@htmlPreproc,@Spell +syn region qmlStringS start=+'+ skip=+\\\\\|\\'\|\\$+ end=+'+ keepend contains=qmlSpecial,@htmlPreproc,@Spell +syn region qmlStringT start=+`+ skip=+\\\\\|\\`\|\\$+ end=+`+ keepend contains=qmlTemplateExpr,qmlSpecial,@htmlPreproc,@Spell + +syntax region qmlTemplateExpr contained matchgroup=qmlBraces start=+${+ end=+}+ keepend contains=@qmlExpr + +syn match qmlCharacter "'\\.'" +syn match qmlNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" +syn region qmlRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline +syn match qmlObjectLiteralType "[A-Za-z][_A-Za-z0-9]*\s*\({\)\@=" +syn region qmlTernaryColon start="?" end=":" contains=@qmlExpr,qmlBraces,qmlParens,qmlLineComment +syn match qmlBindingProperty "\<[A-Za-z][_A-Za-z.0-9]*\s*:" +syn match qmlNullishCoalescing "??" + +syn keyword qmlConditional if else switch +syn keyword qmlRepeat while for do in +syn keyword qmlBranch break continue +syn keyword qmlOperator new delete instanceof typeof +syn keyword qmlJsType Array Boolean Date Function Number Object String RegExp +syn keyword qmlType action alias bool color date double enumeration font int list point real rect size string time url variant vector2d vector3d vector4d coordinate geocircle geopath geopolygon georectangle geoshape matrix4x4 palette quaternion +syn keyword qmlStatement return with +syn keyword qmlBoolean true false +syn keyword qmlNull null undefined +syn keyword qmlIdentifier arguments this var let const +syn keyword qmlLabel case default +syn keyword qmlException try catch finally throw +syn keyword qmlMessage alert confirm prompt status +syn keyword qmlGlobal self +syn keyword qmlDeclaration property signal component readonly required +syn keyword qmlReserved abstract boolean byte char class debugger enum export extends final float goto implements import interface long native package pragma private protected public short static super synchronized throws transient volatile + +syn case match + +" List extracted in alphabatical order from: https://doc.qt.io/qt-5/qmltypes.html +" Qt v5.15.1 + +" Begin Literal Types {{{ + +syntax keyword qmlObjectLiteralType Abstract3DSeries +syntax keyword qmlObjectLiteralType AbstractActionInput +syntax keyword qmlObjectLiteralType AbstractAnimation +syntax keyword qmlObjectLiteralType AbstractAxis +syntax keyword qmlObjectLiteralType AbstractAxis3D +syntax keyword qmlObjectLiteralType AbstractAxisInput +syntax keyword qmlObjectLiteralType AbstractBarSeries +syntax keyword qmlObjectLiteralType AbstractButton +syntax keyword qmlObjectLiteralType AbstractClipAnimator +syntax keyword qmlObjectLiteralType AbstractClipBlendNode +syntax keyword qmlObjectLiteralType AbstractDataProxy +syntax keyword qmlObjectLiteralType AbstractGraph3D +syntax keyword qmlObjectLiteralType AbstractInputHandler3D +syntax keyword qmlObjectLiteralType AbstractPhysicalDevice +syntax keyword qmlObjectLiteralType AbstractRayCaster +syntax keyword qmlObjectLiteralType AbstractSeries +syntax keyword qmlObjectLiteralType AbstractSkeleton +syntax keyword qmlObjectLiteralType AbstractTexture +syntax keyword qmlObjectLiteralType AbstractTextureImage +syntax keyword qmlObjectLiteralType Accelerometer +syntax keyword qmlObjectLiteralType AccelerometerReading +syntax keyword qmlObjectLiteralType Accessible +syntax keyword qmlObjectLiteralType Action +syntax keyword qmlObjectLiteralType ActionGroup +syntax keyword qmlObjectLiteralType ActionInput +syntax keyword qmlObjectLiteralType AdditiveClipBlend +syntax keyword qmlObjectLiteralType AdditiveColorGradient +syntax keyword qmlObjectLiteralType Address +syntax keyword qmlObjectLiteralType Affector +syntax keyword qmlObjectLiteralType Age +syntax keyword qmlObjectLiteralType AlphaCoverage +syntax keyword qmlObjectLiteralType AlphaTest +syntax keyword qmlObjectLiteralType Altimeter +syntax keyword qmlObjectLiteralType AltimeterReading +syntax keyword qmlObjectLiteralType AluminumAnodizedEmissiveMaterial +syntax keyword qmlObjectLiteralType AluminumAnodizedMaterial +syntax keyword qmlObjectLiteralType AluminumBrushedMaterial +syntax keyword qmlObjectLiteralType AluminumEmissiveMaterial +syntax keyword qmlObjectLiteralType AluminumMaterial +syntax keyword qmlObjectLiteralType AmbientLightReading +syntax keyword qmlObjectLiteralType AmbientLightSensor +syntax keyword qmlObjectLiteralType AmbientTemperatureReading +syntax keyword qmlObjectLiteralType AmbientTemperatureSensor +syntax keyword qmlObjectLiteralType AnalogAxisInput +syntax keyword qmlObjectLiteralType AnchorAnimation +syntax keyword qmlObjectLiteralType AnchorChanges +syntax keyword qmlObjectLiteralType AngleDirection +syntax keyword qmlObjectLiteralType AnimatedImage +syntax keyword qmlObjectLiteralType AnimatedSprite +syntax keyword qmlObjectLiteralType Animation +syntax keyword qmlObjectLiteralType AnimationController +syntax keyword qmlObjectLiteralType AnimationGroup +syntax keyword qmlObjectLiteralType Animator +syntax keyword qmlObjectLiteralType ApplicationWindow +syntax keyword qmlObjectLiteralType ApplicationWindowStyle +syntax keyword qmlObjectLiteralType AreaLight +syntax keyword qmlObjectLiteralType AreaSeries +syntax keyword qmlObjectLiteralType Armature +syntax keyword qmlObjectLiteralType AttenuationModelInverse +syntax keyword qmlObjectLiteralType AttenuationModelLinear +syntax keyword qmlObjectLiteralType Attractor +syntax keyword qmlObjectLiteralType Attribute +syntax keyword qmlObjectLiteralType Audio +syntax keyword qmlObjectLiteralType AudioCategory +syntax keyword qmlObjectLiteralType AudioEngine +syntax keyword qmlObjectLiteralType AudioListener +syntax keyword qmlObjectLiteralType AudioSample +syntax keyword qmlObjectLiteralType AuthenticationDialogRequest +syntax keyword qmlObjectLiteralType Axis +syntax keyword qmlObjectLiteralType AxisAccumulator +syntax keyword qmlObjectLiteralType AxisHelper +syntax keyword qmlObjectLiteralType AxisSetting + +syntax keyword qmlObjectLiteralType BackspaceKey +syntax keyword qmlObjectLiteralType Bar3DSeries +syntax keyword qmlObjectLiteralType BarCategoryAxis +syntax keyword qmlObjectLiteralType BarDataProxy +syntax keyword qmlObjectLiteralType Bars3D +syntax keyword qmlObjectLiteralType BarSeries +syntax keyword qmlObjectLiteralType BarSet +syntax keyword qmlObjectLiteralType BaseKey +syntax keyword qmlObjectLiteralType BasicTableView +syntax keyword qmlObjectLiteralType Behavior +syntax keyword qmlObjectLiteralType Binding +syntax keyword qmlObjectLiteralType Blend +syntax keyword qmlObjectLiteralType BlendedClipAnimator +syntax keyword qmlObjectLiteralType BlendEquation +syntax keyword qmlObjectLiteralType BlendEquationArguments +syntax keyword qmlObjectLiteralType Blending +syntax keyword qmlObjectLiteralType BlitFramebuffer +syntax keyword qmlObjectLiteralType BluetoothDiscoveryModel +syntax keyword qmlObjectLiteralType BluetoothService +syntax keyword qmlObjectLiteralType BluetoothSocket +syntax keyword qmlObjectLiteralType Blur +syntax keyword qmlObjectLiteralType bool +syntax keyword qmlObjectLiteralType BorderImage +syntax keyword qmlObjectLiteralType BorderImageMesh +syntax keyword qmlObjectLiteralType BoundaryRule +syntax keyword qmlObjectLiteralType Bounds +syntax keyword qmlObjectLiteralType BoxPlotSeries +syntax keyword qmlObjectLiteralType BoxSet +syntax keyword qmlObjectLiteralType BrightnessContrast +syntax keyword qmlObjectLiteralType BrushStrokes +syntax keyword qmlObjectLiteralType Buffer +syntax keyword qmlObjectLiteralType BufferBlit +syntax keyword qmlObjectLiteralType BufferCapture +syntax keyword qmlObjectLiteralType BufferInput +syntax keyword qmlObjectLiteralType BusyIndicator +syntax keyword qmlObjectLiteralType BusyIndicatorStyle +syntax keyword qmlObjectLiteralType Button +syntax keyword qmlObjectLiteralType ButtonAxisInput +syntax keyword qmlObjectLiteralType ButtonGroup +syntax keyword qmlObjectLiteralType ButtonStyle + +syntax keyword qmlObjectLiteralType Calendar +syntax keyword qmlObjectLiteralType CalendarModel +syntax keyword qmlObjectLiteralType CalendarStyle +syntax keyword qmlObjectLiteralType Camera +syntax keyword qmlObjectLiteralType Camera3D +syntax keyword qmlObjectLiteralType CameraCapabilities +syntax keyword qmlObjectLiteralType CameraCapture +syntax keyword qmlObjectLiteralType CameraExposure +syntax keyword qmlObjectLiteralType CameraFlash +syntax keyword qmlObjectLiteralType CameraFocus +syntax keyword qmlObjectLiteralType CameraImageProcessing +syntax keyword qmlObjectLiteralType CameraLens +syntax keyword qmlObjectLiteralType CameraRecorder +syntax keyword qmlObjectLiteralType CameraSelector +syntax keyword qmlObjectLiteralType CandlestickSeries +syntax keyword qmlObjectLiteralType CandlestickSet +syntax keyword qmlObjectLiteralType Canvas +syntax keyword qmlObjectLiteralType CanvasGradient +syntax keyword qmlObjectLiteralType CanvasImageData +syntax keyword qmlObjectLiteralType CanvasPixelArray +syntax keyword qmlObjectLiteralType Category +syntax keyword qmlObjectLiteralType CategoryAxis +syntax keyword qmlObjectLiteralType CategoryAxis3D +syntax keyword qmlObjectLiteralType CategoryModel +syntax keyword qmlObjectLiteralType CategoryRange +syntax keyword qmlObjectLiteralType ChangeLanguageKey +syntax keyword qmlObjectLiteralType ChartView +syntax keyword qmlObjectLiteralType CheckBox +syntax keyword qmlObjectLiteralType CheckBoxStyle +syntax keyword qmlObjectLiteralType CheckDelegate +syntax keyword qmlObjectLiteralType ChromaticAberration +syntax keyword qmlObjectLiteralType CircularGauge +syntax keyword qmlObjectLiteralType CircularGaugeStyle +syntax keyword qmlObjectLiteralType ClearBuffers +syntax keyword qmlObjectLiteralType ClipAnimator +syntax keyword qmlObjectLiteralType ClipBlendValue +syntax keyword qmlObjectLiteralType ClipPlane +syntax keyword qmlObjectLiteralType CloseEvent +syntax keyword qmlObjectLiteralType color +syntax keyword qmlObjectLiteralType ColorAnimation +syntax keyword qmlObjectLiteralType ColorDialog +syntax keyword qmlObjectLiteralType ColorDialogRequest +syntax keyword qmlObjectLiteralType ColorGradient +syntax keyword qmlObjectLiteralType ColorGradientStop +syntax keyword qmlObjectLiteralType Colorize +syntax keyword qmlObjectLiteralType ColorMask +syntax keyword qmlObjectLiteralType ColorMaster +syntax keyword qmlObjectLiteralType ColorOverlay +syntax keyword qmlObjectLiteralType Column +syntax keyword qmlObjectLiteralType ColumnLayout +syntax keyword qmlObjectLiteralType ComboBox +syntax keyword qmlObjectLiteralType ComboBoxStyle +syntax keyword qmlObjectLiteralType Command +syntax keyword qmlObjectLiteralType Compass +syntax keyword qmlObjectLiteralType CompassReading +syntax keyword qmlObjectLiteralType Component +syntax keyword qmlObjectLiteralType Component3D +syntax keyword qmlObjectLiteralType ComputeCommand +syntax keyword qmlObjectLiteralType ConeGeometry +syntax keyword qmlObjectLiteralType ConeMesh +syntax keyword qmlObjectLiteralType ConicalGradient +syntax keyword qmlObjectLiteralType Connections +syntax keyword qmlObjectLiteralType ContactDetail +syntax keyword qmlObjectLiteralType ContactDetails +syntax keyword qmlObjectLiteralType Container +syntax keyword qmlObjectLiteralType Context2D +syntax keyword qmlObjectLiteralType ContextMenuRequest +syntax keyword qmlObjectLiteralType Control +syntax keyword qmlObjectLiteralType coordinate +syntax keyword qmlObjectLiteralType CoordinateAnimation +syntax keyword qmlObjectLiteralType CopperMaterial +syntax keyword qmlObjectLiteralType CuboidGeometry +syntax keyword qmlObjectLiteralType CuboidMesh +syntax keyword qmlObjectLiteralType CullFace +syntax keyword qmlObjectLiteralType CullMode +syntax keyword qmlObjectLiteralType CumulativeDirection +syntax keyword qmlObjectLiteralType Custom3DItem +syntax keyword qmlObjectLiteralType Custom3DLabel +syntax keyword qmlObjectLiteralType Custom3DVolume +syntax keyword qmlObjectLiteralType CustomCamera +syntax keyword qmlObjectLiteralType CustomMaterial +syntax keyword qmlObjectLiteralType CustomParticle +syntax keyword qmlObjectLiteralType CylinderGeometry +syntax keyword qmlObjectLiteralType CylinderMesh + +syntax keyword qmlObjectLiteralType Date +syntax keyword qmlObjectLiteralType date +syntax keyword qmlObjectLiteralType DateTimeAxis +syntax keyword qmlObjectLiteralType DayOfWeekRow +syntax keyword qmlObjectLiteralType DebugView +syntax keyword qmlObjectLiteralType DefaultMaterial +syntax keyword qmlObjectLiteralType DelayButton +syntax keyword qmlObjectLiteralType DelayButtonStyle +syntax keyword qmlObjectLiteralType DelegateChoice +syntax keyword qmlObjectLiteralType DelegateChooser +syntax keyword qmlObjectLiteralType DelegateModel +syntax keyword qmlObjectLiteralType DelegateModelGroup +syntax keyword qmlObjectLiteralType DepthInput +syntax keyword qmlObjectLiteralType DepthOfFieldHQBlur +syntax keyword qmlObjectLiteralType DepthRange +syntax keyword qmlObjectLiteralType DepthTest +syntax keyword qmlObjectLiteralType Desaturate +syntax keyword qmlObjectLiteralType Dial +syntax keyword qmlObjectLiteralType Dialog +syntax keyword qmlObjectLiteralType DialogButtonBox +syntax keyword qmlObjectLiteralType DialStyle +syntax keyword qmlObjectLiteralType DiffuseMapMaterial +syntax keyword qmlObjectLiteralType DiffuseSpecularMapMaterial +syntax keyword qmlObjectLiteralType DiffuseSpecularMaterial +syntax keyword qmlObjectLiteralType Direction +syntax keyword qmlObjectLiteralType DirectionalBlur +syntax keyword qmlObjectLiteralType DirectionalLight +syntax keyword qmlObjectLiteralType DispatchCompute +syntax keyword qmlObjectLiteralType Displace +syntax keyword qmlObjectLiteralType DistanceReading +syntax keyword qmlObjectLiteralType DistanceSensor +syntax keyword qmlObjectLiteralType DistortionRipple +syntax keyword qmlObjectLiteralType DistortionSphere +syntax keyword qmlObjectLiteralType DistortionSpiral +syntax keyword qmlObjectLiteralType Dithering +syntax keyword qmlObjectLiteralType double +syntax keyword qmlObjectLiteralType DoubleValidator +syntax keyword qmlObjectLiteralType Drag +syntax keyword qmlObjectLiteralType DragEvent +syntax keyword qmlObjectLiteralType DragHandler +syntax keyword qmlObjectLiteralType Drawer +syntax keyword qmlObjectLiteralType DropArea +syntax keyword qmlObjectLiteralType DropShadow +syntax keyword qmlObjectLiteralType DwmFeatures +syntax keyword qmlObjectLiteralType DynamicParameter + +syntax keyword qmlObjectLiteralType EdgeDetect +syntax keyword qmlObjectLiteralType EditorialModel +syntax keyword qmlObjectLiteralType Effect +syntax keyword qmlObjectLiteralType EllipseShape +syntax keyword qmlObjectLiteralType Emboss +syntax keyword qmlObjectLiteralType Emitter +syntax keyword qmlObjectLiteralType EnterKey +syntax keyword qmlObjectLiteralType EnterKeyAction +syntax keyword qmlObjectLiteralType Entity +syntax keyword qmlObjectLiteralType EntityLoader +syntax keyword qmlObjectLiteralType enumeration +syntax keyword qmlObjectLiteralType EnvironmentLight +syntax keyword qmlObjectLiteralType EventConnection +syntax keyword qmlObjectLiteralType EventPoint +syntax keyword qmlObjectLiteralType EventTouchPoint +syntax keyword qmlObjectLiteralType ExclusiveGroup +syntax keyword qmlObjectLiteralType ExtendedAttributes +syntax keyword qmlObjectLiteralType ExtrudedTextGeometry +syntax keyword qmlObjectLiteralType ExtrudedTextMesh + +syntax keyword qmlObjectLiteralType FastBlur +syntax keyword qmlObjectLiteralType FileDialog +syntax keyword qmlObjectLiteralType FileDialogRequest +syntax keyword qmlObjectLiteralType FillerKey +syntax keyword qmlObjectLiteralType FilterKey +syntax keyword qmlObjectLiteralType FinalState +syntax keyword qmlObjectLiteralType FindTextResult +syntax keyword qmlObjectLiteralType FirstPersonCameraController +syntax keyword qmlObjectLiteralType Flickable +syntax keyword qmlObjectLiteralType Flip +syntax keyword qmlObjectLiteralType Flipable +syntax keyword qmlObjectLiteralType Flow +syntax keyword qmlObjectLiteralType FocusScope +syntax keyword qmlObjectLiteralType FolderDialog +syntax keyword qmlObjectLiteralType FolderListModel +syntax keyword qmlObjectLiteralType font +syntax keyword qmlObjectLiteralType FontDialog +syntax keyword qmlObjectLiteralType FontLoader +syntax keyword qmlObjectLiteralType FontMetrics +syntax keyword qmlObjectLiteralType FormValidationMessageRequest +syntax keyword qmlObjectLiteralType ForwardRenderer +syntax keyword qmlObjectLiteralType Frame +syntax keyword qmlObjectLiteralType FrameAction +syntax keyword qmlObjectLiteralType FrameGraphNode +syntax keyword qmlObjectLiteralType Friction +syntax keyword qmlObjectLiteralType FrontFace +syntax keyword qmlObjectLiteralType FrostedGlassMaterial +syntax keyword qmlObjectLiteralType FrostedGlassSinglePassMaterial +syntax keyword qmlObjectLiteralType FrustumCamera +syntax keyword qmlObjectLiteralType FrustumCulling +syntax keyword qmlObjectLiteralType FullScreenRequest +syntax keyword qmlObjectLiteralType Fxaa + +syntax keyword qmlObjectLiteralType Gamepad +syntax keyword qmlObjectLiteralType GamepadManager +syntax keyword qmlObjectLiteralType GammaAdjust +syntax keyword qmlObjectLiteralType Gauge +syntax keyword qmlObjectLiteralType GaugeStyle +syntax keyword qmlObjectLiteralType GaussianBlur +syntax keyword qmlObjectLiteralType geocircle +syntax keyword qmlObjectLiteralType GeocodeModel +syntax keyword qmlObjectLiteralType Geometry +syntax keyword qmlObjectLiteralType GeometryRenderer +syntax keyword qmlObjectLiteralType geopath +syntax keyword qmlObjectLiteralType geopolygon +syntax keyword qmlObjectLiteralType georectangle +syntax keyword qmlObjectLiteralType geoshape +syntax keyword qmlObjectLiteralType GestureEvent +syntax keyword qmlObjectLiteralType GlassMaterial +syntax keyword qmlObjectLiteralType GlassRefractiveMaterial +syntax keyword qmlObjectLiteralType Glow +syntax keyword qmlObjectLiteralType GoochMaterial +syntax keyword qmlObjectLiteralType Gradient +syntax keyword qmlObjectLiteralType GradientStop +syntax keyword qmlObjectLiteralType GraphicsApiFilter +syntax keyword qmlObjectLiteralType GraphicsInfo +syntax keyword qmlObjectLiteralType Gravity +syntax keyword qmlObjectLiteralType Grid +syntax keyword qmlObjectLiteralType GridGeometry +syntax keyword qmlObjectLiteralType GridLayout +syntax keyword qmlObjectLiteralType GridMesh +syntax keyword qmlObjectLiteralType GridView +syntax keyword qmlObjectLiteralType GroupBox +syntax keyword qmlObjectLiteralType GroupGoal +syntax keyword qmlObjectLiteralType Gyroscope +syntax keyword qmlObjectLiteralType GyroscopeReading + +syntax keyword qmlObjectLiteralType HandlerPoint +syntax keyword qmlObjectLiteralType HandwritingInputPanel +syntax keyword qmlObjectLiteralType HandwritingModeKey +syntax keyword qmlObjectLiteralType HBarModelMapper +syntax keyword qmlObjectLiteralType HBoxPlotModelMapper +syntax keyword qmlObjectLiteralType HCandlestickModelMapper +syntax keyword qmlObjectLiteralType HDRBloomTonemap +syntax keyword qmlObjectLiteralType HeightMapSurfaceDataProxy +syntax keyword qmlObjectLiteralType HideKeyboardKey +syntax keyword qmlObjectLiteralType HistoryState +syntax keyword qmlObjectLiteralType HolsterReading +syntax keyword qmlObjectLiteralType HolsterSensor +syntax keyword qmlObjectLiteralType HorizontalBarSeries +syntax keyword qmlObjectLiteralType HorizontalHeaderView +syntax keyword qmlObjectLiteralType HorizontalPercentBarSeries +syntax keyword qmlObjectLiteralType HorizontalStackedBarSeries +syntax keyword qmlObjectLiteralType Host +syntax keyword qmlObjectLiteralType HoverHandler +syntax keyword qmlObjectLiteralType HPieModelMapper +syntax keyword qmlObjectLiteralType HueSaturation +syntax keyword qmlObjectLiteralType HumidityReading +syntax keyword qmlObjectLiteralType HumiditySensor +syntax keyword qmlObjectLiteralType HXYModelMapper + +syntax keyword qmlObjectLiteralType Icon +syntax keyword qmlObjectLiteralType IdleInhibitManagerV1 +syntax keyword qmlObjectLiteralType Image +syntax keyword qmlObjectLiteralType ImageModel +syntax keyword qmlObjectLiteralType ImageParticle +syntax keyword qmlObjectLiteralType InnerShadow +syntax keyword qmlObjectLiteralType InputChord +syntax keyword qmlObjectLiteralType InputContext +syntax keyword qmlObjectLiteralType InputEngine +syntax keyword qmlObjectLiteralType InputHandler3D +syntax keyword qmlObjectLiteralType InputMethod +syntax keyword qmlObjectLiteralType InputModeKey +syntax keyword qmlObjectLiteralType InputPanel +syntax keyword qmlObjectLiteralType InputSequence +syntax keyword qmlObjectLiteralType InputSettings +syntax keyword qmlObjectLiteralType Instantiator +syntax keyword qmlObjectLiteralType int +syntax keyword qmlObjectLiteralType IntValidator +syntax keyword qmlObjectLiteralType InvokedServices +syntax keyword qmlObjectLiteralType IRProximityReading +syntax keyword qmlObjectLiteralType IRProximitySensor +syntax keyword qmlObjectLiteralType Item +syntax keyword qmlObjectLiteralType ItemDelegate +syntax keyword qmlObjectLiteralType ItemGrabResult +syntax keyword qmlObjectLiteralType ItemModelBarDataProxy +syntax keyword qmlObjectLiteralType ItemModelScatterDataProxy +syntax keyword qmlObjectLiteralType ItemModelSurfaceDataProxy +syntax keyword qmlObjectLiteralType ItemParticle +syntax keyword qmlObjectLiteralType ItemSelectionModel +syntax keyword qmlObjectLiteralType IviApplication +syntax keyword qmlObjectLiteralType IviSurface + +syntax keyword qmlObjectLiteralType JavaScriptDialogRequest +syntax keyword qmlObjectLiteralType Joint +syntax keyword qmlObjectLiteralType JumpList +syntax keyword qmlObjectLiteralType JumpListCategory +syntax keyword qmlObjectLiteralType JumpListDestination +syntax keyword qmlObjectLiteralType JumpListLink +syntax keyword qmlObjectLiteralType JumpListSeparator + +syntax keyword qmlObjectLiteralType Key +syntax keyword qmlObjectLiteralType KeyboardColumn +syntax keyword qmlObjectLiteralType KeyboardDevice +syntax keyword qmlObjectLiteralType KeyboardHandler +syntax keyword qmlObjectLiteralType KeyboardLayout +syntax keyword qmlObjectLiteralType KeyboardLayoutLoader +syntax keyword qmlObjectLiteralType KeyboardRow +syntax keyword qmlObjectLiteralType KeyboardStyle +syntax keyword qmlObjectLiteralType KeyEvent +syntax keyword qmlObjectLiteralType Keyframe +syntax keyword qmlObjectLiteralType KeyframeAnimation +syntax keyword qmlObjectLiteralType KeyframeGroup +syntax keyword qmlObjectLiteralType KeyIcon +syntax keyword qmlObjectLiteralType KeyNavigation +syntax keyword qmlObjectLiteralType KeyPanel +syntax keyword qmlObjectLiteralType Keys + +syntax keyword qmlObjectLiteralType Label +syntax keyword qmlObjectLiteralType Layer +syntax keyword qmlObjectLiteralType LayerFilter +syntax keyword qmlObjectLiteralType Layout +syntax keyword qmlObjectLiteralType LayoutMirroring +syntax keyword qmlObjectLiteralType Legend +syntax keyword qmlObjectLiteralType LerpClipBlend +syntax keyword qmlObjectLiteralType LevelAdjust +syntax keyword qmlObjectLiteralType LevelOfDetail +syntax keyword qmlObjectLiteralType LevelOfDetailBoundingSphere +syntax keyword qmlObjectLiteralType LevelOfDetailLoader +syntax keyword qmlObjectLiteralType LevelOfDetailSwitch +syntax keyword qmlObjectLiteralType LidReading +syntax keyword qmlObjectLiteralType LidSensor +syntax keyword qmlObjectLiteralType Light +syntax keyword qmlObjectLiteralType Light3D +syntax keyword qmlObjectLiteralType LightReading +syntax keyword qmlObjectLiteralType LightSensor +syntax keyword qmlObjectLiteralType LinearGradient +syntax keyword qmlObjectLiteralType LineSeries +syntax keyword qmlObjectLiteralType LineShape +syntax keyword qmlObjectLiteralType LineWidth +syntax keyword qmlObjectLiteralType list +syntax keyword qmlObjectLiteralType ListElement +syntax keyword qmlObjectLiteralType ListModel +syntax keyword qmlObjectLiteralType ListView +syntax keyword qmlObjectLiteralType Loader +syntax keyword qmlObjectLiteralType Loader3D +syntax keyword qmlObjectLiteralType Locale +syntax keyword qmlObjectLiteralType Location +syntax keyword qmlObjectLiteralType LoggingCategory +syntax keyword qmlObjectLiteralType LogicalDevice +syntax keyword qmlObjectLiteralType LogValueAxis +syntax keyword qmlObjectLiteralType LogValueAxis3DFormatter +syntax keyword qmlObjectLiteralType LottieAnimation + +syntax keyword qmlObjectLiteralType Magnetometer +syntax keyword qmlObjectLiteralType MagnetometerReading +syntax keyword qmlObjectLiteralType Map +syntax keyword qmlObjectLiteralType MapCircle +syntax keyword qmlObjectLiteralType MapCircleObject +syntax keyword qmlObjectLiteralType MapCopyrightNotice +syntax keyword qmlObjectLiteralType MapGestureArea +syntax keyword qmlObjectLiteralType MapIconObject +syntax keyword qmlObjectLiteralType MapItemGroup +syntax keyword qmlObjectLiteralType MapItemView +syntax keyword qmlObjectLiteralType MapObjectView +syntax keyword qmlObjectLiteralType MapParameter +syntax keyword qmlObjectLiteralType MapPinchEvent +syntax keyword qmlObjectLiteralType MapPolygon +syntax keyword qmlObjectLiteralType MapPolygonObject +syntax keyword qmlObjectLiteralType MapPolyline +syntax keyword qmlObjectLiteralType MapPolylineObject +syntax keyword qmlObjectLiteralType MapQuickItem +syntax keyword qmlObjectLiteralType MapRectangle +syntax keyword qmlObjectLiteralType MapRoute +syntax keyword qmlObjectLiteralType MapRouteObject +syntax keyword qmlObjectLiteralType MapType +syntax keyword qmlObjectLiteralType Margins +syntax keyword qmlObjectLiteralType MaskedBlur +syntax keyword qmlObjectLiteralType MaskShape +syntax keyword qmlObjectLiteralType Material +syntax keyword qmlObjectLiteralType Matrix4x4 +syntax keyword qmlObjectLiteralType matrix4x4 +syntax keyword qmlObjectLiteralType MediaPlayer +syntax keyword qmlObjectLiteralType mediaplayer-qml-dynamic +syntax keyword qmlObjectLiteralType MemoryBarrier +syntax keyword qmlObjectLiteralType Menu +syntax keyword qmlObjectLiteralType MenuBar +syntax keyword qmlObjectLiteralType MenuBarItem +syntax keyword qmlObjectLiteralType MenuBarStyle +syntax keyword qmlObjectLiteralType MenuItem +syntax keyword qmlObjectLiteralType MenuItemGroup +syntax keyword qmlObjectLiteralType MenuSeparator +syntax keyword qmlObjectLiteralType MenuStyle +syntax keyword qmlObjectLiteralType Mesh +syntax keyword qmlObjectLiteralType MessageDialog +syntax keyword qmlObjectLiteralType MetalRoughMaterial +syntax keyword qmlObjectLiteralType ModeKey +syntax keyword qmlObjectLiteralType Model +syntax keyword qmlObjectLiteralType MonthGrid +syntax keyword qmlObjectLiteralType MorphingAnimation +syntax keyword qmlObjectLiteralType MorphTarget +syntax keyword qmlObjectLiteralType MotionBlur +syntax keyword qmlObjectLiteralType MouseArea +syntax keyword qmlObjectLiteralType MouseDevice +syntax keyword qmlObjectLiteralType MouseEvent +syntax keyword qmlObjectLiteralType MouseHandler +syntax keyword qmlObjectLiteralType MultiPointHandler +syntax keyword qmlObjectLiteralType MultiPointTouchArea +syntax keyword qmlObjectLiteralType MultiSampleAntiAliasing + +syntax keyword qmlObjectLiteralType Navigator +syntax keyword qmlObjectLiteralType NdefFilter +syntax keyword qmlObjectLiteralType NdefMimeRecord +syntax keyword qmlObjectLiteralType NdefRecord +syntax keyword qmlObjectLiteralType NdefTextRecord +syntax keyword qmlObjectLiteralType NdefUriRecord +syntax keyword qmlObjectLiteralType NearField +syntax keyword qmlObjectLiteralType Node +syntax keyword qmlObjectLiteralType NodeInstantiator +syntax keyword qmlObjectLiteralType NoDepthMask +syntax keyword qmlObjectLiteralType NoDraw +syntax keyword qmlObjectLiteralType NoPicking +syntax keyword qmlObjectLiteralType NormalDiffuseMapAlphaMaterial +syntax keyword qmlObjectLiteralType NormalDiffuseMapMaterial +syntax keyword qmlObjectLiteralType NormalDiffuseSpecularMapMaterial +syntax keyword qmlObjectLiteralType Number +syntax keyword qmlObjectLiteralType NumberAnimation +syntax keyword qmlObjectLiteralType NumberKey + +syntax keyword qmlObjectLiteralType Object3D +syntax keyword qmlObjectLiteralType ObjectModel +syntax keyword qmlObjectLiteralType ObjectPicker +syntax keyword qmlObjectLiteralType OpacityAnimator +syntax keyword qmlObjectLiteralType OpacityMask +syntax keyword qmlObjectLiteralType OpenGLInfo +syntax keyword qmlObjectLiteralType OrbitCameraController +syntax keyword qmlObjectLiteralType OrientationReading +syntax keyword qmlObjectLiteralType OrientationSensor +syntax keyword qmlObjectLiteralType OrthographicCamera +syntax keyword qmlObjectLiteralType Overlay + +syntax keyword qmlObjectLiteralType Package +syntax keyword qmlObjectLiteralType Page +syntax keyword qmlObjectLiteralType PageIndicator +syntax keyword qmlObjectLiteralType palette +syntax keyword qmlObjectLiteralType Pane +syntax keyword qmlObjectLiteralType PaperArtisticMaterial +syntax keyword qmlObjectLiteralType PaperOfficeMaterial +syntax keyword qmlObjectLiteralType ParallelAnimation +syntax keyword qmlObjectLiteralType Parameter +syntax keyword qmlObjectLiteralType ParentAnimation +syntax keyword qmlObjectLiteralType ParentChange +syntax keyword qmlObjectLiteralType Particle +syntax keyword qmlObjectLiteralType ParticleExtruder +syntax keyword qmlObjectLiteralType ParticleGroup +syntax keyword qmlObjectLiteralType ParticlePainter +syntax keyword qmlObjectLiteralType ParticleSystem +syntax keyword qmlObjectLiteralType Pass +syntax keyword qmlObjectLiteralType Path +syntax keyword qmlObjectLiteralType PathAngleArc +syntax keyword qmlObjectLiteralType PathAnimation +syntax keyword qmlObjectLiteralType PathArc +syntax keyword qmlObjectLiteralType PathAttribute +syntax keyword qmlObjectLiteralType PathCubic +syntax keyword qmlObjectLiteralType PathCurve +syntax keyword qmlObjectLiteralType PathElement +syntax keyword qmlObjectLiteralType PathInterpolator +syntax keyword qmlObjectLiteralType PathLine +syntax keyword qmlObjectLiteralType PathMove +syntax keyword qmlObjectLiteralType PathMultiline +syntax keyword qmlObjectLiteralType PathPercent +syntax keyword qmlObjectLiteralType PathPolyline +syntax keyword qmlObjectLiteralType PathQuad +syntax keyword qmlObjectLiteralType PathSvg +syntax keyword qmlObjectLiteralType PathText +syntax keyword qmlObjectLiteralType PathView +syntax keyword qmlObjectLiteralType PauseAnimation +syntax keyword qmlObjectLiteralType PdfDocument +syntax keyword qmlObjectLiteralType PdfLinkModel +syntax keyword qmlObjectLiteralType PdfNavigationStack +syntax keyword qmlObjectLiteralType PdfSearchModel +syntax keyword qmlObjectLiteralType PdfSelection +syntax keyword qmlObjectLiteralType PercentBarSeries +syntax keyword qmlObjectLiteralType PerspectiveCamera +syntax keyword qmlObjectLiteralType PerVertexColorMaterial +syntax keyword qmlObjectLiteralType PhongAlphaMaterial +syntax keyword qmlObjectLiteralType PhongMaterial +syntax keyword qmlObjectLiteralType PickEvent +syntax keyword qmlObjectLiteralType PickingSettings +syntax keyword qmlObjectLiteralType PickLineEvent +syntax keyword qmlObjectLiteralType PickPointEvent +syntax keyword qmlObjectLiteralType PickResult +syntax keyword qmlObjectLiteralType PickTriangleEvent +syntax keyword qmlObjectLiteralType Picture +syntax keyword qmlObjectLiteralType PieMenu +syntax keyword qmlObjectLiteralType PieMenuStyle +syntax keyword qmlObjectLiteralType PieSeries +syntax keyword qmlObjectLiteralType PieSlice +syntax keyword qmlObjectLiteralType PinchArea +syntax keyword qmlObjectLiteralType PinchEvent +syntax keyword qmlObjectLiteralType PinchHandler +syntax keyword qmlObjectLiteralType Place +syntax keyword qmlObjectLiteralType PlaceAttribute +syntax keyword qmlObjectLiteralType PlaceSearchModel +syntax keyword qmlObjectLiteralType PlaceSearchSuggestionModel +syntax keyword qmlObjectLiteralType PlaneGeometry +syntax keyword qmlObjectLiteralType PlaneMesh +syntax keyword qmlObjectLiteralType PlasticStructuredRedEmissiveMaterial +syntax keyword qmlObjectLiteralType PlasticStructuredRedMaterial +syntax keyword qmlObjectLiteralType Playlist +syntax keyword qmlObjectLiteralType PlaylistItem +syntax keyword qmlObjectLiteralType PlayVariation +syntax keyword qmlObjectLiteralType Plugin +syntax keyword qmlObjectLiteralType PluginParameter +syntax keyword qmlObjectLiteralType point +syntax keyword qmlObjectLiteralType PointDirection +syntax keyword qmlObjectLiteralType PointerDevice +syntax keyword qmlObjectLiteralType PointerDeviceHandler +syntax keyword qmlObjectLiteralType PointerEvent +syntax keyword qmlObjectLiteralType PointerHandler +syntax keyword qmlObjectLiteralType PointerScrollEvent +syntax keyword qmlObjectLiteralType PointHandler +syntax keyword qmlObjectLiteralType PointLight +syntax keyword qmlObjectLiteralType PointSize +syntax keyword qmlObjectLiteralType PolarChartView +syntax keyword qmlObjectLiteralType PolygonOffset +syntax keyword qmlObjectLiteralType Popup +syntax keyword qmlObjectLiteralType Position +syntax keyword qmlObjectLiteralType Positioner +syntax keyword qmlObjectLiteralType PositionSource +syntax keyword qmlObjectLiteralType PressureReading +syntax keyword qmlObjectLiteralType PressureSensor +syntax keyword qmlObjectLiteralType PrincipledMaterial +syntax keyword qmlObjectLiteralType Product +syntax keyword qmlObjectLiteralType ProgressBar +syntax keyword qmlObjectLiteralType ProgressBarStyle +syntax keyword qmlObjectLiteralType PropertyAction +syntax keyword qmlObjectLiteralType PropertyAnimation +syntax keyword qmlObjectLiteralType PropertyChanges +syntax keyword qmlObjectLiteralType ProximityFilter +syntax keyword qmlObjectLiteralType ProximityReading +syntax keyword qmlObjectLiteralType ProximitySensor + +syntax keyword qmlObjectLiteralType QAbstractState +syntax keyword qmlObjectLiteralType QAbstractTransition +syntax keyword qmlObjectLiteralType QmlSensors +syntax keyword qmlObjectLiteralType QSignalTransition +syntax keyword qmlObjectLiteralType Qt +syntax keyword qmlObjectLiteralType QtMultimedia +syntax keyword qmlObjectLiteralType QtObject +syntax keyword qmlObjectLiteralType QtPositioning +syntax keyword qmlObjectLiteralType QtRemoteObjects +syntax keyword qmlObjectLiteralType quaternion +syntax keyword qmlObjectLiteralType QuaternionAnimation +syntax keyword qmlObjectLiteralType QuotaRequest + +syntax keyword qmlObjectLiteralType RadialBlur +syntax keyword qmlObjectLiteralType RadialGradient +syntax keyword qmlObjectLiteralType Radio +syntax keyword qmlObjectLiteralType RadioButton +syntax keyword qmlObjectLiteralType RadioButtonStyle +syntax keyword qmlObjectLiteralType RadioData +syntax keyword qmlObjectLiteralType RadioDelegate +syntax keyword qmlObjectLiteralType RangeSlider +syntax keyword qmlObjectLiteralType RasterMode +syntax keyword qmlObjectLiteralType Ratings +syntax keyword qmlObjectLiteralType RayCaster +syntax keyword qmlObjectLiteralType real +syntax keyword qmlObjectLiteralType rect +syntax keyword qmlObjectLiteralType Rectangle +syntax keyword qmlObjectLiteralType RectangleShape +syntax keyword qmlObjectLiteralType RectangularGlow +syntax keyword qmlObjectLiteralType RecursiveBlur +syntax keyword qmlObjectLiteralType RegExpValidator +syntax keyword qmlObjectLiteralType RegisterProtocolHandlerRequest +syntax keyword qmlObjectLiteralType RegularExpressionValidator +syntax keyword qmlObjectLiteralType RenderCapabilities +syntax keyword qmlObjectLiteralType RenderCapture +syntax keyword qmlObjectLiteralType RenderCaptureReply +syntax keyword qmlObjectLiteralType RenderPass +syntax keyword qmlObjectLiteralType RenderPassFilter +syntax keyword qmlObjectLiteralType RenderSettings +syntax keyword qmlObjectLiteralType RenderState +syntax keyword qmlObjectLiteralType RenderStateSet +syntax keyword qmlObjectLiteralType RenderStats +syntax keyword qmlObjectLiteralType RenderSurfaceSelector +syntax keyword qmlObjectLiteralType RenderTarget +syntax keyword qmlObjectLiteralType RenderTargetOutput +syntax keyword qmlObjectLiteralType RenderTargetSelector +syntax keyword qmlObjectLiteralType Repeater +syntax keyword qmlObjectLiteralType Repeater3D +syntax keyword qmlObjectLiteralType ReviewModel +syntax keyword qmlObjectLiteralType Rotation +syntax keyword qmlObjectLiteralType RotationAnimation +syntax keyword qmlObjectLiteralType RotationAnimator +syntax keyword qmlObjectLiteralType RotationReading +syntax keyword qmlObjectLiteralType RotationSensor +syntax keyword qmlObjectLiteralType RoundButton +syntax keyword qmlObjectLiteralType Route +syntax keyword qmlObjectLiteralType RouteLeg +syntax keyword qmlObjectLiteralType RouteManeuver +syntax keyword qmlObjectLiteralType RouteModel +syntax keyword qmlObjectLiteralType RouteQuery +syntax keyword qmlObjectLiteralType RouteSegment +syntax keyword qmlObjectLiteralType Row +syntax keyword qmlObjectLiteralType RowLayout + +syntax keyword qmlObjectLiteralType Scale +syntax keyword qmlObjectLiteralType ScaleAnimator +syntax keyword qmlObjectLiteralType Scatter +syntax keyword qmlObjectLiteralType Scatter3D +syntax keyword qmlObjectLiteralType Scatter3DSeries +syntax keyword qmlObjectLiteralType ScatterDataProxy +syntax keyword qmlObjectLiteralType ScatterSeries +syntax keyword qmlObjectLiteralType Scene2D +syntax keyword qmlObjectLiteralType Scene3D +syntax keyword qmlObjectLiteralType Scene3DView +syntax keyword qmlObjectLiteralType SceneEnvironment +syntax keyword qmlObjectLiteralType SceneLoader +syntax keyword qmlObjectLiteralType ScissorTest +syntax keyword qmlObjectLiteralType Screen +syntax keyword qmlObjectLiteralType ScreenRayCaster +syntax keyword qmlObjectLiteralType ScriptAction +syntax keyword qmlObjectLiteralType ScrollBar +syntax keyword qmlObjectLiteralType ScrollIndicator +syntax keyword qmlObjectLiteralType ScrollView +syntax keyword qmlObjectLiteralType ScrollViewStyle +syntax keyword qmlObjectLiteralType SCurveTonemap +syntax keyword qmlObjectLiteralType ScxmlStateMachine +syntax keyword qmlObjectLiteralType SeamlessCubemap +syntax keyword qmlObjectLiteralType SelectionListItem +syntax keyword qmlObjectLiteralType SelectionListModel +syntax keyword qmlObjectLiteralType Sensor +syntax keyword qmlObjectLiteralType SensorGesture +syntax keyword qmlObjectLiteralType SensorReading +syntax keyword qmlObjectLiteralType SequentialAnimation +syntax keyword qmlObjectLiteralType Settings +syntax keyword qmlObjectLiteralType SettingsStore +syntax keyword qmlObjectLiteralType SetUniformValue +syntax keyword qmlObjectLiteralType Shader +syntax keyword qmlObjectLiteralType ShaderEffect +syntax keyword qmlObjectLiteralType ShaderEffectSource +syntax keyword qmlObjectLiteralType ShaderImage +syntax keyword qmlObjectLiteralType ShaderInfo +syntax keyword qmlObjectLiteralType ShaderProgram +syntax keyword qmlObjectLiteralType ShaderProgramBuilder +syntax keyword qmlObjectLiteralType Shape +syntax keyword qmlObjectLiteralType ShapeGradient +syntax keyword qmlObjectLiteralType ShapePath +syntax keyword qmlObjectLiteralType SharedGLTexture +syntax keyword qmlObjectLiteralType ShellSurface +syntax keyword qmlObjectLiteralType ShellSurfaceItem +syntax keyword qmlObjectLiteralType ShiftHandler +syntax keyword qmlObjectLiteralType ShiftKey +syntax keyword qmlObjectLiteralType Shortcut +syntax keyword qmlObjectLiteralType SignalSpy +syntax keyword qmlObjectLiteralType SignalTransition +syntax keyword qmlObjectLiteralType SinglePointHandler +syntax keyword qmlObjectLiteralType size +syntax keyword qmlObjectLiteralType Skeleton +syntax keyword qmlObjectLiteralType SkeletonLoader +syntax keyword qmlObjectLiteralType SkyboxEntity +syntax keyword qmlObjectLiteralType Slider +syntax keyword qmlObjectLiteralType SliderStyle +syntax keyword qmlObjectLiteralType SmoothedAnimation +syntax keyword qmlObjectLiteralType SortPolicy +syntax keyword qmlObjectLiteralType Sound +syntax keyword qmlObjectLiteralType SoundEffect +syntax keyword qmlObjectLiteralType SoundInstance +syntax keyword qmlObjectLiteralType SpaceKey +syntax keyword qmlObjectLiteralType SphereGeometry +syntax keyword qmlObjectLiteralType SphereMesh +syntax keyword qmlObjectLiteralType SpinBox +syntax keyword qmlObjectLiteralType SpinBoxStyle +syntax keyword qmlObjectLiteralType SplineSeries +syntax keyword qmlObjectLiteralType SplitHandle +syntax keyword qmlObjectLiteralType SplitView +syntax keyword qmlObjectLiteralType SpotLight +syntax keyword qmlObjectLiteralType SpringAnimation +syntax keyword qmlObjectLiteralType Sprite +syntax keyword qmlObjectLiteralType SpriteGoal +syntax keyword qmlObjectLiteralType SpriteSequence +syntax keyword qmlObjectLiteralType Stack +syntax keyword qmlObjectLiteralType StackedBarSeries +syntax keyword qmlObjectLiteralType StackLayout +syntax keyword qmlObjectLiteralType StackView +syntax keyword qmlObjectLiteralType StackViewDelegate +syntax keyword qmlObjectLiteralType StandardPaths +syntax keyword qmlObjectLiteralType State +syntax keyword qmlObjectLiteralType StateChangeScript +syntax keyword qmlObjectLiteralType StateGroup +syntax keyword qmlObjectLiteralType StateMachine +syntax keyword qmlObjectLiteralType StateMachineLoader +syntax keyword qmlObjectLiteralType StatusBar +syntax keyword qmlObjectLiteralType StatusBarStyle +syntax keyword qmlObjectLiteralType StatusIndicator +syntax keyword qmlObjectLiteralType StatusIndicatorStyle +syntax keyword qmlObjectLiteralType SteelMilledConcentricMaterial +syntax keyword qmlObjectLiteralType StencilMask +syntax keyword qmlObjectLiteralType StencilOperation +syntax keyword qmlObjectLiteralType StencilOperationArguments +syntax keyword qmlObjectLiteralType StencilTest +syntax keyword qmlObjectLiteralType StencilTestArguments +syntax keyword qmlObjectLiteralType Store +syntax keyword qmlObjectLiteralType String +syntax keyword qmlObjectLiteralType string +syntax keyword qmlObjectLiteralType SubtreeEnabler +syntax keyword qmlObjectLiteralType Supplier +syntax keyword qmlObjectLiteralType Surface3D +syntax keyword qmlObjectLiteralType Surface3DSeries +syntax keyword qmlObjectLiteralType SurfaceDataProxy +syntax keyword qmlObjectLiteralType SwipeDelegate +syntax keyword qmlObjectLiteralType SwipeView +syntax keyword qmlObjectLiteralType Switch +syntax keyword qmlObjectLiteralType SwitchDelegate +syntax keyword qmlObjectLiteralType SwitchStyle +syntax keyword qmlObjectLiteralType SymbolModeKey +syntax keyword qmlObjectLiteralType SystemPalette +syntax keyword qmlObjectLiteralType SystemTrayIcon + +syntax keyword qmlObjectLiteralType Tab +syntax keyword qmlObjectLiteralType TabBar +syntax keyword qmlObjectLiteralType TabButton +syntax keyword qmlObjectLiteralType TableModel +syntax keyword qmlObjectLiteralType TableModelColumn +syntax keyword qmlObjectLiteralType TableView +syntax keyword qmlObjectLiteralType TableViewColumn +syntax keyword qmlObjectLiteralType TableViewStyle +syntax keyword qmlObjectLiteralType TabView +syntax keyword qmlObjectLiteralType TabViewStyle +syntax keyword qmlObjectLiteralType TapHandler +syntax keyword qmlObjectLiteralType TapReading +syntax keyword qmlObjectLiteralType TapSensor +syntax keyword qmlObjectLiteralType TargetDirection +syntax keyword qmlObjectLiteralType TaskbarButton +syntax keyword qmlObjectLiteralType Technique +syntax keyword qmlObjectLiteralType TechniqueFilter +syntax keyword qmlObjectLiteralType TestCase +syntax keyword qmlObjectLiteralType Text +syntax keyword qmlObjectLiteralType Text2DEntity +syntax keyword qmlObjectLiteralType TextArea +syntax keyword qmlObjectLiteralType TextAreaStyle +syntax keyword qmlObjectLiteralType TextEdit +syntax keyword qmlObjectLiteralType TextField +syntax keyword qmlObjectLiteralType TextFieldStyle +syntax keyword qmlObjectLiteralType TextInput +syntax keyword qmlObjectLiteralType TextMetrics +syntax keyword qmlObjectLiteralType Texture +syntax keyword qmlObjectLiteralType Texture1D +syntax keyword qmlObjectLiteralType Texture1DArray +syntax keyword qmlObjectLiteralType Texture2D +syntax keyword qmlObjectLiteralType Texture2DArray +syntax keyword qmlObjectLiteralType Texture2DMultisample +syntax keyword qmlObjectLiteralType Texture2DMultisampleArray +syntax keyword qmlObjectLiteralType Texture3D +syntax keyword qmlObjectLiteralType TextureBuffer +syntax keyword qmlObjectLiteralType TextureCubeMap +syntax keyword qmlObjectLiteralType TextureCubeMapArray +syntax keyword qmlObjectLiteralType TextureImage +syntax keyword qmlObjectLiteralType TextureInput +syntax keyword qmlObjectLiteralType TextureLoader +syntax keyword qmlObjectLiteralType TextureRectangle +syntax keyword qmlObjectLiteralType Theme3D +syntax keyword qmlObjectLiteralType ThemeColor +syntax keyword qmlObjectLiteralType ThresholdMask +syntax keyword qmlObjectLiteralType ThumbnailToolBar +syntax keyword qmlObjectLiteralType ThumbnailToolButton +syntax keyword qmlObjectLiteralType TiltReading +syntax keyword qmlObjectLiteralType TiltSensor +syntax keyword qmlObjectLiteralType TiltShift +syntax keyword qmlObjectLiteralType Timeline +syntax keyword qmlObjectLiteralType TimelineAnimation +syntax keyword qmlObjectLiteralType TimeoutTransition +syntax keyword qmlObjectLiteralType Timer +syntax keyword qmlObjectLiteralType ToggleButton +syntax keyword qmlObjectLiteralType ToggleButtonStyle +syntax keyword qmlObjectLiteralType ToolBar +syntax keyword qmlObjectLiteralType ToolBarStyle +syntax keyword qmlObjectLiteralType ToolButton +syntax keyword qmlObjectLiteralType ToolSeparator +syntax keyword qmlObjectLiteralType ToolTip +syntax keyword qmlObjectLiteralType TooltipRequest +syntax keyword qmlObjectLiteralType Torch +syntax keyword qmlObjectLiteralType TorusGeometry +syntax keyword qmlObjectLiteralType TorusMesh +syntax keyword qmlObjectLiteralType TouchEventSequence +syntax keyword qmlObjectLiteralType TouchInputHandler3D +syntax keyword qmlObjectLiteralType TouchPoint +syntax keyword qmlObjectLiteralType Trace +syntax keyword qmlObjectLiteralType TraceCanvas +syntax keyword qmlObjectLiteralType TraceInputArea +syntax keyword qmlObjectLiteralType TraceInputKey +syntax keyword qmlObjectLiteralType TraceInputKeyPanel +syntax keyword qmlObjectLiteralType TrailEmitter +syntax keyword qmlObjectLiteralType Transaction +syntax keyword qmlObjectLiteralType Transform +syntax keyword qmlObjectLiteralType Transition +syntax keyword qmlObjectLiteralType Translate +syntax keyword qmlObjectLiteralType TreeView +syntax keyword qmlObjectLiteralType TreeViewStyle +syntax keyword qmlObjectLiteralType Tumbler +syntax keyword qmlObjectLiteralType TumblerColumn +syntax keyword qmlObjectLiteralType TumblerStyle +syntax keyword qmlObjectLiteralType Turbulence + +syntax keyword qmlObjectLiteralType UniformAnimator +syntax keyword qmlObjectLiteralType url +syntax keyword qmlObjectLiteralType User + +syntax keyword qmlObjectLiteralType ValueAxis +syntax keyword qmlObjectLiteralType ValueAxis3D +syntax keyword qmlObjectLiteralType ValueAxis3DFormatter +syntax keyword qmlObjectLiteralType var +syntax keyword qmlObjectLiteralType variant +syntax keyword qmlObjectLiteralType VBarModelMapper +syntax keyword qmlObjectLiteralType VBoxPlotModelMapper +syntax keyword qmlObjectLiteralType VCandlestickModelMapper +syntax keyword qmlObjectLiteralType vector2d +syntax keyword qmlObjectLiteralType vector3d +syntax keyword qmlObjectLiteralType Vector3dAnimation +syntax keyword qmlObjectLiteralType vector4d +syntax keyword qmlObjectLiteralType VertexBlendAnimation +syntax keyword qmlObjectLiteralType VerticalHeaderView +syntax keyword qmlObjectLiteralType Video +syntax keyword qmlObjectLiteralType VideoOutput +syntax keyword qmlObjectLiteralType View3D +syntax keyword qmlObjectLiteralType Viewport +syntax keyword qmlObjectLiteralType ViewTransition +syntax keyword qmlObjectLiteralType Vignette +syntax keyword qmlObjectLiteralType VirtualKeyboardSettings +syntax keyword qmlObjectLiteralType VPieModelMapper +syntax keyword qmlObjectLiteralType VXYModelMapper + +syntax keyword qmlObjectLiteralType Wander +syntax keyword qmlObjectLiteralType WasdController +syntax keyword qmlObjectLiteralType WavefrontMesh +syntax keyword qmlObjectLiteralType WaylandClient +syntax keyword qmlObjectLiteralType WaylandCompositor +syntax keyword qmlObjectLiteralType WaylandHardwareLayer +syntax keyword qmlObjectLiteralType WaylandOutput +syntax keyword qmlObjectLiteralType WaylandQuickItem +syntax keyword qmlObjectLiteralType WaylandSeat +syntax keyword qmlObjectLiteralType WaylandSurface +syntax keyword qmlObjectLiteralType WaylandView +syntax keyword qmlObjectLiteralType Waypoint +syntax keyword qmlObjectLiteralType WebChannel +syntax keyword qmlObjectLiteralType WebEngine +syntax keyword qmlObjectLiteralType WebEngineAction +syntax keyword qmlObjectLiteralType WebEngineCertificateError +syntax keyword qmlObjectLiteralType WebEngineClientCertificateOption +syntax keyword qmlObjectLiteralType WebEngineClientCertificateSelection +syntax keyword qmlObjectLiteralType WebEngineDownloadItem +syntax keyword qmlObjectLiteralType WebEngineHistory +syntax keyword qmlObjectLiteralType WebEngineHistoryListModel +syntax keyword qmlObjectLiteralType WebEngineLoadRequest +syntax keyword qmlObjectLiteralType WebEngineNavigationRequest +syntax keyword qmlObjectLiteralType WebEngineNewViewRequest +syntax keyword qmlObjectLiteralType WebEngineNotification +syntax keyword qmlObjectLiteralType WebEngineProfile +syntax keyword qmlObjectLiteralType WebEngineScript +syntax keyword qmlObjectLiteralType WebEngineSettings +syntax keyword qmlObjectLiteralType WebEngineView +syntax keyword qmlObjectLiteralType WebSocket +syntax keyword qmlObjectLiteralType WebSocketServer +syntax keyword qmlObjectLiteralType WebView +syntax keyword qmlObjectLiteralType WebViewLoadRequest +syntax keyword qmlObjectLiteralType WeekNumberColumn +syntax keyword qmlObjectLiteralType WheelEvent +syntax keyword qmlObjectLiteralType WheelHandler +syntax keyword qmlObjectLiteralType Window +syntax keyword qmlObjectLiteralType WlScaler +syntax keyword qmlObjectLiteralType WlShell +syntax keyword qmlObjectLiteralType WlShellSurface +syntax keyword qmlObjectLiteralType WorkerScript + +syntax keyword qmlObjectLiteralType XAnimator +syntax keyword qmlObjectLiteralType XdgDecorationManagerV1 +syntax keyword qmlObjectLiteralType XdgOutputManagerV1 +syntax keyword qmlObjectLiteralType XdgPopup +syntax keyword qmlObjectLiteralType XdgPopupV5 +syntax keyword qmlObjectLiteralType XdgPopupV6 +syntax keyword qmlObjectLiteralType XdgShell +syntax keyword qmlObjectLiteralType XdgShellV5 +syntax keyword qmlObjectLiteralType XdgShellV6 +syntax keyword qmlObjectLiteralType XdgSurface +syntax keyword qmlObjectLiteralType XdgSurfaceV5 +syntax keyword qmlObjectLiteralType XdgSurfaceV6 +syntax keyword qmlObjectLiteralType XdgToplevel +syntax keyword qmlObjectLiteralType XdgToplevelV6 +syntax keyword qmlObjectLiteralType XmlListModel +syntax keyword qmlObjectLiteralType XmlRole +syntax keyword qmlObjectLiteralType XYPoint +syntax keyword qmlObjectLiteralType XYSeries + +syntax keyword qmlObjectLiteralType YAnimator + +syntax keyword qmlObjectLiteralType ZoomBlur + +" }}} + +if get(g:, 'qml_fold', 0) + syn match qmlFunction "\" + syn region qmlFunctionFold start="^\z(\s*\)\.*[^};]$" end="^\z1}.*$" transparent fold keepend + + syn sync match qmlSync grouphere qmlFunctionFold "\" + syn sync match qmlSync grouphere NONE "^}" + + setlocal foldmethod=syntax + setlocal foldtext=getline(v:foldstart) +else + syn keyword qmlFunction function + syn match qmlArrowFunction "=>" + syn match qmlBraces "[{}\[\]]" + syn match qmlParens "[()]" +endif + +syn sync fromstart +syn sync maxlines=100 + +if main_syntax == "qml" + syn sync ccomment qmlComment +endif + +hi def link qmlComment Comment +hi def link qmlLineComment Comment +hi def link qmlCommentTodo Todo +hi def link qmlSpecial Special +hi def link qmlStringS String +hi def link qmlStringD String +hi def link qmlStringT String +hi def link qmlCharacter Character +hi def link qmlNumber Number +hi def link qmlConditional Conditional +hi def link qmlRepeat Repeat +hi def link qmlBranch Conditional +hi def link qmlOperator Operator +hi def link qmlJsType Type +hi def link qmlType Type +hi def link qmlObjectLiteralType Type +hi def link qmlStatement Statement +hi def link qmlFunction Function +hi def link qmlArrowFunction Function +hi def link qmlBraces Function +hi def link qmlError Error +hi def link qmlNull Keyword +hi def link qmlBoolean Boolean +hi def link qmlRegexpString String +hi def link qmlNullishCoalescing Operator + +hi def link qmlIdentifier Identifier +hi def link qmlLabel Label +hi def link qmlException Exception +hi def link qmlMessage Keyword +hi def link qmlGlobal Keyword +hi def link qmlReserved Keyword +hi def link qmlDebug Debug +hi def link qmlConstant Label +hi def link qmlBindingProperty Label +hi def link qmlDeclaration Function + +let b:current_syntax = "qml" +if main_syntax == 'qml' + unlet main_syntax +endif diff --git a/runtime/syntax/rapid.vim b/runtime/syntax/rapid.vim new file mode 100644 index 0000000000..ed0da095c0 --- /dev/null +++ b/runtime/syntax/rapid.vim @@ -0,0 +1,687 @@ +" ABB Rapid Command syntax file for Vim +" Language: ABB Rapid Command +" Maintainer: Patrick Meiser-Knosowski +" Version: 2.3.0 +" Last Change: 21. Jul 2023 +" Credits: Thanks for beta testing to Thomas Baginski +" +" Suggestions of improvement are very welcome. Please email me! +" +" +" +" Note to self: +" for testing perfomance +" open a 1000 lines file. +" :syntime on +" G +" hold down CTRL-U until reaching top +" :syntime report +" +" +" TODO: - highlight rapid constants and maybe constants from common +" technology packages +" - optimize rapidErrorStringTooLong +" - error highlight for missing 2nd point in MoveCirc et al + +" Init {{{ +" Remove any old syntax stuff that was loaded (5.x) or quit when a syntax file +" was already loaded (6.x). +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +let s:keepcpo= &cpo +set cpo&vim + +" if colorscheme is tortus rapidNoHighLink defaults to 1 +if (get(g:,'colors_name'," ")=="tortus" || get(g:,'colors_name'," ")=="tortusless") + \&& !exists("g:rapidGroupName") + let g:rapidGroupName=1 +endif +" rapidGroupName defaults to 0 if it's not initialized yet or 0 +if !get(g:,"rapidGroupName",0) + let g:rapidGroupName=0 +endif + +" Rapid does ignore case +syn case ignore +" spell checking +syn spell notoplevel +" }}} init + +" common highlighting {{{ + +" Error {{{ +if get(g:,'rapidShowError',1) + " + " This error must be defined befor rapidCharCode and rapidEscapedBackSlash + " a string containing a single \ which is not a char code + syn match rapidErrorSingleBackslash /\\/ contained + highlight default link rapidErrorSingleBackslash Error + " +endif +" }}} Error + +" Constant values {{{ +" Boolean +syn keyword rapidBoolean TRUE FALSE Edge High Low +highlight default link rapidBoolean Boolean +" Float (num) +" syn match rapidFloat /\v%(\W|_)@1<=[+-]?\d+\.?\d*%(\s*[eE][+-]?\d+)?/ +syn match rapidFloat /\v\c%(<\d+\.|\.?<\d)\d*%(E[+-]?\d+)?>/ contains=rapidOperator +highlight default link rapidFloat Float +" integer in decimal, hexadecimal, octal and binary +syn match rapidDec /\<[0-9]\+\>/ +highlight default link rapidDec Number +syn match rapidHex /\<0x[0-9a-fA-F]\+\>/ +highlight default link rapidHex Number +syn match rapidOct /\<0o[0-7]\+\>/ +highlight default link rapidOct Number +syn match rapidBin /\<0b[01]\+\>/ +highlight default link rapidBin Number +" String. Note: Don't rename group rapidString. Indent depend on this +syn region rapidString matchgroup=rapidString start=/"/ skip=/""/ end=/"/ oneline contains=rapidStringDoubleQuote,rapidEscapedBackSlash,rapidCharCode,rapidErrorSingleBackslash,rapidErrorStringTooLong,@Spell +highlight default link rapidString String +" two adjacent "" in string for one double quote +syn match rapidStringDoubleQuote /""/ contained +highlight default link rapidStringDoubleQuote SpecialChar +" character code in string +syn match rapidCharCode /\\\x\x/ contained +highlight default link rapidCharCode SpecialChar +" escaped \ in string +syn match rapidEscapedBackSlash /\\\\/ contained +highlight default link rapidEscapedBackSlash SpecialChar +" }}} Constant values + +" }}} common highlighting + +if bufname("%") =~ '\c\.cfg$' +" {{{ highlighting for *.cfg + + " special chars {{{ + " syn match rapidOperator /:\|[+-]\|\*\|\/\|\\/ + syn match rapidOperator /[-+*/:\\]/ + syn match rapidOperator /^#/ + highlight default link rapidOperator Operator + " }}} special chars + + " sections {{{ + syn match rapidException /^\w\+/ + syn match rapidException /CFG_\d\+/ + highlight default link rapidException Exception + " }}} sections + + " Error {{{ + if get(g:,'rapidShowError',1) + " + " This error must be defined after rapidString + " Any Name longer than 32 chars + syn match rapidErrorNameTooLong /-Name "[^"]\{33,}"/ + highlight default link rapidErrorNameTooLong Error + " + endif + " }}} Error + + " }}} highlighting for *.cfg +else + " highlighting for *.mod, *.sys and *.prg {{{ + + " sync for regions from a line comment or the start of a function + syn sync match rapidSync grouphere NONE /\v\c^\s*%(!|%(task\s+|local\s+)?%(module|proc|func|trap|record)>)/ + + " Comment {{{ + " TODO Comment + syn match rapidTodoComment contained /\\|\\|\/ + highlight default link rapidTodoComment Todo + " Debug comment + syn match rapidDebugComment contained /\/ + highlight default link rapidDebugComment Debug + " Line comment + syn match rapidComment /!.*$/ contains=rapidTodoComment,rapidDebugComment,@Spell + highlight default link rapidComment Comment + " }}} Comment + + " Header {{{ + syn match rapidHeader /^%%%/ + highlight default link rapidHeader PreProc + " }}} Header + + " Operator {{{ + " Boolean operator + syn keyword rapidOperator and or xor not div mod + " Arithmetic and compare operator + syn match rapidOperator /[-+*/<>:=]/ + " conditional argument + syn match rapidOperator /?/ + highlight default link rapidOperator Operator + " }}} Operator + + " Type, StorageClass and Typedef {{{ + " anytype (preceded by 'alias|pers|var|const|func' + " TODO: still missing are userdefined types which are part of a parameter: + " PROC message( mystring msMessagePart1{}, + " \ myvar msMsg4{}) + " TODO testing. Problem: does not highlight any type if it's part of an argument list + " syn match rapidAnyType /\v^\s*(global\s+|task\s+|local\s+)?(alias|pers|var|const|func)\s+\w+>/ contains=rapidStorageClass,rapidType,rapidTypeDef + " highlight default link rapidAnyType Type + syn keyword rapidType accdata aiotrigg bool btnres busstate buttondata byte + syn keyword rapidType cfgdomain clock cnvcmd confdata confsupdata corrdescr datapos deflectiondata dionum dir dnum + syn keyword rapidType egmframetype egmident egm_minmax egmstate egmstopmode errdomain errnum ErrorInfo errstr errtype event_type exec_level extjoint handler_type + syn keyword rapidType icondata identno inposdata intnum inttypes iodev iounit_state jointtarget + syn keyword rapidType listitem loaddata loadidnum loadsession mecunit motionprocessmode motsetdata + " syn keyword rapidType num + syn keyword rapidType opcalc opnum orient paridnum paridvalidnum pathrecid pnpdata pos pose proc_times progdisp o_jointtarget o_robtarget + syn keyword rapidType rawbytes restartdata rmqheader rmqmessage rmqslot robjoint robtarget + syn keyword rapidType searchdata sensor sensorstate sensorvardata shapedata signalai signalao signaldi signaldo signalgi signalgo signalorigin singdata socketdev socketstatus speeddata stopmovestartmove_mem stoppoint stoppointdata string stringdig sup_timeouts supervtype switch symnum syncident + syn keyword rapidType taskid tasks tasksatstart testsignal tooldata tpnum trapdata triggdata triggflag triggios triggiosdnum triggmode triggstrgo tsp_status tunegtype tunetype + syn keyword rapidType uishownum veldata visiondata wobjdata wzstationary wztemporary zonedata + " SoftMove data types + syn keyword rapidType css_offset_dir css_soft_dir cssframe + " arc data types + syn keyword rapidType advSeamData arcdata flystartdata seamdata arctrackdata opttrackdata weavedata welddata + " conveyor tracking data types + syn keyword rapidType indcnvdata + " Integrated Vision data types + syn keyword rapidType cameradev cameratarget + " arc Weldguide and MultiPass data types + syn keyword rapidType adaptdata trackdata multidata + " dispense data types + syn keyword rapidType beaddata equipdata + " Spot data types + syn keyword rapidType gundata gunnum spotdata forcedata simdata smeqdata smeqtype + " Tool change data types + syn keyword rapidType standno ToolInfo toolno + " Continuous Application Platform data types + syn keyword rapidType capaptrreferencedata capdata capevent caplatrackdata capmvsttim capspeeddata capspeeddata capstopmode captestno captrackdata capweavedata flypointdata processtimes restartblkdata supervtimeouts weavestartdata + " Bulls Eye data types + syn keyword rapidType be_device be_scan be_tooldesign + " Force Control data types + syn keyword rapidType fcboxvol fccondstatus fccylindervol fcdamping fcforcevector fcframe fclindir fcprocessdata fcplane fcrotdir fcspeedvector fcspherevol fcspdchgtunetype fcxyznum + " Discrete application platform data types + syn keyword rapidType dadescapp dadescprc daintdata + " VW Konzernstandard VWKS_1.07.02 + syn keyword rapidType merker + syn keyword rapidType frgnum frgwert robnum + syn keyword rapidType fmnum applid calibdatavorr stepdata + syn keyword rapidType tsmethode tsdaten teilspeicherdaten + syn keyword rapidType greiferdaten greiferposition bauteildaten bauteilkontrolle g_datenident g_sensor g_signal g_teilident g_ventil + syn keyword rapidType strgnum typnum + syn keyword rapidType hubnum kopfnum + syn keyword rapidType applservicetype + syn keyword rapidType applfraesdaten kwdionum + syn keyword rapidType butechnum + syn keyword rapidType toolnum dbnum + " das folgende sind datentypen aber das kann man doch nicht machen... + " syn keyword rapidType position wert + syn keyword rapidType camdata camlimitdata cammode camprotocoldata camstatus camsequence campositionstatus + syn keyword rapidType saposnum sabereichnum autofocusnum focusposnum lascaledata laleistungnum larobnum laprognum uebwnum dgbanum dgjobnum gasspuelnum davalve gasuebwnum + syn keyword rapidType lsfigurnum lsstarttype + syn keyword rapidType lwprognum lwdiodnum lsstarttype + syn keyword rapidType lztype diskrethubnum lztipnum + syn keyword rapidType gblmethod + syn keyword rapidType buatypenum buatechnum buadirnum + highlight default link rapidType Type + " Storage class + syn keyword rapidStorageClass LOCAL TASK VAR PERS CONST ALIAS NOVIEW NOSTEPIN VIEWONLY READONLY SYSMODULE INOUT + highlight default link rapidStorageClass StorageClass + " Not a typedef but I like to have those highlighted different then types, + " structures or strorage classes + syn keyword rapidTypeDef MODULE ENDMODULE PROC ERROR UNDO BACKWARD ENDPROC RECORD ENDRECORD TRAP ENDTRAP FUNC ENDFUNC + highlight default link rapidTypeDef TypeDef + " }}} Type, StorageClass and Typedef + + " Statements, keywords et al {{{ + " syn keyword rapidStatement + " highlight default link rapidStatement Statement + " Conditional + syn keyword rapidConditional if then elseif else endif test case default endtest + highlight default link rapidConditional Conditional + " Repeat + syn keyword rapidRepeat do + syn match rapidRepeat /\c\v^\s*%(|)%([^!]+)@=/ + syn keyword rapidRepeat from to step endfor endwhile + highlight default link rapidRepeat Repeat + " Label + syn keyword rapidLabel goto + syn match rapidLabel /\c\v^\s*[[:upper:][:lower:]]\k*\:\ze%([^=]|$)/ contains=rapidConditional,rapidOperator + highlight default link rapidLabel Label + " Keyword + syn keyword rapidKeyword AccSet ActEventBuffer ActUnit Add AliasCamera AliasIO AliasIOReset BitClear BitSet BookErrNo BrakeCheck + syn keyword rapidKeyword CallByVar CancelLoad CheckProgRef CirPathMode Clear ClearIOBuff ClearPath ClearRawBytes ClkReset ClkStart ClkStop Close CloseDir ConfJ ConfL CONNECT CopyFile CopyRawBytes CornerPathWarning CorrClear CorrCon CorrDiscon CorrWrite + syn keyword rapidKeyword CSSAct CSSDeact CSSForceOffsetAct CSSForceOffsetDeact CSSOffsetTune CyclicBrakeCheck + syn keyword rapidKeyword DeactEventBuffer DeactUnit Decr DitherAct DitherDeact DropSensor + syn keyword rapidKeyword EGMActJoint EGMActMove EGMActPose EGMGetId EGMReset EGMSetupAI EGMSetupAO EGMSetupGI EGMSetupLTAPP EGMSetupUC EOffsOff EOffsOn EOffsSet EraseModule ErrLog ErrWrite + syn keyword rapidKeyword FitCircle FricIdInit FricIdEvaluate FricIdSetFricLevels + syn keyword rapidKeyword GetDataVal GetGroupSignalInfo GetJointData GetSysData GetTorqueMargin GetTrapData GripLoad HollowWristReset + syn keyword rapidKeyword IDelete IDisable IEnable IError Incr IndReset InvertDO IOBusStart IOBusState IoCtrlAxis_RefSync IoCtrlAxis_RefSyncOff IoCtrlAxis_RefSyncOn IODisable IOEnable IPers IRMQMessage ISignalAI ISignalAO ISignalDI ISignalDO ISignalGI ISignalGO ISleep ITimer IVarValue IWatch + syn keyword rapidKeyword Load LoadId MakeDir ManLoadIdProc MatrixSolve MatrixSolveQR MatrixSVD MechUnitLoad MotionProcessModeSet MotionSup MToolRotCalib MToolTCPCalib Open OpenDir + syn keyword rapidKeyword PackDNHeader PackRawBytes PathAccLim PathLengthReset PathLengthStart PathLengthStop PathRecStart PathRecStop PathResol PDispOff PDispOn PDispSet ProcerrRecovery PrxActivAndStoreRecord PrxActivRecord PrxDbgStoreRecord PrxDeactRecord PrxResetPos PrxResetRecords PrxSetPosOffset PrxSetRecordSampleTime PrxSetSyncalarm PrxStartRecord PrxStopRecord PrxStoreRecord PrxUseFileRecord PulseDO + syn keyword rapidKeyword ReadAnyBin ReadBlock ReadCfgData ReadErrData ReadRawBytes ReadVarArr RemoveAllCyclicBool RemoveCyclicBool RemoveDir RemoveFile RenameFile Reset ResetAxisDistance ResetAxisMoveTime ResetPPMoved ResetRetryCount ResetTorqueMargin RestoPath Rewind RMQEmptyQueue RMQFindSlot RMQGetMessage RMQGetMsgData RMQGetMsgHeader RMQReadWait RMQSendMessage RMQSendWait + syn keyword rapidKeyword SafetyControllerSyncRequest Save SaveCfgData SCWrite SenDevice Set SetAllDataVal SetAO SetDataSearch SetDataVal SetDO SetGO SetLeadThrough SetSysData SetupCyclicBool SiConnect SiClose SiGetCyclic SingArea SiSetCyclic SkipWarn SocketAccept SocketBind SocketClose SocketConnect SocketCreate SocketListen SocketReceive SocketReceiveFrom SocketSend SocketSendTo SoftAct SoftDeact SoftElbow SpeedLimAxis SpeedLimCheckPoint SpeedRefresh SpyStart SpyStop StartLoad STCalib STClose STIndGun STIndGunReset SToolRotCalib SToolTCPCalib STOpen StorePath STTune STTuneReset SupSyncSensorOff SupSyncSensorOn SyncMoveOff SyncMoveOn SyncMoveResume SyncMoveSuspend SyncMoveUndo SyncToSensor SystemStopAction + syn keyword rapidKeyword TestSignDefine TestSignReset TextTabInstall TPErase TPReadDnum TPReadFK TPReadNum TPShow TPWrite TriggCheckIO TriggDataCopy TriggDataReset TriggEquip TriggInt TriggIO TriggRampAO TriggSpeed TriggStopProc TryInt TuneReset TuneServo + syn keyword rapidKeyword UIMsgBox UIMsgWrite UIMsgWriteAbort UIShow UnLoad UnpackRawBytes VelSet WaitAI WaitAO WaitDI WaitDO WaitGI WaitGO WaitLoad WaitRob WaitSensor WaitSyncTask WaitTestAndSet WaitTime WaitUntil WarmStart WITH WorldAccLim Write WriteAnyBin WriteBin WriteBlock WriteCfgData WriteRawBytes WriteStrBin WriteVar WriteVarArr WZBoxDef WZCylDef WZDisable WZDOSet WZEnable WZFree WZHomeJointDef WZLimJointDef WZLimSup WZSphDef + " arc instructions + syn keyword rapidKeyword ArcRefresh RecoveryMenu RecoveryMenuWR RecoveryPosSet RecoveryPosReset SetWRProcName + " conveyor tracking instructions + syn keyword rapidKeyword UseACCProfile WaitWObj DropWObj RecordProfile WaitAndRecProf StoreProfile LoadProfile ActivateProfile DeactProfile CnvGenInstr CnvSync CnvGenInstr IndCnvInit IndCnvEnable IndCnvDisable IndCnvReset IndCnvAddObject + syn keyword rapidKeyword UseReachableTargets GetMaxUsageTime ResetMaxUsageTime CnvPredictReach + " Integrated Vision instructions + syn keyword rapidKeyword CamFlush CamGetParameter CamGetResult CamLoadJob CamReqImage CamSetExposure CamSetParameter CamSetProgramMode CamSetRunMode CamStartLoadJob CamWaitLoadJob + " arc Weldguide and MultiPass instructions + syn keyword rapidKeyword MPSavePath MPLoadPath MPReadInPath MPOffsEaxOnPath + " Paint instructions + syn keyword rapidKeyword ConsoleWrite IpsSetParam PntProdUserLog SetBrush SetBrushFac + " Spot instructions + syn keyword rapidKeyword SetForce Calibrate ReCalcTCP IndGunMove IndGunMoveReset OpenHighLift CloseHighLift SwSetIntSpotData SwSetIntForceData SwSetIntGunData SwSetIntSimData SwGetCalibData SwGetFixTipData + " Tool change instructions + syn keyword rapidKeyword TcCloseCover TcDropOffTool TcLockTool TcOpenCover TcPickupTool TcUnlockTool + " dispense instructions + syn keyword rapidKeyword SetTmSignal SyncWWObj + " Continuous Application Platform instructions + syn keyword rapidKeyword CapAPTrSetup CapAPTrSetupAI CapAPTrSetupAO CapAPTrSetupPERS CapCondSetDO CapEquiDist CapNoProcess CapRefresh CAPSetStopMode CapWeaveSync ICap InitSuperv IPathPos RemoveSuperv SetupSuperv + " Bulls Eye instructions + syn keyword rapidKeyword BECheckTcp BEDebugState BERefPointer BESetupToolJ BETcpExtend BEUpdateTcp + " Force Control instructions + syn keyword rapidKeyword FCAct FCCalib FCCondForce FCCondOrient FCCondPos FCCondReoriSpeed FCCondTCPSpeed FCCondTorque FCCondWaitWhile FCDeact FCPress1LStart FCPressC FCPressEnd FCPressL FCRefCircle FCRefForce FCRefLine FCRefMoveFrame FCRefRot FCRefSpiral FCRefSprForceCart FCRefStart FCRefStop FCRefTorque FCResetDampingTune FCResetLPFilterTune FCSpdChgAct FCSpdChgDeact FCSpdChgTunSet FCSpdChgTunReset FCSetDampingTune FCSetLPFilterTune FCSupvForce FCSupvOrient FCSupvPos FCSupvReoriSpeed FCSupvTCPSpeed FCSupvTorque + " Discrete application platform instructions + syn keyword rapidKeyword DaActProc DaDeactAllProc DaDeactProc DaDefExtSig DaDefProcData DaDefProcSig DaDefUserData DaGetCurrData DaSetCurrData DaSetupAppBehav DaStartManAction DaGetAppDescr DaGetAppIndex DaGetNumOfProcs DaGetNumOfRob DaGetPrcDescr + " Production Manager instructions + syn keyword rapidKeyword ExecEngine PMgrGetNextPart PMgrSetNextPart PMgrRunMenu + " Homepos-Running instructions + syn keyword rapidKeyword HR_Exit HR_ExitCycle HR_SavePos HR_SetMoveToStartPos HR_SetTypeDIndex HR_SetTypeIndex + highlight default link rapidKeyword Keyword + " Exception + syn keyword rapidException Exit ErrRaise ExitCycle Raise RaiseToUser Retry Return TryNext + syn match rapidException /\s\+Stop\s*[\\;]/me=e-1 + highlight default link rapidException Exception + " }}} Statements, keywords et al + + " Special keyword for move command {{{ + " uncategorized yet + syn keyword rapidMovement MovePnP + syn keyword rapidMovement EGMMoveC EGMMoveL EGMRunJoint EGMRunPose EGMStop + syn keyword rapidMovement IndAMove IndCMove IndDMove IndRMove + " common instructions + syn keyword rapidMovement MoveAbsJ MoveC MoveExtJ MoveJ MoveL + syn keyword rapidMovement MoveCAO MoveCDO MoveCGO MoveCSync MoveJAO MoveJDO MoveJGO MoveJSync MoveLAO MoveLDO MoveLGO MoveLSync + syn keyword rapidMovement SearchC SearchExtJ SearchL + syn keyword rapidMovement TriggC TriggJ TriggL TriggJIOs TriggLIOs + " Arc instructions + syn keyword rapidMovement ArcC ArcC1 ArcC2 ArcCEnd ArcC1End ArcC2End ArcCStart ArcC1Start ArcC2Start + syn keyword rapidMovement ArcL ArcL1 ArcL2 ArcLEnd ArcL1End ArcL2End ArcLStart ArcL1Start ArcL2Start ArcMoveExtJ + " Arc Weldguide and MultiPass instructions + syn keyword rapidMovement ArcRepL ArcAdaptLStart ArcAdaptL ArcAdaptC ArcAdaptLEnd ArcAdaptCEnd ArcCalcLStart ArcCalcL ArcCalcC ArcCalcLEnd ArcCalcCEnd ArcAdaptRepL + syn keyword rapidMovement Break + " Continuous Application Platform instructions + syn keyword rapidMovement CapC CapL CapLATrSetup CSSDeactMoveL ContactL + " Dispense instructions + syn keyword rapidMovement DispL DispC + " Nut instructions" + syn keyword rapidMovement NutL NutJ + syn keyword rapidMovement PathRecMoveBwd PathRecMoveFwd + " Paint instructions" + syn keyword rapidMovement PaintL PaintLSig PaintLDO PaintC + syn keyword rapidMovement StartMove StartMoveRetry StepBwdPath StopMove StopMoveReset + " Spot instructions + syn keyword rapidMovement SpotL SpotJ SpotML SpotMJ CalibL CalibJ MeasureWearL + " Homepos-Running instructions + syn keyword rapidMovement SMoveJ SMoveJDO SMoveJGO SMoveJSync SMoveL SMoveLDO SMoveLGO SMoveLSync SSearchL STriggJ STriggL + syn keyword rapidMovement HR_ContMove HR_MoveBack HR_MoveRoutine HR_MoveTo HR_MoveToHome SCSSDeactMoveL + " Discrete application platform instructions + syn keyword rapidMovement DaProcML DaProcMJ + " VW Konzernstandard VWKS_1.07.02 + syn keyword rapidMovement MoveABS MoveABS_FB MoveABS_FRG MoveABS_ROB + syn keyword rapidMovement MoveCIRC MoveCIRC_FB MoveCIRC_FRG MoveCIRC_ROB + syn keyword rapidMovement MoveLIN MoveLIN_FB MoveLIN_FRG MoveLIN_ROB + syn keyword rapidMovement MovePTP MovePTP_FB MovePTP_FRG MovePTP_ROB + syn keyword rapidMovement SearchCIRC SearchCIRC_M + syn keyword rapidMovement SearchLIN SearchLIN_M + syn keyword rapidMovement MoveABS_AO MoveABS_DO MoveABS_GO + syn keyword rapidMovement MoveCIRC_AO MoveCIRC_DO MoveCIRC_GO + syn keyword rapidMovement MoveLIN_AO MoveLIN_DO MoveLIN_GO + syn keyword rapidMovement KW_LoesenLIN + syn keyword rapidMovement SPZ_FraesenLIN SPZ_FraesenPTP SPZ_MessenLIN SPZ_MessenPTP SPZ_LIN SPZ_PTP + syn keyword rapidMovement BZ_LIN BZ_PTP + syn keyword rapidMovement KL_LIN KL_CIRC + syn keyword rapidMovement BP_LIN BP_PTP + syn keyword rapidMovement BU_CIRC BU_LIN + syn keyword rapidMovement CZ_LIN CZ_LIN_V CZ_PTP CZ_PTP_V + syn keyword rapidMovement FD_LIN FD_PTP + syn keyword rapidMovement KG_LIN KG_PTP + syn keyword rapidMovement DA_LIN + syn keyword rapidMovement LK_CIRC LK_LIN + syn keyword rapidMovement LL_CIRC LL_LIN + syn keyword rapidMovement LS_CIRC LS_LIN LS_LIN_F LS_PTP_F + syn keyword rapidMovement LW_CIRC LW_LIN + syn keyword rapidMovement LZ_LIN LZ_PTP LZ_ReinigenLIN LZ_ReinigenPTP + syn keyword rapidMovement MS_CIRC MS_LIN MS_ReinigenLIN MS_SearchLIN MS_PTP_CS MS_LIN_CS GBL_LIN GBL_PTP GBL_RefPointLIN + syn keyword rapidMovement NK_LIN + syn keyword rapidMovement NZ_LIN NZ_LIN_V NZ_PTP NZ_PTP_V + syn keyword rapidMovement PR_LIN PR_PTP + syn keyword rapidMovement RF_CIRC RF_LIN + syn keyword rapidMovement STP_FraesenLIN STP_FraesenPTP STP_LIN STP_PTP + syn keyword rapidMovement SM_LIN SM_PTP + syn keyword rapidMovement BUA_CIRC BUA_LIN BUA_MessenLIN BUA_MessenPTP + syn keyword rapidMovement KE_LIN + if g:rapidGroupName + highlight default link rapidMovement Movement + else + highlight default link rapidMovement Special + endif + " }}} special keyword for move command + + " Any name {{{ + syn match rapidNames /\v[[:upper:][:lower:]](\k|\.)*/ + " }}} Any name + + " Attempt to avoid false highlight of num in case of parameter name: + " TPWrite "goPosNo="\num:=GOutput(goPosNo); + " Must follow after rapidNames in this file + syn match rapidType /\c\v\s*\ze[^ :]/ + + " Structure value {{{ + " rapid structrure values. added to be able to conceal them + syn region rapidConcealableString matchgroup=rapidConcealableString start=/"/ skip=/""/ end=/"/ oneline keepend extend contained contains=rapidStringDoubleQuote,rapidEscapedBackSlash,rapidCharCode,rapidErrorSingleBackslash,rapidErrorStringTooLong,@Spell conceal + highlight default link rapidConcealableString String + syn region rapidStructVal matchgroup=rapidStructDelimiter start=/\[/ end=/\]/ contains=rapidStructVal,rapidBoolean,rapidDec,rapidHex,rapidOct,rapidBin,rapidFloat,rapidConcealableString,rapidDelimiter,rapidConstant,rapidErrNo,rapidIntNo,rapidOperator keepend extend conceal cchar=* + highlight default link rapidStructDelimiter Delimiter + " check edge cases like this one: + " LOCAL CONST listitem lstAuswService{18}:=[["","Service Position"],["","Bremsentest"],["","Referenzfahrt"],["","Manuelles Abfahren"],["","Justagestellung"],["","Transportposition"], + " ["","Spitze-Spitze Greifer 1, [RT]"],["","Spitze-Spitze Greifer 2, [FT]"],["","Spitze-Spitze Pruefspitze"],["","Werkobjekt Ablage"],["","Werkobjekt Modul 1"], + " ["","Werkobjekt Modul 2"],["","TCP von Greifer 1 vermessen, [RT]"],["","TCP von Greifer 2 vermessen, [FT]"],["","TCP von Basisdorn vermessen"], + " ["","Greifer abdocken"],["","Greifer andocken"],["","Kollision Check (Ohne Greifer)"]]; + " }}} Structure value + + " Delimiter {{{ + syn match rapidDelimiter /[\\(){},;|]/ + highlight default link rapidDelimiter Delimiter + " }}} Delimiter + + " BuildInFunction {{{ + " dispense functions + syn keyword rapidBuildInFunction contained GetSignal GetSignalDnum + " Integrated Vision Platform functions + syn keyword rapidBuildInFunction contained CamGetExposure CamGetLoadedJob CamGetName CamNumberOfResults + " Continuous Application Platform functions + syn keyword rapidBuildInFunction contained CapGetFailSigs + syn keyword rapidBuildInFunction contained Abs AbsDnum ACos ACosDnum AInput AOutput ArgName ASin ASinDnum ATan ATanDnum ATan2 ATan2Dnum + syn keyword rapidBuildInFunction contained BitAnd BitAndDnum BitCheck BitCheckDnum BitLSh BitLShDnum BitNeg BitNegDnum BitOr BitOrDnum BitRSh BitRShDnum BitXOr BitXOrDnum ByteToStr + syn keyword rapidBuildInFunction contained CalcJointT CalcRobT CalcRotAxFrameZ CalcRotAxisFrame CDate CJointT ClkRead CorrRead Cos CosDnum CPos CRobT CrossProd CSpeedOverride CTime CTool CWObj + syn keyword rapidBuildInFunction contained DecToHex DefAccFrame DefDFrame DefFrame Dim DInput Distance DnumToNum DnumToStr DotProd DOutput + syn keyword rapidBuildInFunction contained EGMGetState EulerZYX EventType ExecHandler ExecLevel Exp + syn keyword rapidBuildInFunction contained FileSize FileTime FileTimeDnum FSSize + syn keyword rapidBuildInFunction contained GetAxisDistance GetAxisMoveTime GetMaxNumberOfCyclicBool GetMecUnitName GetModalPayLoadMode GetMotorTorque GetNextCyclicBool GetNextMechUnit GetNextSym GetNumberOfCyclicBool GetServiceInfo GetSignalOrigin GetSysInfo GetTaskName GetTime GetTSPStatus GetUASUserName GInput GInputDnum GOutput GOutputDnum + syn keyword rapidBuildInFunction contained HexToDec + syn keyword rapidBuildInFunction contained IndInpos IndSpeed IOUnitState IsBrakeCheckActive IsCyclicBool IsFile IsLeadThrough IsMechUnitActive IsPers IsStopMoveAct IsStopStateEvent IsSyncMoveOn IsSysId IsVar + syn keyword rapidBuildInFunction contained Max MaxExtLinearSpeed MaxExtReorientSpeed MaxRobReorientSpeed MaxRobSpeed Min MirPos ModExist ModTime ModTimeDnum MotionPlannerNo + syn keyword rapidBuildInFunction contained NonMotionMode NOrient NumToDnum NumToStr + syn keyword rapidBuildInFunction contained Offs OpMode OrientZYX ORobT + syn keyword rapidBuildInFunction contained ParIdPosValid ParIdRobValid PathLengthGet PathLevel PathRecValidBwd PathRecValidFwd PFRestart PoseInv PoseMult PoseVect Pow PowDnum PPMovedInManMode Present ProgMemFree PrxGetMaxRecordpos + syn keyword rapidBuildInFunction contained RawBytesLen ReadBin ReadDir ReadMotor ReadNum ReadStr ReadStrBin ReadVar RelTool RemainingRetries RMQGetSlotName RobName RobOS Round RoundDnum RunMode + syn keyword rapidBuildInFunction contained SafetyControllerGetChecksum SafetyControllerGetOpModePinCode SafetyControllerGetSWVersion SafetyControllerGetUserChecksum Sin SinDnum SocketGetStatus SocketPeek Sqrt SqrtDnum STCalcForce STCalcTorque STIsCalib STIsClosed STIsIndGun STIsOpen StrDigCalc StrDigCmp StrFind StrLen StrMap StrMatch StrMemb StrOrder StrPart StrToByte StrToVal + syn keyword rapidBuildInFunction contained Tan TanDnum TaskRunMec TaskRunRob TasksInSync TaskIsActive TaskIsExecuting TestAndSet TestDI TestSignRead TextGet TextTabFreeToUse TextTabGet TriggDataValid Trunc TruncDnum Type + syn keyword rapidBuildInFunction contained UIAlphaEntry UIClientExist UIDnumEntry UIDnumTune UIListView UIMessageBox UINumEntry UINumTune + syn keyword rapidBuildInFunction contained ValidIO ValToStr Vectmagn + " Bulls Eye functions + syn keyword rapidBuildInFunction contained OffsToolXYZ OffsToolPolar + " Force Control functions + syn keyword rapidBuildInFunction contained FCGetForce FCGetProcessData FCIsForceMode FCLoadID + " Discrete application platform functions + syn keyword rapidBuildInFunction contained DaGetFstTimeEvt DaCheckMMSOpt DaGetMP DaGetRobotName DaGetTaskName + " Production Manager functions + syn keyword rapidBuildInFunction contained PMgrAtSafe PMgrAtService PMgrAtState PMgrAtStation PMgrNextStation PMgrTaskNumber PMgrTaskName + " Spot functions + syn keyword rapidBuildInFunction contained SwGetCurrTargetName SwGetCurrSpotName + " Homepos-Running functions + syn keyword rapidBuildInFunction contained HR_RobotInHome HR_GetTypeDIndex HR_GetTypeIndex + " Paint functions + syn keyword rapidBuildInFunction contained IndexLookup IpsCommand IpsGetParam PaintCommand PntQueueExtraGet PntQueueExtraSet PntQueuePeek + if g:rapidGroupName + highlight default link rapidBuildInFunction BuildInFunction + else + highlight default link rapidBuildInFunction Function + endif + " }}} + + " Function {{{ + syn match rapidFunction contains=rapidBuildInFunction /\v\c%(<%(PROC|MODULE)\s+)@1032 chars are not possible in rapid. a234567890123456789012345 + syn match rapidErrorIdentifierNameTooLong /\k\{33,}/ containedin=rapidFunction,rapidNames,rapidLabel + highlight default link rapidErrorIdentifierNameTooLong Error + " + " a == b + 1 + syn match rapidErrorShouldBeColonEqual /\c\v%(^\s*%(%(TASK\s+|LOCAL\s+)?%(VAR|PERS|CONST)\s+\k+\s+)?\k+%(\k|[.{},*/+-])*\s*)@<=\=/ + highlight default link rapidErrorShouldBeColonEqual Error + " + " WaitUntil a==b + syn match rapidErrorShouldBeEqual /\c\v%(^\s*%(Return|WaitUntil|while)>[^!\\]+[^!<>])@<=%(\=|:)\=/ + syn match rapidErrorShouldBeEqual /\c\v%(^\s*%(if|elseif)>[^!\\]+[^!<>])@<=%(\=|:)\=\ze[^!\\]+/ + highlight default link rapidErrorShouldBeEqual Error + " + " WaitUntil a=>b + syn match rapidErrorShoudBeLessOrGreaterEqual /\c\v%(^\s*%(Return|WaitUntil|if|elseif|while)>[^!]+[^!<>])@<=\=[><]/ + highlight default link rapidErrorShoudBeLessOrGreaterEqual Error + " + " WaitUntil a>\s*\" +syn match sdcFlags "[[:space:]]-[[:alpha:]_]*\>" " Define the default highlighting. hi def link sdcCollections Repeat diff --git a/runtime/syntax/syncolor.vim b/runtime/syntax/syncolor.vim index 5b907a3b83..6cf38cfa5d 100644 --- a/runtime/syntax/syncolor.vim +++ b/runtime/syntax/syncolor.vim @@ -1,6 +1,7 @@ " Vim syntax support file -" Maintainer: Bram Moolenaar -" Last Change: 2020 Feb 13 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " This file sets up the default methods for highlighting. " It is loaded from "synload.vim" and from Vim for ":syntax reset". diff --git a/runtime/syntax/synload.vim b/runtime/syntax/synload.vim index 70e2d88797..553e8b209e 100644 --- a/runtime/syntax/synload.vim +++ b/runtime/syntax/synload.vim @@ -1,6 +1,7 @@ " Vim syntax support file -" Maintainer: Bram Moolenaar -" Last Change: 2022 Apr 12 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " This file sets up for syntax highlighting. " It is loaded from "syntax.vim" and "manual.vim". diff --git a/runtime/syntax/syntax.vim b/runtime/syntax/syntax.vim index 55a2ee6d71..06b8d8f11f 100644 --- a/runtime/syntax/syntax.vim +++ b/runtime/syntax/syntax.vim @@ -1,6 +1,7 @@ " Vim syntax support file -" Maintainer: Bram Moolenaar -" Last Change: 2022 Apr 12 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " This file is used for ":syntax on". " It installs the autocommands and starts highlighting for all buffers. diff --git a/runtime/syntax/template.vim b/runtime/syntax/template.vim index 5bf580fc11..a59b7b0af9 100644 --- a/runtime/syntax/template.vim +++ b/runtime/syntax/template.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: Generic template -" Maintainer: Bram Moolenaar -" Last Change: 2019 May 06 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/unison.vim b/runtime/syntax/unison.vim new file mode 100644 index 0000000000..fed7551043 --- /dev/null +++ b/runtime/syntax/unison.vim @@ -0,0 +1,103 @@ +" Vim syntax file +" +" Language: unison +" Maintainer: Anton Parkhomenko +" Last Change: Aug 7, 2023 +" Original Author: John Williams, Paul Chiusano and Rúnar Bjarnason + +if exists("b:current_syntax") + finish +endif + +syntax include @markdown $VIMRUNTIME/syntax/markdown.vim + +syn cluster markdownLikeDocs contains=markdownBold,markdownItalic,markdownLinkText,markdownListMarker,markdownOrderedListMarker,markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6 + +syn match unisonOperator "[-!#$%&\*\+/<=>\?@\\^|~]" +syn match unisonDelimiter "[\[\](){},.]" + +" Strings and constants +syn match unisonSpecialChar contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)" +syn match unisonSpecialChar contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)" +syn match unisonSpecialCharError contained "\\&\|'''\+" +syn region unisonString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=unisonSpecialChar +syn match unisonCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=unisonSpecialChar,unisonSpecialCharError +syn match unisonCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=unisonSpecialChar,unisonSpecialCharError +syn match unisonNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>" +syn match unisonFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>" + +" Keyword definitions. These must be patterns instead of keywords +" because otherwise they would match as keywords at the start of a +" "literate" comment (see lu.vim). +syn match unisonModule "\" +syn match unisonImport "\" +syn match unisonTypedef "\<\(unique\|structural\|∀\|forall\)\>" +syn match unisonStatement "\<\(ability\|do\|type\|where\|match\|cases\|;\|let\|with\|handle\)\>" +syn match unisonConditional "\<\(if\|else\|then\)\>" + +syn match unisonBoolean "\<\(true\|false\)\>" + +syn match unisonType "\<\C[A-Z][0-9A-Za-z_'!]*\>" +syn match unisonName "\<\C[a-z_][0-9A-Za-z_'!]*\>" + +" Comments +syn match unisonLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" +syn region unisonBlockComment start="{-" end="-}" contains=unisonBlockComment +syn region unisonBelowFold start="^---" skip="." end="." contains=unisonBelowFold + +" Docs +syn region unisonDocBlock matchgroup=unisonDoc start="{{" end="}}" contains=unisonDocTypecheck,unisonDocQuasiquote,unisonDocDirective,unisonDocCode,unisonDocCodeInline,unisonDocCodeRaw,unisonDocMono,@markdownLikeDocs +syn region unisonDocQuasiquote contained matchgroup=unisonDocQuote start="{{" end= "}}" contains=TOP +syn region unisonDocCode contained matchgroup=unisonDocCode start="^\s*```\s*$" end="^\s*```\s*$" contains=TOP +syn region unisonDocTypecheck contained matchgroup=unisonDocCode start="^\s*@typecheck\s*```\s*$" end="^\s*```\s*$" contains=TOP +syn region unisonDocCodeRaw contained matchgroup=unisonDocCode start="^\s*```\s*raw\s*$" end="^\s*```\s*$" contains=NoSyntax +syn region unisonDocCodeInline contained matchgroup=unisonDocCode start="`\@" + +" things like +" > my_func 1 3 +" test> Function.tap.tests.t1 = check let +" use Nat == + +" ( 99, 100 ) === (withInitialValue 0 do +" : : : +syn match unisonWatch "^[A-Za-z]*>" + +hi def link unisonWatch Debug +hi def link unisonDocMono Delimiter +hi def link unisonDocDirective Import +hi def link unisonDocQuote Delimiter +hi def link unisonDocCode Delimiter +hi def link unisonDoc String +hi def link unisonBelowFold Comment +hi def link unisonBlockComment Comment +hi def link unisonBoolean Boolean +hi def link unisonCharacter Character +hi def link unisonComment Comment +hi def link unisonConditional Conditional +hi def link unisonConditional Conditional +hi def link unisonDebug Debug +hi def link unisonDelimiter Delimiter +hi def link unisonDocBlock String +hi def link unisonDocDirective Import +hi def link unisonDocIncluded Import +hi def link unisonFloat Float +hi def link unisonImport Include +hi def link unisonLineComment Comment +hi def link unisonLink Type +hi def link unisonName Identifier +hi def link unisonNumber Number +hi def link unisonOperator Operator +hi def link unisonSpecialChar SpecialChar +hi def link unisonSpecialCharError Error +hi def link unisonStatement Statement +hi def link unisonString String +hi def link unisonType Type +hi def link unisonTypedef Typedef + + +let b:current_syntax = "unison" + +" Options for vi: ts=8 sw=2 sts=2 nowrap noexpandtab ft=vim diff --git a/runtime/syntax/vgrindefs.vim b/runtime/syntax/vgrindefs.vim index 3de31b1437..a194c108cb 100644 --- a/runtime/syntax/vgrindefs.vim +++ b/runtime/syntax/vgrindefs.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: Vgrindefs -" Maintainer: Bram Moolenaar -" Last Change: 2005 Jun 20 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " The Vgrindefs file is used to specify a language for vgrind diff --git a/runtime/syntax/viminfo.vim b/runtime/syntax/viminfo.vim index 667e1bab2a..06c59766d7 100644 --- a/runtime/syntax/viminfo.vim +++ b/runtime/syntax/viminfo.vim @@ -1,7 +1,8 @@ " Vim syntax file " Language: Vim .viminfo file -" Maintainer: Bram Moolenaar -" Last Change: 2016 Jun 05 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/wast.vim b/runtime/syntax/wast.vim index 245d5f6f19..113d65c5a1 100644 --- a/runtime/syntax/wast.vim +++ b/runtime/syntax/wast.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: WebAssembly " Maintainer: rhysd -" Last Change: Jul 29, 2018 +" Last Change: Aug 7, 2023 " For bugs, patches and license go to https://github.com/rhysd/vim-wasm if exists("b:current_syntax") @@ -11,33 +11,42 @@ endif let s:cpo_save = &cpo set cpo&vim -syn cluster wastCluster contains=wastModule,wastInstWithType,wastInstGeneral,wastParamInst,wastControlInst,wastString,wastNamedVar,wastUnnamedVar,wastFloat,wastNumber,wastComment,wastList,wastType +syn cluster wastNotTop contains=wastModule,wastInstWithType,wastInstGetSet,wastInstGeneral,wastParamInst,wastControlInst,wastSimdInst,wastString,wastNamedVar,wastUnnamedVar,wastFloat,wastNumber,wastComment,wastList,wastType " Instructions " https://webassembly.github.io/spec/core/text/instructions.html " Note: memarg (align=,offset=) can be added to memory instructions syn match wastInstWithType "\%((\s*\)\@<=\<\%(i32\|i64\|f32\|f64\|memory\)\.[[:alnum:]_]\+\%(/\%(i32\|i64\|f32\|f64\)\)\=\>\%(\s\+\%(align\|offset\)=\)\=" contained display syn match wastInstGeneral "\%((\s*\)\@<=\<[[:alnum:]_]\+\>" contained display +syn match wastInstGetSet "\%((\s*\)\@<=\<\%(local\|global\)\.\%(get\|set\)\>" contained display " https://webassembly.github.io/spec/core/text/instructions.html#control-instructions -syn match wastControlInst "\%((\s*\)\@<=\<\%(block\|end\|loop\|if\|else\|unreachable\|nop\|br\|br_if\|br_table\|return\|call\|call_indirect\)\>" contained display +syn match wastControlInst "\%((\s*\)\@<=\<\%(block\|end\|loop\|if\|then\|else\|unreachable\|nop\|br\|br_if\|br_table\|return\|call\|call_indirect\)\>" contained display " https://webassembly.github.io/spec/core/text/instructions.html#parametric-instructions syn match wastParamInst "\%((\s*\)\@<=\<\%(drop\|select\)\>" contained display +" SIMD instructions +" https://webassembly.github.io/simd/core/text/instructions.html#simd-instructions +syn match wastSimdInst "\<\%(v128\|i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2)\)\.[[:alnum:]_]\+\%(\s\+\%(i8x16\|i16x8\|i32x4\|i64x2\|f32x4\|f64x2\)\)\=\>" contained display " Identifiers " https://webassembly.github.io/spec/core/text/values.html#text-id -syn match wastNamedVar "$\+[[:alnum:]!#$%&'∗./:=>" display contained " Comments " https://webassembly.github.io/spec/core/text/lexical.html#comments -syn region wastComment start=";;" end="$" display +syn region wastComment start=";;" end="$" syn region wastComment start="(;;\@!" end=";)" -syn region wastList matchgroup=wastListDelimiter start="(;\@!" matchgroup=wastListDelimiter end=";\@ -# Last change: 1999 Feb 02 +# Maintainer: The Vim Project +# Last Change: 2023 Aug 10 +# Former Maintainer: Bram Moolenaar # sx|ansi|any ansi terminal with pessimistic assumptions:\ :co#80:li#24:cl=50\E[;H\E[2J:bs:am:cm=\E[%i%d;%dH:\ diff --git a/runtime/vimrc_example.vim b/runtime/vimrc_example.vim index e11e4cff55..02e4143be6 100644 --- a/runtime/vimrc_example.vim +++ b/runtime/vimrc_example.vim @@ -1,7 +1,8 @@ " An example for a vimrc file. " -" Maintainer: Bram Moolenaar -" Last change: 2019 Dec 17 +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar " " To use it, copy it to " for Unix: ~/.vimrc diff --git a/src/MacVim/MMBackend.m b/src/MacVim/MMBackend.m index a2cdef1865..7bec3d3cb9 100644 --- a/src/MacVim/MMBackend.m +++ b/src/MacVim/MMBackend.m @@ -3397,7 +3397,7 @@ static char_u *extractSelectedText() char_u *ptr = NULL; char_u *cpo_save = p_cpo; p_cpo = (char_u *)"Bk"; - char_u *str = replace_termcodes((char_u *)string, &ptr, REPTERM_DO_LT, NULL); + char_u *str = replace_termcodes((char_u *)string, &ptr, 0, REPTERM_DO_LT, NULL); p_cpo = cpo_save; if (*ptr != NUL) /* trailing CTRL-V results in nothing */ diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak index 426125663c..e4fe0be8fb 100644 --- a/src/Make_cyg_ming.mak +++ b/src/Make_cyg_ming.mak @@ -412,6 +412,9 @@ PYTHON3INC=-I $(PYTHON3)/include else PYTHON3INC=-I $(PYTHON3)/win32inc endif + ifeq ($(DYNAMIC_PYTHON3_STABLE_ABI),yes) +PYTHON3INC += -DPy_LIMITED_API=0x3080000 + endif endif endif @@ -594,6 +597,9 @@ ifdef PYTHON3 CFLAGS += -DFEAT_PYTHON3 ifeq (yes, $(DYNAMIC_PYTHON3)) CFLAGS += -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"$(DYNAMIC_PYTHON3_DLL)\" + ifeq (yes, $(DYNAMIC_PYTHON3_STABLE_ABI)) +CFLAGS += -DDYNAMIC_PYTHON3_STABLE_ABI + endif else CFLAGS += -DPYTHON3_DLL=\"$(DYNAMIC_PYTHON3_DLL)\" endif diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak index f98d905042..e1d42fdcb9 100644 --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -950,7 +950,13 @@ PYTHON3_INC = /I "$(PYTHON3)\Include" /I "$(PYTHON3)\PC" ! if "$(DYNAMIC_PYTHON3)" == "yes" CFLAGS = $(CFLAGS) -DDYNAMIC_PYTHON3 \ -DDYNAMIC_PYTHON3_DLL=\"$(DYNAMIC_PYTHON3_DLL)\" +! if "$(DYNAMIC_PYTHON3_STABLE_ABI)" == "yes" +CFLAGS = $(CFLAGS) -DDYNAMIC_PYTHON3_STABLE_ABI +PYTHON3_INC = $(PYTHON3_INC) -DPy_LIMITED_API=0x3080000 +PYTHON3_LIB = /nodefaultlib:python3.lib +! else PYTHON3_LIB = /nodefaultlib:python$(PYTHON3_VER).lib +! endif ! else CFLAGS = $(CFLAGS) -DPYTHON3_DLL=\"$(DYNAMIC_PYTHON3_DLL)\" PYTHON3_LIB = "$(PYTHON3)\libs\python$(PYTHON3_VER).lib" diff --git a/src/Makefile b/src/Makefile index 53aaff1f9d..48433c8bcb 100644 --- a/src/Makefile +++ b/src/Makefile @@ -102,7 +102,7 @@ # something wrong you may need to change one of the other files. If # you find a clean way to fix the problem, consider sending a note to # the author of autoconf (bug-gnu-utils@prep.ai.mit.edu) or Vim -# (Bram@vim.org). Don't bother to do that when you made a hack +# (vim-dev@vim.org). Don't bother to do that when you made a hack # solution for a non-standard system. # # 4. "make test" {{{1 @@ -2886,7 +2886,7 @@ clean celan: testclean macvimclean -rm -f $(UNITTEST_TARGETS) -rm -f runtime pixmaps -rm -f mzscheme_base.c - -rm -rf libvterm/.libs libterm/t/.libs libvterm/src/*.o libvterm/src/*.lo libvterm/t/*.o libvterm/t/*.lo libvterm/t/harness libvterm/libvterm.la + -rm -rf libvterm/.libs libvterm/src/.libs libvterm/t/.libs libvterm/src/*.o libvterm/src/*.lo libvterm/t/*.o libvterm/t/*.lo libvterm/t/harness libvterm/libvterm.la if test -d $(PODIR); then \ cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) clean; \ fi diff --git a/src/auto/configure b/src/auto/configure index 5869ad0120..803269aff7 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -681,6 +681,7 @@ PYTHON3_SRC PYTHON3_CFLAGS_EXTRA PYTHON3_CFLAGS PYTHON3_LIBS +vi_cv_var_python3_stable_abi vi_cv_path_python3 PYTHON_OBJ PYTHON_SRC @@ -816,6 +817,7 @@ with_python_command with_python_config_dir enable_python3interp with_python3_command +with_python3_stable_abi with_python3_config_dir with_properly_linked_python2_python3 enable_tclinterp @@ -1543,6 +1545,7 @@ Optional Packages: --with-python-command=NAME name of the Python 2 command (default: python2 or python) --with-python-config-dir=PATH Python's config directory (deprecated) --with-python3-command=NAME name of the Python 3 command (default: python3 or python) + --with-python3-stable-abi=VERSION stable ABI version to target (e.g. 3.8) --with-python3-config-dir=PATH Python's config directory (deprecated) --with-properly-linked-python2-python3 Link with properly linked Python 2 and Python 3. --with-tclsh=PATH which tclsh to use (default: tclsh8.0) @@ -1994,114 +1997,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_func -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - -# ac_fn_c_find_uintX_t LINENO BITS VAR -# ------------------------------------ -# Finds an unsigned integer type with width BITS, setting cache variable VAR -# accordingly. -ac_fn_c_find_uintX_t () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 -$as_echo_n "checking for uint$2_t... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - # Order is important - never check a type that is potentially smaller - # than half of the expected target width. - for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ - 'unsigned long long int' 'unsigned short int' 'unsigned char'; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - case $ac_type in #( - uint$2_t) : - eval "$3=yes" ;; #( - *) : - eval "$3=\$ac_type" ;; -esac -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if eval test \"x\$"$3"\" = x"no"; then : - -else - break -fi - done -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_find_uintX_t - # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes @@ -2284,6 +2179,114 @@ rm -f conftest.val as_fn_set_status $ac_retval } # ac_fn_c_compute_int + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_find_uintX_t LINENO BITS VAR +# ------------------------------------ +# Finds an unsigned integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_uintX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +$as_echo_n "checking for uint$2_t... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no"; then : + +else + break +fi + done +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_uintX_t cat >auto/config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -6905,6 +6908,34 @@ $as_echo_n "checking Python is 3.0 or better... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yep" >&5 $as_echo "yep" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-python3-stable-abi argument" >&5 +$as_echo_n "checking --with-python3-stable-abi argument... " >&6; } + + +# Check whether --with-python3-stable-abi was given. +if test "${with_python3_stable_abi+set}" = set; then : + withval=$with_python3_stable_abi; vi_cv_var_python3_stable_abi="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_stable_abi" >&5 +$as_echo "$vi_cv_var_python3_stable_abi" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "X$vi_cv_var_python3_stable_abi" != "X"; then + if ${vi_cv_var_python3_stable_abi_hex+:} false; then : + $as_echo_n "(cached) " >&6 +else + + vi_cv_var_python3_stable_abi_hex=` + ${vi_cv_path_python3} -c \ + "major_minor='${vi_cv_var_python3_stable_abi}'.split('.'); print('0x{0:X}'.format( (int(major_minor.__getitem__(0))<<24) + (int(major_minor.__getitem__(1))<<16) ))"` +fi + + if test "X$vi_cv_var_python3_stable_abi_hex" == "X"; then + as_fn_error $? "can't parse Python 3 stable ABI version. It should be \".\"" "$LINENO" 5 + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's abiflags" >&5 $as_echo_n "checking Python's abiflags... " >&6; } if ${vi_cv_var_python3_abiflags+:} false; then : @@ -7049,9 +7080,12 @@ $as_echo "$vi_cv_dll_name_python3" >&6; } else PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}" fi - if test "X$have_python3_config_dir" = "X1" -a "$enable_python3interp" = "dynamic"; then - PYTHON3_CFLAGS="${PYTHON3_CFLAGS} -DPYTHON3_HOME='L\"${vi_cv_path_python3_pfx}\"'" - fi + if test "X$have_python3_config_dir" = "X1" -a "$enable_python3interp" = "dynamic"; then + PYTHON3_CFLAGS="${PYTHON3_CFLAGS} -DPYTHON3_HOME='L\"${vi_cv_path_python3_pfx}\"'" + fi + if test "X$vi_cv_var_python3_stable_abi_hex" != "X"; then + PYTHON3_CFLAGS="${PYTHON3_CFLAGS} -DPy_LIMITED_API=${vi_cv_var_python3_stable_abi_hex}" + fi PYTHON3_SRC="if_python3.c" PYTHON3_OBJ="objects/if_python3.o" @@ -7170,6 +7204,10 @@ if test "$python_ok" = yes && test "$python3_ok" = yes; then $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h + if test "X$vi_cv_var_python3_stable_abi_hex" != "X"; then + $as_echo "#define DYNAMIC_PYTHON3_STABLE_ABI 1" >>confdefs.h + + fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python" >&5 $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; } cflags_save=$CFLAGS @@ -7374,6 +7412,10 @@ rm -f core conftest.err conftest.$ac_objext \ elif test "$python3_ok" = yes && test "$enable_python3interp" = "dynamic"; then $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h + if test "X$vi_cv_var_python3_stable_abi_hex" != "X"; then + $as_echo "#define DYNAMIC_PYTHON3_STABLE_ABI 1" >>confdefs.h + + fi PYTHON3_SRC="if_python3.c" PYTHON3_OBJ="objects/if_python3.o" PYTHON3_CFLAGS="$PYTHON3_CFLAGS -DDYNAMIC_PYTHON3_DLL=\\\"${vi_cv_dll_name_python3}\\\"" @@ -9426,43 +9468,40 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext LDFLAGS="$ac_save_LDFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t is 2 bytes" >&5 -$as_echo_n "checking size of wchar_t is 2 bytes... " >&6; } - if ${ac_cv_small_wchar_t+:} false; then : + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 +$as_echo_n "checking size of wchar_t... " >&6; } +if ${ac_cv_sizeof_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - as_fn_error $? "failed to compile test program" "$LINENO" 5 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "$ac_includes_default"; then : -#include -#if STDC_HEADERS -# include -# include -#endif - int main() - { - if (sizeof(wchar_t) <= 2) - exit(1); - exit(0); - } +else + if test "$ac_cv_type_wchar_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (wchar_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_wchar_t=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 +$as_echo "$ac_cv_sizeof_wchar_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_small_wchar_t="no" -else - ac_cv_small_wchar_t="yes" -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_small_wchar_t" >&5 -$as_echo "$ac_cv_small_wchar_t" >&6; } - if test "x$ac_cv_small_wchar_t" = "xyes" ; then + if test "$ac_cv_sizeof_wchar_t" -le 2; then $as_echo "#define SMALL_WCHAR_T 1" >>confdefs.h fi diff --git a/src/blob.c b/src/blob.c index 9b409f614e..c5d7eaed64 100644 --- a/src/blob.c +++ b/src/blob.c @@ -769,7 +769,7 @@ blob_reduce( argv[1].v_type = VAR_NUMBER; argv[1].vval.v_number = blob_get(b, i); - r = eval_expr_typval(expr, argv, 2, NULL, rettv); + r = eval_expr_typval(expr, TRUE, argv, 2, NULL, rettv); clear_tv(&argv[0]); if (r == FAIL || called_emsg != called_emsg_start) diff --git a/src/channel.c b/src/channel.c index b8bc23ab97..f2ec61f20a 100644 --- a/src/channel.c +++ b/src/channel.c @@ -945,7 +945,9 @@ channel_open( CLEAR_FIELD(hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; -# if defined(AI_ADDRCONFIG) && defined(AI_V4MAPPED) +# if defined(__ANDROID__) + hints.ai_flags = AI_ADDRCONFIG; +# elif defined(AI_ADDRCONFIG) && defined(AI_V4MAPPED) hints.ai_flags = AI_ADDRCONFIG | AI_V4MAPPED; # endif // Set port number manually in order to prevent name resolution services diff --git a/src/charset.c b/src/charset.c index 92567bf7bc..14373c1c3d 100644 --- a/src/charset.c +++ b/src/charset.c @@ -769,14 +769,6 @@ linetabsize_col(int startcol, char_u *s) init_chartabsize_arg(&cts, curwin, 0, startcol, s, s); while (*cts.cts_ptr != NUL) cts.cts_vcol += lbr_chartabsize_adv(&cts); -#ifdef FEAT_PROP_POPUP - if (cts.cts_has_prop_with_text && cts.cts_ptr == cts.cts_line) - { - // check for virtual text in an empty line - (void)lbr_chartabsize_adv(&cts); - cts.cts_vcol += cts.cts_cur_text_width; - } -#endif clear_chartabsize_arg(&cts); return (int)cts.cts_vcol; } @@ -816,16 +808,14 @@ win_linetabsize_cts(chartabsize_T *cts, colnr_T len) MB_PTR_ADV(cts->cts_ptr)) cts->cts_vcol += win_lbr_chartabsize(cts, NULL); #ifdef FEAT_PROP_POPUP - // check for a virtual text on an empty line - if (cts->cts_has_prop_with_text && *cts->cts_ptr == NUL - && cts->cts_ptr == cts->cts_line) + // check for a virtual text at the end of a line or on an empty line + if (cts->cts_has_prop_with_text && *cts->cts_ptr == NUL) { (void)win_lbr_chartabsize(cts, NULL); cts->cts_vcol += cts->cts_cur_text_width; - // when properties are above or below the empty line must also be // counted - if (cts->cts_prop_lines > 0) + if (cts->cts_ptr == cts->cts_line && cts->cts_prop_lines > 0) ++cts->cts_vcol; } #endif @@ -1198,7 +1188,7 @@ win_lbr_chartabsize( || (tp->tp_col == MAXCOL && ((tp->tp_flags & TP_FLAG_ALIGN_ABOVE) ? col == 0 - : (s[0] == NUL || s[charlen] == NUL) + : s[0] == NUL && cts->cts_with_trailing))) && -tp->tp_id - 1 < gap->ga_len) { diff --git a/src/clientserver.c b/src/clientserver.c index 26858c3958..cdbd02055a 100644 --- a/src/clientserver.c +++ b/src/clientserver.c @@ -34,7 +34,7 @@ server_to_input_buf(char_u *str) // The last but one parameter of replace_termcodes() is TRUE so that the // sequence is recognised - needed for a real backslash. p_cpo = (char_u *)"Bk"; - str = replace_termcodes(str, &ptr, REPTERM_DO_LT, NULL); + str = replace_termcodes(str, &ptr, 0, REPTERM_DO_LT, NULL); p_cpo = cpo_save; if (*ptr != NUL) // trailing CTRL-V results in nothing diff --git a/src/cmdexpand.c b/src/cmdexpand.c index 2d78c393f2..0f91380ada 100644 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -691,16 +691,15 @@ win_redr_status_matches( /* * Get the next or prev cmdline completion match. The index of the match is set - * in "p_findex" + * in "xp->xp_selected" */ static char_u * get_next_or_prev_match( int mode, expand_T *xp, - int *p_findex, char_u *orig_save) { - int findex = *p_findex; + int findex = xp->xp_selected; int ht; if (xp->xp_numfiles <= 0) @@ -778,7 +777,7 @@ get_next_or_prev_match( else if (p_wmnu) win_redr_status_matches(xp, xp->xp_numfiles, xp->xp_files, findex, cmd_showtail); - *p_findex = findex; + xp->xp_selected = findex; if (findex == -1) return vim_strsave(orig_save); @@ -957,7 +956,6 @@ ExpandOne( int mode) { char_u *ss = NULL; - static int findex; // TODO: Move into expand_T static char_u *orig_save = NULL; // kept value of orig int orig_saved = FALSE; int i; @@ -966,14 +964,14 @@ ExpandOne( // first handle the case of using an old match if (mode == WILD_NEXT || mode == WILD_PREV || mode == WILD_PAGEUP || mode == WILD_PAGEDOWN) - return get_next_or_prev_match(mode, xp, &findex, orig_save); + return get_next_or_prev_match(mode, xp, orig_save); if (mode == WILD_CANCEL) ss = vim_strsave(orig_save ? orig_save : (char_u *)""); else if (mode == WILD_APPLY) - ss = vim_strsave(findex == -1 + ss = vim_strsave(xp->xp_selected == -1 ? (orig_save ? orig_save : (char_u *)"") - : xp->xp_files[findex]); + : xp->xp_files[xp->xp_selected]); // free old names if (xp->xp_numfiles != -1 && mode != WILD_ALL && mode != WILD_LONGEST) @@ -986,9 +984,7 @@ ExpandOne( if (compl_match_array != NULL) cmdline_pum_remove(); } - // TODO: Remove condition if "findex" is part of expand_T ? - if (mode != WILD_EXPAND_FREE && mode != WILD_ALL && mode != WILD_ALL_KEEP) - findex = 0; + xp->xp_selected = 0; if (mode == WILD_FREE) // only release file name return NULL; @@ -1006,7 +1002,7 @@ ExpandOne( if (mode == WILD_LONGEST && xp->xp_numfiles > 0) { ss = find_longest_match(xp, options); - findex = -1; // next p_wc gets first one + xp->xp_selected = -1; // next p_wc gets first one } // Concatenate all matching names. Unless interrupted, this can be slow @@ -4029,14 +4025,16 @@ f_getcompletion(typval_T *argvars, typval_T *rettv) ExpandInit(&xpc); if (STRCMP(type, "cmdline") == 0) { - set_one_cmd_context(&xpc, pat); + int cmdline_len = (int)STRLEN(pat); + set_cmd_context(&xpc, pat, cmdline_len, cmdline_len, FALSE); xpc.xp_pattern_len = (int)STRLEN(xpc.xp_pattern); - xpc.xp_col = (int)STRLEN(pat); + xpc.xp_col = cmdline_len; } else { xpc.xp_pattern = pat; xpc.xp_pattern_len = (int)STRLEN(xpc.xp_pattern); + xpc.xp_line = pat; xpc.xp_context = cmdcomplete_str_to_type(type); if (xpc.xp_context == EXPAND_NOTHING) @@ -4045,6 +4043,30 @@ f_getcompletion(typval_T *argvars, typval_T *rettv) return; } + if (xpc.xp_context == EXPAND_USER_DEFINED) + { + // Must be "custom,funcname" pattern + if (STRNCMP(type, "custom,", 7) != 0) + { + semsg(_(e_invalid_argument_str), type); + return; + } + + xpc.xp_arg = type + 7; + } + + if (xpc.xp_context == EXPAND_USER_LIST) + { + // Must be "customlist,funcname" pattern + if (STRNCMP(type, "customlist,", 11) != 0) + { + semsg(_(e_invalid_argument_str), type); + return; + } + + xpc.xp_arg = type + 11; + } + # if defined(FEAT_MENU) if (xpc.xp_context == EXPAND_MENUS) { diff --git a/src/config.h.in b/src/config.h.in index d0257ccabe..93972ca0cc 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -354,6 +354,9 @@ /* Define for linking via dlopen() or LoadLibrary() */ #undef DYNAMIC_PYTHON3 +/* Define if compiled against Python 3 stable ABI / limited API */ +#undef DYNAMIC_PYTHON3_STABLE_ABI + /* Define if dynamic python does not require RTLD_GLOBAL */ #undef PY_NO_RTLD_GLOBAL diff --git a/src/configure.ac b/src/configure.ac index 7d21efb926..fab2da26d8 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -1611,6 +1611,23 @@ if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then AC_MSG_RESULT(yep) + dnl -- get the stable ABI version if passed in + AC_MSG_CHECKING(--with-python3-stable-abi argument) + AC_SUBST(vi_cv_var_python3_stable_abi) + AC_ARG_WITH(python3-stable-abi, [ --with-python3-stable-abi=VERSION stable ABI version to target (e.g. 3.8)], + vi_cv_var_python3_stable_abi="$withval"; AC_MSG_RESULT($vi_cv_var_python3_stable_abi), + AC_MSG_RESULT(no)) + if test "X$vi_cv_var_python3_stable_abi" != "X"; then + AC_CACHE_VAL(vi_cv_var_python3_stable_abi_hex, + [ + vi_cv_var_python3_stable_abi_hex=` + ${vi_cv_path_python3} -c \ + "major_minor='${vi_cv_var_python3_stable_abi}'.split('.'); print('0x{0:X}'.format( (int(major_minor.__getitem__(0))<<24) + (int(major_minor.__getitem__(1))<<16) ))"` ]) + if test "X$vi_cv_var_python3_stable_abi_hex" == "X"; then + AC_MSG_ERROR([can't parse Python 3 stable ABI version. It should be "."]) + fi + fi + dnl -- get abiflags for python 3.2 or higher (PEP 3149) AC_CACHE_CHECK(Python's abiflags,vi_cv_var_python3_abiflags, [ @@ -1717,10 +1734,13 @@ eof else PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}" fi - if test "X$have_python3_config_dir" = "X1" -a "$enable_python3interp" = "dynamic"; then - dnl Define PYTHON3_HOME if --with-python-config-dir was used - PYTHON3_CFLAGS="${PYTHON3_CFLAGS} -DPYTHON3_HOME='L\"${vi_cv_path_python3_pfx}\"'" - fi + if test "X$have_python3_config_dir" = "X1" -a "$enable_python3interp" = "dynamic"; then + dnl Define PYTHON3_HOME if --with-python-config-dir was used + PYTHON3_CFLAGS="${PYTHON3_CFLAGS} -DPYTHON3_HOME='L\"${vi_cv_path_python3_pfx}\"'" + fi + if test "X$vi_cv_var_python3_stable_abi_hex" != "X"; then + PYTHON3_CFLAGS="${PYTHON3_CFLAGS} -DPy_LIMITED_API=${vi_cv_var_python3_stable_abi_hex}" + fi PYTHON3_SRC="if_python3.c" PYTHON3_OBJ="objects/if_python3.o" @@ -1806,6 +1826,9 @@ dnl with dlopen(), dlsym(), dlclose() if test "$python_ok" = yes && test "$python3_ok" = yes; then AC_DEFINE(DYNAMIC_PYTHON) AC_DEFINE(DYNAMIC_PYTHON3) + if test "X$vi_cv_var_python3_stable_abi_hex" != "X"; then + AC_DEFINE(DYNAMIC_PYTHON3_STABLE_ABI) + fi AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python) cflags_save=$CFLAGS CFLAGS="$CFLAGS $PYTHON_CFLAGS" @@ -1947,6 +1970,9 @@ elif test "$python_ok" = yes; then fi elif test "$python3_ok" = yes && test "$enable_python3interp" = "dynamic"; then AC_DEFINE(DYNAMIC_PYTHON3) + if test "X$vi_cv_var_python3_stable_abi_hex" != "X"; then + AC_DEFINE(DYNAMIC_PYTHON3_STABLE_ABI) + fi PYTHON3_SRC="if_python3.c" PYTHON3_OBJ="objects/if_python3.o" PYTHON3_CFLAGS="$PYTHON3_CFLAGS -DDYNAMIC_PYTHON3_DLL=\\\"${vi_cv_dll_name_python3}\\\"" @@ -2581,25 +2607,8 @@ else LDFLAGS="$ac_save_LDFLAGS" - AC_MSG_CHECKING(size of wchar_t is 2 bytes) - AC_CACHE_VAL(ac_cv_small_wchar_t, - [AC_RUN_IFELSE([AC_LANG_SOURCE([ -#include -#if STDC_HEADERS -# include -# include -#endif - int main() - { - if (sizeof(wchar_t) <= 2) - exit(1); - exit(0); - }])], - ac_cv_small_wchar_t="no", - ac_cv_small_wchar_t="yes", - AC_MSG_ERROR(failed to compile test program))]) - AC_MSG_RESULT($ac_cv_small_wchar_t) - if test "x$ac_cv_small_wchar_t" = "xyes" ; then + AC_CHECK_SIZEOF([wchar_t]) + if test "$ac_cv_sizeof_wchar_t" -le 2; then AC_DEFINE(SMALL_WCHAR_T) fi diff --git a/src/crypt.c b/src/crypt.c index 9f0f68a2d4..d5d216b35f 100644 --- a/src/crypt.c +++ b/src/crypt.c @@ -77,6 +77,12 @@ typedef struct { static int crypt_sodium_init_(cryptstate_T *state, char_u *key, crypt_arg_T *arg); static long crypt_sodium_buffer_decode(cryptstate_T *state, char_u *from, size_t len, char_u **buf_out, int last); static long crypt_sodium_buffer_encode(cryptstate_T *state, char_u *from, size_t len, char_u **buf_out, int last); +# if defined(FEAT_SODIUM) || defined(PROTO) +static void crypt_long_long_to_char(long long n, char_u *s); +static void crypt_int_to_char(int n, char_u *s); +static long long crypt_char_to_long_long(char_u *s); +static int crypt_char_to_int(char_u *s); +#endif #if defined(FEAT_EVAL) && defined(FEAT_SODIUM) static void crypt_sodium_report_hash_params(unsigned long long opslimit, unsigned long long ops_def, size_t memlimit, size_t mem_def, int alg, int alg_def); #endif @@ -966,35 +972,45 @@ crypt_sodium_init_( // "cat_add" should not be NULL, check anyway for safety if (state->method_nr == CRYPT_M_SOD2 && arg->cat_add != NULL) { - memcpy(arg->cat_add, &opslimit, sizeof(opslimit)); - arg->cat_add += sizeof(opslimit); + char_u buffer[20]; + char_u *p = buffer; + vim_memset(buffer, 0, 20); - memcpy(arg->cat_add, &memlimit, sizeof(memlimit)); - arg->cat_add += sizeof(memlimit); + crypt_long_long_to_char(opslimit, p); + p += sizeof(opslimit); - memcpy(arg->cat_add, &alg, sizeof(alg)); - arg->cat_add += sizeof(alg); + crypt_long_long_to_char(memlimit, p); + p += sizeof(memlimit); + + crypt_int_to_char(alg, p); + memcpy(arg->cat_add, buffer, sizeof(opslimit) + sizeof(memlimit) + sizeof(alg)); } } else { + char_u buffer[20]; + char_u *p = buffer; + vim_memset(buffer, 0, 20); + int size = sizeof(opslimit) + + sizeof(memlimit) + sizeof(alg); + // Reading parameters from file - if (arg->cat_add_len - < (int)(sizeof(opslimit) + sizeof(memlimit) + sizeof(alg))) + if (arg->cat_add_len < size) { sodium_free(sd_state); return FAIL; } // derive the key from the file header - memcpy(&opslimit, arg->cat_add, sizeof(opslimit)); - arg->cat_add += sizeof(opslimit); + memcpy(p, arg->cat_add, size); + arg->cat_add += size; - memcpy(&memlimit, arg->cat_add, sizeof(memlimit)); - arg->cat_add += sizeof(memlimit); - - memcpy(&alg, arg->cat_add, sizeof(alg)); - arg->cat_add += sizeof(alg); + opslimit = crypt_char_to_long_long(p); + p += sizeof(opslimit); + memlimit = crypt_char_to_long_long(p); + p += sizeof(memlimit); + alg = crypt_char_to_int(p); + p += sizeof(alg); #ifdef FEAT_EVAL crypt_sodium_report_hash_params(opslimit, @@ -1327,6 +1343,63 @@ crypt_sodium_report_hash_params( } } #endif + + static void +crypt_long_long_to_char(long long n, char_u *s) +{ + int i; + for (i = 0; i < 8; i++) + { + s[i] = (char_u)(n & 0xff); + n = (unsigned)n >> 8; + } +} + + static void +crypt_int_to_char(int n, char_u *s) +{ + int i; + for (i = 0; i < 4; i++) + { + s[i] = (char_u)(n & 0xff); + n = (unsigned)n >> 8; + } +} + + static long long +crypt_char_to_long_long(char_u *s) +{ + unsigned long long retval = 0; + int i; + for (i = 7; i >= 0; i--) + { + if (i == 7) + retval = s[i]; + else + retval |= s[i]; + if (i > 0) + retval <<= 8; + } + return retval; +} + + static int +crypt_char_to_int(char_u *s) +{ + int retval = 0; + int i; + + for (i = 3; i >= 0; i--) + { + if (i == 3) + retval = s[i]; + else + retval |= s[i]; + if (i > 0) + retval <<= 8; + } + return retval; +} # endif #endif // FEAT_CRYPT diff --git a/src/dict.c b/src/dict.c index ccd0b5dac2..ce807350cd 100644 --- a/src/dict.c +++ b/src/dict.c @@ -1497,7 +1497,7 @@ dict2list(typval_T *argvars, typval_T *rettv, dict2list_T what) d = argvars[0].vval.v_dict; if (d == NULL) - // empty dict behaves like an empty dict + // NULL dict behaves like an empty dict return; todo = (int)d->dv_hashtab.ht_used; diff --git a/src/drawline.c b/src/drawline.c index 6d0e4747ae..49ea25e8ee 100644 --- a/src/drawline.c +++ b/src/drawline.c @@ -145,7 +145,8 @@ typedef struct { int n_attr_skip; // chars to skip before using extra_attr int c_extra; // extra chars, all the same int c_final; // final char, mandatory if set - int extra_for_textprop; // wlv.n_extra set for textprop + int extra_for_textprop; // n_extra set for textprop + int start_extra_for_textprop; // extra_for_textprop was just set // saved "extra" items for when draw_state becomes WL_LINE (again) int saved_n_extra; @@ -721,7 +722,7 @@ text_prop_position( // add 1 for NUL, 2 for when '…' is used if (n_attr != NULL) - l = alloc(n_used + before + after + padding + 3); + l = alloc(n_used + before + after + (padding > 0 ? padding : 0) + 3); if (n_attr == NULL || l != NULL) { int off = 0; @@ -801,7 +802,7 @@ text_prop_position( // n_attr_skip will not be decremented before draw_state is // WL_LINE - *n_attr_skip = before + padding; + *n_attr_skip = before + (padding > 0 ? padding : 0); } } } @@ -1832,7 +1833,6 @@ win_line( // Repeat for the whole displayed line. for (;;) { - char_u *prev_ptr = ptr; #if defined(FEAT_CONCEAL) || defined(FEAT_SEARCH_EXTRA) int has_match_conc = 0; // match wants to conceal #endif @@ -1940,20 +1940,6 @@ win_line( if (wlv.draw_state == WL_LINE && (area_highlighting || extra_check)) { - // handle Visual or match highlighting in this line - if (wlv.vcol == wlv.fromcol - || (has_mbyte && wlv.vcol + 1 == wlv.fromcol - && wlv.n_extra == 0 - && (*mb_ptr2cells)(ptr) > 1) - || ((int)vcol_prev == fromcol_prev - && vcol_prev < wlv.vcol // not at margin - && wlv.vcol < wlv.tocol)) - area_attr = vi_attr; // start highlighting - else if (area_attr != 0 - && (wlv.vcol == wlv.tocol - || (noinvcur && (colnr_T)wlv.vcol == wp->w_virtcol))) - area_attr = 0; // stop highlighting - #ifdef FEAT_PROP_POPUP if (text_props != NULL) { @@ -2023,7 +2009,13 @@ win_line( ++text_prop_next; } - if (wlv.n_extra == 0 || !wlv.extra_for_textprop) + if (wlv.n_extra == 0 || + (!wlv.extra_for_textprop +#ifdef FEAT_PROP_POPUP + && !(text_prop_type != NULL && + text_prop_flags & PT_FLAG_OVERRIDE) +#endif + )) { text_prop_attr = 0; text_prop_attr_comb = 0; @@ -2132,15 +2124,10 @@ win_line( wlv.c_final = NUL; wlv.n_extra = (int)STRLEN(p); wlv.extra_for_textprop = TRUE; + wlv.start_extra_for_textprop = TRUE; wlv.extra_attr = hl_combine_attr(wlv.win_attr, used_attr); n_attr = mb_charlen(p); - // restore search_attr and area_attr when n_extra - // is down to zero - saved_search_attr = search_attr; - saved_area_attr = area_attr; - search_attr = 0; - area_attr = 0; text_prop_attr = 0; text_prop_attr_comb = 0; if (*ptr == NUL) @@ -2259,8 +2246,40 @@ win_line( // Or when not wrapping and at the rightmost column. text_prop_follows = TRUE; } + + if (wlv.start_extra_for_textprop) + { + wlv.start_extra_for_textprop = FALSE; + // restore search_attr and area_attr when n_extra + // is down to zero + saved_search_attr = search_attr; + saved_area_attr = area_attr; + search_attr = 0; + area_attr = 0; + } #endif + int *area_attr_p = +#ifdef FEAT_PROP_POPUP + wlv.extra_for_textprop ? &saved_area_attr : +#endif + &area_attr; + + // handle Visual or match highlighting in this line + if (wlv.vcol == wlv.fromcol + || (has_mbyte && wlv.vcol + 1 == wlv.fromcol + && ((wlv.n_extra == 0 && (*mb_ptr2cells)(ptr) > 1) + || (wlv.n_extra > 0 && wlv.p_extra != NULL + && (*mb_ptr2cells)(wlv.p_extra) > 1))) + || ((int)vcol_prev == fromcol_prev + && vcol_prev < wlv.vcol // not at margin + && wlv.vcol < wlv.tocol)) + *area_attr_p = vi_attr; // start highlighting + else if (*area_attr_p != 0 + && (wlv.vcol == wlv.tocol + || (noinvcur && (colnr_T)wlv.vcol == wp->w_virtcol))) + *area_attr_p = 0; // stop highlighting + #ifdef FEAT_SEARCH_EXTRA if (wlv.n_extra == 0) { @@ -2273,7 +2292,6 @@ win_line( &match_conc, did_line_attr, lcs_eol_one, &on_last_col); ptr = line + v; // "line" may have been changed - prev_ptr = ptr; // Do not allow a conceal over EOL otherwise EOL will be missed // and bad things happen. @@ -2355,7 +2373,6 @@ win_line( // have made it invalid. line = ml_get_buf(wp->w_buffer, lnum, FALSE); ptr = line + v; - prev_ptr = ptr; # ifdef FEAT_CONCEAL // no concealing past the end of the line, it interferes // with line highlighting @@ -2566,7 +2583,9 @@ win_line( #ifdef FEAT_LINEBREAK int c0; #endif - prev_ptr = ptr; +#ifdef FEAT_SPELL + char_u *prev_ptr = ptr; +#endif // Get a character from the line itself. c = *ptr; @@ -3265,6 +3284,12 @@ win_line( n_attr = wlv.n_extra + 1; wlv.extra_attr = hl_combine_attr(wlv.win_attr, HL_ATTR(HLF_8)); +#ifdef FEAT_PROP_POPUP + if (text_prop_type != NULL && + text_prop_flags & PT_FLAG_OVERRIDE) + wlv.extra_attr = hl_combine_attr(text_prop_attr, wlv.extra_attr); +#endif + saved_attr2 = wlv.char_attr; // save current attr } mb_utf8 = FALSE; // don't draw as UTF-8 @@ -3316,6 +3341,13 @@ win_line( || (wp->w_p_list && wp->w_lcs_chars.eol > 0))) wlv.char_attr = wlv.line_attr; +#ifdef FEAT_SIGNS + // At end of line: if Sign is present with line highlight, reset char_attr + // but not when cursorline is active + if (sign_present && wlv.sattr.sat_linehl > 0 && wlv.draw_state == WL_LINE + && !(wp->w_p_cul && lnum == wp->w_cursor.lnum)) + wlv.char_attr = wlv.sattr.sat_linehl; +#endif # ifdef FEAT_DIFF if (wlv.diff_hlf == HLF_TXD) { @@ -3764,9 +3796,11 @@ win_line( } #endif + if (wlv.draw_state == WL_LINE) + vcol_prev = wlv.vcol; + // Store character to be displayed. // Skip characters that are left of the screen for 'nowrap'. - vcol_prev = wlv.vcol; if (wlv.draw_state < WL_LINE || n_skip <= 0) { // Store the character. @@ -3812,7 +3846,7 @@ win_line( else ScreenAttrs[wlv.off] = wlv.char_attr; - ScreenCols[wlv.off] = (colnr_T)(prev_ptr - line); + ScreenCols[wlv.off] = wlv.vcol; if (has_mbyte && (*mb_char2cells)(mb_c) > 1) { @@ -3836,7 +3870,7 @@ win_line( if (wlv.tocol == wlv.vcol) ++wlv.tocol; - ScreenCols[wlv.off] = (colnr_T)(prev_ptr - line); + ScreenCols[wlv.off] = wlv.vcol; #ifdef FEAT_RIGHTLEFT if (wp->w_p_rl) diff --git a/src/drawscreen.c b/src/drawscreen.c index 283c7a5c7c..1df3c6fd62 100644 --- a/src/drawscreen.c +++ b/src/drawscreen.c @@ -1792,7 +1792,8 @@ win_update(win_T *wp) j = wp->w_lines[0].wl_lnum - wp->w_topline; if (j < wp->w_height - 2) // not too far off { - i = plines_m_win(wp, wp->w_topline, wp->w_lines[0].wl_lnum - 1); + i = plines_m_win(wp, wp->w_topline, wp->w_lines[0].wl_lnum - 1, + TRUE); #ifdef FEAT_DIFF // insert extra lines for previously invisible filler lines if (wp->w_lines[0].wl_lnum != wp->w_topline) @@ -2342,7 +2343,7 @@ win_update(win_T *wp) { int n = plines_win_nofill(wp, l, FALSE) + wp->w_topfill; - n = adjust_plines_for_skipcol(wp, n); + n -= adjust_plines_for_skipcol(wp); if (n > wp->w_height) n = wp->w_height; new_rows += n; diff --git a/src/errors.h b/src/errors.h index fcd5487d9c..00c32a98e1 100644 --- a/src/errors.h +++ b/src/errors.h @@ -1807,7 +1807,8 @@ EXTERN char e_funcref_variable_name_must_start_with_capital_str[] INIT(= N_("E704: Funcref variable name must start with a capital: %s")); EXTERN char e_variable_name_conflicts_with_existing_function_str[] INIT(= N_("E705: Variable name conflicts with existing function: %s")); -// E706 unused +EXTERN char e_argument_of_str_must_be_list_string_or_dictionary[] + INIT(= N_("E706: Argument of %s must be a List, String or Dictionary")); EXTERN char e_function_name_conflicts_with_variable_str[] INIT(= N_("E707: Function name conflicts with variable: %s")); EXTERN char e_slice_must_come_last[] @@ -3482,3 +3483,23 @@ EXTERN char e_incomplete_type[] #endif EXTERN char e_warning_pointer_block_corrupted[] INIT(= N_("E1364: Warning: Pointer block corrupted")); +EXTERN char e_cannot_use_a_return_type_with_new[] + INIT(= N_("E1365: Cannot use a return type with the \"new\" function")); +EXTERN char e_cannot_mix_positional_and_non_positional_str[] + INIT(= N_("E1400: Cannot mix positional and non-positional arguments: %s")); +EXTERN char e_fmt_arg_nr_unused_str[] + INIT(= N_("E1401: format argument %d unused in $-style format: %s")); +EXTERN char e_positional_num_field_spec_reused_str_str[] + INIT(= N_("E1402: Positional argument %d used as field width reused as different type: %s/%s")); +EXTERN char e_positional_nr_out_of_bounds_str[] + INIT(= N_("E1403: Positional argument %d out of bounds: %s")); +EXTERN char e_positional_arg_num_type_inconsistent_str_str[] + INIT(= N_("E1404: Positional argument %d type used inconsistently: %s/%s")); +EXTERN char e_invalid_format_specifier_str[] + INIT(= N_("E1405: Invalid format specifier: %s")); +EXTERN char e_member_str_type_mismatch_expected_str_but_got_str[] + INIT(= N_("E1406: Member \"%s\": type mismatch, expected %s but got %s")); +EXTERN char e_method_str_type_mismatch_expected_str_but_got_str[] + INIT(= N_("E1407: Member \"%s\": type mismatch, expected %s but got %s")); + +// E1366 - E1399 unused diff --git a/src/eval.c b/src/eval.c index 8660a25d50..ad02c2c965 100644 --- a/src/eval.c +++ b/src/eval.c @@ -252,12 +252,14 @@ eval_expr_get_funccal(typval_T *expr, typval_T *rettv) /* * Evaluate an expression, which can be a function, partial or string. * Pass arguments "argv[argc]". + * If "want_func" is TRUE treat a string as a function name, not an expression. * "fc_arg" is from eval_expr_get_funccal() or NULL; * Return the result in "rettv" and OK or FAIL. */ int eval_expr_typval( typval_T *expr, + int want_func, typval_T *argv, int argc, funccall_T *fc_arg, @@ -267,17 +269,7 @@ eval_expr_typval( char_u buf[NUMBUFLEN]; funcexe_T funcexe; - if (expr->v_type == VAR_FUNC) - { - s = expr->vval.v_string; - if (s == NULL || *s == NUL) - return FAIL; - CLEAR_FIELD(funcexe); - funcexe.fe_evaluate = TRUE; - if (call_func(s, -1, rettv, argc, argv, &funcexe) == FAIL) - return FAIL; - } - else if (expr->v_type == VAR_PARTIAL) + if (expr->v_type == VAR_PARTIAL) { partial_T *partial = expr->vval.v_partial; @@ -318,6 +310,18 @@ eval_expr_typval( { return exe_typval_instr(expr, rettv); } + else if (expr->v_type == VAR_FUNC || want_func) + { + s = expr->v_type == VAR_FUNC + ? expr->vval.v_string + : tv_get_string_buf_chk_strict(expr, buf, in_vim9script()); + if (s == NULL || *s == NUL) + return FAIL; + CLEAR_FIELD(funcexe); + funcexe.fe_evaluate = TRUE; + if (call_func(s, -1, rettv, argc, argv, &funcexe) == FAIL) + return FAIL; + } else { s = tv_get_string_buf_chk_strict(expr, buf, in_vim9script()); @@ -346,7 +350,7 @@ eval_expr_to_bool(typval_T *expr, int *error) typval_T rettv; int res; - if (eval_expr_typval(expr, NULL, 0, NULL, &rettv) == FAIL) + if (eval_expr_typval(expr, FALSE, NULL, 0, NULL, &rettv) == FAIL) { *error = TRUE; return FALSE; @@ -3855,7 +3859,6 @@ eval8( { where_T where = WHERE_INIT; - where.wt_variable = TRUE; res = check_type(want_type, actual, TRUE, where); } } diff --git a/src/evalfunc.c b/src/evalfunc.c index cb0c557269..6fb301f580 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -646,6 +646,7 @@ check_map_filter_arg2(type_T *type, argcontext_T *context, int is_map) t_func_exp.tt_argcount = -1; where.wt_index = 2; + where.wt_kind = WT_ARGUMENT; return check_type(&t_func_exp, type, TRUE, where); } return OK; @@ -713,6 +714,7 @@ arg_sort_how(type_T *type, type_T *decl_type UNUSED, argcontext_T *context) if (type->tt_argcount == -1) t_func_exp.tt_argcount = -1; where.wt_index = 2; + where.wt_kind = WT_ARGUMENT; return check_type(&t_func_exp, type, TRUE, where); } @@ -1069,7 +1071,6 @@ static argcheck_T arg2_string_dict[] = {arg_string, arg_dict_any}; static argcheck_T arg2_string_list_number[] = {arg_string, arg_list_number}; static argcheck_T arg2_string_number[] = {arg_string, arg_number}; static argcheck_T arg2_string_or_list_dict[] = {arg_string_or_list_any, arg_dict_any}; -static argcheck_T arg2_string_or_list_bool[] = {arg_string_or_list_any, arg_bool}; static argcheck_T arg2_string_or_list_number[] = {arg_string_or_list_any, arg_number}; static argcheck_T arg2_string_string_or_number[] = {arg_string, arg_string_or_nr}; static argcheck_T arg3_any_list_dict[] = {NULL, arg_list_any, arg_dict_any}; @@ -1093,6 +1094,7 @@ static argcheck_T arg3_string_bool_bool[] = {arg_string, arg_bool, arg_bool}; static argcheck_T arg3_string_number_bool[] = {arg_string, arg_number, arg_bool}; static argcheck_T arg3_string_number_number[] = {arg_string, arg_number, arg_number}; static argcheck_T arg3_string_or_dict_bool_dict[] = {arg_string_or_dict_any, arg_bool, arg_dict_any}; +static argcheck_T arg3_string_or_list_bool_number[] = {arg_string_or_list_any, arg_bool, arg_number}; static argcheck_T arg3_string_string_bool[] = {arg_string, arg_string, arg_bool}; static argcheck_T arg3_string_string_dict[] = {arg_string, arg_string, arg_dict_any}; static argcheck_T arg3_string_string_number[] = {arg_string, arg_string, arg_number}; @@ -1568,7 +1570,7 @@ ret_virtcol(int argcount, type_T **decl_type) { // Assume that if the second argument is passed it's non-zero - if (argcount == 2) + if (argcount > 1) { *decl_type = &t_list_any; return &t_list_number; @@ -2801,7 +2803,7 @@ static funcentry_T global_functions[] = ret_string, f_typename}, {"undofile", 1, 1, FEARG_1, arg1_string, ret_string, f_undofile}, - {"undotree", 0, 0, 0, NULL, + {"undotree", 0, 1, FEARG_1, arg1_buffer, ret_dict_any, f_undotree}, {"uniq", 1, 3, FEARG_1, arg13_sortuniq, ret_first_arg, f_uniq}, @@ -2809,7 +2811,7 @@ static funcentry_T global_functions[] = ret_number, f_utf16idx}, {"values", 1, 1, FEARG_1, arg1_dict_any, ret_list_member, f_values}, - {"virtcol", 1, 2, FEARG_1, arg2_string_or_list_bool, + {"virtcol", 1, 3, FEARG_1, arg3_string_or_list_bool_number, ret_virtcol, f_virtcol}, {"virtcol2col", 3, 3, FEARG_1, arg3_number, ret_number, f_virtcol2col}, @@ -3939,7 +3941,7 @@ f_err_teapot(typval_T *argvars, typval_T *rettv UNUSED) if (argvars[0].v_type == VAR_STRING) { char_u *s = tv_get_string_strict(&argvars[0]); - if (s == NULL || *skipwhite(s) == NUL) + if (*skipwhite(s) == NUL) return; } @@ -6180,6 +6182,13 @@ f_has(typval_T *argvars, typval_T *rettv) 1 #else 0 +#endif + }, + {"python3_stable", +#if defined(FEAT_PYTHON3) && defined(DYNAMIC_PYTHON3_STABLE_ABI) + 1 +#else + 0 #endif }, {"python3", @@ -6976,7 +6985,7 @@ indexof_eval_expr(typval_T *expr) argv[1] = *get_vim_var_tv(VV_VAL); newtv.v_type = VAR_UNKNOWN; - if (eval_expr_typval(expr, argv, 2, NULL, &newtv) == FAIL) + if (eval_expr_typval(expr, FALSE, argv, 2, NULL, &newtv) == FAIL) return FALSE; found = tv_get_bool_chk(&newtv, &error); @@ -10775,7 +10784,7 @@ f_type(typval_T *argvars, typval_T *rettv) } /* - * "virtcol(string, bool)" function + * "virtcol({expr}, [, {list} [, {winid}]])" function */ static void f_virtcol(typval_T *argvars, typval_T *rettv) @@ -10783,15 +10792,35 @@ f_virtcol(typval_T *argvars, typval_T *rettv) colnr_T vcol_start = 0; colnr_T vcol_end = 0; pos_T *fp; - int fnum = curbuf->b_fnum; + switchwin_T switchwin; + int winchanged = FALSE; int len; if (in_vim9script() && (check_for_string_or_list_arg(argvars, 0) == FAIL || (argvars[1].v_type != VAR_UNKNOWN - && check_for_bool_arg(argvars, 1) == FAIL))) + && (check_for_bool_arg(argvars, 1) == FAIL + || check_for_opt_number_arg(argvars, 2) == FAIL)))) return; + if (argvars[1].v_type != VAR_UNKNOWN && argvars[2].v_type != VAR_UNKNOWN) + { + tabpage_T *tp; + win_T *wp; + + // use the window specified in the third argument + wp = win_id2wp_tp((int)tv_get_number(&argvars[2]), &tp); + if (wp == NULL || tp == NULL) + goto theend; + + if (switch_win_noblock(&switchwin, wp, tp, TRUE) != OK) + goto theend; + + check_cursor(); + winchanged = TRUE; + } + + int fnum = curbuf->b_fnum; fp = var2fpos(&argvars[0], FALSE, &fnum, FALSE); if (fp != NULL && fp->lnum <= curbuf->b_ml.ml_line_count && fnum == curbuf->b_fnum) @@ -10810,6 +10839,7 @@ f_virtcol(typval_T *argvars, typval_T *rettv) ++vcol_end; } +theend: if (argvars[1].v_type != VAR_UNKNOWN && tv_get_bool(&argvars[1])) { if (rettv_list_alloc(rettv) == OK) @@ -10822,6 +10852,9 @@ f_virtcol(typval_T *argvars, typval_T *rettv) } else rettv->vval.v_number = vcol_end; + + if (winchanged) + restore_win_noblock(&switchwin, TRUE); } /* diff --git a/src/evalvars.c b/src/evalvars.c index a47a2ab262..6d38983466 100644 --- a/src/evalvars.c +++ b/src/evalvars.c @@ -157,6 +157,7 @@ static struct vimvar {VV_NAME("sizeoflong", VAR_NUMBER), NULL, VV_RO}, {VV_NAME("sizeofpointer", VAR_NUMBER), NULL, VV_RO}, {VV_NAME("maxcol", VAR_NUMBER), NULL, VV_RO}, + {VV_NAME("python3_version", VAR_NUMBER), NULL, VV_RO}, // MacVim-specific value go here {VV_NAME("os_appearance", VAR_NUMBER), NULL, VV_RO}, }; @@ -266,6 +267,10 @@ evalvars_init(void) set_vim_var_dict(VV_COLORNAMES, dict_alloc()); +#ifdef FEAT_PYTHON3 + set_vim_var_nr(VV_PYTHON3_VERSION, python3_version()); +#endif + // Default for v:register is not 0 but '"'. This is adjusted once the // clipboard has been setup by calling reset_reg_var(). set_reg_var(0); @@ -3841,8 +3846,11 @@ set_var_const( if (sv != NULL) { // check the type and adjust to bool if needed - where.wt_index = var_idx; - where.wt_variable = TRUE; + if (var_idx > 0) + { + where.wt_index = var_idx; + where.wt_kind = WT_VARIABLE; + } if (check_script_var_type(sv, tv, name, where) == FAIL) goto failed; if (type == NULL) diff --git a/src/ex_getln.c b/src/ex_getln.c index a33f069d51..a76319d47e 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -122,6 +122,7 @@ empty_pattern_magic(char_u *p, size_t len, magic_T magic_val) typedef struct { colnr_T vs_curswant; colnr_T vs_leftcol; + colnr_T vs_skipcol; linenr_T vs_topline; # ifdef FEAT_DIFF int vs_topfill; @@ -135,6 +136,7 @@ save_viewstate(viewstate_T *vs) { vs->vs_curswant = curwin->w_curswant; vs->vs_leftcol = curwin->w_leftcol; + vs->vs_skipcol = curwin->w_skipcol; vs->vs_topline = curwin->w_topline; # ifdef FEAT_DIFF vs->vs_topfill = curwin->w_topfill; @@ -148,6 +150,7 @@ restore_viewstate(viewstate_T *vs) { curwin->w_curswant = vs->vs_curswant; curwin->w_leftcol = vs->vs_leftcol; + curwin->w_skipcol = vs->vs_skipcol; curwin->w_topline = vs->vs_topline; # ifdef FEAT_DIFF curwin->w_topfill = vs->vs_topfill; @@ -4161,6 +4164,7 @@ get_cmdline_str(void) get_cmdline_completion(void) { cmdline_info_T *p; + char_u *buffer; if (cmdline_star > 0) return NULL; @@ -4174,10 +4178,19 @@ get_cmdline_completion(void) return NULL; char_u *cmd_compl = cmdcomplete_type_to_str(p->xpc->xp_context); - if (cmd_compl != NULL) - return vim_strsave(cmd_compl); + if (cmd_compl == NULL) + return NULL; - return NULL; + if (p->xpc->xp_context == EXPAND_USER_LIST || p->xpc->xp_context == EXPAND_USER_DEFINED) + { + buffer = alloc(STRLEN(cmd_compl) + STRLEN(p->xpc->xp_arg) + 2); + if (buffer == NULL) + return NULL; + sprintf((char *)buffer, "%s,%s", cmd_compl, p->xpc->xp_arg); + return buffer; + } + + return vim_strsave(cmd_compl); } /* @@ -4622,11 +4635,6 @@ open_cmdwin(void) stuffcharReadbuff(CAR); } } - else if (cmdwin_result == K_XF2) // :qa typed - { - ccline.cmdbuff = vim_strsave((char_u *)"qa"); - cmdwin_result = CAR; - } else if (cmdwin_result == Ctrl_C) { // :q or :close, don't execute any command diff --git a/src/filepath.c b/src/filepath.c index 56d4cf5260..a6bca11c67 100644 --- a/src/filepath.c +++ b/src/filepath.c @@ -1616,7 +1616,7 @@ checkitem_common(void *context, char_u *name, dict_T *dict) argv[0].vval.v_dict = dict; } - if (eval_expr_typval(expr, argv, 1, NULL, &rettv) == FAIL) + if (eval_expr_typval(expr, FALSE, argv, 1, NULL, &rettv) == FAIL) goto theend; // We want to use -1, but also true/false should be allowed. diff --git a/src/getchar.c b/src/getchar.c index 45fe5e3dcf..fe6ed76488 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -1338,6 +1338,16 @@ gotchars(char_u *chars, int len) ++maptick; } +/* + * Record a key. + */ + void +gotchars_nop(void) +{ + char_u nop_buf[3] = { K_SPECIAL, KS_EXTRA, KE_NOP }; + gotchars(nop_buf, 3); +} + /* * Undo the last gotchars() for "len" bytes. To be used when putting a typed * character back into the typeahead buffer, thus gotchars() will be called @@ -3669,14 +3679,9 @@ vgetorpeek(int advance) #endif if (timedout && c == ESC) { - char_u nop_buf[3]; - // When recording there will be no timeout. Add a after the ESC // to avoid that it forms a key code with following characters. - nop_buf[0] = K_SPECIAL; - nop_buf[1] = KS_EXTRA; - nop_buf[2] = KE_NOP; - gotchars(nop_buf, 3); + gotchars_nop(); } --vgetc_busy; diff --git a/src/globals.h b/src/globals.h index 95221f1f0d..4e9d839728 100644 --- a/src/globals.h +++ b/src/globals.h @@ -32,7 +32,7 @@ EXTERN long Columns INIT(= 80); // nr of columns in the screen * The characters that are currently on the screen are kept in ScreenLines[]. * It is a single block of characters, the size of the screen plus one line. * The attributes for those characters are kept in ScreenAttrs[]. - * The byte offset in the line is kept in ScreenCols[]. + * The virtual column in the line is kept in ScreenCols[]. * * "LineOffset[n]" is the offset from ScreenLines[] for the start of line 'n'. * The same value is used for ScreenLinesUC[], ScreenAttrs[] and ScreenCols[]. @@ -1676,6 +1676,19 @@ EXTERN int cmdwin_result INIT(= 0); // result of cmdline window or 0 EXTERN char_u no_lines_msg[] INIT(= N_("--No lines in buffer--")); +EXTERN char typename_unknown[] INIT(= N_("unknown")); +EXTERN char typename_int[] INIT(= N_("int")); +EXTERN char typename_longint[] INIT(= N_("long int")); +EXTERN char typename_longlongint[] INIT(= N_("long long int")); +EXTERN char typename_unsignedint[] INIT(= N_("unsigned int")); +EXTERN char typename_unsignedlongint[] INIT(= N_("unsigned long int")); +EXTERN char typename_unsignedlonglongint[] INIT(= N_("unsigned long long int")); +EXTERN char typename_pointer[] INIT(= N_("pointer")); +EXTERN char typename_percent[] INIT(= N_("percent")); +EXTERN char typename_char[] INIT(= N_("char")); +EXTERN char typename_string[] INIT(= N_("string")); +EXTERN char typename_float[] INIT(= N_("float")); + /* * When ":global" is used to number of substitutions and changed lines is * accumulated until it's finished. diff --git a/src/gui_gtk.c b/src/gui_gtk.c index 6dbaf246b6..69a9cae9fc 100644 --- a/src/gui_gtk.c +++ b/src/gui_gtk.c @@ -1239,10 +1239,10 @@ browse_destroy_cb(GtkWidget *widget UNUSED) * dflt default name * ext not used (extension added) * initdir initial directory, NULL for current dir - * filter not used (file name filter) + * filter file name filter */ char_u * -gui_mch_browse(int saving UNUSED, +gui_mch_browse(int saving, char_u *title, char_u *dflt, char_u *ext UNUSED, diff --git a/src/help.c b/src/help.c index 4d1efe8fe4..c33985ed93 100644 --- a/src/help.c +++ b/src/help.c @@ -1312,7 +1312,7 @@ ex_helptags(exarg_T *eap) if (STRCMP(eap->arg, "ALL") == 0) { - do_in_path(p_rtp, (char_u *)"doc", DIP_ALL + DIP_DIR, + do_in_path(p_rtp, "", (char_u *)"doc", DIP_ALL + DIP_DIR, helptags_cb, &add_help_tags); } else diff --git a/src/highlight.c b/src/highlight.c index ba413efea5..626aeeff0a 100644 --- a/src/highlight.c +++ b/src/highlight.c @@ -3452,7 +3452,7 @@ syn_add_group(char_u *name) char_u *p; char_u *name_up; - // Check that the name is ASCII letters, digits and underscore. + // Check that the name is valid (ASCII letters, digits, underscores, dots, or hyphens). for (p = name; *p != NUL; ++p) { if (!vim_isprintc(*p)) @@ -3461,7 +3461,7 @@ syn_add_group(char_u *name) vim_free(name); return 0; } - else if (!ASCII_ISALNUM(*p) && *p != '_') + else if (!ASCII_ISALNUM(*p) && *p != '_' && *p != '.' && *p != '-') { // This is an error, but since there previously was no check only // give a warning. diff --git a/src/if_lua.c b/src/if_lua.c index 0af041aaa7..2041f5bccc 100644 --- a/src/if_lua.c +++ b/src/if_lua.c @@ -16,6 +16,12 @@ #include #include +#if __STDC_VERSION__ >= 199901L +# define LUAV_INLINE inline +#else +# define LUAV_INLINE +#endif + // Only do the following when the feature is enabled. Needed for "make // depend". #if defined(FEAT_LUA) || defined(PROTO) @@ -61,16 +67,12 @@ static const char LUAVIM_SETREF[] = "luaV_setref"; static const char LUA___CALL[] = "__call"; -// most functions are closures with a cache table as first upvalue; -// get/setudata manage references to vim userdata in cache table through -// object pointers (light userdata) -#define luaV_getudata(L, v) \ - lua_pushlightuserdata((L), (void *) (v)); \ - lua_rawget((L), lua_upvalueindex(1)) -#define luaV_setudata(L, v) \ - lua_pushlightuserdata((L), (void *) (v)); \ - lua_pushvalue((L), -2); \ - lua_rawset((L), lua_upvalueindex(1)) +// get/setudata manage references to vim userdata in a cache table through +// object pointers (light userdata). The cache table itself is retrieved +// from the registry. + +static const char LUAVIM_UDATA_CACHE[] = "luaV_udata_cache"; + #define luaV_getfield(L, s) \ lua_pushlightuserdata((L), (void *)(s)); \ lua_rawget((L), LUA_REGISTRYINDEX) @@ -92,10 +94,10 @@ static int luaV_call_lua_func(int argcount, typval_T *argvars, typval_T *rettv, static void luaV_call_lua_func_free(void *state); #if LUA_VERSION_NUM <= 501 -#define luaV_openlib(L, l, n) luaL_openlib(L, NULL, l, n) +#define luaV_register(L, l) luaL_register(L, NULL, l) #define luaL_typeerror luaL_typerror #else -#define luaV_openlib luaL_setfuncs +#define luaV_register(L, l) luaL_setfuncs(L, l, 0) #endif #ifdef DYNAMIC_LUA @@ -488,6 +490,26 @@ luaL_typeerror(lua_State *L, int narg, const char *tname) } #endif + static LUAV_INLINE void +luaV_getudata(lua_State *L, void *v) +{ + lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); + lua_rawget(L, LUA_REGISTRYINDEX); // now the cache table is at the top of the stack + lua_pushlightuserdata(L, v); + lua_rawget(L, -2); + lua_remove(L, -2); // remove the cache table from the stack +} + + static LUAV_INLINE void +luaV_setudata(lua_State *L, void *v) +{ + lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); + lua_rawget(L, LUA_REGISTRYINDEX); // cache table is at -1 + lua_pushlightuserdata(L, v); // ...now at -2 + lua_pushvalue(L, -3); // copy the userdata (cache at -3) + lua_rawset(L, -3); // consumes two stack items + lua_pop(L, 1); // and remove the cache table +} // ======= Internal ======= @@ -879,11 +901,11 @@ luaV_list_len(lua_State *L) static int luaV_list_iter(lua_State *L) { - listitem_T *li = (listitem_T *) lua_touserdata(L, lua_upvalueindex(2)); + listitem_T *li = (listitem_T *) lua_touserdata(L, lua_upvalueindex(1)); if (li == NULL) return 0; luaV_pushtypval(L, &li->li_tv); lua_pushlightuserdata(L, (void *) li->li_next); - lua_replace(L, lua_upvalueindex(2)); + lua_replace(L, lua_upvalueindex(1)); return 1; } @@ -891,9 +913,8 @@ luaV_list_iter(lua_State *L) luaV_list_call(lua_State *L) { list_T *l = luaV_unbox(L, luaV_List, 1); - lua_pushvalue(L, lua_upvalueindex(1)); // pass cache table along lua_pushlightuserdata(L, (void *) l->lv_first); - lua_pushcclosure(L, luaV_list_iter, 2); + lua_pushcclosure(L, luaV_list_iter, 1); return 1; } @@ -1057,8 +1078,8 @@ luaV_dict_len(lua_State *L) luaV_dict_iter(lua_State *L UNUSED) { #ifdef FEAT_EVAL - hashitem_T *hi = (hashitem_T *) lua_touserdata(L, lua_upvalueindex(2)); - int n = lua_tointeger(L, lua_upvalueindex(3)); + hashitem_T *hi = (hashitem_T *) lua_touserdata(L, lua_upvalueindex(1)); + int n = lua_tointeger(L, lua_upvalueindex(2)); dictitem_T *di; if (n <= 0) return 0; while (HASHITEM_EMPTY(hi)) hi++; @@ -1066,9 +1087,9 @@ luaV_dict_iter(lua_State *L UNUSED) lua_pushstring(L, (char *) hi->hi_key); luaV_pushtypval(L, &di->di_tv); lua_pushlightuserdata(L, (void *) (hi + 1)); - lua_replace(L, lua_upvalueindex(2)); + lua_replace(L, lua_upvalueindex(1)); lua_pushinteger(L, n - 1); - lua_replace(L, lua_upvalueindex(3)); + lua_replace(L, lua_upvalueindex(2)); return 2; #else return 0; @@ -1080,10 +1101,9 @@ luaV_dict_call(lua_State *L) { dict_T *d = luaV_unbox(L, luaV_Dict, 1); hashtab_T *ht = &d->dv_hashtab; - lua_pushvalue(L, lua_upvalueindex(1)); // pass cache table along lua_pushlightuserdata(L, (void *) ht->ht_array); lua_pushinteger(L, ht->ht_used); // # remaining items - lua_pushcclosure(L, luaV_dict_iter, 3); + lua_pushcclosure(L, luaV_dict_iter, 2); return 1; } @@ -2322,29 +2342,32 @@ luaV_setref(lua_State *L) int copyID = lua_tointeger(L, 1); int abort = FALSE; + lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); + lua_rawget(L, LUA_REGISTRYINDEX); // the cache table + luaV_getfield(L, LUAVIM_LIST); luaV_getfield(L, LUAVIM_DICT); luaV_getfield(L, LUAVIM_FUNCREF); lua_pushnil(L); // traverse cache table - while (!abort && lua_next(L, lua_upvalueindex(1)) != 0) + while (!abort && lua_next(L, 2) != 0) { lua_getmetatable(L, -1); - if (lua_rawequal(L, -1, 2)) // list? + if (lua_rawequal(L, -1, 3)) // list? { - list_T *l = (list_T *)lua_touserdata(L, 5); // key + list_T *l = (list_T *)lua_touserdata(L, 6); // key abort = set_ref_in_list(l, copyID); } - else if (lua_rawequal(L, -1, 3)) // dict? + else if (lua_rawequal(L, -1, 4)) // dict? { - dict_T *d = (dict_T *)lua_touserdata(L, 5); // key + dict_T *d = (dict_T *)lua_touserdata(L, 6); // key abort = set_ref_in_dict(d, copyID); } - else if (lua_rawequal(L, -1, 4)) // funcref? + else if (lua_rawequal(L, -1, 5)) // funcref? { - luaV_Funcref *f = (luaV_Funcref *)lua_touserdata(L, 5); // key + luaV_Funcref *f = (luaV_Funcref *)lua_touserdata(L, 6); // key abort = set_ref_in_dict(f->self, copyID); } @@ -2466,12 +2489,16 @@ luaV_pushversion(lua_State *L) static int luaopen_vim(lua_State *L) { - // set cache table - lua_newtable(L); - lua_newtable(L); + lua_newtable(L); // cache table + lua_newtable(L); // cache table's metatable lua_pushstring(L, "v"); lua_setfield(L, -2, "__mode"); lua_setmetatable(L, -2); // cache is weak-valued + // put the cache table in the registry for luaV_get/setudata() + lua_pushlightuserdata(L, (void *) LUAVIM_UDATA_CACHE); + lua_pushvalue(L, -2); + lua_rawset(L, LUA_REGISTRYINDEX); + lua_pop(L, 1); // we don't need the cache table here anymore // print lua_pushcfunction(L, luaV_print); lua_setglobal(L, "print"); @@ -2482,41 +2509,37 @@ luaopen_vim(lua_State *L) lua_pop(L, 1); // free lua_pushlightuserdata(L, (void *) LUAVIM_FREE); - lua_pushvalue(L, 1); // cache table - lua_pushcclosure(L, luaV_free, 1); + lua_pushcfunction(L, luaV_free); lua_rawset(L, LUA_REGISTRYINDEX); // luaeval lua_pushlightuserdata(L, (void *) LUAVIM_LUAEVAL); - lua_pushvalue(L, 1); // cache table - lua_pushcclosure(L, luaV_luaeval, 1); + lua_pushcfunction(L, luaV_luaeval); lua_rawset(L, LUA_REGISTRYINDEX); // setref lua_pushlightuserdata(L, (void *) LUAVIM_SETREF); - lua_pushvalue(L, 1); // cache table - lua_pushcclosure(L, luaV_setref, 1); + lua_pushcfunction(L, luaV_setref); lua_rawset(L, LUA_REGISTRYINDEX); // register luaV_newmetatable(L, LUAVIM_LIST); - lua_pushvalue(L, 1); - luaV_openlib(L, luaV_List_mt, 1); + luaV_register(L, luaV_List_mt); + lua_pop(L, 1); luaV_newmetatable(L, LUAVIM_DICT); - lua_pushvalue(L, 1); - luaV_openlib(L, luaV_Dict_mt, 1); + luaV_register(L, luaV_Dict_mt); + lua_pop(L, 1); luaV_newmetatable(L, LUAVIM_BLOB); - lua_pushvalue(L, 1); - luaV_openlib(L, luaV_Blob_mt, 1); + luaV_register(L, luaV_Blob_mt); + lua_pop(L, 1); luaV_newmetatable(L, LUAVIM_FUNCREF); - lua_pushvalue(L, 1); - luaV_openlib(L, luaV_Funcref_mt, 1); + luaV_register(L, luaV_Funcref_mt); + lua_pop(L, 1); luaV_newmetatable(L, LUAVIM_BUFFER); - lua_pushvalue(L, 1); // cache table - luaV_openlib(L, luaV_Buffer_mt, 1); + luaV_register(L, luaV_Buffer_mt); + lua_pop(L, 1); luaV_newmetatable(L, LUAVIM_WINDOW); - lua_pushvalue(L, 1); // cache table - luaV_openlib(L, luaV_Window_mt, 1); + luaV_register(L, luaV_Window_mt); + lua_pop(L, 1); lua_newtable(L); // vim table - lua_pushvalue(L, 1); // cache table - luaV_openlib(L, luaV_module, 1); + luaV_register(L, luaV_module); luaV_pushversion(L); lua_setfield(L, -2, "lua_version"); lua_setglobal(L, LUAVIM_NAME); @@ -2525,7 +2548,7 @@ luaopen_vim(lua_State *L) (void)luaL_dostring(L, LUA_VIM_UPDATE_PACKAGE_PATHS); (void)luaL_dostring(L, LUA_VIM_SETUP_VARIABLE_DICTS); - lua_getglobal(L, "vim"); + lua_getglobal(L, LUAVIM_NAME); lua_getfield(L, -1, "_update_package_paths"); if (lua_pcall(L, 0, 0, 0)) diff --git a/src/if_ole.cpp b/src/if_ole.cpp index f347387a90..d191010cd0 100644 --- a/src/if_ole.cpp +++ b/src/if_ole.cpp @@ -323,7 +323,7 @@ CVim::SendKeys(BSTR keys) } /* Translate key codes like */ - str = replace_termcodes((char_u *)buffer, &ptr, REPTERM_DO_LT, NULL); + str = replace_termcodes((char_u *)buffer, &ptr, 0, REPTERM_DO_LT, NULL); /* If ptr was set, then a new buffer was allocated, * so we can free the old one. diff --git a/src/if_perl.xs b/src/if_perl.xs index c69ed9ef1f..bfe5386dc8 100644 --- a/src/if_perl.xs +++ b/src/if_perl.xs @@ -402,14 +402,14 @@ static bool (*Perl_sv_2bool)(pTHX_ SV*); static IV (*Perl_sv_2iv)(pTHX_ SV*); static SV* (*Perl_sv_2mortal)(pTHX_ SV*); # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) -static char* (*Perl_sv_2pv_flags)(pTHX_ SV*, STRLEN*, I32); +static char* (*Perl_sv_2pv_flags)(pTHX_ SV*, STRLEN* const, const U32); static char* (*Perl_sv_2pv_nolen)(pTHX_ SV*); # else static char* (*Perl_sv_2pv)(pTHX_ SV*, STRLEN*); # endif static char* (*Perl_sv_2pvbyte)(pTHX_ SV*, STRLEN*); # if (PERL_REVISION == 5) && (PERL_VERSION >= 32) -static char* (*Perl_sv_2pvbyte_flags)(pTHX_ SV*, STRLEN*, I32); +static char* (*Perl_sv_2pvbyte_flags)(pTHX_ SV*, STRLEN* const, const U32); # endif static SV* (*Perl_sv_bless)(pTHX_ SV*, HV*); # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) @@ -709,6 +709,140 @@ S_POPMARK(pTHX) # define Perl_POPMARK S_POPMARK # endif +# if (PERL_REVISION == 5) && (PERL_VERSION >= 32) +PERL_STATIC_INLINE U8 +Perl_gimme_V(pTHX) +{ + I32 cxix; + U8 gimme = (PL_op->op_flags & OPf_WANT); + + if (gimme) + return gimme; + cxix = PL_curstackinfo->si_cxsubix; + if (cxix < 0) + return +# if (PERL_REVISION == 5) && (PERL_VERSION >= 34) + PL_curstackinfo->si_type == PERLSI_SORT ? G_SCALAR: +# endif + G_VOID; + assert(cxstack[cxix].blk_gimme & G_WANT); + return (cxstack[cxix].blk_gimme & G_WANT); +} +# endif + +# if (PERL_REVISION == 5) && (PERL_VERSION >= 38) +# define PERL_ARGS_ASSERT_SVPVXTRUE \ + assert(sv) +PERL_STATIC_INLINE bool +Perl_SvPVXtrue(pTHX_ SV *sv) +{ + PERL_ARGS_ASSERT_SVPVXTRUE; + + if (! (XPV *) SvANY(sv)) { + return false; + } + + if ( ((XPV *) SvANY(sv))->xpv_cur > 1) { /* length > 1 */ + return true; + } + + if (( (XPV *) SvANY(sv))->xpv_cur == 0) { + return false; + } + + return *sv->sv_u.svu_pv != '0'; +} + +# define PERL_ARGS_ASSERT_SVGETMAGIC \ + assert(sv) +PERL_STATIC_INLINE void +Perl_SvGETMAGIC(pTHX_ SV *sv) +{ + PERL_ARGS_ASSERT_SVGETMAGIC; + + if (UNLIKELY(SvGMAGICAL(sv))) { + mg_get(sv); + } +} + +PERL_STATIC_INLINE char * +Perl_SvPV_helper(pTHX_ + SV * const sv, + STRLEN * const lp, + const U32 flags, + const PL_SvPVtype type, + char * (*non_trivial)(pTHX_ SV *, STRLEN * const, const U32), + const bool or_null, + const U32 return_flags + ) +{ + /* 'type' should be known at compile time, so this is reduced to a single + * conditional at runtime */ + if ( (type == SvPVbyte_type_ && SvPOK_byte_nog(sv)) + || (type == SvPVforce_type_ && SvPOK_pure_nogthink(sv)) + || (type == SvPVutf8_type_ && SvPOK_utf8_nog(sv)) + || (type == SvPVnormal_type_ && SvPOK_nog(sv)) + || (type == SvPVutf8_pure_type_ && SvPOK_utf8_pure_nogthink(sv)) + || (type == SvPVbyte_pure_type_ && SvPOK_byte_pure_nogthink(sv)) + ) { + if (lp) { + *lp = SvCUR(sv); + } + + /* Similarly 'return_flags is known at compile time, so this becomes + * branchless */ + if (return_flags & SV_MUTABLE_RETURN) { + return SvPVX_mutable(sv); + } + else if(return_flags & SV_CONST_RETURN) { + return (char *) SvPVX_const(sv); + } + else { + return SvPVX(sv); + } + } + + if (or_null) { /* This is also known at compile time */ + if (flags & SV_GMAGIC) { /* As is this */ + SvGETMAGIC(sv); + } + + if (! SvOK(sv)) { + if (lp) { /* As is this */ + *lp = 0; + } + + return NULL; + } + } + + /* Can't trivially handle this, call the function */ + return non_trivial(aTHX_ sv, lp, (flags|return_flags)); +} + +# define PERL_ARGS_ASSERT_SVNV \ + assert(sv) +PERL_STATIC_INLINE NV +Perl_SvNV(pTHX_ SV *sv) { + PERL_ARGS_ASSERT_SVNV; + + if (SvNOK_nog(sv)) + return SvNVX(sv); + return sv_2nv(sv); +} + +# define PERL_ARGS_ASSERT_SVIV \ + assert(sv) +PERL_STATIC_INLINE IV +Perl_SvIV(pTHX_ SV *sv) { + PERL_ARGS_ASSERT_SVIV; + + if (SvIOK_nog(sv)) + return SvIVX(sv); + return sv_2iv(sv); +} +# endif + /* perl-5.34 needs Perl_SvTRUE_common; used in SvTRUE_nomg_NN */ # if (PERL_REVISION == 5) && (PERL_VERSION >= 34) PERL_STATIC_INLINE bool @@ -1649,7 +1783,7 @@ Buffers(...) PPCODE: if (items == 0) { - if (GIMME == G_SCALAR) + if (GIMME_V == G_SCALAR) { i = 0; FOR_ALL_BUFFERS(vimbuf) @@ -1700,7 +1834,7 @@ Windows(...) PPCODE: if (items == 0) { - if (GIMME == G_SCALAR) + if (GIMME_V == G_SCALAR) XPUSHs(sv_2mortal(newSViv(win_count()))); else { diff --git a/src/if_py_both.h b/src/if_py_both.h index 110de234fd..c1d7675cb3 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -30,9 +30,285 @@ static const char *vim_special_path = "_vim_path_"; #define PyErr_FORMAT2(exc, str, arg1, arg2) PyErr_Format(exc, _(str), arg1,arg2) #define PyErr_VIM_FORMAT(str, arg) PyErr_FORMAT(VimError, str, arg) -#define Py_TYPE_NAME(obj) ((obj)->ob_type->tp_name == NULL \ +#ifdef USE_LIMITED_API +// Limited Python API. Need to call only exposed functions and remap macros. +// PyTypeObject is an opaque struct. + +typedef struct { + lenfunc sq_length; + binaryfunc sq_concat; + ssizeargfunc sq_repeat; + ssizeargfunc sq_item; + void *was_sq_slice; + ssizeobjargproc sq_ass_item; + void *was_sq_ass_slice; + objobjproc sq_contains; + + binaryfunc sq_inplace_concat; + ssizeargfunc sq_inplace_repeat; +} PySequenceMethods; + +typedef struct { + lenfunc mp_length; + binaryfunc mp_subscript; + objobjargproc mp_ass_subscript; +} PyMappingMethods; + +// This struct emulates the concrete _typeobject struct to allow the code to +// work the same way in both limited and full Python APIs. +struct typeobject_wrapper { + const char *tp_name; + Py_ssize_t tp_basicsize; + unsigned long tp_flags; + + // When adding new slots below, also need to make sure we add ADD_TP_SLOT + // call in AddHeapType for it. + + destructor tp_dealloc; + reprfunc tp_repr; + + PySequenceMethods *tp_as_sequence; + PyMappingMethods *tp_as_mapping; + + ternaryfunc tp_call; + getattrofunc tp_getattro; + setattrofunc tp_setattro; + + const char *tp_doc; + + traverseproc tp_traverse; + + inquiry tp_clear; + + getiterfunc tp_iter; + iternextfunc tp_iternext; + + struct PyMethodDef *tp_methods; + struct _typeobject *tp_base; + allocfunc tp_alloc; + newfunc tp_new; + freefunc tp_free; +}; + +# define DEFINE_PY_TYPE_OBJECT(type) \ + static struct typeobject_wrapper type; \ + static PyTypeObject* type##Ptr = NULL + +// PyObject_HEAD_INIT_TYPE and PyObject_FINISH_INIT_TYPE need to come in pairs +// We first initialize with NULL because the type is not allocated until +// init_types() is called later. It's in FINISH_INIT_TYPE where we fill the +// type in with the newly allocated type. +# define PyObject_HEAD_INIT_TYPE(type) PyObject_HEAD_INIT(NULL) +# define PyObject_FINISH_INIT_TYPE(obj, type) obj.ob_base.ob_type = type##Ptr + +# define Py_TYPE_GET_TP_ALLOC(type) ((allocfunc)PyType_GetSlot(type, Py_tp_alloc)) +# define Py_TYPE_GET_TP_METHODS(type) ((PyMethodDef *)PyType_GetSlot(type, Py_tp_methods)) + +// PyObject_NEW is not part of stable ABI, but PyObject_Malloc/Init are. +PyObject* Vim_PyObject_New(PyTypeObject *type, size_t objsize) +{ + PyObject *obj = (PyObject *)PyObject_Malloc(objsize); + if (obj == NULL) + return PyErr_NoMemory(); + return PyObject_Init(obj, type); +} +# undef PyObject_NEW +# define PyObject_NEW(type, typeobj) ((type *)Vim_PyObject_New(typeobj, sizeof(type))) + +// This is a somewhat convoluted because limited API doesn't expose an easy way +// to get the tp_name field, and so we have to manually reconstruct it as +// "__module__.__name__" (with __module__ omitted for builtins to emulate +// Python behavior). Also, some of the more convenient functions like +// PyUnicode_AsUTF8AndSize and PyType_GetQualName() are not available until +// late Python 3 versions, and won't be available if you set Py_LIMITED_API too +// low. +# define PyErr_FORMAT_TYPE(msg, obj) \ + do { \ + PyObject* qualname = PyObject_GetAttrString((PyObject*)(obj)->ob_type, "__qualname__"); \ + if (qualname == NULL) \ + { \ + PyErr_FORMAT(PyExc_TypeError, msg, "(NULL)"); \ + break; \ + } \ + PyObject* module = PyObject_GetAttrString((PyObject*)(obj)->ob_type, "__module__"); \ + PyObject* full; \ + if (module == NULL || PyUnicode_CompareWithASCIIString(module, "builtins") == 0 \ + || PyUnicode_CompareWithASCIIString(module, "__main__") == 0) \ + { \ + full = qualname; \ + Py_INCREF(full); \ + } \ + else \ + full = PyUnicode_FromFormat("%U.%U", module, qualname); \ + PyObject* full_bytes = PyUnicode_AsUTF8String(full); \ + const char* full_str = PyBytes_AsString(full_bytes); \ + full_str = full_str == NULL ? "(NULL)" : full_str; \ + PyErr_FORMAT(PyExc_TypeError, msg, full_str); \ + Py_DECREF(qualname); \ + Py_XDECREF(module); \ + Py_XDECREF(full); \ + Py_XDECREF(full_bytes); \ + } while (0) + +# define PyList_GET_ITEM(list, i) PyList_GetItem(list, i) +# define PyList_GET_SIZE(o) PyList_Size(o) +# define PyTuple_GET_ITEM(o, pos) PyTuple_GetItem(o, pos) +# define PyTuple_GET_SIZE(o) PyTuple_Size(o) + +// PyList_SET_ITEM and PyList_SetItem have slightly different behaviors. The +// former will leave the old item dangling, and the latter will decref on it. +// Since we only use this on new lists, this difference doesn't matter. +# define PyList_SET_ITEM(list, i, item) PyList_SetItem(list, i, item) + +# if Py_LIMITED_API < 0x03080000 +// PyIter_check only became part of stable ABI in 3.8, and there is no easy way +// to check for it in the API. We simply return false as a compromise. This +// does mean we should avoid compiling with stable ABI < 3.8. +# undef PyIter_Check +# define PyIter_Check(obj) (FALSE) +# endif + +PyTypeObject* AddHeapType(struct typeobject_wrapper* type_object) +{ + PyType_Spec type_spec; + type_spec.name = type_object->tp_name; + type_spec.basicsize = type_object->tp_basicsize; + type_spec.itemsize = 0; + type_spec.flags = type_object->tp_flags; + + // We just need to statically allocate a large enough buffer that can hold + // all slots. We need to leave a null-terminated slot at the end. + PyType_Slot slots[40] = { {0, NULL} }; + size_t slot_i = 0; + +# define ADD_TP_SLOT(slot_name) \ + if (slot_i >= 40) return NULL; /* this should never happen */ \ + if (type_object->slot_name != NULL) \ + { \ + slots[slot_i].slot = Py_##slot_name; \ + slots[slot_i].pfunc = (void*)type_object->slot_name; \ + ++slot_i; \ + } +# define ADD_TP_SUB_SLOT(sub_slot, slot_name) \ + if (slot_i >= 40) return NULL; /* this should never happen */ \ + if (type_object->sub_slot != NULL && type_object->sub_slot->slot_name != NULL) \ + { \ + slots[slot_i].slot = Py_##slot_name; \ + slots[slot_i].pfunc = (void*)type_object->sub_slot->slot_name; \ + ++slot_i; \ + } + + ADD_TP_SLOT(tp_dealloc) + ADD_TP_SLOT(tp_repr) + ADD_TP_SLOT(tp_call) + ADD_TP_SLOT(tp_getattro) + ADD_TP_SLOT(tp_setattro) + ADD_TP_SLOT(tp_doc) + ADD_TP_SLOT(tp_traverse) + ADD_TP_SLOT(tp_clear) + ADD_TP_SLOT(tp_iter) + ADD_TP_SLOT(tp_iternext) + ADD_TP_SLOT(tp_methods) + ADD_TP_SLOT(tp_base) + ADD_TP_SLOT(tp_alloc) + ADD_TP_SLOT(tp_new) + ADD_TP_SLOT(tp_free) + + ADD_TP_SUB_SLOT(tp_as_sequence, sq_length) + ADD_TP_SUB_SLOT(tp_as_sequence, sq_concat) + ADD_TP_SUB_SLOT(tp_as_sequence, sq_repeat) + ADD_TP_SUB_SLOT(tp_as_sequence, sq_item) + ADD_TP_SUB_SLOT(tp_as_sequence, sq_ass_item) + ADD_TP_SUB_SLOT(tp_as_sequence, sq_contains) + ADD_TP_SUB_SLOT(tp_as_sequence, sq_inplace_concat) + ADD_TP_SUB_SLOT(tp_as_sequence, sq_inplace_repeat) + + ADD_TP_SUB_SLOT(tp_as_mapping, mp_length) + ADD_TP_SUB_SLOT(tp_as_mapping, mp_subscript) + ADD_TP_SUB_SLOT(tp_as_mapping, mp_ass_subscript) +# undef ADD_TP_SLOT +# undef ADD_TP_SUB_SLOT + + type_spec.slots = slots; + + PyObject* newtype = PyType_FromSpec(&type_spec); + return (PyTypeObject*)newtype; +} + +// Add a heap type, since static types do not work in limited API +// Each PYTYPE_READY is paired with PYTYPE_CLEANUP. +// +// Note that we don't call Py_DECREF(type##Ptr) in clean up. The reason for +// that in 3.7, it's possible to de-allocate a heap type before all instances +// are cleared, leading to a crash, whereas in 3.8 the semantics were changed +// and instances hold strong references to types. Since these types are +// designed to be static, just keep them around to avoid having to write +// version-specific handling. Vim does not re-start the Python runtime so there +// will be no long-term leak. +# define PYTYPE_READY(type) \ + type##Ptr = AddHeapType(&(type)); \ + if (type##Ptr == NULL) \ + return -1; +# define PYTYPE_CLEANUP(type) \ + type##Ptr = NULL; + +// Limited API does not provide PyRun_* functions. Need to implement manually +// using PyCompile and PyEval. +PyObject* Vim_PyRun_String(const char *str, int start, PyObject *globals, PyObject *locals) +{ + // Just pass "" for filename for now. + PyObject* compiled = Py_CompileString(str, "", start); + if (compiled == NULL) + return NULL; + + PyObject* eval_result = PyEval_EvalCode(compiled, globals, locals); + Py_DECREF(compiled); + return eval_result; +} +int Vim_PyRun_SimpleString(const char *str) +{ + // This function emulates CPython's implementation. + PyObject* m = PyImport_AddModule("__main__"); + if (m == NULL) + return -1; + PyObject* d = PyModule_GetDict(m); + PyObject* output = Vim_PyRun_String(str, Py_file_input, d, d); + if (output == NULL) + { + PyErr_PrintEx(TRUE); + return -1; + } + Py_DECREF(output); + return 0; +} +#define PyRun_String Vim_PyRun_String +#define PyRun_SimpleString Vim_PyRun_SimpleString + +#else // !defined(USE_LIMITED_API) + +// Full Python API. Can make use of structs and macros directly. +# define DEFINE_PY_TYPE_OBJECT(type) \ + static PyTypeObject type; \ + static PyTypeObject* type##Ptr = &type +# define PyObject_HEAD_INIT_TYPE(type) PyObject_HEAD_INIT(&type) + +# define Py_TYPE_GET_TP_ALLOC(type) type->tp_alloc +# define Py_TYPE_GET_TP_METHODS(type) type->tp_methods + +# define Py_TYPE_NAME(obj) ((obj)->ob_type->tp_name == NULL \ ? "(NULL)" \ : (obj)->ob_type->tp_name) +# define PyErr_FORMAT_TYPE(msg, obj) \ + PyErr_FORMAT(PyExc_TypeError, msg, \ + Py_TYPE_NAME(obj)) + +// Add a static type +# define PYTYPE_READY(type) \ + if (PyType_Ready(type##Ptr)) \ + return -1; + +#endif + #define RAISE_NO_EMPTY_KEYS PyErr_SET_STRING(PyExc_ValueError, \ N_("empty keys are not allowed")) @@ -45,8 +321,7 @@ static const char *vim_special_path = "_vim_path_"; #define RAISE_KEY_ADD_FAIL(key) \ PyErr_VIM_FORMAT(N_("failed to add key '%s' to dictionary"), key) #define RAISE_INVALID_INDEX_TYPE(idx) \ - PyErr_FORMAT(PyExc_TypeError, N_("index must be int or slice, not %s"), \ - Py_TYPE_NAME(idx)); + PyErr_FORMAT_TYPE(N_("index must be int or slice, not %s"), idx); #define INVALID_BUFFER_VALUE ((buf_T *)(-1)) #define INVALID_WINDOW_VALUE ((win_T *)(-1)) @@ -144,13 +419,11 @@ StringToChars(PyObject *obj, PyObject **todecref) else { #if PY_MAJOR_VERSION < 3 - PyErr_FORMAT(PyExc_TypeError, - N_("expected str() or unicode() instance, but got %s"), - Py_TYPE_NAME(obj)); + PyErr_FORMAT_TYPE(N_("expected str() or unicode() instance, but got %s"), + obj); #else - PyErr_FORMAT(PyExc_TypeError, - N_("expected bytes() or str() instance, but got %s"), - Py_TYPE_NAME(obj)); + PyErr_FORMAT_TYPE(N_("expected bytes() or str() instance, but got %s"), + obj); #endif return NULL; } @@ -198,15 +471,15 @@ NumberToLong(PyObject *obj, long *result, int flags) else { #if PY_MAJOR_VERSION < 3 - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected int(), long() or something supporting " "coercing to long(), but got %s"), - Py_TYPE_NAME(obj)); + obj); #else - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected int() or something supporting coercing to int(), " "but got %s"), - Py_TYPE_NAME(obj)); + obj); #endif return -1; } @@ -278,7 +551,7 @@ ObjectDir(PyObject *self, char **attributes) return NULL; if (self) - for (method = self->ob_type->tp_methods ; method->ml_name != NULL ; ++method) + for (method = Py_TYPE_GET_TP_METHODS(self->ob_type) ; method->ml_name != NULL ; ++method) if (add_string(ret, (char *)method->ml_name)) { Py_DECREF(ret); @@ -308,7 +581,7 @@ ObjectDir(PyObject *self, char **attributes) // Function to write a line, points to either msg() or emsg(). typedef int (*writefn)(char *); -static PyTypeObject OutputType; +DEFINE_PY_TYPE_OBJECT(OutputType); typedef struct { @@ -514,14 +787,14 @@ static struct PyMethodDef OutputMethods[] = { static OutputObject Output = { - PyObject_HEAD_INIT(&OutputType) + PyObject_HEAD_INIT_TYPE(OutputType) 0, 0 }; static OutputObject Error = { - PyObject_HEAD_INIT(&OutputType) + PyObject_HEAD_INIT_TYPE(OutputType) 0, 1 }; @@ -552,7 +825,7 @@ typedef struct char *fullname; PyObject *result; } LoaderObject; -static PyTypeObject LoaderType; +DEFINE_PY_TYPE_OBJECT(LoaderType); static void LoaderDestructor(LoaderObject *self) @@ -1243,9 +1516,9 @@ call_load_module(char *name, int len, PyObject *find_module_result) if (!PyTuple_Check(find_module_result)) { - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected 3-tuple as imp.find_module() result, but got %s"), - Py_TYPE_NAME(find_module_result)); + find_module_result); return NULL; } if (PyTuple_GET_SIZE(find_module_result) != 3) @@ -1367,7 +1640,7 @@ FinderFindModule(PyObject *self, PyObject *args) return NULL; } - if (!(loader = PyObject_NEW(LoaderObject, &LoaderType))) + if (!(loader = PyObject_NEW(LoaderObject, LoaderTypePtr))) { vim_free(fullname); Py_DECREF(result); @@ -1424,7 +1697,7 @@ static struct PyMethodDef VimMethods[] = { * Generic iterator object */ -static PyTypeObject IterType; +DEFINE_PY_TYPE_OBJECT(IterType); typedef PyObject *(*nextfun)(void **); typedef void (*destructorfun)(void *); @@ -1451,7 +1724,7 @@ IterNew(void *start, destructorfun destruct, nextfun next, traversefun traverse, { IterObject *self; - self = PyObject_GC_New(IterObject, &IterType); + self = PyObject_GC_New(IterObject, IterTypePtr); self->cur = start; self->next = next; self->destruct = destruct; @@ -1556,7 +1829,7 @@ pyll_add(PyObject *self, pylinkedlist_T *ref, pylinkedlist_T **last) *last = ref; } -static PyTypeObject DictionaryType; +DEFINE_PY_TYPE_OBJECT(DictionaryType); typedef struct { @@ -1567,14 +1840,14 @@ typedef struct static PyObject *DictionaryUpdate(DictionaryObject *, PyObject *, PyObject *); -#define NEW_DICTIONARY(dict) DictionaryNew(&DictionaryType, dict) +#define NEW_DICTIONARY(dict) DictionaryNew(DictionaryTypePtr, dict) static PyObject * DictionaryNew(PyTypeObject *subtype, dict_T *dict) { DictionaryObject *self; - self = (DictionaryObject *) subtype->tp_alloc(subtype, 0); + self = (DictionaryObject *) Py_TYPE_GET_TP_ALLOC(subtype)(subtype, 0); if (self == NULL) return NULL; self->dict = dict; @@ -2238,7 +2511,7 @@ static struct PyMethodDef DictionaryMethods[] = { { NULL, NULL, 0, NULL} }; -static PyTypeObject ListType; +DEFINE_PY_TYPE_OBJECT(ListType); typedef struct { @@ -2247,7 +2520,7 @@ typedef struct pylinkedlist_T ref; } ListObject; -#define NEW_LIST(list) ListNew(&ListType, list) +#define NEW_LIST(list) ListNew(ListTypePtr, list) static PyObject * ListNew(PyTypeObject *subtype, list_T *list) @@ -2257,7 +2530,7 @@ ListNew(PyTypeObject *subtype, list_T *list) if (list == NULL) return NULL; - self = (ListObject *) subtype->tp_alloc(subtype, 0); + self = (ListObject *) Py_TYPE_GET_TP_ALLOC(subtype)(subtype, 0); if (self == NULL) return NULL; self->list = list; @@ -2937,10 +3210,10 @@ typedef struct int auto_rebind; } FunctionObject; -static PyTypeObject FunctionType; +DEFINE_PY_TYPE_OBJECT(FunctionType); #define NEW_FUNCTION(name, argc, argv, self, pt_auto) \ - FunctionNew(&FunctionType, (name), (argc), (argv), (self), (pt_auto)) + FunctionNew(FunctionTypePtr, (name), (argc), (argv), (self), (pt_auto)) static PyObject * FunctionNew(PyTypeObject *subtype, char_u *name, int argc, typval_T *argv, @@ -2948,7 +3221,7 @@ FunctionNew(PyTypeObject *subtype, char_u *name, int argc, typval_T *argv, { FunctionObject *self; - self = (FunctionObject *)subtype->tp_alloc(subtype, 0); + self = (FunctionObject *) Py_TYPE_GET_TP_ALLOC(subtype)(subtype, 0); if (self == NULL) return NULL; @@ -3311,7 +3584,7 @@ static struct PyMethodDef FunctionMethods[] = { * Options object */ -static PyTypeObject OptionsType; +DEFINE_PY_TYPE_OBJECT(OptionsType); typedef int (*checkfun)(void *); @@ -3335,7 +3608,7 @@ OptionsNew(int opt_type, void *from, checkfun Check, PyObject *fromObj) { OptionsObject *self; - self = PyObject_GC_New(OptionsObject, &OptionsType); + self = PyObject_GC_New(OptionsObject, OptionsTypePtr); if (self == NULL) return NULL; @@ -3692,7 +3965,7 @@ typedef struct static PyObject *WinListNew(TabPageObject *tabObject); -static PyTypeObject TabPageType; +DEFINE_PY_TYPE_OBJECT(TabPageType); static int CheckTabPage(TabPageObject *self) @@ -3718,7 +3991,7 @@ TabPageNew(tabpage_T *tab) } else { - self = PyObject_NEW(TabPageObject, &TabPageType); + self = PyObject_NEW(TabPageObject, TabPageTypePtr); if (self == NULL) return NULL; self->tab = tab; @@ -3810,7 +4083,7 @@ static struct PyMethodDef TabPageMethods[] = { * Window list object */ -static PyTypeObject TabListType; +DEFINE_PY_TYPE_OBJECT(TabListType); static PySequenceMethods TabListAsSeq; typedef struct @@ -3818,6 +4091,11 @@ typedef struct PyObject_HEAD } TabListObject; +static TabListObject TheTabPageList = +{ + PyObject_HEAD_INIT_TYPE(TabListType) +}; + static PyInt TabListLength(PyObject *self UNUSED) { @@ -3857,7 +4135,7 @@ typedef struct TabPageObject *tabObject; } WindowObject; -static PyTypeObject WindowType; +DEFINE_PY_TYPE_OBJECT(WindowType); static int CheckWindow(WindowObject *self) @@ -3899,7 +4177,7 @@ WindowNew(win_T *win, tabpage_T *tab) } else { - self = PyObject_GC_New(WindowObject, &WindowType); + self = PyObject_GC_New(WindowObject, WindowTypePtr); if (self == NULL) return NULL; self->win = win; @@ -4150,7 +4428,7 @@ static struct PyMethodDef WindowMethods[] = { * Window list object */ -static PyTypeObject WinListType; +DEFINE_PY_TYPE_OBJECT(WinListType); static PySequenceMethods WinListAsSeq; typedef struct @@ -4159,12 +4437,18 @@ typedef struct TabPageObject *tabObject; } WinListObject; +static WinListObject TheWindowList = +{ + PyObject_HEAD_INIT_TYPE(WinListType) + NULL +}; + static PyObject * WinListNew(TabPageObject *tabObject) { WinListObject *self; - self = PyObject_NEW(WinListObject, &WinListType); + self = PyObject_NEW(WinListObject, WinListTypePtr); self->tabObject = tabObject; Py_INCREF(tabObject); @@ -4259,13 +4543,13 @@ StringToLine(PyObject *obj) else { #if PY_MAJOR_VERSION < 3 - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected str() or unicode() instance, but got %s"), - Py_TYPE_NAME(obj)); + obj); #else - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected bytes() or str() instance, but got %s"), - Py_TYPE_NAME(obj)); + obj); #endif return NULL; } @@ -5028,7 +5312,7 @@ RBAppend( // Range object -static PyTypeObject RangeType; +DEFINE_PY_TYPE_OBJECT(RangeType); static PySequenceMethods RangeAsSeq; static PyMappingMethods RangeAsMapping; @@ -5045,7 +5329,7 @@ RangeNew(buf_T *buf, PyInt start, PyInt end) { BufferObject *bufr; RangeObject *self; - self = PyObject_GC_New(RangeObject, &RangeType); + self = PyObject_GC_New(RangeObject, RangeTypePtr); if (self == NULL) return NULL; @@ -5150,7 +5434,7 @@ static struct PyMethodDef RangeMethods[] = { { NULL, NULL, 0, NULL} }; -static PyTypeObject BufferType; +DEFINE_PY_TYPE_OBJECT(BufferType); static PySequenceMethods BufferAsSeq; static PyMappingMethods BufferAsMapping; @@ -5184,7 +5468,7 @@ BufferNew(buf_T *buf) } else { - self = PyObject_NEW(BufferObject, &BufferType); + self = PyObject_NEW(BufferObject, BufferTypePtr); if (self == NULL) return NULL; self->buf = buf; @@ -5410,13 +5694,18 @@ static struct PyMethodDef BufferMethods[] = { * Buffer list object - Implementation */ -static PyTypeObject BufMapType; +DEFINE_PY_TYPE_OBJECT(BufMapType); typedef struct { PyObject_HEAD } BufMapObject; +static BufMapObject TheBufferMap = +{ + PyObject_HEAD_INIT_TYPE(BufMapType) +}; + static PyInt BufMapLength(PyObject *self UNUSED) { @@ -5574,11 +5863,11 @@ CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *valObject) { int count; - if (valObject->ob_type != &BufferType) + if (valObject->ob_type != BufferTypePtr) { - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected vim.Buffer object, but got %s"), - Py_TYPE_NAME(valObject)); + valObject); return -1; } @@ -5601,11 +5890,11 @@ CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *valObject) { int count; - if (valObject->ob_type != &WindowType) + if (valObject->ob_type != WindowTypePtr) { - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected vim.Window object, but got %s"), - Py_TYPE_NAME(valObject)); + valObject); return -1; } @@ -5635,11 +5924,11 @@ CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *valObject) } else if (strcmp(name, "tabpage") == 0) { - if (valObject->ob_type != &TabPageType) + if (valObject->ob_type != TabPageTypePtr) { - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("expected vim.TabPage object, but got %s"), - Py_TYPE_NAME(valObject)); + valObject); return -1; } @@ -6180,7 +6469,7 @@ ConvertFromPyMapping(PyObject *obj, typval_T *tv) if (!(lookup_dict = PyDict_New())) return -1; - if (PyType_IsSubtype(obj->ob_type, &DictionaryType)) + if (PyType_IsSubtype(obj->ob_type, DictionaryTypePtr)) { tv->v_type = VAR_DICT; tv->vval.v_dict = (((DictionaryObject *)(obj))->dict); @@ -6193,9 +6482,9 @@ ConvertFromPyMapping(PyObject *obj, typval_T *tv) ret = convert_dl(obj, tv, pymap_to_tv, lookup_dict); else { - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("unable to convert %s to a Vim dictionary"), - Py_TYPE_NAME(obj)); + obj); ret = -1; } Py_DECREF(lookup_dict); @@ -6211,7 +6500,7 @@ ConvertFromPySequence(PyObject *obj, typval_T *tv) if (!(lookup_dict = PyDict_New())) return -1; - if (PyType_IsSubtype(obj->ob_type, &ListType)) + if (PyType_IsSubtype(obj->ob_type, ListTypePtr)) { tv->v_type = VAR_LIST; tv->vval.v_list = (((ListObject *)(obj))->list); @@ -6222,9 +6511,9 @@ ConvertFromPySequence(PyObject *obj, typval_T *tv) ret = convert_dl(obj, tv, pyseq_to_tv, lookup_dict); else { - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("unable to convert %s to a Vim list"), - Py_TYPE_NAME(obj)); + obj); ret = -1; } Py_DECREF(lookup_dict); @@ -6247,19 +6536,19 @@ ConvertFromPyObject(PyObject *obj, typval_T *tv) static int _ConvertFromPyObject(PyObject *obj, typval_T *tv, PyObject *lookup_dict) { - if (PyType_IsSubtype(obj->ob_type, &DictionaryType)) + if (PyType_IsSubtype(obj->ob_type, DictionaryTypePtr)) { tv->v_type = VAR_DICT; tv->vval.v_dict = (((DictionaryObject *)(obj))->dict); ++tv->vval.v_dict->dv_refcount; } - else if (PyType_IsSubtype(obj->ob_type, &ListType)) + else if (PyType_IsSubtype(obj->ob_type, ListTypePtr)) { tv->v_type = VAR_LIST; tv->vval.v_list = (((ListObject *)(obj))->list); ++tv->vval.v_list->lv_refcount; } - else if (PyType_IsSubtype(obj->ob_type, &FunctionType)) + else if (PyType_IsSubtype(obj->ob_type, FunctionTypePtr)) { FunctionObject *func = (FunctionObject *) obj; if (func->self != NULL || func->argv != NULL) @@ -6365,9 +6654,9 @@ _ConvertFromPyObject(PyObject *obj, typval_T *tv, PyObject *lookup_dict) } else { - PyErr_FORMAT(PyExc_TypeError, + PyErr_FORMAT_TYPE( N_("unable to convert %s to a Vim structure"), - Py_TYPE_NAME(obj)); + obj); return -1; } return 0; @@ -6445,11 +6734,17 @@ ConvertToPyObject(typval_T *tv) return NULL; } +DEFINE_PY_TYPE_OBJECT(CurrentType); + typedef struct { PyObject_HEAD } CurrentObject; -static PyTypeObject CurrentType; + +static CurrentObject TheCurrent = +{ + PyObject_HEAD_INIT_TYPE(CurrentType) +}; static void init_structs(void) @@ -6466,7 +6761,11 @@ init_structs(void) OutputType.tp_alloc = call_PyType_GenericAlloc; OutputType.tp_new = call_PyType_GenericNew; OutputType.tp_free = call_PyObject_Free; +# ifndef USE_LIMITED_API + // The std printer type is only exposed in full API. It is not essential + // anyway and so in limited API we don't set it. OutputType.tp_base = &PyStdPrinter_Type; +# endif #else OutputType.tp_getattr = (getattrfunc)OutputGetattr; OutputType.tp_setattr = (setattrfunc)OutputSetattr; @@ -6487,7 +6786,7 @@ init_structs(void) CLEAR_FIELD(BufferType); BufferType.tp_name = "vim.buffer"; - BufferType.tp_basicsize = sizeof(BufferType); + BufferType.tp_basicsize = sizeof(BufferObject); BufferType.tp_dealloc = (destructor)BufferDestructor; BufferType.tp_repr = (reprfunc)BufferRepr; BufferType.tp_as_sequence = &BufferAsSeq; @@ -6550,11 +6849,11 @@ init_structs(void) BufMapType.tp_as_mapping = &BufMapAsMapping; BufMapType.tp_flags = Py_TPFLAGS_DEFAULT; BufMapType.tp_iter = BufMapIter; - BufferType.tp_doc = "vim buffer list"; + BufMapType.tp_doc = "vim buffer list"; CLEAR_FIELD(WinListType); WinListType.tp_name = "vim.windowlist"; - WinListType.tp_basicsize = sizeof(WinListType); + WinListType.tp_basicsize = sizeof(WinListObject); WinListType.tp_as_sequence = &WinListAsSeq; WinListType.tp_flags = Py_TPFLAGS_DEFAULT; WinListType.tp_doc = "vim window list"; @@ -6562,7 +6861,7 @@ init_structs(void) CLEAR_FIELD(TabListType); TabListType.tp_name = "vim.tabpagelist"; - TabListType.tp_basicsize = sizeof(TabListType); + TabListType.tp_basicsize = sizeof(TabListObject); TabListType.tp_as_sequence = &TabListAsSeq; TabListType.tp_flags = Py_TPFLAGS_DEFAULT; TabListType.tp_doc = "vim tab page list"; @@ -6690,10 +6989,6 @@ init_structs(void) #endif } -#define PYTYPE_READY(type) \ - if (PyType_Ready(&(type))) \ - return -1; - static int init_types(void) { @@ -6714,9 +7009,46 @@ init_types(void) #if PY_VERSION_HEX < 0x030700f0 PYTYPE_READY(LoaderType); #endif + +#ifdef USE_LIMITED_API + // We need to finish initializing all the static objects because the types + // are only just allocated on the heap now. + // Each PyObject_HEAD_INIT_TYPE should correspond to a + // PyObject_FINISH_INIT_TYPE below. + PyObject_FINISH_INIT_TYPE(Output, OutputType); + PyObject_FINISH_INIT_TYPE(Error, OutputType); + PyObject_FINISH_INIT_TYPE(TheBufferMap, BufMapType); + PyObject_FINISH_INIT_TYPE(TheWindowList, WinListType); + PyObject_FINISH_INIT_TYPE(TheCurrent, CurrentType); + PyObject_FINISH_INIT_TYPE(TheTabPageList, TabListType); +#endif return 0; } +#ifdef USE_LIMITED_API + static void +shutdown_types(void) +{ + PYTYPE_CLEANUP(IterType); + PYTYPE_CLEANUP(BufferType); + PYTYPE_CLEANUP(RangeType); + PYTYPE_CLEANUP(WindowType); + PYTYPE_CLEANUP(TabPageType); + PYTYPE_CLEANUP(BufMapType); + PYTYPE_CLEANUP(WinListType); + PYTYPE_CLEANUP(TabListType); + PYTYPE_CLEANUP(CurrentType); + PYTYPE_CLEANUP(DictionaryType); + PYTYPE_CLEANUP(ListType); + PYTYPE_CLEANUP(FunctionType); + PYTYPE_CLEANUP(OptionsType); + PYTYPE_CLEANUP(OutputType); +# if PY_VERSION_HEX < 0x030700f0 + PYTYPE_CLEANUP(LoaderType); +# endif +} +#endif + static int init_sys_path(void) { @@ -6789,27 +7121,6 @@ init_sys_path(void) return 0; } -static BufMapObject TheBufferMap = -{ - PyObject_HEAD_INIT(&BufMapType) -}; - -static WinListObject TheWindowList = -{ - PyObject_HEAD_INIT(&WinListType) - NULL -}; - -static CurrentObject TheCurrent = -{ - PyObject_HEAD_INIT(&CurrentType) -}; - -static TabListObject TheTabPageList = -{ - PyObject_HEAD_INIT(&TabListType) -}; - static struct numeric_constant { char *name; int val; @@ -6820,26 +7131,9 @@ static struct numeric_constant { {"VAR_DEF_SCOPE", VAR_DEF_SCOPE}, }; -static struct object_constant { +struct object_constant { char *name; PyObject *valObject; -} object_constants[] = { - {"buffers", (PyObject *)(void *)&TheBufferMap}, - {"windows", (PyObject *)(void *)&TheWindowList}, - {"tabpages", (PyObject *)(void *)&TheTabPageList}, - {"current", (PyObject *)(void *)&TheCurrent}, - - {"Buffer", (PyObject *)&BufferType}, - {"Range", (PyObject *)&RangeType}, - {"Window", (PyObject *)&WindowType}, - {"TabPage", (PyObject *)&TabPageType}, - {"Dictionary", (PyObject *)&DictionaryType}, - {"List", (PyObject *)&ListType}, - {"Function", (PyObject *)&FunctionType}, - {"Options", (PyObject *)&OptionsType}, -#if PY_VERSION_HEX < 0x030700f0 - {"_Loader", (PyObject *)&LoaderType}, -#endif }; #define ADD_OBJECT(m, name, obj) \ @@ -6872,6 +7166,25 @@ populate_module(PyObject *m) ADD_CHECKED_OBJECT(m, numeric_constants[i].name, PyInt_FromLong(numeric_constants[i].val)); + struct object_constant object_constants[] = { + {"buffers", (PyObject *)(void *)&TheBufferMap}, + {"windows", (PyObject *)(void *)&TheWindowList}, + {"tabpages", (PyObject *)(void *)&TheTabPageList}, + {"current", (PyObject *)(void *)&TheCurrent}, + + {"Buffer", (PyObject *)BufferTypePtr}, + {"Range", (PyObject *)RangeTypePtr}, + {"Window", (PyObject *)WindowTypePtr}, + {"TabPage", (PyObject *)TabPageTypePtr}, + {"Dictionary", (PyObject *)DictionaryTypePtr}, + {"List", (PyObject *)ListTypePtr}, + {"Function", (PyObject *)FunctionTypePtr}, + {"Options", (PyObject *)OptionsTypePtr}, +#if PY_VERSION_HEX < 0x030700f0 + {"_Loader", (PyObject *)LoaderTypePtr}, +#endif + }; + for (i = 0; i < (int)(sizeof(object_constants) / sizeof(struct object_constant)); ++i) diff --git a/src/if_python3.c b/src/if_python3.c index 240b88fac7..c6d1acc198 100644 --- a/src/if_python3.c +++ b/src/if_python3.c @@ -68,6 +68,12 @@ #endif #define PY_SSIZE_T_CLEAN +#define PyLong_Type (*py3_PyLong_Type) +#define PyBool_Type (*py3_PyBool_Type) + +#ifdef Py_LIMITED_API +# define USE_LIMITED_API // Using Python 3 limited ABI +#endif #include @@ -82,8 +88,9 @@ #endif // Suppress Python 3.11 depreciations to see useful warnings -#if defined(__clang__) && defined(__clang_major__) && __clang_major__ > 11 -# pragma clang diagnostic ignored "-Wdeprecated-declarations" +#ifdef __GNUC__ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif // Python 3 does not support CObjects, always use Capsules @@ -200,7 +207,9 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll # ifndef PyMapping_Keys # define PyMapping_Keys py3_PyMapping_Keys # endif -# if PY_VERSION_HEX >= 0x030a00b2 +# if (defined(USE_LIMITED_API) && Py_LIMITED_API >= 0x03080000) || \ + (!defined(USE_LIMITED_API) && PY_VERSION_HEX >= 0x03080000) +# undef PyIter_Check # define PyIter_Check py3_PyIter_Check # endif # define PyIter_Next py3_PyIter_Next @@ -209,10 +218,15 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll # define PyObject_GetItem py3_PyObject_GetItem # define PyObject_IsTrue py3_PyObject_IsTrue # define PyModule_GetDict py3_PyModule_GetDict -#undef PyRun_SimpleString -# define PyRun_SimpleString py3_PyRun_SimpleString -#undef PyRun_String -# define PyRun_String py3_PyRun_String +# ifndef USE_LIMITED_API +# undef PyRun_SimpleString +# define PyRun_SimpleString py3_PyRun_SimpleString +# undef PyRun_String +# define PyRun_String py3_PyRun_String +# else +# define Py_CompileString py3_Py_CompileString +# define PyEval_EvalCode py3_PyEval_EvalCode +# endif # define PyObject_GetAttrString py3_PyObject_GetAttrString # define PyObject_HasAttrString py3_PyObject_HasAttrString # define PyObject_SetAttrString py3_PyObject_SetAttrString @@ -225,7 +239,7 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll # define PySys_GetObject py3_PySys_GetObject # define PySys_SetArgv py3_PySys_SetArgv # define PyType_Ready py3_PyType_Ready -# if PY_VERSION_HEX >= 0x030900b0 +# if PY_VERSION_HEX >= 0x03040000 # define PyType_GetFlags py3_PyType_GetFlags # endif #undef Py_BuildValue @@ -241,14 +255,23 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll # define PyModule_AddObject py3_PyModule_AddObject # define PyImport_AppendInittab py3_PyImport_AppendInittab # define PyImport_AddModule py3_PyImport_AddModule -# if PY_VERSION_HEX >= 0x030300f0 -# undef _PyUnicode_AsString -# define _PyUnicode_AsString py3_PyUnicode_AsUTF8 +# ifdef USE_LIMITED_API +# if Py_LIMITED_API >= 0x030a0000 +# define PyUnicode_AsUTF8AndSize py3_PyUnicode_AsUTF8AndSize +# endif # else -# define _PyUnicode_AsString py3__PyUnicode_AsString +# if PY_VERSION_HEX >= 0x030300f0 +# define PyUnicode_AsUTF8AndSize py3_PyUnicode_AsUTF8AndSize +# else +# define _PyUnicode_AsString py3__PyUnicode_AsString +# endif # endif +# undef PyUnicode_CompareWithASCIIString +# define PyUnicode_CompareWithASCIIString py3_PyUnicode_CompareWithASCIIString # undef PyUnicode_AsEncodedString # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString +# undef PyUnicode_AsUTF8String +# define PyUnicode_AsUTF8String py3_PyUnicode_AsUTF8String # undef PyBytes_AsString # define PyBytes_AsString py3_PyBytes_AsString # ifndef PyBytes_AsStringAndSize @@ -258,7 +281,7 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll # define PyBytes_FromString py3_PyBytes_FromString # undef PyBytes_FromStringAndSize # define PyBytes_FromStringAndSize py3_PyBytes_FromStringAndSize -# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0 +# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0 || defined(USE_LIMITED_API) # define _Py_Dealloc py3__Py_Dealloc # endif # define PyFloat_FromDouble py3_PyFloat_FromDouble @@ -270,7 +293,6 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll # define PyFloat_Type (*py3_PyFloat_Type) # define PyNumber_Check (*py3_PyNumber_Check) # define PyNumber_Long (*py3_PyNumber_Long) -# define PyBool_Type (*py3_PyBool_Type) # define PyErr_NewException py3_PyErr_NewException # ifdef Py_DEBUG # define _Py_NegativeRefcount py3__Py_NegativeRefcount @@ -308,6 +330,10 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll # define PyType_IsSubtype py3_PyType_IsSubtype # define PyCapsule_New py3_PyCapsule_New # define PyCapsule_GetPointer py3_PyCapsule_GetPointer +# ifdef USE_LIMITED_API +# define PyType_GetSlot py3_PyType_GetSlot +# define PyType_FromSpec py3_PyType_FromSpec +# endif # if defined(Py_DEBUG) && !defined(Py_DEBUG_NO_PYMALLOC) # undef PyObject_NEW @@ -356,8 +382,13 @@ static void (*py3_Py_Finalize)(void); static void (*py3_PyErr_SetString)(PyObject *, const char *); static void (*py3_PyErr_SetObject)(PyObject *, PyObject *); static int (*py3_PyErr_ExceptionMatches)(PyObject *); +# ifndef USE_LIMITED_API static int (*py3_PyRun_SimpleString)(char *); static PyObject* (*py3_PyRun_String)(char *, int, PyObject *, PyObject *); +# else +static PyObject* (*py3_Py_CompileString)(const char *, const char *, int); +static PyObject* (*py3_PyEval_EvalCode)(PyObject *co, PyObject *globals, PyObject *locals); +# endif static PyObject* (*py3_PyObject_GetAttrString)(PyObject *, const char *); static int (*py3_PyObject_HasAttrString)(PyObject *, const char *); static int (*py3_PyObject_SetAttrString)(PyObject *, const char *, PyObject *); @@ -377,7 +408,8 @@ static PyObject* (*py3_PyDict_GetItemString)(PyObject *, const char *); static int (*py3_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **); static PyObject* (*py3_PyLong_FromLong)(long); static PyObject* (*py3_PyDict_New)(void); -# if PY_VERSION_HEX >= 0x030a00b2 +# if (defined(USE_LIMITED_API) && Py_LIMITED_API >= 0x03080000) || \ + (!defined(USE_LIMITED_API) && PY_VERSION_HEX >= 0x03080000) static int (*py3_PyIter_Check)(PyObject *o); # endif static PyObject* (*py3_PyIter_Next)(PyObject *); @@ -386,7 +418,7 @@ static PyObject* (*py3_PyObject_Repr)(PyObject *); static PyObject* (*py3_PyObject_GetItem)(PyObject *, PyObject *); static int (*py3_PyObject_IsTrue)(PyObject *); static PyObject* (*py3_Py_BuildValue)(char *, ...); -# if PY_VERSION_HEX >= 0x030900b0 +# if PY_VERSION_HEX >= 0x03040000 static int (*py3_PyType_GetFlags)(PyTypeObject *o); # endif static int (*py3_PyType_Ready)(PyTypeObject *type); @@ -423,17 +455,25 @@ static PyObject* py3__Py_FalseStruct; static PyObject* py3__Py_TrueStruct; static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o); static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void)); -# if PY_VERSION_HEX >= 0x030300f0 -static char* (*py3_PyUnicode_AsUTF8)(PyObject *unicode); +# ifdef USE_LIMITED_API +# if Py_LIMITED_API >= 0x030a0000 +static char* (*py3_PyUnicode_AsUTF8AndSize)(PyObject *unicode, Py_ssize_t *size); +# endif # else +# if PY_VERSION_HEX >= 0x030300f0 +static char* (*py3_PyUnicode_AsUTF8AndSize)(PyObject *unicode, Py_ssize_t *size); +# else static char* (*py3__PyUnicode_AsString)(PyObject *unicode); +# endif # endif +static int (*py3_PyUnicode_CompareWithASCIIString)(PyObject *unicode, const char* string); static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors); +static PyObject* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode); static char* (*py3_PyBytes_AsString)(PyObject *bytes); static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, Py_ssize_t *length); static PyObject* (*py3_PyBytes_FromString)(char *str); static PyObject* (*py3_PyBytes_FromStringAndSize)(char *str, Py_ssize_t length); -# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0 +# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0 || defined(USE_LIMITED_API) static void (*py3__Py_Dealloc)(PyObject *obj); # endif # if PY_VERSION_HEX >= 0x030900b0 @@ -448,7 +488,10 @@ static PyTypeObject* py3_PyType_Type; static PyTypeObject* py3_PyStdPrinter_Type; static PyTypeObject* py3_PySlice_Type; static PyTypeObject* py3_PyFloat_Type; -static PyTypeObject* py3_PyBool_Type; +PyTypeObject* py3_PyBool_Type; +# if PY_VERSION_HEX >= 0x030c00b0 +PyTypeObject* py3_PyLong_Type; +# endif static int (*py3_PyNumber_Check)(PyObject *); static PyObject* (*py3_PyNumber_Long)(PyObject *); static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict); @@ -472,6 +515,10 @@ static PyObject*(*py3__PyObject_GC_New)(PyTypeObject *); static void(*py3_PyObject_GC_Del)(void *); static void(*py3_PyObject_GC_UnTrack)(void *); static int (*py3_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *); +# ifdef USE_LIMITED_API +static void* (*py3_PyType_GetSlot)(PyTypeObject *, int); +static PyObject* (*py3_PyType_FromSpec)(PyType_Spec *); +# endif // Imported exception objects static PyObject *p3imp_PyExc_AttributeError; @@ -537,8 +584,13 @@ static struct {"PyErr_SetString", (PYTHON_PROC*)&py3_PyErr_SetString}, {"PyErr_SetObject", (PYTHON_PROC*)&py3_PyErr_SetObject}, {"PyErr_ExceptionMatches", (PYTHON_PROC*)&py3_PyErr_ExceptionMatches}, +# ifndef USE_LIMITED_API {"PyRun_SimpleString", (PYTHON_PROC*)&py3_PyRun_SimpleString}, {"PyRun_String", (PYTHON_PROC*)&py3_PyRun_String}, +# else + {"Py_CompileString", (PYTHON_PROC*)&py3_Py_CompileString}, + {"PyEval_EvalCode", (PYTHON_PROC*)&PyEval_EvalCode}, +# endif {"PyObject_GetAttrString", (PYTHON_PROC*)&py3_PyObject_GetAttrString}, {"PyObject_HasAttrString", (PYTHON_PROC*)&py3_PyObject_HasAttrString}, {"PyObject_SetAttrString", (PYTHON_PROC*)&py3_PyObject_SetAttrString}, @@ -558,7 +610,8 @@ static struct {"PyDict_Next", (PYTHON_PROC*)&py3_PyDict_Next}, {"PyMapping_Check", (PYTHON_PROC*)&py3_PyMapping_Check}, {"PyMapping_Keys", (PYTHON_PROC*)&py3_PyMapping_Keys}, -# if PY_VERSION_HEX >= 0x030a00b2 +# if (defined(USE_LIMITED_API) && Py_LIMITED_API >= 0x03080000) || \ + (!defined(USE_LIMITED_API) && PY_VERSION_HEX >= 0x03080000) {"PyIter_Check", (PYTHON_PROC*)&py3_PyIter_Check}, # endif {"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next}, @@ -568,7 +621,7 @@ static struct {"PyObject_IsTrue", (PYTHON_PROC*)&py3_PyObject_IsTrue}, {"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong}, {"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New}, -# if PY_VERSION_HEX >= 0x030900b0 +# if PY_VERSION_HEX >= 0x03040000 {"PyType_GetFlags", (PYTHON_PROC*)&py3_PyType_GetFlags}, # endif {"PyType_Ready", (PYTHON_PROC*)&py3_PyType_Ready}, @@ -590,11 +643,19 @@ static struct {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, -# if PY_VERSION_HEX >= 0x030300f0 - {"PyUnicode_AsUTF8", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8}, +# ifdef USE_LIMITED_API +# if Py_LIMITED_API >= 0x030a0000 + {"PyUnicode_AsUTF8AndSize", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8AndSize}, +# endif # else +# if PY_VERSION_HEX >= 0x030300f0 + {"PyUnicode_AsUTF8AndSize", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8AndSize}, +# else {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString}, +# endif # endif + {"PyUnicode_CompareWithASCIIString", (PYTHON_PROC*)&py3_PyUnicode_CompareWithASCIIString}, + {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String}, # ifndef Py_UNICODE_USE_UCS_FUNCTIONS {"PyUnicode_FromFormat", (PYTHON_PROC*)&py3_PyUnicode_FromFormat}, # else @@ -608,7 +669,7 @@ static struct {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize}, {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString}, {"PyBytes_FromStringAndSize", (PYTHON_PROC*)&py3_PyBytes_FromStringAndSize}, -# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0 +# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0 || defined(USE_LIMITED_API) {"_Py_Dealloc", (PYTHON_PROC*)&py3__Py_Dealloc}, # endif # if PY_VERSION_HEX >= 0x030900b0 @@ -623,7 +684,9 @@ static struct {"PyStdPrinter_Type", (PYTHON_PROC*)&py3_PyStdPrinter_Type}, {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type}, {"PyFloat_Type", (PYTHON_PROC*)&py3_PyFloat_Type}, +# if PY_VERSION_HEX < 0x030c00b0 {"PyBool_Type", (PYTHON_PROC*)&py3_PyBool_Type}, +# endif {"PyNumber_Check", (PYTHON_PROC*)&py3_PyNumber_Check}, {"PyNumber_Long", (PYTHON_PROC*)&py3_PyNumber_Long}, {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException}, @@ -647,6 +710,12 @@ static struct {"PyType_IsSubtype", (PYTHON_PROC*)&py3_PyType_IsSubtype}, {"PyCapsule_New", (PYTHON_PROC*)&py3_PyCapsule_New}, {"PyCapsule_GetPointer", (PYTHON_PROC*)&py3_PyCapsule_GetPointer}, +# ifdef USE_LIMITED_API +# if PY_VERSION_HEX >= 0x03040000 + {"PyType_GetSlot", (PYTHON_PROC*)&py3_PyType_GetSlot}, +# endif + {"PyType_FromSpec", (PYTHON_PROC*)&py3_PyType_FromSpec}, +# endif {"", NULL}, }; @@ -915,7 +984,12 @@ static int py3initialised = 0; #define PYINITIALISED py3initialised static int python_end_called = FALSE; -#define DESTRUCTOR_FINISH(self) Py_TYPE(self)->tp_free((PyObject*)self) +#ifdef USE_LIMITED_API +# define DESTRUCTOR_FINISH(self) \ + ((freefunc)PyType_GetSlot(Py_TYPE(self), Py_tp_free))((PyObject*)self) +#else +# define DESTRUCTOR_FINISH(self) Py_TYPE(self)->tp_free((PyObject*)self) +#endif #define WIN_PYTHON_REF(win) win->w_python3_ref #define BUF_PYTHON_REF(buf) buf->b_python3_ref @@ -968,11 +1042,51 @@ static struct PyModuleDef vimmodule; */ #include "if_py_both.h" +#ifndef USE_LIMITED_API +# if PY_VERSION_HEX >= 0x030300f0 +# define PY_UNICODE_GET_UTF8_CHARS(obj) PyUnicode_AsUTF8AndSize(obj, NULL) +# else +# define PY_UNICODE_GET_UTF8_CHARS _PyUnicode_AsString +# endif +#else +# if Py_LIMITED_API >= 0x030A0000 +# define PY_UNICODE_GET_UTF8_CHARS(obj) PyUnicode_AsUTF8AndSize(obj, NULL) +# else +// Python limited API before 3.10 lack easy ways to query the raw UTF-8 chars. +// We need to first convert the string to bytes, and then extract the chars. +// This function is only used for attribute string comparisons, which have +// known short length. As such, just allocate a short static buffer to hold +// the characters instead of having to allocate/deallcoate it. +// +// An alternative would be to convert all attribute string comparisons to use +// PyUnicode_CompareWithASCIIString to skip having to extract the chars. +static char py3_unicode_utf8_chars[20]; +char* PY_UNICODE_GET_UTF8_CHARS(PyObject* str) +{ + py3_unicode_utf8_chars[0] = '\0'; + PyObject* bytes = PyUnicode_AsUTF8String(str); + if (bytes) + { + char *chars; + Py_ssize_t len; + if (PyBytes_AsStringAndSize(bytes, &chars, &len) != -1) + { + if (len < (Py_ssize_t)sizeof(py3_unicode_utf8_chars)) + // PyBytes_AsStringAndSize guarantees null-termination + memcpy(py3_unicode_utf8_chars, chars, len + 1); + } + Py_DECREF(bytes); + } + return py3_unicode_utf8_chars; +} +# endif +#endif + // NOTE: Must always be used at the start of a block, since it declares "name". #define GET_ATTR_STRING(name, nameobj) \ char *name = ""; \ if (PyUnicode_Check(nameobj)) \ - name = (char *)_PyUnicode_AsString(nameobj) + name = (char *)PY_UNICODE_GET_UTF8_CHARS(nameobj) #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0) @@ -1001,6 +1115,10 @@ python3_end(void) #endif if (Py_IsInitialized()) { +#ifdef USE_LIMITED_API + shutdown_types(); +#endif + // acquire lock before finalizing PyGILState_Ensure(); @@ -1949,4 +2067,14 @@ do_py3eval(char_u *str, typval_T *rettv) set_ref_in_python3(int copyID) { return set_ref_in_py(copyID); +} + + int +python3_version() +{ +#ifdef USE_LIMITED_API + return Py_LIMITED_API; +#else + return PY_VERSION_HEX; +#endif } diff --git a/src/libvterm/CODE-MAP b/src/libvterm/CODE-MAP new file mode 100644 index 0000000000..c7a0344fc8 --- /dev/null +++ b/src/libvterm/CODE-MAP @@ -0,0 +1,66 @@ +CODE-MAP + - high-level list and description of files in the repository + +CONTRIBUTING + - documentation explaining how developers can contribute fixes and features + +doc/ + - contains documentation + +doc/seqs.txt + - documents the sequences recognised by the library + +include/vterm.h + - main include file + +include/vterm_keycodes.h + - include file containing the keyboard input keycode enumerations + +LICENSE + - legalese + +Makefile + - main build file + +src/ + - contains the source code for the library + +src/encoding.c + - handles mapping ISO/IEC 2022 alternate character sets into Unicode + codepoints + +src/keyboard.c + - handles sending reported keyboard events to the output stream + +src/mouse.c + - handles sending reported mouse events to the output stream + +src/parser.c + - parses bytes from the input stream into parser-level events + +src/pen.c + - interprets SGR sequences and maintains current rendering attributes + +src/screen.c + - uses state-level events to maintain a buffer of current screen contents + +src/state.c + - follows parser-level events to keep track of the overall terminal state + +src/unicode.c + - utility functions for Unicode and UTF-8 handling + +src/vterm.c + - toplevel object state and miscellaneous functions + +src/vterm_internal.h + - include file for definitions private to the library's internals + +t/ + - contains unit tests + +t/harness.c + - standalone program to embed the library into for unit-test purposes + +t/run-test.pl + - invokes the test harness to run a single unit test script diff --git a/src/libvterm/Makefile b/src/libvterm/Makefile index ba4a3157ed..94ca40998a 100644 --- a/src/libvterm/Makefile +++ b/src/libvterm/Makefile @@ -36,14 +36,11 @@ INCFILES=$(TBLFILES:.tbl=.inc) HFILES_INT=$(sort $(wildcard src/*.h)) $(HFILES) -VERSION_MAJOR=0 -VERSION_MINOR=3 - VERSION_CURRENT=0 VERSION_REVISION=0 VERSION_AGE=0 -VERSION=$(VERSION_MAJOR).$(VERSION_MINOR) +VERSION=0.3.3 PREFIX=/usr/local BINDIR=$(PREFIX)/bin diff --git a/src/libvterm/include/vterm.h b/src/libvterm/include/vterm.h index 6a967dbdb4..a3aa17a8f6 100644 --- a/src/libvterm/include/vterm.h +++ b/src/libvterm/include/vterm.h @@ -23,6 +23,7 @@ typedef unsigned int uint32_t; #define VTERM_VERSION_MAJOR 0 #define VTERM_VERSION_MINOR 3 +#define VTERM_VERSION_PATCH 3 #define VTERM_CHECK_VERSION \ vterm_check_version(VTERM_VERSION_MAJOR, VTERM_VERSION_MINOR) @@ -255,6 +256,7 @@ typedef enum { VTERM_PROP_REVERSE, // bool VTERM_PROP_CURSORSHAPE, // number VTERM_PROP_MOUSE, // number + VTERM_PROP_FOCUSREPORT, // bool VTERM_PROP_CURSORCOLOR, // VIM - string VTERM_N_PROPS @@ -422,6 +424,11 @@ typedef struct { void vterm_parser_set_callbacks(VTerm *vt, const VTermParserCallbacks *callbacks, void *user); void *vterm_parser_get_cbdata(VTerm *vt); +/* Normally NUL, CAN, SUB and DEL are ignored. Setting this true causes them + * to be emitted by the 'control' callback + */ +void vterm_parser_set_emit_nul(VTerm *vt, int emit); + // ----------- // State layer // ----------- @@ -645,6 +652,12 @@ int vterm_screen_is_eol(const VTermScreen *screen, VTermPos pos); */ void vterm_screen_convert_color_to_rgb(const VTermScreen *screen, VTermColor *col); +/** + * Similar to vterm_state_set_default_colors(), but also resets colours in the + * screen buffer(s) + */ +void vterm_screen_set_default_colors(VTermScreen *screen, const VTermColor *default_fg, const VTermColor *default_bg); + // --------- // Utilities // --------- diff --git a/src/libvterm/src/parser.c b/src/libvterm/src/parser.c index 0d1e12b0a2..6d225166e3 100644 --- a/src/libvterm/src/parser.c +++ b/src/libvterm/src/parser.c @@ -148,11 +148,15 @@ size_t vterm_input_write(VTerm *vt, const char *bytes, size_t len) string_fragment(vt, string_start, bytes + pos - string_start, FALSE); string_start = bytes + pos + 1; } + if(vt->parser.emit_nul) + do_control(vt, c); continue; } if(c == 0x18 || c == 0x1a) { // CAN, SUB vt->parser.in_esc = FALSE; ENTER_NORMAL_STATE(); + if(vt->parser.emit_nul) + do_control(vt, c); continue; } else if(c == 0x1b) { // ESC @@ -402,3 +406,8 @@ void *vterm_parser_get_cbdata(VTerm *vt) { return vt->parser.cbdata; } + +void vterm_parser_set_emit_nul(VTerm *vt, int emit) +{ + vt->parser.emit_nul = emit; +} diff --git a/src/libvterm/src/pen.c b/src/libvterm/src/pen.c index 1c6cd4e488..ddc8e40a79 100644 --- a/src/libvterm/src/pen.c +++ b/src/libvterm/src/pen.c @@ -259,15 +259,17 @@ void vterm_state_get_palette_color(const VTermState *state, int index, VTermColo void vterm_state_set_default_colors(VTermState *state, const VTermColor *default_fg, const VTermColor *default_bg) { - /* Copy the given colors */ - state->default_fg = *default_fg; - state->default_bg = *default_bg; + if(default_fg) { + state->default_fg = *default_fg; + state->default_fg.type = (state->default_fg.type & ~VTERM_COLOR_DEFAULT_MASK) + | VTERM_COLOR_DEFAULT_FG; + } - /* Make sure the correct type flags are set */ - state->default_fg.type = (state->default_fg.type & ~VTERM_COLOR_DEFAULT_MASK) - | VTERM_COLOR_DEFAULT_FG; - state->default_bg.type = (state->default_bg.type & ~VTERM_COLOR_DEFAULT_MASK) - | VTERM_COLOR_DEFAULT_BG; + if(default_bg) { + state->default_bg = *default_bg; + state->default_bg.type = (state->default_bg.type & ~VTERM_COLOR_DEFAULT_MASK) + | VTERM_COLOR_DEFAULT_BG; + } } void vterm_state_set_palette_color(VTermState *state, int index, const VTermColor *col) diff --git a/src/libvterm/src/screen.c b/src/libvterm/src/screen.c index fb1d26e432..53564be16b 100644 --- a/src/libvterm/src/screen.c +++ b/src/libvterm/src/screen.c @@ -292,7 +292,11 @@ static int erase_internal(VTermRect rect, int selective, void *user) continue; cell->chars[0] = 0; - cell->pen = screen->pen; + cell->pen = (ScreenPen){ + /* Only copy .fg and .bg; leave things like rv in reset state */ + .fg = screen->pen.fg, + .bg = screen->pen.bg, + }; cell->pen.dwl = info->doublewidth; cell->pen.dhl = info->doubleheight; } @@ -603,8 +607,15 @@ static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new new_row_start, new_row_end, old_row_start, old_row_end, width); #endif - if(new_row_start < 0) + if(new_row_start < 0) { + if(old_row_start <= old_cursor.row && old_cursor.row < old_row_end) { + new_cursor.row = 0; + new_cursor.col = old_cursor.col; + if(new_cursor.col >= new_cols) + new_cursor.col = new_cols-1; + } break; + } for(new_row = new_row_start, old_row = old_row_start; new_row <= new_row_end; new_row++) { int count = width >= new_cols ? new_cols : width; @@ -674,8 +685,9 @@ static void resize_buffer(VTermScreen *screen, int bufidx, int new_rows, int new if(old_row >= 0 && bufidx == BUFIDX_PRIMARY) { /* Push spare lines to scrollback buffer */ - for(int row = 0; row <= old_row; row++) - sb_pushline_from_row(screen, row); + if(screen->callbacks && screen->callbacks->sb_pushline) + for(int row = 0; row <= old_row; row++) + sb_pushline_from_row(screen, row); if(active) statefields->pos.row -= (old_row + 1); } @@ -1204,3 +1216,36 @@ void vterm_screen_convert_color_to_rgb(const VTermScreen *screen, VTermColor *co { vterm_state_convert_color_to_rgb(screen->state, col); } + +static void reset_default_colours(VTermScreen *screen, ScreenCell *buffer) +{ + for(int row = 0; row <= screen->rows - 1; row++) + for(int col = 0; col <= screen->cols - 1; col++) { + ScreenCell *cell = &buffer[row * screen->cols + col]; + if(VTERM_COLOR_IS_DEFAULT_FG(&cell->pen.fg)) + cell->pen.fg = screen->pen.fg; + if(VTERM_COLOR_IS_DEFAULT_BG(&cell->pen.bg)) + cell->pen.bg = screen->pen.bg; + } +} + +void vterm_screen_set_default_colors(VTermScreen *screen, const VTermColor *default_fg, const VTermColor *default_bg) +{ + vterm_state_set_default_colors(screen->state, default_fg, default_bg); + + if(default_fg && VTERM_COLOR_IS_DEFAULT_FG(&screen->pen.fg)) { + screen->pen.fg = *default_fg; + screen->pen.fg.type = (screen->pen.fg.type & ~VTERM_COLOR_DEFAULT_MASK) + | VTERM_COLOR_DEFAULT_FG; + } + + if(default_bg && VTERM_COLOR_IS_DEFAULT_BG(&screen->pen.bg)) { + screen->pen.bg = *default_bg; + screen->pen.bg.type = (screen->pen.bg.type & ~VTERM_COLOR_DEFAULT_MASK) + | VTERM_COLOR_DEFAULT_BG; + } + + reset_default_colours(screen, screen->buffers[0]); + if(screen->buffers[1]) + reset_default_colours(screen, screen->buffers[1]); +} diff --git a/src/libvterm/src/state.c b/src/libvterm/src/state.c index ee44824696..ee36ad4c2d 100644 --- a/src/libvterm/src/state.c +++ b/src/libvterm/src/state.c @@ -837,6 +837,7 @@ static void set_dec_mode(VTermState *state, int num, int val) break; case 1004: + settermprop_bool(state, VTERM_PROP_FOCUSREPORT, val); state->mode.report_focus = val; break; @@ -993,6 +994,7 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha switch(intermed[0]) { case ' ': + case '!': case '"': case '$': case '\'': @@ -1370,8 +1372,10 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha break; case LEADER('?', 0x68): // DEC private mode set - if(!CSI_ARG_IS_MISSING(args[0])) - set_dec_mode(state, CSI_ARG(args[0]), 1); + for(int i = 0; i < argcount; i++) { + if(!CSI_ARG_IS_MISSING(args[i])) + set_dec_mode(state, CSI_ARG(args[i]), 1); + } break; case 0x6a: // HPB - ECMA-48 8.3.58 @@ -1392,8 +1396,10 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha break; case LEADER('?', 0x6c): // DEC private mode reset - if(!CSI_ARG_IS_MISSING(args[0])) - set_dec_mode(state, CSI_ARG(args[0]), 0); + for(int i = 0; i < argcount; i++) { + if(!CSI_ARG_IS_MISSING(args[i])) + set_dec_mode(state, CSI_ARG(args[i]), 0); + } break; case 0x6d: // SGR - ECMA-48 8.3.117 @@ -1486,7 +1492,7 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha break; - case LEADER('!', 0x70): // DECSTR - DEC soft terminal reset + case INTERMED('!', 0x70): // DECSTR - DEC soft terminal reset vterm_state_reset(state, 0); break; @@ -1769,8 +1775,18 @@ static void osc_selection(VTermState *state, VTermStringFragment frag) frag.len--; } - if(!frag.len) + if(!frag.len) { + /* Clear selection if we're already finished but didn't do anything */ + if(frag.final && state->selection.callbacks->set) { + (*state->selection.callbacks->set)(state->tmp.selection.mask, (VTermStringFragment){ + .str = NULL, + .len = 0, + .initial = state->tmp.selection.state != SELECTION_SET, + .final = TRUE, + }, state->selection.user); + } return; + } if(state->tmp.selection.state == SELECTION_SELECTED) { if(frag.str[0] == '?') { @@ -1788,6 +1804,9 @@ static void osc_selection(VTermState *state, VTermStringFragment frag) return; } + if(state->tmp.selection.state == SELECTION_INVALID) + return; + if(state->selection.callbacks->set) { size_t bufcur = 0; char *buffer = state->selection.buffer; @@ -1823,11 +1842,21 @@ static void osc_selection(VTermState *state, VTermStringFragment frag) uint8_t b = unbase64one(frag.str[0]); if(b == 0xFF) { DEBUG_LOG1("base64decode bad input %02X\n", (uint8_t)frag.str[0]); + + state->tmp.selection.state = SELECTION_INVALID; + if(state->selection.callbacks->set) { + (*state->selection.callbacks->set)(state->tmp.selection.mask, (VTermStringFragment){ + .str = NULL, + .len = 0, + .initial = TRUE, + .final = TRUE, + }, state->selection.user); + } + break; } - else { - x = (x << 6) | b; - n++; - } + + x = (x << 6) | b; + n++; frag.str++, frag.len--; if(n == 4) { @@ -1847,7 +1876,7 @@ static void osc_selection(VTermState *state, VTermStringFragment frag) state->selection.buffer, // str bufcur, // len state->tmp.selection.state == SELECTION_SET_INITIAL, // initial - frag.final // final + frag.final && !frag.len // final }; (*state->selection.callbacks->set)(state->tmp.selection.mask, setfrag, state->selection.user); @@ -2004,7 +2033,7 @@ static void request_status_string(VTermState *state, VTermStringFragment frag) return; } - vterm_push_output_sprintf_str(state->vt, C1_DCS, TRUE, "0$r%s", tmp); + vterm_push_output_sprintf_str(state->vt, C1_DCS, TRUE, "0$r"); } static int on_dcs(const char *command, size_t commandlen, VTermStringFragment frag, void *user) @@ -2354,6 +2383,9 @@ int vterm_state_set_termprop(VTermState *state, VTermProp prop, VTermValue *val) if(val->number == VTERM_PROP_MOUSE_MOVE) state->mouse_flags |= MOUSE_WANT_MOVE; return 1; + case VTERM_PROP_FOCUSREPORT: + state->mode.report_focus = val->boolean; + return 1; case VTERM_N_PROPS: return 0; diff --git a/src/libvterm/src/vterm.c b/src/libvterm/src/vterm.c index ed6d21b778..dba6377186 100644 --- a/src/libvterm/src/vterm.c +++ b/src/libvterm/src/vterm.c @@ -73,6 +73,8 @@ VTerm *vterm_build(const struct VTermBuilder *builder) vt->parser.callbacks = NULL; vt->parser.cbdata = NULL; + vt->parser.emit_nul = FALSE; + vt->outfunc = NULL; vt->outdata = NULL; @@ -314,6 +316,7 @@ VTermValueType vterm_get_prop_type(VTermProp prop) case VTERM_PROP_REVERSE: return VTERM_VALUETYPE_BOOL; case VTERM_PROP_CURSORSHAPE: return VTERM_VALUETYPE_INT; case VTERM_PROP_MOUSE: return VTERM_VALUETYPE_INT; + case VTERM_PROP_FOCUSREPORT: return VTERM_VALUETYPE_BOOL; case VTERM_PROP_CURSORCOLOR: return VTERM_VALUETYPE_STRING; case VTERM_N_PROPS: return 0; diff --git a/src/libvterm/src/vterm_internal.h b/src/libvterm/src/vterm_internal.h index 3e95611b42..0f80fa4315 100644 --- a/src/libvterm/src/vterm_internal.h +++ b/src/libvterm/src/vterm_internal.h @@ -169,6 +169,7 @@ struct VTermState SELECTION_QUERY, SELECTION_SET_INITIAL, SELECTION_SET, + SELECTION_INVALID, } state : 8; uint32_t recvpartial; uint32_t sendpartial; @@ -238,6 +239,8 @@ struct VTerm void *cbdata; int string_initial; + + int emit_nul; } parser; /* len == malloc()ed size; cur == number of valid bytes */ diff --git a/src/libvterm/t/17state_mouse.test b/src/libvterm/t/17state_mouse.test index e5ba29b4e7..33b7dc2c74 100644 --- a/src/libvterm/t/17state_mouse.test +++ b/src/libvterm/t/17state_mouse.test @@ -55,6 +55,10 @@ MOUSEBTN d 4 0 output "\e[M\x60\x36\x2b" MOUSEBTN d 5 0 output "\e[M\x61\x36\x2b" +MOUSEBTN d 6 0 + output "\e[M\x62\x36\x2b" +MOUSEBTN d 7 0 + output "\e[M\x63\x36\x2b" !DECRQM on mouse button mode PUSH "\e[?1000\$p" @@ -179,3 +183,9 @@ RESET MOUSEMOVE 0,0 0 MOUSEBTN d 1 0 MOUSEBTN u 1 0 + +!DECSM can set multiple modes at once +PUSH "\e[?1002;1006h" + settermprop 8 2 +MOUSEBTN d 1 0 + output "\e[<0;1;1M" diff --git a/src/libvterm/t/25state_input.test b/src/libvterm/t/25state_input.test index 4eb4c6abdf..11013ed9ba 100644 --- a/src/libvterm/t/25state_input.test +++ b/src/libvterm/t/25state_input.test @@ -148,7 +148,9 @@ FOCUS IN FOCUS OUT !Focus reporting enabled +WANTSTATE +p PUSH "\e[?1004h" + settermprop 9 true FOCUS IN output "\e[I" FOCUS OUT diff --git a/src/libvterm/t/30state_pen.test b/src/libvterm/t/30state_pen.test index 92cf01d855..1a6cd01dd1 100644 --- a/src/libvterm/t/30state_pen.test +++ b/src/libvterm/t/30state_pen.test @@ -123,3 +123,11 @@ PUSH "\e[74m" PUSH "\e[75m" ?pen small = off ?pen baseline = normal + +!DECSTR resets pen attributes +PUSH "\e[1;4m" + ?pen bold = on + ?pen underline = 1 +PUSH "\e[!p" + ?pen bold = off + ?pen underline = 0 diff --git a/src/libvterm/t/40state_selection.test b/src/libvterm/t/40state_selection.test index 6ed8972fc0..a6a32319f0 100644 --- a/src/libvterm/t/40state_selection.test +++ b/src/libvterm/t/40state_selection.test @@ -26,6 +26,30 @@ PUSH "\e]52;c;SGVsbG" PUSH "8s\e\\" selection-set mask=0001 "lo,"] +!Set clipboard; empty first chunk +PUSH "\e]52;c;" +PUSH "SGVsbG8s\e\\" + selection-set mask=0001 ["Hello,"] + +!Set clipboard; empty final chunk +PUSH "\e]52;c;SGVsbG8s" + selection-set mask=0001 ["Hello," +PUSH "\e\\" + selection-set mask=0001 ] + +!Set clipboard; longer than buffer +PUSH "\e]52;c;" . "LS0t"x10 . "\e\\" + selection-set mask=0001 ["-"x15 + selection-set mask=0001 "-"x15] + +!Clear clipboard +PUSH "\e]52;c;\e\\" + selection-set mask=0001 [] + +!Set invalid data clears and ignores +PUSH "\e]52;c;SGVs*SGVsbG8s\e\\" + selection-set mask=0001 [] + !Query clipboard PUSH "\e]52;c;?\e\\" selection-query mask=0001 diff --git a/src/libvterm/t/64screen_pen.test b/src/libvterm/t/64screen_pen.test index 1cb6324bda..fa15bce959 100644 --- a/src/libvterm/t/64screen_pen.test +++ b/src/libvterm/t/64screen_pen.test @@ -41,21 +41,31 @@ PUSH "x\e[74m0\e[73m2\e[m" ?screen_cell 0,9 = {0x30} width=1 attrs={S_} fg=rgb(240,240,240) bg=rgb(0,0,0) ?screen_cell 0,10 = {0x32} width=1 attrs={S^} fg=rgb(240,240,240) bg=rgb(0,0,0) -!EL sets reverse and colours to end of line +!EL sets only colours to end of line, not other attrs PUSH "\e[H\e[7;33;44m\e[K" - ?screen_cell 0,0 = {} width=1 attrs={R} fg=idx(3) bg=idx(4) - ?screen_cell 0,79 = {} width=1 attrs={R} fg=idx(3) bg=idx(4) - -!DECSCNM xors reverse for entire screen -PUSH "\e[?5h" ?screen_cell 0,0 = {} width=1 attrs={} fg=idx(3) bg=idx(4) ?screen_cell 0,79 = {} width=1 attrs={} fg=idx(3) bg=idx(4) + +!DECSCNM xors reverse for entire screen +PUSH "R\e[?5h" + ?screen_cell 0,0 = {0x52} width=1 attrs={} fg=idx(3) bg=idx(4) ?screen_cell 1,0 = {} width=1 attrs={R} fg=rgb(240,240,240) bg=rgb(0,0,0) PUSH "\e[?5\$p" output "\e[?5;1\$y" PUSH "\e[?5l" - ?screen_cell 0,0 = {} width=1 attrs={R} fg=idx(3) bg=idx(4) - ?screen_cell 0,79 = {} width=1 attrs={R} fg=idx(3) bg=idx(4) + ?screen_cell 0,0 = {0x52} width=1 attrs={R} fg=idx(3) bg=idx(4) ?screen_cell 1,0 = {} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) PUSH "\e[?5\$p" output "\e[?5;2\$y" + +!Set default colours +RESET +PUSH "ABC\e[31mDEF\e[m" + ?screen_cell 0,0 = {0x41} width=1 attrs={} fg=rgb(240,240,240) bg=rgb(0,0,0) + ?screen_cell 0,3 = {0x44} width=1 attrs={} fg=idx(1) bg=rgb(0,0,0) +SETDEFAULTCOL rgb(252,253,254) + ?screen_cell 0,0 = {0x41} width=1 attrs={} fg=rgb(252,253,254) bg=rgb(0,0,0) + ?screen_cell 0,3 = {0x44} width=1 attrs={} fg=idx(1) bg=rgb(0,0,0) +SETDEFAULTCOL rgb(250,250,250) rgb(10,20,30) + ?screen_cell 0,0 = {0x41} width=1 attrs={} fg=rgb(250,250,250) bg=rgb(10,20,30) + ?screen_cell 0,3 = {0x44} width=1 attrs={} fg=idx(1) bg=rgb(10,20,30) diff --git a/src/libvterm/t/69screen_reflow.test b/src/libvterm/t/69screen_reflow.test index 278cc5bdd1..eb7e4e4d95 100644 --- a/src/libvterm/t/69screen_reflow.test +++ b/src/libvterm/t/69screen_reflow.test @@ -77,3 +77,12 @@ RESIZE 5,16 ?lineinfo 3 = ?screen_row 3 = "> " ?cursor = 3,2 + +!Cursor goes missing +# For more context: https://github.com/neovim/neovim/pull/21124 +RESET +RESIZE 5,5 +RESIZE 3,1 +PUSH "\x1b[2;1Habc\r\n\x1b[H" +RESIZE 1,1 + ?cursor = 0,0 diff --git a/src/libvterm/t/harness.c b/src/libvterm/t/harness.c index d12c1205ad..5285d94ec0 100644 --- a/src/libvterm/t/harness.c +++ b/src/libvterm/t/harness.c @@ -82,6 +82,26 @@ static void print_color(const VTermColor *col) printf(")"); } +static VTermColor strpe_color(char **strp) +{ + uint8_t r, g, b, idx; + int len = 0; + VTermColor col; + + if(sscanf(*strp, "rgb(%hhu,%hhu,%hhu)%n", &r, &g, &b, &len) == 3 && len > 0) { + *strp += len; + vterm_color_rgb(&col, r, g, b); + } + else if(sscanf(*strp, "idx(%hhu)%n", &idx, &len) == 1 && len > 0) { + *strp += len; + vterm_color_indexed(&col, idx); + } + else + vterm_color_rgb(&col, 127, 127, 127); + + return col; +} + static VTerm *vt; static VTermState *state; static VTermScreen *screen; @@ -669,7 +689,10 @@ int main(int argc UNUSED, char **argv UNUSED) if(!state) { state = vterm_obtain_state(vt); vterm_state_set_callbacks(state, &state_cbs, NULL); - vterm_state_set_selection_callbacks(state, &selection_cbs, NULL, NULL, 1024); + /* In some tests we want to check the behaviour of overflowing the + * buffer, so make it nicely small + */ + vterm_state_set_selection_callbacks(state, &selection_cbs, NULL, NULL, 16); vterm_state_set_bold_highbright(state, 1); vterm_state_reset(state, 1); } @@ -942,6 +965,23 @@ int main(int argc UNUSED, char **argv UNUSED) vterm_screen_flush_damage(screen); } + else if(strstartswith(line, "SETDEFAULTCOL ")) { + assert(screen); + char *linep = line + 14; + while(linep[0] == ' ') + linep++; + VTermColor fg = strpe_color(&linep); + if(linep[0]) { + while(linep[0] == ' ') + linep++; + VTermColor bg = strpe_color(&linep); + + vterm_screen_set_default_colors(screen, &fg, &bg); + } + else + vterm_screen_set_default_colors(screen, &fg, NULL); + } + else if(line[0] == '?') { if(streq(line, "?cursor")) { assert(state); diff --git a/src/list.c b/src/list.c index d52c23dea1..6210fd6380 100644 --- a/src/list.c +++ b/src/list.c @@ -2333,7 +2333,7 @@ filter_map_one( copy_tv(tv, get_vim_var_tv(VV_VAL)); argv[0] = *get_vim_var_tv(VV_KEY); argv[1] = *get_vim_var_tv(VV_VAL); - if (eval_expr_typval(expr, argv, 2, fc, newtv) == FAIL) + if (eval_expr_typval(expr, FALSE, argv, 2, fc, newtv) == FAIL) goto theend; if (filtermap == FILTERMAP_FILTER) { @@ -2735,8 +2735,9 @@ f_count(typval_T *argvars, typval_T *rettv) else n = dict_count(argvars[0].vval.v_dict, &argvars[1], ic); } - else - semsg(_(e_argument_of_str_must_be_list_or_dictionary), "count()"); + else if (!error) + semsg(_(e_argument_of_str_must_be_list_string_or_dictionary), + "count()"); rettv->vval.v_number = n; } @@ -3000,7 +3001,13 @@ f_reverse(typval_T *argvars, typval_T *rettv) if (argvars[0].v_type == VAR_BLOB) blob_reverse(argvars[0].vval.v_blob, rettv); else if (argvars[0].v_type == VAR_STRING) - string_reverse(argvars[0].vval.v_string, rettv); + { + rettv->v_type = VAR_STRING; + if (argvars[0].vval.v_string != NULL) + rettv->vval.v_string = reverse_text(argvars[0].vval.v_string); + else + rettv->vval.v_string = NULL; + } else if (argvars[0].v_type == VAR_LIST) list_reverse(argvars[0].vval.v_list, rettv); } @@ -3083,7 +3090,7 @@ list_reduce( else argv[1] = li->li_tv; - r = eval_expr_typval(expr, argv, 2, fc, rettv); + r = eval_expr_typval(expr, TRUE, argv, 2, fc, rettv); if (argv[0].v_type != VAR_NUMBER && argv[0].v_type != VAR_UNKNOWN) clear_tv(&argv[0]); @@ -3124,7 +3131,7 @@ f_reduce(typval_T *argvars, typval_T *rettv) && argvars[0].v_type != VAR_LIST && argvars[0].v_type != VAR_BLOB) { - semsg(_(e_string_list_or_blob_required), "reduce()"); + emsg(_(e_string_list_or_blob_required)); return; } diff --git a/src/map.c b/src/map.c index 6a175da83f..ba04e6a2e9 100644 --- a/src/map.c +++ b/src/map.c @@ -590,9 +590,9 @@ do_map( if (special) flags |= REPTERM_SPECIAL; - new_keys = replace_termcodes(keys, &keys_buf, flags, &did_simplify); + new_keys = replace_termcodes(keys, &keys_buf, 0, flags, &did_simplify); if (did_simplify) - (void)replace_termcodes(keys, &alt_keys_buf, + (void)replace_termcodes(keys, &alt_keys_buf, 0, flags | REPTERM_NO_SIMPLIFY, NULL); keys = new_keys; } @@ -602,7 +602,7 @@ do_map( if (STRICMP(rhs, "") == 0) // "" means nothing rhs = (char_u *)""; else - rhs = replace_termcodes(rhs, &arg_buf, + rhs = replace_termcodes(rhs, &arg_buf, 0, REPTERM_DO_LT | (special ? REPTERM_SPECIAL : 0), NULL); } @@ -1133,7 +1133,7 @@ map_to_exists(char_u *str, char_u *modechars, int abbr) char_u *buf; int retval; - rhs = replace_termcodes(str, &buf, REPTERM_DO_LT, NULL); + rhs = replace_termcodes(str, &buf, 0, REPTERM_DO_LT, NULL); retval = map_to_exists_mode(rhs, mode_str2flags(modechars), abbr); vim_free(buf); @@ -2488,14 +2488,15 @@ get_maparg(typval_T *argvars, typval_T *rettv, int exact) mode = get_map_mode(&which, 0); - keys_simplified = replace_termcodes(keys, &keys_buf, flags, &did_simplify); + keys_simplified = replace_termcodes(keys, &keys_buf, 0, flags, + &did_simplify); rhs = check_map(keys_simplified, mode, exact, FALSE, abbr, &mp, &buffer_local); if (did_simplify) { // When the lhs is being simplified the not-simplified keys are // preferred for printing, like in do_map(). - (void)replace_termcodes(keys, &alt_keys_buf, + (void)replace_termcodes(keys, &alt_keys_buf, 0, flags | REPTERM_NO_SIMPLIFY, NULL); rhs = check_map(alt_keys_buf, mode, exact, FALSE, abbr, &mp, &buffer_local); @@ -2579,7 +2580,8 @@ f_maplist(typval_T *argvars UNUSED, typval_T *rettv) did_simplify = FALSE; lhs = str2special_save(mp->m_keys, TRUE, FALSE); - (void)replace_termcodes(lhs, &keys_buf, flags, &did_simplify); + (void)replace_termcodes(lhs, &keys_buf, 0, flags, + &did_simplify); vim_free(lhs); mapblock2dict(mp, d, @@ -2758,11 +2760,6 @@ f_mapset(typval_T *argvars, typval_T *rettv UNUSED) return; } orig_rhs = rhs; - if (STRICMP(rhs, "") == 0) // "" means nothing - rhs = (char_u *)""; - else - rhs = replace_termcodes(rhs, &arg_buf, - REPTERM_DO_LT | REPTERM_SPECIAL, NULL); noremap = dict_get_number(d, "noremap") ? REMAP_NONE: 0; if (dict_get_number(d, "script") != 0) @@ -2776,6 +2773,12 @@ f_mapset(typval_T *argvars, typval_T *rettv UNUSED) nowait = dict_get_number(d, "nowait") != 0; // mode from the dict is not used + if (STRICMP(rhs, "") == 0) // "" means nothing + rhs = (char_u *)""; + else + rhs = replace_termcodes(rhs, &arg_buf, sid, + REPTERM_DO_LT | REPTERM_SPECIAL, NULL); + if (buffer) { map_table = curbuf->b_maphash; diff --git a/src/menu.c b/src/menu.c index 909adfb0a1..7bffb6b65b 100644 --- a/src/menu.c +++ b/src/menu.c @@ -395,7 +395,7 @@ ex_menu( else if (modes & MENU_TIP_MODE) map_buf = NULL; // Menu tips are plain text. else - map_to = replace_termcodes(map_to, &map_buf, + map_to = replace_termcodes(map_to, &map_buf, 0, REPTERM_DO_LT | (special ? REPTERM_SPECIAL : 0), NULL); menuarg.modes = modes; #ifdef FEAT_TOOLBAR diff --git a/src/message.c b/src/message.c index 4ca67fd600..43c134db63 100644 --- a/src/message.c +++ b/src/message.c @@ -1114,7 +1114,7 @@ ex_messages(exarg_T *eap) msg_attr( // Translator: Please replace the name and email address // with the appropriate text for your translation. - _("Messages maintainer: Bram Moolenaar "), + _("Messages maintainer: The Vim Project"), HL_ATTR(HLF_T)); } diff --git a/src/message_test.c b/src/message_test.c index 21ec4db8d3..e5fd562305 100644 --- a/src/message_test.c +++ b/src/message_test.c @@ -39,6 +39,9 @@ char *fmt_012p = "%012p"; char *fmt_5S = "%5S"; char *fmt_06b = "%06b"; +char *fmt_06pb = "%1$0.*2$b"; +char *fmt_212s = "%2$s %1$s %2$s"; +char *fmt_21s = "%2$s %1$s"; /* * Test trunc_string(). @@ -181,6 +184,11 @@ test_vim_snprintf(void) // buffer and its content should then never be used. char *buf = malloc(bsize); + n = vim_snprintf(buf, bsize, "%.8g", 10000000.1); + assert(n == 12); + assert(bsize == 0 || STRNCMP(buf, "1.00000001e7", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + n = vim_snprintf(buf, bsize, "%d", 1234567); assert(n == 7); assert(bsize == 0 || STRNCMP(buf, "1234567", bsize_int) == 0); @@ -211,6 +219,12 @@ test_vim_snprintf(void) assert(bsize == 0 || STRNCMP(buf, "001100", bsize_int) == 0); assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + n = vim_snprintf(buf, bsize, "%s %s", "one", "two"); + assert(n == 7); + assert(bsize == 0 || STRNCMP(buf, "one two", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + +#ifdef FEAT_FLOAT n = vim_snprintf(buf, bsize, "%f", 1.234); assert(n == 8); assert(bsize == 0 || STRNCMP(buf, "1.234000", bsize_int) == 0); @@ -240,6 +254,7 @@ test_vim_snprintf(void) assert(n == 9); assert(bsize == 0 || STRNCMP(buf, "-0.000000", bsize_int) == 0); assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); +#endif n = vim_snprintf(buf, bsize, "%s", "漢語"); assert(n == 6); @@ -304,6 +319,185 @@ test_vim_snprintf(void) } } +/* + * Test vim_snprintf() with a focus on checking that positional + * arguments are correctly applied and skipped + */ + static void +test_vim_snprintf_positional(void) +{ + int n; + size_t bsize; + int bsize_int; + + // Loop on various buffer sizes to make sure that truncation of + // vim_snprintf() is correct. + for (bsize = 0; bsize < 25; ++bsize) + { + bsize_int = (int)bsize - 1; + + // buf is the heap rather than in the stack + // so valgrind can detect buffer overflows if any. + // Use malloc() rather than alloc() as test checks with 0-size + // buffer and its content should then never be used. + char *buf = malloc(bsize); + + n = vim_snprintf(buf, bsize, "%1$*2$ld", 1234567L, -9); + assert(n == 9); + assert(bsize == 0 || STRNCMP(buf, "1234567 ", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$*2$.*3$ld", 1234567L, -9, 5); + assert(n == 9); + assert(bsize == 0 || STRNCMP(buf, "1234567 ", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$*3$.*2$ld", 1234567L, 5, -9); + assert(n == 9); + assert(bsize == 0 || STRNCMP(buf, "1234567 ", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%3$*1$.*2$ld", -9, 5, 1234567L); + assert(n == 9); + assert(bsize == 0 || STRNCMP(buf, "1234567 ", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$ld", 1234567L); + assert(n == 7); + assert(bsize == 0 || STRNCMP(buf, "1234567", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$*2$ld", 1234567L, 9); + assert(n == 9); + assert(bsize == 0 || STRNCMP(buf, " 1234567", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$ld %1$d %3$lu", 12345, 9L, 7654321UL); + assert(n == 15); + assert(bsize == 0 || STRNCMP(buf, "9 12345 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$d %1$ld %3$lu", 1234567L, 9, 7654321UL); + assert(n == 17); + assert(bsize == 0 || STRNCMP(buf, "9 1234567 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$d %1$lld %3$lu", 1234567LL, 9, 7654321UL); + assert(n == 17); + assert(bsize == 0 || STRNCMP(buf, "9 1234567 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$ld %1$u %3$lu", 12345U, 9L, 7654321UL); + assert(n == 15); + assert(bsize == 0 || STRNCMP(buf, "9 12345 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$d %1$lu %3$lu", 1234567UL, 9, 7654321UL); + assert(n == 17); + assert(bsize == 0 || STRNCMP(buf, "9 1234567 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$d %1$llu %3$lu", 1234567LLU, 9, 7654321UL); + assert(n == 17); + assert(bsize == 0 || STRNCMP(buf, "9 1234567 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$d %1$x %3$lu", 0xdeadbeef, 9, 7654321UL); + assert(n == 18); + assert(bsize == 0 || STRNCMP(buf, "9 deadbeef 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$ld %1$c %3$lu", 'c', 9L, 7654321UL); + assert(n == 11); + assert(bsize == 0 || STRNCMP(buf, "9 c 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$ld %1$s %3$lu", "hi", 9L, 7654321UL); + assert(n == 12); + assert(bsize == 0 || STRNCMP(buf, "9 hi 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%2$ld %1$e %3$lu", 0.0, 9L, 7654321UL); + assert(n == 22); + assert(bsize == 0 || STRNCMP(buf, "9 0.000000e+00 7654321", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, fmt_212s, "one", "two", "three"); + assert(n == 11); + assert(bsize == 0 || STRNCMP(buf, "two one two", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%3$s %1$s %2$s", "one", "two", "three"); + assert(n == 13); + assert(bsize == 0 || STRNCMP(buf, "three one two", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$d", 1234567); + assert(n == 7); + assert(bsize == 0 || STRNCMP(buf, "1234567", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$x", 0xdeadbeef); + assert(n == 8); + assert(bsize == 0 || STRNCMP(buf, "deadbeef", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, fmt_06pb, (uvarnumber_T)12, 6); + assert(n == 6); + assert(bsize == 0 || STRNCMP(buf, "001100", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$s %2$s", "one", "two"); + assert(n == 7); + assert(bsize == 0 || STRNCMP(buf, "one two", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, fmt_06b, (uvarnumber_T)12); + assert(n == 6); + assert(bsize == 0 || STRNCMP(buf, "001100", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, fmt_21s, "one", "two", "three"); + assert(n == 7); + assert(bsize == 0 || STRNCMP(buf, "two one", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + +#ifdef FEAT_FLOAT + n = vim_snprintf(buf, bsize, "%1$f", 1.234); + assert(n == 8); + assert(bsize == 0 || STRNCMP(buf, "1.234000", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$e", 1.234); + assert(n == 12); + assert(bsize == 0 || STRNCMP(buf, "1.234000e+00", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$f", 0.0/0.0); + assert(n == 3); + assert(bsize == 0 || STRNCMP(buf, "nan", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$f", 1.0/0.0); + assert(n == 3); + assert(bsize == 0 || STRNCMP(buf, "inf", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$f", -1.0/0.0); + assert(n == 4); + assert(bsize == 0 || STRNCMP(buf, "-inf", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); + + n = vim_snprintf(buf, bsize, "%1$f", -0.0); + assert(n == 9); + assert(bsize == 0 || STRNCMP(buf, "-0.000000", bsize_int) == 0); + assert(bsize == 0 || buf[MIN(n, bsize_int)] == '\0'); +#endif + + free(buf); + } +} + int main(int argc, char **argv) { @@ -317,11 +511,13 @@ main(int argc, char **argv) test_trunc_string(); test_trunc_string_mbyte(); test_vim_snprintf(); + test_vim_snprintf_positional(); set_option_value_give_err((char_u *)"encoding", 0, (char_u *)"latin1", 0); init_chartab(); test_trunc_string(); test_vim_snprintf(); + test_vim_snprintf_positional(); return 0; } diff --git a/src/misc1.c b/src/misc1.c index 9b2384d229..8a09a641d4 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -342,12 +342,13 @@ plines(linenr_T lnum) plines_win( win_T *wp, linenr_T lnum, - int winheight) // when TRUE limit to window height + int limit_winheight) // when TRUE limit to window height { #if defined(FEAT_DIFF) || defined(PROTO) // Check for filler lines above this buffer line. When folded the result // is one line anyway. - return plines_win_nofill(wp, lnum, winheight) + diff_check_fill(wp, lnum); + return plines_win_nofill(wp, lnum, limit_winheight) + + diff_check_fill(wp, lnum); } /* @@ -364,7 +365,7 @@ plines_nofill(linenr_T lnum) plines_win_nofill( win_T *wp, linenr_T lnum, - int winheight) // when TRUE limit to window height + int limit_winheight) // when TRUE limit to window height { #endif int lines; @@ -389,7 +390,7 @@ plines_win_nofill( else lines = plines_win_nofold(wp, lnum); - if (winheight > 0 && lines > wp->w_height) + if (limit_winheight && lines > wp->w_height) return wp->w_height; return lines; } @@ -497,7 +498,7 @@ plines_win_col(win_T *wp, linenr_T lnum, long column) } int -plines_m_win(win_T *wp, linenr_T first, linenr_T last) +plines_m_win(win_T *wp, linenr_T first, linenr_T last, int limit_winheight) { int count = 0; @@ -519,10 +520,11 @@ plines_m_win(win_T *wp, linenr_T first, linenr_T last) { #ifdef FEAT_DIFF if (first == wp->w_topline) - count += plines_win_nofill(wp, first, TRUE) + wp->w_topfill; + count += plines_win_nofill(wp, first, limit_winheight) + + wp->w_topfill; else #endif - count += plines_win(wp, first, TRUE); + count += plines_win(wp, first, limit_winheight); ++first; } } diff --git a/src/mouse.c b/src/mouse.c index 01515e217f..056f3ea606 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -2080,7 +2080,7 @@ retnomove: // Only use ScreenCols[] after the window was redrawn. Mainly matters // for tests, a user would not click before redrawing. // Do not use when 'virtualedit' is active. - if (curwin->w_redr_type <= UPD_VALID_NO_UPDATE && !virtual_active()) + if (curwin->w_redr_type <= UPD_VALID_NO_UPDATE) col_from_screen = ScreenCols[off]; #ifdef FEAT_FOLDING // Remember the character under the mouse, it might be a '-' or '+' in @@ -2118,41 +2118,47 @@ retnomove: redraw_cmdline = TRUE; // show visual mode later } - if (col_from_screen >= 0) + if (col_from_screen == MAXCOL) { - // Use the column from ScreenCols[], it is accurate also after - // concealed characters. - curwin->w_cursor.col = col_from_screen; - if (col_from_screen == MAXCOL) + // When clicking after end of line, still need to set correct curswant + int off_l = LineOffset[prev_row]; + if (ScreenCols[off_l] < MAXCOL) { - curwin->w_curswant = col_from_screen; - curwin->w_set_curswant = FALSE; // May still have been TRUE - mouse_past_eol = TRUE; - if (inclusive != NULL) - *inclusive = TRUE; + // Binary search to find last char in line + int off_r = off_l + prev_col; + int off_click = off_r; + while (off_l < off_r) + { + int off_m = (off_l + off_r + 1) / 2; + if (ScreenCols[off_m] < MAXCOL) + off_l = off_m; + else + off_r = off_m - 1; + } + col = ScreenCols[off_r] + (off_click - off_r); } else - { - curwin->w_set_curswant = TRUE; - if (inclusive != NULL) - *inclusive = FALSE; - } - check_cursor_col(); + // Shouldn't normally happen + col = MAXCOL; } - else + else if (col_from_screen >= 0) { - curwin->w_curswant = col; - curwin->w_set_curswant = FALSE; // May still have been TRUE - if (coladvance(col) == FAIL) // Mouse click beyond end of line - { - if (inclusive != NULL) - *inclusive = TRUE; - mouse_past_eol = TRUE; - } - else if (inclusive != NULL) - *inclusive = FALSE; + // Use the virtual column from ScreenCols[], it is accurate also after + // concealed characters. + col = col_from_screen; } + curwin->w_curswant = col; + curwin->w_set_curswant = FALSE; // May still have been TRUE + if (coladvance(col) == FAIL) // Mouse click beyond end of line + { + if (inclusive != NULL) + *inclusive = TRUE; + mouse_past_eol = TRUE; + } + else if (inclusive != NULL) + *inclusive = FALSE; + count = IN_BUFFER; if (curwin != old_curwin || curwin->w_cursor.lnum != old_cursor.lnum || curwin->w_cursor.col != old_cursor.col) diff --git a/src/move.c b/src/move.c index 22c37ce285..2ba02cf5dc 100644 --- a/src/move.c +++ b/src/move.c @@ -36,29 +36,19 @@ static void topline_back(lineoff_T *lp); static void botline_forw(lineoff_T *lp); /* - * Reduce "n" for the screen lines skipped with "wp->w_skipcol". + * Get the number of screen lines skipped with "wp->w_skipcol". */ int -adjust_plines_for_skipcol(win_T *wp, int n) +adjust_plines_for_skipcol(win_T *wp) { if (wp->w_skipcol == 0) - return n; + return 0; - int off = 0; int width = wp->w_width - win_col_off(wp); if (wp->w_skipcol >= width) - { - ++off; - int skip = wp->w_skipcol - width; - width += win_col_off2(wp); - while (skip >= width) - { - ++off; - skip -= width; - } - } - wp->w_valid &= ~VALID_WROW; - return n - off; + return (wp->w_skipcol - width) / (width + win_col_off2(wp)) + 1; + + return 0; } /* @@ -77,7 +67,7 @@ plines_correct_topline(win_T *wp, linenr_T lnum) #endif n = plines_win(wp, lnum, FALSE); if (lnum == wp->w_topline) - n = adjust_plines_for_skipcol(wp, n); + n -= adjust_plines_for_skipcol(wp); if (n > wp->w_height) n = wp->w_height; return n; @@ -1356,7 +1346,10 @@ curs_columns( // don't skip more than necessary if (n > p_lines - curwin->w_height + 1) n = p_lines - curwin->w_height + 1; - curwin->w_skipcol = n * width2; + if (n > 0) + curwin->w_skipcol = width1 + (n - 1) * width2; + else + curwin->w_skipcol = 0; } else if (extra == 1) { @@ -1443,7 +1436,6 @@ textpos2screenpos( { colnr_T scol = 0, ccol = 0, ecol = 0; int row = 0; - int rowoff = 0; colnr_T coloff = 0; if (pos->lnum >= wp->w_topline && pos->lnum <= wp->w_botline) @@ -1456,7 +1448,10 @@ textpos2screenpos( is_folded = hasFoldingWin(wp, lnum, &lnum, NULL, TRUE, NULL); #endif - row = plines_m_win(wp, wp->w_topline, lnum - 1) + 1; + row = plines_m_win(wp, wp->w_topline, lnum - 1, FALSE); + // "row" should be the screen line where line "lnum" begins, which can + // be negative if "lnum" is "w_topline" and "w_skipcol" is non-zero. + row -= adjust_plines_for_skipcol(wp); #ifdef FEAT_DIFF // Add filler lines above this buffer line. @@ -1468,7 +1463,7 @@ textpos2screenpos( #ifdef FEAT_FOLDING if (is_folded) { - row += W_WINROW(wp); + row += W_WINROW(wp) + 1; coloff = wp->w_wincol + 1 + off; } else @@ -1481,32 +1476,30 @@ textpos2screenpos( col += off; width = wp->w_width - off + win_col_off2(wp); - if (lnum == wp->w_topline) - col -= wp->w_skipcol; - // long line wrapping, adjust row if (wp->w_p_wrap && col >= (colnr_T)wp->w_width && width > 0) { // use same formula as what is used in curs_columns() - rowoff = ((col - wp->w_width) / width + 1); + int rowoff = ((col - wp->w_width) / width + 1); col -= rowoff * width; + row += rowoff; } col -= wp->w_leftcol; if (col >= wp->w_width) col = -1; - if (col >= 0 && row + rowoff <= wp->w_height) + if (col >= 0 && row >= 0 && row < wp->w_height) { coloff = col - scol + wp->w_wincol + 1; - row += W_WINROW(wp); + row += W_WINROW(wp) + 1; } else - // character is left, right or below of the window - row = rowoff = scol = ccol = ecol = 0; + // character is out of the window + row = scol = ccol = ecol = 0; } } - *rowp = row + rowoff; + *rowp = row; *scolp = scol + coloff; *ccolp = ccol + coloff; *ecolp = ecol + coloff; @@ -1556,6 +1549,25 @@ f_screenpos(typval_T *argvars UNUSED, typval_T *rettv) dict_add_number(dict, "endcol", ecol); } +/* + * Convert a virtual (screen) column to a character column. The first column + * is one. For a multibyte character, the column number of the first byte is + * returned. + */ + static int +virtcol2col(win_T *wp, linenr_T lnum, int vcol) +{ + int offset = vcol2col(wp, lnum, vcol); + char_u *line = ml_get_buf(wp->w_buffer, lnum, FALSE); + char_u *p = line + offset; + + // For a multibyte character, need to return the column number of the first + // byte. + MB_PTR_BACK(line, p); + + return (int)(p - line + 1); +} + /* * "virtcol2col({winid}, {lnum}, {col})" function */ @@ -1586,7 +1598,7 @@ f_virtcol2col(typval_T *argvars UNUSED, typval_T *rettv) if (error || screencol < 0) return; - rettv->vval.v_number = vcol2col(wp, lnum, screencol); + rettv->vval.v_number = virtcol2col(wp, lnum, screencol); } #endif diff --git a/src/normal.c b/src/normal.c index ee04ec1a12..73c244ec89 100644 --- a/src/normal.c +++ b/src/normal.c @@ -546,27 +546,35 @@ normal_cmd_get_more_chars( } } - // When getting a text character and the next character is a - // multi-byte character, it could be a composing character. - // However, don't wait for it to arrive. Also, do enable mapping, - // because if it's put back with vungetc() it's too late to apply - // mapping. - --no_mapping; - while (enc_utf8 && lang && (c = vpeekc()) > 0 - && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1)) + if (enc_utf8 && lang) { - c = plain_vgetc(); - if (!utf_iscomposing(c)) + // When getting a text character and the next character is a + // multi-byte character, it could be a composing character. + // However, don't wait for it to arrive. Also, do enable mapping, + // because if it's put back with vungetc() it's too late to apply + // mapping. + --no_mapping; + while ((c = vpeekc()) > 0 + && (c >= 0x100 || MB_BYTE2LEN(vpeekc()) > 1)) { - vungetc(c); // it wasn't, put it back - break; + c = plain_vgetc(); + if (!utf_iscomposing(c)) + { + vungetc(c); // it wasn't, put it back + break; + } + else if (cap->ncharC1 == 0) + cap->ncharC1 = c; + else + cap->ncharC2 = c; } - else if (cap->ncharC1 == 0) - cap->ncharC1 = c; - else - cap->ncharC2 = c; + ++no_mapping; + // Vim may be in a different mode when the user types the next key, + // but when replaying a recording the next key is already in the + // typeahead buffer, so record a before that to prevent the + // vpeekc() above from applying wrong mappings when replaying. + gotchars_nop(); } - ++no_mapping; } --no_mapping; --allow_keys; @@ -4782,7 +4790,7 @@ nv_replace(cmdarg_T *cap) #endif // get another character - if (cap->nchar == Ctrl_V) + if (cap->nchar == Ctrl_V || cap->nchar == Ctrl_Q) { had_ctrl_v = Ctrl_V; cap->nchar = get_literal(FALSE); @@ -5066,7 +5074,8 @@ nv_vreplace(cmdarg_T *cap) emsg(_(e_cannot_make_changes_modifiable_is_off)); else { - if (cap->extra_char == Ctrl_V) // get another character + if (cap->extra_char == Ctrl_V || cap->extra_char == Ctrl_Q) + // get another character cap->extra_char = get_literal(FALSE); if (cap->extra_char < ' ') // Prefix a control character with CTRL-V to avoid it being used as @@ -5827,6 +5836,10 @@ nv_g_dollar_cmd(cmdarg_T *cap) oparg_T *oap = cap->oap; int i; int col_off = curwin_col_off(); + int flag = FALSE; + + if (cap->nchar == K_END || cap->nchar == K_KEND) + flag = TRUE; oap->motion_type = MCHAR; oap->inclusive = TRUE; @@ -5892,6 +5905,13 @@ nv_g_dollar_cmd(cmdarg_T *cap) // Make sure we stick in this column. update_curswant_force(); } + if (flag) + { + do + i = gchar_cursor(); + while (VIM_ISWHITE(i) && oneleft() == OK); + curwin->w_valid &= ~VALID_WCOL; + } } /* diff --git a/src/option.c b/src/option.c index 25dc0a810a..3c33363a1d 100644 --- a/src/option.c +++ b/src/option.c @@ -6809,6 +6809,8 @@ copy_winopt(winopt_T *from, winopt_T *to) to->wo_sms = from->wo_sms; to->wo_crb = from->wo_crb; to->wo_crb_save = from->wo_crb_save; + to->wo_siso = from->wo_siso; + to->wo_so = from->wo_so; #ifdef FEAT_SPELL to->wo_spell = from->wo_spell; #endif diff --git a/src/optionstr.c b/src/optionstr.c index 032c24009c..82b31a8417 100644 --- a/src/optionstr.c +++ b/src/optionstr.c @@ -2112,7 +2112,7 @@ did_set_pastetoggle(optset_T *args UNUSED) // translate key codes like in a mapping if (*p_pt) { - (void)replace_termcodes(p_pt, &p, + (void)replace_termcodes(p_pt, &p, 0, REPTERM_FROM_PART | REPTERM_DO_LT, NULL); if (p != NULL) { diff --git a/src/os_mswin.c b/src/os_mswin.c index 5360fa9894..aa5fe5243e 100644 --- a/src/os_mswin.c +++ b/src/os_mswin.c @@ -1775,7 +1775,11 @@ is_reparse_point_included(LPCWSTR fname) return FALSE; } - static char_u * +/* + * Return the resolved file path, NULL if "fname" is an AppExecLink reparse + * point, already fully resolved, or it doesn't exists. + */ + char_u * resolve_reparse_point(char_u *fname) { HANDLE h = INVALID_HANDLE_VALUE; diff --git a/src/os_win32.c b/src/os_win32.c index 52e0583fc6..ff60e04aed 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -2720,6 +2720,8 @@ executable_file(char *name, char_u **path) if (attrs & FILE_ATTRIBUTE_REPARSE_POINT) { char_u *res = resolve_appexeclink((char_u *)name); + if (res == NULL) + res = resolve_reparse_point((char_u *)name); if (res == NULL) return FALSE; // The path is already absolute. diff --git a/src/po/README.txt b/src/po/README.txt index be09aa18d4..8ec1b59465 100644 --- a/src/po/README.txt +++ b/src/po/README.txt @@ -90,7 +90,7 @@ language. Remove the "#, fuzzy" line after adding the translation. There is one special message: - msgid "Messages maintainer: Bram Moolenaar " + msgid "Messages maintainer: The Vim Project" You should include your name and E-mail address instead, for example: msgstr "Berichten übersetzt bei: John Doe " diff --git a/src/po/README_mingw.txt b/src/po/README_mingw.txt index 805208228f..a98af578ac 100644 --- a/src/po/README_mingw.txt +++ b/src/po/README_mingw.txt @@ -59,7 +59,7 @@ the same as in the Unix case, only the commands change): Remove "#~" and "#, fuzzy" after adding the translation. There is one special message: - msgid "Messages maintainer: Bram Moolenaar " + msgid "Messages maintainer: The Vim Project" You should include your name and E-mail address instead, for example: msgstr "Berichten übersetzt bei: John Doe " diff --git a/src/po/af.po b/src/po/af.po index 76b7ece939..5ad9f47523 100644 --- a/src/po/af.po +++ b/src/po/af.po @@ -1562,7 +1562,7 @@ msgstr "Fout ontdek tydens verwerking van %s: " msgid "line %4ld:" msgstr "reël %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Boodskappe onderhouers: Danie Roux en Jean Jordaan " msgid "Interrupt: " diff --git a/src/po/ca.po b/src/po/ca.po index 591b7bf544..44125fb776 100644 --- a/src/po/ca.po +++ b/src/po/ca.po @@ -2245,7 +2245,7 @@ msgstr "S'ha detectat un error en processar %s:" msgid "line %4ld:" msgstr "línia %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Traducció dels missatges: Ernest Adrogué " msgid "Interrupt: " diff --git a/src/po/check.vim b/src/po/check.vim index b2a5fd582e..917c648494 100644 --- a/src/po/check.vim +++ b/src/po/check.vim @@ -30,8 +30,15 @@ func! GetMline() " remove '%' used for plural forms. let idline = substitute(idline, '\\nPlural-Forms: .\+;\\n', '', '') + " remove duplicate positional format arguments + let idline2 = "" + while idline2 != idline + let idline2 = idline + let idline = substitute(idline, '%\([1-9][0-9]*\)\$\([-+ #''.*]*[0-9]*l\=[dsuxXpoc%]\)\(.*\)%\1$\([-+ #''.*]*\)\(l\=[dsuxXpoc%]\)', '%\1$\2\3\4', 'g') + endwhile + " remove everything but % items. - return substitute(idline, '[^%]*\(%[-+ #''.0-9*]*l\=[dsuxXpoc%]\)\=', '\1', 'g') + return substitute(idline, '[^%]*\(%([1-9][0-9]*\$)\=[-+ #''.0-9*]*l\=[dsuxXpoc%]\)\=', '\1', 'g') endfunc " This only works when 'wrapscan' is not set. diff --git a/src/po/cs.cp1250.po b/src/po/cs.cp1250.po index 63cabc34a1..bed2595613 100644 --- a/src/po/cs.cp1250.po +++ b/src/po/cs.cp1250.po @@ -2954,7 +2954,7 @@ msgstr " msgid "[string too long]" msgstr "[pøíliš dlouhý øetìzec]" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Správce zpráv: Jiøí Pavlovský " msgid "Interrupt: " diff --git a/src/po/cs.po b/src/po/cs.po index a319088f57..b6dcdb7450 100644 --- a/src/po/cs.po +++ b/src/po/cs.po @@ -2954,7 +2954,7 @@ msgstr " msgid "[string too long]" msgstr "[pøíli¹ dlouhý øetìzec]" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Správce zpráv: Jiøí Pavlovský " msgid "Interrupt: " diff --git a/src/po/da.po b/src/po/da.po index a88d3f3100..80cc6feea9 100644 --- a/src/po/da.po +++ b/src/po/da.po @@ -3968,7 +3968,7 @@ msgstr "linje %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Ugyldigt registernavn: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Oversætter: scootergrisen" msgid "Interrupt: " diff --git a/src/po/de.po b/src/po/de.po index e4f0612f3f..986fbd3238 100644 --- a/src/po/de.po +++ b/src/po/de.po @@ -2299,7 +2299,7 @@ msgstr "Fehler beim Ausf msgid "line %4ld:" msgstr "Zeile %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Übersetzt von Christian Brabandt " msgid "Interrupt: " diff --git a/src/po/en_GB.po b/src/po/en_GB.po index e23daecb41..239be0f6a5 100644 --- a/src/po/en_GB.po +++ b/src/po/en_GB.po @@ -94,7 +94,7 @@ msgstr "-foreground \tUse for normal text (also: -fg)" msgid "+reverse\t\tDon't use reverse video (also: +rv)" msgstr "+reverse\t\tDo not use reverse video (also: +rv)" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Messages maintainer: Mike Williams " msgid "VIM: Can't open window!\n" diff --git a/src/po/eo.po b/src/po/eo.po index fc90f8cad2..a9aaefa821 100644 --- a/src/po/eo.po +++ b/src/po/eo.po @@ -3814,7 +3814,7 @@ msgstr "linio %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Nevalida nomo de reÄistro: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Flegado de mesaÄoj: Dominique PELLÉ " msgid "Interrupt: " diff --git a/src/po/es.po b/src/po/es.po index fd4f73c8f6..cfd3b6ec96 100644 --- a/src/po/es.po +++ b/src/po/es.po @@ -2266,7 +2266,7 @@ msgstr "Se ha detectado un error al procesar %s:" msgid "line %4ld:" msgstr "línea %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "" "Traducción: Proyecto vim-doc-es , Victorhck " diff --git a/src/po/fi.po b/src/po/fi.po index c2fc860112..d2fd336be7 100644 --- a/src/po/fi.po +++ b/src/po/fi.po @@ -2206,7 +2206,7 @@ msgstr "Virhe suoritettaessa komentoja %s:" msgid "line %4ld:" msgstr "rivi %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Käännöksen ylläpitäjä: Flammie Pirinen " msgid "Interrupt: " diff --git a/src/po/fr.po b/src/po/fr.po index 866b0f94d6..27f11eb742 100644 --- a/src/po/fr.po +++ b/src/po/fr.po @@ -3967,7 +3967,7 @@ msgid "E354: Invalid register name: '%s'" msgstr "E354: Nom de registre invalide : '%s'" # DB - todo : mettre à jour ? -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Maintenance des messages : Dominique Pellé " msgid "Interrupt: " diff --git a/src/po/ga.po b/src/po/ga.po index 4044c3eaa0..62fa8c8bdd 100644 --- a/src/po/ga.po +++ b/src/po/ga.po @@ -2256,7 +2256,7 @@ msgstr "Earr msgid "line %4ld:" msgstr "líne %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "" "Cothaitheoir na dteachtaireachtaí: Kevin P. Scannell " diff --git a/src/po/it.po b/src/po/it.po index 7bf2d893b5..e61b278722 100644 --- a/src/po/it.po +++ b/src/po/it.po @@ -3,7 +3,6 @@ # Antonio Colombo , 2000 # Vlad Sandrini , 2002 # Luciano Montanaro , 2006 -# Roberto Boriotti , 2023 # # Ogni commento è benvenuto... # Every remark is very welcome... @@ -15,8 +14,8 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-12 18:03+0200\n" -"PO-Revision-Date: 2023-05-13 17:00+0100\n" +"POT-Creation-Date: 2023-08-17 15:42+0200\n" +"PO-Revision-Date: 2023-08-17 16:32+0100\n" "Last-Translator: Antonio Colombo \n" "Language-Team: Italian\n" "Language: it\n" @@ -153,6 +152,18 @@ msgstr "Cim" msgid "%d%%" msgstr "%d%%" +msgid " (%d of %d)" +msgstr "(%d di %d)" + +msgid " ((%d) of %d)" +msgstr " ((%d) di %d)" + +msgid " (file %d of %d)" +msgstr " (file %d di %d)" + +msgid " (file (%d) of %d)" +msgstr " (file (%d) di %d)" + msgid "[Prompt]" msgstr "[Richiesta]" @@ -270,28 +281,25 @@ msgid "[crypted]" msgstr "[cifrato]" msgid "xchacha20v2: using custom opslimit \"%llu\" for Key derivation." -msgstr "xchacha20v2: uso opslimit personalizzato \"%llu\" per ricavare la " -"Chiave." +msgstr "" +"xchacha20v2: uso opslimit personalizzato \"%llu\" per ricavare la Chiave." msgid "xchacha20v2: using default opslimit \"%llu\" for Key derivation." -msgstr "xchacha20v2: uso opslimit predefinito \"%llu\" per ricavare la " -"Chiave." +msgstr "xchacha20v2: uso opslimit predefinito \"%llu\" per ricavare la Chiave." msgid "xchacha20v2: using custom memlimit \"%lu\" for Key derivation." -msgstr "xchacha20v2: uso memlimit personalizzato \"%lu\" per ricavare la " -"Chiave." +msgstr "" +"xchacha20v2: uso memlimit personalizzato \"%lu\" per ricavare la Chiave." msgid "xchacha20v2: using default memlimit \"%lu\" for Key derivation." -msgstr "xchacha20v2: uso memlimit predefinito \"%lu\" per ricavare la " -"Chiave." +msgstr "xchacha20v2: uso memlimit predefinito \"%lu\" per ricavare la Chiave." msgid "xchacha20v2: using custom algorithm \"%d\" for Key derivation." -msgstr "xchacha20v2: uso algoritmo personalizzato \"%d\" per ricavare la " -"Chiave." +msgstr "" +"xchacha20v2: uso algoritmo personalizzato \"%d\" per ricavare la Chiave." msgid "xchacha20v2: using default algorithm \"%d\" for Key derivation." -msgstr "xchacha20v2: uso algoritmo predefinito \"%d\" per ricavare la " -"Chiave." +msgstr "xchacha20v2: uso algoritmo predefinito \"%d\" per ricavare la Chiave." msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "Entro modalità Debug. Batti \"cont\" per continuare." @@ -563,12 +571,6 @@ msgstr "Fine funzione" msgid "Backwards range given, OK to swap" msgstr "Intervallo rovesciato, OK invertirlo" -msgid "" -"INTERNAL: Cannot use EX_DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX" -msgstr "" -"INTERNO: Non posso usare EX_DFLALL con ADDR_NONE, ADDR_UNSIGNED o " -"ADDR_QUICKFIX" - msgid "%d more file to edit. Quit anyway?" msgid_plural "%d more files to edit. Quit anyway?" msgstr[0] "%d ulteriore file da elaborare. Esco lo stesso?" @@ -2192,7 +2194,7 @@ msgstr "riga %4ld:" #. Translator: Please replace the name and email address #. with the appropriate text for your translation. -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Manutentore messaggi: Antonio Colombo " msgid "Interrupt: " @@ -2352,9 +2354,6 @@ msgstr "" "\n" "--- Opzioni ---" -msgid "For option %s" -msgstr "Per opzione %s" - msgid "cannot open " msgstr "non riesco ad aprire " @@ -3795,9 +3794,6 @@ msgstr "E37: Non salvato dopo l'ultima modifica" msgid "E37: No write since last change (add ! to override)" msgstr "E37: Non salvato dopo modifica (aggiungi ! per eseguire comunque)" -msgid "E38: Null argument" -msgstr "E38: Argomento nullo" - msgid "E39: Number expected" msgstr "E39: Atteso un numero" @@ -3810,12 +3806,6 @@ msgstr "E41: Non c'è più memoria!" msgid "E42: No Errors" msgstr "E42: Nessun Errore" -msgid "E43: Damaged match string" -msgstr "E43: Stringa di confronto danneggiata" - -msgid "E44: Corrupted regexp program" -msgstr "E44: Programma 'regexp' corrotto" - msgid "E45: 'readonly' option is set (add ! to override)" msgstr "E45: File in sola-lettura (aggiungi ! per eseguire comunque)" @@ -4198,10 +4188,9 @@ msgid "E172: Missing marker" msgstr "E172: Manca un marcatore" msgid "E173: %d more file to edit" -msgstr "E173: %d ulteriore file da elaborare" - -msgid "E173: %d more files to edit" -msgstr "E173: %d ulteriori file da elaborare" +msgid_plural "E173: %d more files to edit" +msgstr[0] "E173: %d ulteriore file da elaborare" +msgstr[1] "E173: %d ulteriori file da elaborare" msgid "E174: Command already exists: add ! to replace it: %s" msgstr "E174: Il comando esiste già: aggiungi ! per sostituirlo: %s" @@ -4354,9 +4343,6 @@ msgstr "E220: Manca }." msgid "E221: Marker cannot start with lower case letter" msgstr "E221: Un marcatore non può iniziare con una lettera minuscola" -msgid "E222: Add to internal buffer that was already read from" -msgstr "E222: Aggiunta a buffer interno da cui si era già letto" - msgid "E223: Recursive mapping" msgstr "E223: Mappatura ricorsiva" @@ -4372,9 +4358,6 @@ msgstr "E226: Un'abbreviazione già esiste per %s" msgid "E227: Mapping already exists for %s" msgstr "E227: Una mappatura già esiste per %s" -msgid "E228: makemap: Illegal mode" -msgstr "E228: makemap: modo non consentito" - msgid "E229: Cannot start the GUI" msgstr "E229: Non posso inizializzare la GUI" @@ -4384,9 +4367,6 @@ msgstr "E230: Non posso leggere da \"%s\"" msgid "E231: 'guifontwide' invalid" msgstr "E231: 'guifontwide' non valido" -msgid "E232: Cannot create BalloonEval with both message and callback" -msgstr "E232: Non riesco a creare 'BalloonEval' con sia messaggio che callback" - msgid "E233: Cannot open display" msgstr "E233: Non riesco ad aprire lo schermo" @@ -4529,13 +4509,6 @@ msgstr "E277: Non riesco a leggere una risposta del server" msgid "E279: Sorry, ++shell is not supported on this system" msgstr "E279: Spiacente, ++shell non è supportato in questo sistema" -msgid "" -"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." -"org" -msgstr "" -"E280: ERRORE FATALE TCL: reflist corrotta!? Si prega notificare a vim-" -"dev@vim.org" - msgid "E282: Cannot read from \"%s\"" msgstr "E282: Non posso leggere da \"%s\"" @@ -4563,12 +4536,6 @@ msgstr "E289: Metodo di Input non supporta il mio tipo di preedit" msgid "E290: List or number required" msgstr "E290: È necessaria una Lista o un Numero" -msgid "E292: Invalid count for del_bytes(): %ld" -msgstr "E292: Contatore non valido per del_bytes(): %ld" - -msgid "E293: Block was not locked" -msgstr "E293: Il blocco non era riservato" - msgid "E294: Seek error in swap file read" msgstr "E294: Errore di posizionamento durante lettura swap file" @@ -4581,15 +4548,6 @@ msgstr "E296: Errore di posizionamento scrivendo swap file" msgid "E297: Write error in swap file" msgstr "E297: Errore scrivendo swap file" -msgid "E298: Didn't get block nr 0?" -msgstr "E298: Non riesco a leggere blocco numero 0?" - -msgid "E298: Didn't get block nr 1?" -msgstr "E298: Non riesco a leggere blocco numero 1?" - -msgid "E298: Didn't get block nr 2?" -msgstr "E298: Non riesco a leggere blocco numero 2?" - msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" msgstr "" "E299: Valorizzazione Perl non consentita in ambiente protetto senza il " @@ -4608,9 +4566,6 @@ msgid "E303: Unable to open swap file for \"%s\", recovery impossible" msgstr "" "E303: Non riesco ad aprire lo swap file per \"%s\", recupero impossibile" -msgid "E304: ml_upd_block0(): Didn't get block 0??" -msgstr "E304: ml_upd_block0(): Non riesco a leggere blocco 0??" - msgid "E305: No swap file found for %s" msgstr "E305: Nessun swap file trovato per %s" @@ -4644,42 +4599,12 @@ msgstr "E313: Non posso preservare, manca swap file" msgid "E314: Preserve failed" msgstr "E314: Preservazione fallita" -msgid "E315: ml_get: Invalid lnum: %ld" -msgstr "E315: ml_get: Numero di riga non valido: %ld" - -msgid "E316: ml_get: Cannot find line %ld in buffer %d %s" -msgstr "E316: ml_get: Non riesco a trovare la riga %ld nel buffer %d %s" - -msgid "E317: Pointer block id wrong" -msgstr "E317: ID blocco puntatori errato" - -msgid "E317: Pointer block id wrong 2" -msgstr "E317: ID blocco puntatori errato 2" - -msgid "E317: Pointer block id wrong 3" -msgstr "E317: ID blocco puntatori errato 3" - -msgid "E317: Pointer block id wrong 4" -msgstr "E317: ID blocco puntatori errato 4" - -msgid "E318: Updated too many blocks?" -msgstr "E318: Aggiornati troppi blocchi?" - msgid "E319: Sorry, the command is not available in this version" msgstr "E319: Spiacente, comando non disponibile in questa versione" -msgid "E320: Cannot find line %ld" -msgstr "E320: Non riesco a trovare la riga %ld" - msgid "E321: Could not reload \"%s\"" msgstr "E321: Non riesco a ricaricare \"%s\"" -msgid "E322: Line number out of range: %ld past the end" -msgstr "E322: Numero di riga non ammissibile: %ld dopo la fine" - -msgid "E323: Line count wrong in block %ld" -msgstr "E323: Contatore righe errato nel blocco %ld" - msgid "E324: Can't open PostScript output file" msgstr "E324: Non riesco ad aprire file PostScript di output" @@ -4730,8 +4655,8 @@ msgstr "E338: Spiacente, niente esplorazione file in modalità console" msgid "E339: Pattern too long" msgstr "E339: Espressione troppo lunga" -msgid "E341: Internal error: lalloc(0, )" -msgstr "E341: Errore interno: lalloc(0, )" +msgid "E340: Internal error; if you can reproduce please report a bug" +msgstr "E340: Errore interno; se riproducibile, siete pregati di segnalarlo" msgid "E342: Out of memory! (allocating %lu bytes)" msgstr "E342: Non c'è più memoria! (stavo allocando %lu byte)" @@ -4779,9 +4704,6 @@ msgstr "E354: Nome registro non valido: '%s'" msgid "E355: Unknown option: %s" msgstr "E355: Opzione sconosciuta: %s" -msgid "E356: get_varp ERROR" -msgstr "E356: ERRORE get_varp" - msgid "E357: 'langmap': Matching character missing for %s" msgstr "E357: 'langmap': Manca carattere corrispondente per %s" @@ -4963,6 +4885,9 @@ msgstr "E417: Manca argomento: %s" msgid "E418: Illegal value: %s" msgstr "E418: Valore non consentito: %s" +msgid "E418: I'm a teapot" +msgstr "E418: Sono una teiera" + msgid "E419: FG color unknown" msgstr "E419: Colore di testo sconosciuto" @@ -5020,15 +4945,6 @@ msgstr "E436: Nessuna descrizione per \"%s\" in 'termcap'" msgid "E437: Terminal capability \"cm\" required" msgstr "E437: Capacità \"cm\" del terminale necessaria" -msgid "E438: u_undo: Line numbers wrong" -msgstr "E438: u_undo: Numeri righe errati" - -msgid "E439: Undo list corrupt" -msgstr "E439: Lista 'undo' non valida" - -msgid "E440: Undo line missing" -msgstr "E440: Riga di 'undo' mancante" - msgid "E441: There is no preview window" msgstr "E441: Non c'è una finestra di anteprima" @@ -5136,9 +5052,6 @@ msgstr "E471: Argomento necessario" msgid "E472: Command failed" msgstr "E472: Comando fallito" -msgid "E473: Internal error in regexp" -msgstr "E473: Errore interno in espressione regolare" - msgid "E474: Invalid argument" msgstr "E474: Argomento non valido" @@ -5254,6 +5167,9 @@ msgstr "non è un file o un dispositivo su cui si possa scrivere" msgid "E503: \"%s\" is not a file or writable device" msgstr "E503: \"%s\" non è un file o un dispositivo scrivibile" +msgid "E503: Coffee is currently not available" +msgstr "E503: Caffè non disponibile al momento" + msgid "is read-only (cannot override: \"W\" in 'cpoptions')" msgstr "è in sola lettura (non posso annullare: \"W\" in 'cpoptions')" @@ -5458,7 +5374,7 @@ msgid "E564: %s is not a directory or a valid cscope database" msgstr "E564: %s non è una directory o un database cscope valido" msgid "E565: Not allowed to change text or change window" -msgstr "E565: Non è possibile modificare testo o cambiare finestra" +msgstr "E565: Non si può modificare testo o cambiare finestra" msgid "E566: Could not create cscope pipes" msgstr "E566: Non riesco a creare pipe cscope" @@ -5469,9 +5385,6 @@ msgstr "E567: Nessuna connessione cscope" msgid "E568: Duplicate cscope database not added" msgstr "E568: Database cscope duplicato, non aggiunto" -msgid "E570: Fatal error in cs_manage_matches" -msgstr "E570: Errore irreparabile in cs_manage_matches" - msgid "" "E571: Sorry, this command is disabled: the Tcl library could not be loaded." msgstr "" @@ -5637,12 +5550,81 @@ msgstr "E625: Impossibile aprire database cscope: %s" msgid "E626: Cannot get cscope database information" msgstr "E626: Impossibile leggere informazioni sul database cscope" +msgid "E627: Missing colon: %s" +msgstr "E627: Mancano i due punti: %s" + +msgid "E628: Missing ! or / in: %s" +msgstr "E628: Manca ! o / in: %s" + msgid "E630: %s(): Write while not connected" msgstr "E630: %s(): Scrittura in mancanza di connessione" msgid "E631: %s(): Write failed" msgstr "E631: %s(): Scrittura non riuscita" +msgid "E632: Invalid buffer identifier in getLength" +msgstr "E632: Identificativo buffer non valido in getLength" + +msgid "E633: Invalid buffer identifier in getText" +msgstr "E633: Identificativo buffer non valido in getText" + +msgid "E634: Invalid buffer identifier in remove" +msgstr "E634: Identificativo buffer non valido in remove" + +msgid "E635: Invalid buffer identifier in insert" +msgstr "E635: Identificativo buffer non valido in insert" + +msgid "E636: Invalid buffer identifier in create" +msgstr "E636: Identificativo buffer non valido in create" + +msgid "E637: Invalid buffer identifier in startDocumentListen" +msgstr "E637: Identificativo buffer non valido in startDocumentListen" + +msgid "E638: Invalid buffer identifier in stopDocumentListen" +msgstr "E638: Identificativo buffer non valido in stopDocumentListen" + +msgid "E639: Invalid buffer identifier in setTitle" +msgstr "E639: Identificativo buffer non valido in setTitle" + +msgid "E640: Invalid buffer identifier in initDone" +msgstr "E640: Identificativo buffer non valido in initDone" + +msgid "E641: Invalid buffer identifier in setBufferNumber" +msgstr "E641: Identificativo buffer non valido in setBufferNumber" + +msgid "E642: File %s not found in setBufferNumber" +msgstr "E642: File %s non trovato in setBufferNumber" + +msgid "E643: Invalid buffer identifier in setFullName" +msgstr "E643: Identificativo buffer non valido in setFullName" + +msgid "E644: Invalid buffer identifier in editFile" +msgstr "E644: Identificativo buffer non valido in editFile" + +msgid "E645: Invalid buffer identifier in setVisible" +msgstr "E645: Identificativo buffer non valido in setVisible" + +msgid "E646: Invalid buffer identifier in setModified" +msgstr "E646: Identificativo buffer non valido in setModified" + +msgid "E647: Invalid buffer identifier in setDot" +msgstr "E647: Identificativo buffer non valido in setDot" + +msgid "E648: Invalid buffer identifier in close" +msgstr "E648: Identificativo buffer non valido in close" + +msgid "E649: Invalid buffer identifier in close" +msgstr "E649: Identificativo buffer non valido in close" + +msgid "E650: Invalid buffer identifier in defineAnnoType" +msgstr "E650: Identificativo buffer non valido in defineAnnoType" + +msgid "E651: Invalid buffer identifier in addAnno" +msgstr "E651: Identificativo buffer non valido in addAnno" + +msgid "E652: Invalid buffer identifier in getAnno" +msgstr "E652: Identificativo buffer non valido in getAnno" + msgid "E654: Missing delimiter after search pattern: %s" msgstr "E654: Manca un delimitatore dopo l'espressione di ricerca: %s" @@ -6189,9 +6171,6 @@ msgstr "E829: Errore scrivendo nel file Undo: %s" msgid "E830: Undo number %ld not found" msgstr "E830: Undo numero %ld non trovato" -msgid "E831: bf_key_init() called with empty password" -msgstr "E831: Chiamata a bf_key_init() con password nulla" - msgid "E832: Non-encrypted file has encrypted undo file: %s" msgstr "E832: File non cifrato con file Undo cifrato: %s" @@ -6346,9 +6325,6 @@ msgstr "" "E876: (Espressione regolare NFA) Non c'è spazio sufficiente a immagazzinare " "l'intero NFA" -msgid "E877: (NFA regexp) Invalid character class: %d" -msgstr "E877: (Espressione regolare NFA) Classe di caratteri non valida: %d" - msgid "E878: (NFA regexp) Could not allocate memory for branch traversal!" msgstr "" "E878: (Espressione regolare NFA) Non posso allocare memoria per lo zigzag di " @@ -6563,9 +6539,6 @@ msgstr "E941: Un server è già stato predisposto" msgid "E942: +clientserver feature not available" msgstr "E942: Funzionalità +clientserver non disponibile" -msgid "E943: Command table needs to be updated, run 'make cmdidxs'" -msgstr "E943: Tabella dei comandi da aggiornare, eseguire 'make cmdidxs'" - msgid "E944: Reverse range in character class" msgstr "E944: Intervallo invertito nella Classe di caratteri" @@ -6641,9 +6614,6 @@ msgstr "E965: Nome del tipo di proprietà non disponibile" msgid "E966: Invalid line number: %ld" msgstr "E966: Numero di riga non valido: %ld" -msgid "E967: Text property info corrupted" -msgstr "E967: Informazione sulle proprietà del testo corrotta" - msgid "E968: Need at least one of 'id' or 'type'" msgstr "E968: Occorre conoscere almeno un 'id' o 'type'" @@ -7034,8 +7004,8 @@ msgstr "E1093: Attesi %d elementi, ma ottenuti %d" msgid "E1094: Import can only be used in a script" msgstr "E1094: Import può solo essere usato in uno script" -msgid "E1095: Unreachable code after :return" -msgstr "E1095: Codice irraggiungibile dopo :return" +msgid "E1095: Unreachable code after :%s" +msgstr "E1095: Codice irraggiungibile dopo :%s" msgid "E1096: Returning a value in a function without a return type" msgstr "" @@ -7071,10 +7041,9 @@ msgid "E1105: Cannot convert %s to string" msgstr "E1105: Non posso convertire %s a una Stringa" msgid "E1106: One argument too many" -msgstr "E1106: Un argomento di troppo" - -msgid "E1106: %d arguments too many" -msgstr "E1106: %d argomenti di troppo" +msgid_plural "E1106: %d arguments too many" +msgstr[0] "E1106: %d argomento di troppo" +msgstr[1] "E1106: %d argomenti di troppo" msgid "E1107: String, List, Dict or Blob required" msgstr "E1107: Necessaria Stringa, Lista, Dizionario o Blob" @@ -7279,7 +7248,8 @@ msgid "E1171: Missing } after inline function" msgstr "E1171: Manca } dopo una funzione in-linea" msgid "E1172: Cannot use default values in a lambda" -msgstr "E1172: Non si possono usare valori predefiniti in un'espressione lambda" +msgstr "" +"E1172: Non si possono usare valori predefiniti in un'espressione lambda" msgid "E1173: Text found after %s: %s" msgstr "E1173: Trovato del testo dopo %s: %s" @@ -7339,10 +7309,9 @@ msgid "E1189: Cannot use :legacy with this command: %s" msgstr "E1189: Non si può usare :legacy con questo comando: %s" msgid "E1190: One argument too few" -msgstr "E1190: Manca un argomento" - -msgid "E1190: %d arguments too few" -msgstr "E1190: Mancano %d argomenti" +msgid_plural "E1190: %d arguments too few" +msgstr[0] "E1190: Manca %d argomento" +msgstr[1] "E1190: Mancano %d argomenti" msgid "E1191: Call to function that failed to compile: %s" msgstr "E1191: Chiamata a funzione che non si riesce a compilare: %s" @@ -7693,8 +7662,9 @@ msgid "E1302: Script variable was deleted" msgstr "E1302: La variabile di script è stata annullata" msgid "E1303: Custom list completion function does not return a List but a %s" -msgstr "E1303: La funzione personalizzata di completamento della Lista " -"non restituisce una Lista ma un %s" +msgstr "" +"E1303: La funzione personalizzata di completamento della Lista non " +"restituisce una Lista ma un %s" msgid "E1304: Cannot use type with this variable: %s" msgstr "E1304: Non si può assegnare il tipo a questa variabile: %s" @@ -7711,8 +7681,8 @@ msgid "E1307: Argument %d: Trying to modify a const %s" msgstr "E1307: Argomento %d: Tenta di modificare la costante %s" msgid "E1308: Cannot resize a window in another tab page" -msgstr "E1308: Non posso ridimensionare una finestra in un'altra " -"pagine di linguette" +msgstr "" +"E1308: Non posso ridimensionare una finestra in un'altra pagine di linguette" msgid "E1309: Cannot change mappings while listing" msgstr "E1309: Non posso modificare mappature mentre le sto elencando" @@ -7724,15 +7694,15 @@ msgid "E1311: Cannot change user commands while listing" msgstr "E1311: Non posso modificare comandi utente mentre li sto elencando" msgid "E1312: Not allowed to change the window layout in this autocmd" -msgstr "E1312: Non si può modificare il formato della finestra in questo " -"autocomando" +msgstr "" +"E1312: Non si può modificare il formato della finestra in questo autocomando" msgid "E1313: Not allowed to add or remove entries (%s)" msgstr "E1313: Not è consentito aggiungere o togliere elementi (%s)" msgid "E1314: Class name must start with an uppercase letter: %s" -msgstr "E1314: Il nome di una Classe deve iniziare con una lettera " -"maiuscola: %s" +msgstr "" +"E1314: Il nome di una Classe deve iniziare con una lettera maiuscola: %s" msgid "E1315: White space required after name: %s" msgstr "E1315: Spazio bianco necessario dopo il nome: %s" @@ -7777,7 +7747,8 @@ msgid "E1328: Constructor default value must be v:none: %s" msgstr "E1328: Il valore predefinito del costruttore dev'essere v:none: %s" msgid "E1329: Cannot get object member type from initializer: %s" -msgstr "E1329: Non riesco a ottenere il tipo dell'elemento Object " +msgstr "" +"E1329: Non riesco a ottenere il tipo dell'elemento Object " "dall'inizializzatore: %s" msgid "E1330: Invalid type for object member: %s" @@ -7787,8 +7758,9 @@ msgid "E1331: Public must be followed by \"this\" or \"static\"" msgstr "E1331: Public dev'essere seguito da \"this\" o \"static\"" msgid "E1332: Public member name cannot start with underscore: %s" -msgstr "E1332: Il nome di un elemento Pubblico non può iniziare con " -"un trattino basso: %s" +msgstr "" +"E1332: Il nome di un elemento Pubblico non può iniziare con un trattino " +"basso: %s" msgid "E1333: Cannot access private member: %s" msgstr "E1333: Non posso accedere elemento privato: %s" @@ -7799,9 +7771,6 @@ msgstr "E1334: Elemento Object non trovato: %s" msgid "E1335: Member is not writable: %s" msgstr "E1335: Elemento non riscrivibile: %s" -msgid "E1336: Internal error: shortmess too long" -msgstr "E1336: Errore interno: shortmess troppo lungo" - msgid "E1337: Class member not found: %s" msgstr "E1337: Elemento di Classe non trovato: %s" @@ -7812,8 +7781,8 @@ msgid "" "E1339: Cannot add a textprop with text after using a textprop with a " "negative id" msgstr "" -"E1339: Non posso aggiungere textprop a un testo dopo aver usato una " -"textprop con un identificativo negativo" +"E1339: Non posso aggiungere textprop a un testo dopo aver usato una textprop " +"con un identificativo negativo" msgid "E1340: Argument already declared in the class: %s" msgstr "E1340: Argomento già dichiarato nella Classe: %s" @@ -7826,8 +7795,8 @@ msgstr "E1342: L'interfaccia può essere definita solo negli script Vim9" msgid "E1343: Interface name must start with an uppercase letter: %s" msgstr "" -"E1343: I comandi definiti dall'utente devono iniziare con lettera " -"maiuscola: %s" +"E1343: I comandi definiti dall'utente devono iniziare con lettera maiuscola: " +"%s" msgid "E1344: Cannot initialize a member in an interface" msgstr "E1344: Non riesco a inizializzare elemento di un'interfaccia" @@ -7875,8 +7844,7 @@ msgid "E1358: Using \"super\" not in a child class" msgstr "E1358: Uso di \"super\" fuori da una Classe-figlia" msgid "E1359: Cannot define a \"new\" function in an abstract class" -msgstr "" -"E1359: Non posso definire una funzione \"new\" in una Classe astratta" +msgstr "E1359: Non posso definire una funzione \"new\" in una Classe astratta" msgid "E1360: Using a null object" msgstr "E1360: Uso di un Object nullo" @@ -7893,11 +7861,68 @@ msgstr "E1363: Tipo incompleto" msgid "E1364: Warning: Pointer block corrupted" msgstr "E1364: Attenzione: Blocco puntatore non valido" +msgid "E1400: Cannot mix positional and non-positional arguments: %s" +msgstr "E1400: Non si possono mischiare argomenti posizionali e non " +"posizionali: %s" + +msgid "E1401: format argument %d unused in $-style format: %s" +msgstr "E1401: argomento di formato %d non usato nel formato $-style: %s" + +msgid "" +"E1402: Positional argument %d used as field width reused as different type: " +"%s/%s" +msgstr "" +"E1402: Argomento posizionale %d, usato come larghezza campo, riusato con " +"un tipo differente: %s/%s" + +msgid "E1403: Positional argument %d out of bounds: %s" +msgstr "E1403: Argomento posizionale %d fuori misura: %s" + +msgid "E1404: Positional argument %d type used inconsistently: %s/%s" +msgstr "E1404: Argomento posizionale di tipo %d usato in modo " +"inconsistente: %s/%s" + +msgid "E1405: Invalid format specifier: %s" +msgstr "E1405: Specificatore di formato non valido: %s" + #. type of cmdline window or 0 #. result of cmdline window or 0 msgid "--No lines in buffer--" msgstr "--File vuoto--" +msgid "int" +msgstr "int" + +msgid "long int" +msgstr "long int" + +msgid "long long int" +msgstr "long long int" + +msgid "unsigned int" +msgstr "unsigned int" + +msgid "unsigned long int" +msgstr "unsigned long int" + +msgid "unsigned long long int" +msgstr "unsigned long long int" + +msgid "pointer" +msgstr "puntatore" + +msgid "percent" +msgstr "percento" + +msgid "char" +msgstr "carattere" + +msgid "string" +msgstr "stringa" + +msgid "float" +msgstr "numero a virgola mobile" + #. #. * Some messages that can be shared are included here. #. @@ -8885,8 +8910,8 @@ msgid "show (partial) command keys in location given by 'showcmdloc'" msgstr "mostra (una parte dei) tasti di comando nella riga di status" msgid "location where to show the (partial) command keys for 'showcmd'" -msgstr "posizione in cui mostrare (una parte dei) tasti di comando per " -"'showcmd'" +msgstr "" +"posizione in cui mostrare (una parte dei) tasti di comando per 'showcmd'" msgid "display the current mode in the status line" msgstr "visualizza modo corrente nella riga di status" @@ -9466,7 +9491,7 @@ msgid "specifies the characters in a file name" msgstr "specifica i caratteri contenuti in un nome di file" msgid "specifies the characters in an identifier" -msgstr "specifica i caratteri contenuti in un identificatore" +msgstr "specifica i caratteri contenuti in un identificativo" msgid "specifies the characters in a keyword" msgstr "specifica i caratteri contenuti in una parola" @@ -9685,3 +9710,5 @@ msgstr "nome della libreria dinamica MzScheme GC" msgid "You discovered the command-line window! You can close it with \":q\"." msgstr "" +"Questa è la finestra della riga-di-comando! si può chiudere con \":q\"." + diff --git a/src/po/ja.euc-jp.po b/src/po/ja.euc-jp.po index 3bec1d3a21..5b2f0138df 100644 --- a/src/po/ja.euc-jp.po +++ b/src/po/ja.euc-jp.po @@ -2182,7 +2182,7 @@ msgstr "%s msgid "line %4ld:" msgstr "¹Ô %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "ÆüËܸì¥á¥Ã¥»¡¼¥¸ËÝÌõ/´Æ½¤: ¼²¬ ÂÀϺ " msgid "Interrupt: " diff --git a/src/po/ja.po b/src/po/ja.po index 2be75ce38f..596e829cc4 100644 --- a/src/po/ja.po +++ b/src/po/ja.po @@ -2182,7 +2182,7 @@ msgstr "%s ã®å‡¦ç†ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒæ¤œå‡ºã•れã¾ã—ãŸ:" msgid "line %4ld:" msgstr "行 %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "日本語メッセージ翻訳/監修: æ‘岡 太郎 " msgid "Interrupt: " diff --git a/src/po/ja.sjis.po b/src/po/ja.sjis.po index f554976998..cec4953028 100644 --- a/src/po/ja.sjis.po +++ b/src/po/ja.sjis.po @@ -2182,7 +2182,7 @@ msgstr "%s msgid "line %4ld:" msgstr "s %4ld:" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "“ú–{ŒêƒƒbƒZ[ƒW–|–ó/ŠÄC: ‘º‰ª ‘¾˜Y " msgid "Interrupt: " diff --git a/src/po/ko.UTF-8.po b/src/po/ko.UTF-8.po index 73686c4642..a9ee0ca748 100644 --- a/src/po/ko.UTF-8.po +++ b/src/po/ko.UTF-8.po @@ -3907,7 +3907,7 @@ msgstr "%4ld 줄:" msgid "E354: Invalid register name: '%s'" msgstr "E354: ìž˜ëª»ëœ ë ˆì§€ìŠ¤í„° ì´ë¦„: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "메시지 관리ìž: SungHyun Nam " msgid "Interrupt: " diff --git a/src/po/ko.po b/src/po/ko.po index 304caec49a..00fb48681f 100644 --- a/src/po/ko.po +++ b/src/po/ko.po @@ -3907,7 +3907,7 @@ msgstr "%4ld msgid "E354: Invalid register name: '%s'" msgstr "E354: À߸øµÈ ·¹Áö½ºÅÍ À̸§: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "¸Þ½ÃÁö °ü¸®ÀÚ: SungHyun Nam " msgid "Interrupt: " diff --git a/src/po/lv.po b/src/po/lv.po index bf5f68e686..e61042df0d 100644 --- a/src/po/lv.po +++ b/src/po/lv.po @@ -215,7 +215,7 @@ msgstr "E298: NeizdevÄs iegÅ«t bloku nr 2?" msgid "E304: ml_upd_block0(): Didn't get block 0??" msgstr "E304: ml_upd_block0(): NeizdevÄs iegÅ«t bloku 0??" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Messages maintainer: Valdis Vitolins " msgid "Keys don't match!" diff --git a/src/po/nb.po b/src/po/nb.po index 141e63ad09..d9f527bce4 100644 --- a/src/po/nb.po +++ b/src/po/nb.po @@ -3738,7 +3738,7 @@ msgstr "linje %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Ugyldig registernavn: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "" "Vedlikeholder for norsk oversettelse: Øyvind A. Holm " diff --git a/src/po/nl.po b/src/po/nl.po index bde0adf370..09f281b1bd 100644 --- a/src/po/nl.po +++ b/src/po/nl.po @@ -3347,7 +3347,7 @@ msgstr "regel %4ld:" #~ msgid "E354: Invalid register name: '%s'" #~ msgstr "" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Vertaald door: Erwin Poeze " #~ msgid "Interrupt: " diff --git a/src/po/no.po b/src/po/no.po index 141e63ad09..d9f527bce4 100644 --- a/src/po/no.po +++ b/src/po/no.po @@ -3738,7 +3738,7 @@ msgstr "linje %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Ugyldig registernavn: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "" "Vedlikeholder for norsk oversettelse: Øyvind A. Holm " diff --git a/src/po/pl.UTF-8.po b/src/po/pl.UTF-8.po index 2798b5bdf2..c9036a35ec 100644 --- a/src/po/pl.UTF-8.po +++ b/src/po/pl.UTF-8.po @@ -3909,7 +3909,7 @@ msgstr "wiersz %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: NiewÅ‚aÅ›ciwa nazwa rejestru: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Opiekun komunikatów: MikoÅ‚aj Machowski " msgid "Interrupt: " diff --git a/src/po/pl.cp1250.po b/src/po/pl.cp1250.po index a8a4497238..9280d2fbb0 100644 --- a/src/po/pl.cp1250.po +++ b/src/po/pl.cp1250.po @@ -3909,7 +3909,7 @@ msgstr "wiersz %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Niew³aœciwa nazwa rejestru: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Opiekun komunikatów: Miko³aj Machowski " msgid "Interrupt: " diff --git a/src/po/pl.po b/src/po/pl.po index 901ad04a98..f10897d098 100644 --- a/src/po/pl.po +++ b/src/po/pl.po @@ -3909,7 +3909,7 @@ msgstr "wiersz %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Niew³a¶ciwa nazwa rejestru: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Opiekun komunikatów: Miko³aj Machowski " msgid "Interrupt: " diff --git a/src/po/pt_BR.po b/src/po/pt_BR.po index d6fd574eb1..3a8844a544 100644 --- a/src/po/pt_BR.po +++ b/src/po/pt_BR.po @@ -3928,7 +3928,7 @@ msgstr "linha %4ld:" msgid "E354: Invalid register name: '%s'" msgstr "E354: Nome de registrador inválido: '%s'" -msgid "Messages maintainer: Bram Moolenaar " +msgid "Messages maintainer: The Vim Project" msgstr "Tradutor das mensagens: Eduardo Dobay " msgid "Interrupt: " diff --git a/src/po/ru.cp1251.po b/src/po/ru.cp1251.po index 5779ce4c0c..77fccb94f5 100644 --- a/src/po/ru.cp1251.po +++ b/src/po/ru.cp1251.po @@ -5,53 +5,76 @@ # vassily "vr" ragosin , 2004 # Sergey Alyoshin , 2013-2014, 2016, 2018-2019 # Matvey Tarasov , 2022 +# Restorer , 2017, 2020-2023 +# URL: https://github.com/RestorerZ/RuVim # -# Generated from ru.po, DO NOT EDIT. +# +# Restorer +# Îñíîâíûå çàäà÷è, ðåøàåìûå äàííîé ðåäàêöèåé ïåðåâîäà: +# - ñîîòâåòñòâèå íîðìàì è ïðàâèëàì ðóññêîãî ÿçûêà; +# - óíèôèöèðîâàííîñòü ñîîáùåíèé; +# - ñâÿçàííîñòü ñîîáùåíèé; +# - èíôîðìàòèâíîñòü ñîîáùåíèé áåç îáðàùåíèÿ ê âñòðîåííîé äîêóìåíòàöèè; +# - ëàêîíè÷íîñòü. +# Íàñêîëüêî ýòî, êîíå÷íî, âîçìîæíî è ïîçâîëÿåò ìîÿ áåçãðàìîòíîñòü, +# ñëàáîå çíàíèå ÿçûêà ïåðâîèñòî÷íèêà è ïðåäìåòíîé îáëàñòè. # msgid "" msgstr "" -"Project-Id-Version: vim_ru\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-24 18:31+0300\n" -"PO-Revision-Date: 2022-07-24 18:35+0300\n" -"Last-Translator: Matvey Tarasov \n" -"Language-Team: \n" -"Language: Russian\n" +"Project-Id-Version: Vim 9.0.1757\n" +"Report-Msgid-Bugs-To: The Vim Project\n" +"POT-Creation-Date: 2023-08-20 00:01+0300\n" +"PO-Revision-Date: 2023-08-20 00:57+0300\n" +"Last-Translator: Restorer, \n" +"Language-Team: RuVim\n" +"Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=cp1251\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +# #Restorer: âûâîäèòñÿ ïðè àíàëèçå (ïðîôèëèðîâàíèè) ïðîãðàììû, ôóíêöèè è ò. ï. +# ~!: earlier msgid "ERROR: " msgstr "ÎØÈÁÊÀ: " +# #Restorer: âûâîäèòñÿ ïðè àíàëèçå (ïðîôèëèðîâàíèè) ïðîãðàììû, ôóíêöèè è ò. ï. +# :!~ Restorer #, c-format msgid "" "\n" "[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n" msgstr "" "\n" -"[áàéòû] âñåãî âûäåë.-îñâîá. %lu-%lu, èñïîëüç. %lu, ìàêñ. èñïîëüç. %lu\n" +"âñåãî áàéò: âûäåëåíî — îñâîáîæäåíî %lu — %lu; ðàáî÷èé íàáîð %lu; ïèê %lu\n" +# #Restorer: âûâîäèòñÿ ïðè àíàëèçå (ïðîôèëèðîâàíèè) ïðîãðàììû, ôóíêöèè è ò. ï. +# :!~ Restorer #, c-format msgid "" "[calls] total re/malloc()'s %lu, total free()'s %lu\n" "\n" msgstr "" -"[âûçîâû] re/malloc() âñåãî %lu, free() âñåãî %lu\n" +"âñåãî âûçîâîâ: realloc() èëè malloc() %lu; free() %lu\n" "\n" +# #Restorer: âûâîäèòñÿ ïðè ïðîñìîòðå ñïèñêà àâòîêîìàíä +# ~!: earlier msgid "--Deleted--" -msgstr "--Óäàëåíî--" +msgstr "-- Óäàëåíî --" +# :!~ Restorer #, c-format msgid "auto-removing autocommand: %s " -msgstr "àâòîóäàëåíèå àâòîêîìàíäû: %s <áóôåð=%d>" +msgstr "àâòîìàòè÷åñêîå îòêëþ÷åíèå àâòîêîìàíä äëÿ ñîáûòèÿ %s â <áóôåð=%d>" +# :!~ Restorer msgid "W19: Deleting augroup that is still in use" -msgstr "W19: Óäàëåíèå åù¸ èñïîëüçóåìîé ãðóïïû àâòîêîìàíä" +msgstr "W19: Óäàëåíèå àêòèâíîé ãðóïïû àâòîêîìàíä" +# #Restorer: îòîáðàæàåòñÿ, íàïðèìåð, ïî êîìàíäå `:autocmd` +# ~!: earlier msgid "" "\n" "--- Autocommands ---" @@ -59,699 +82,1130 @@ msgstr "" "\n" "--- Àâòîêîìàíäû ---" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíäû `:doautocmd` +# :!~ Restorer #, c-format msgid "No matching autocommands: %s" -msgstr "Íåò ïîäõîäÿùèõ àâòîêîìàíä: %s" +msgstr "Îòñóòñòâóþò àâòîêîìàíäû äëÿ ñîáûòèÿ èëè ôàéëà %s" +# :!~ Restorer #, c-format msgid "%s Autocommands for \"%s\"" -msgstr "%s àâòîêîìàíäà äëÿ øàáëîíà \"%s\"" +msgstr "àâòîêîìàíä ïî ñîáûòèþ %s ïðèìåíèìûõ ê \"%s\"" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>=8 +# ~!: earlier #, c-format msgid "Executing %s" msgstr "Âûïîëíåíèå %s" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>=9 +# ~!: earlier #, c-format msgid "autocommand %s" msgstr "àâòîêîìàíäà %s" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "add() argument" -msgstr "ïàðàìåòðà add()" +msgstr "àðãóìåíòà ôóíêöèè add()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "insert() argument" -msgstr "ïàðàìåòðà insert()" +msgstr "àðãóìåíòà ôóíêöèè insert()" +# #Restorer: â ñòðîêå ñîñòîÿíèÿ (ruler) +# :!~ Restorer msgid "[Location List]" -msgstr "[Ñïèñîê ðàñïîëîæåíèé]" +msgstr "[ëîêàëüíûé ñïèñîê ðåçóëüòàòîâ]" +# #Restorer: â ñòðîêå ñîñòîÿíèÿ (ruler) +# :!~ Restorer msgid "[Quickfix List]" -msgstr "[Ñïèñîê áûñòðûõ èñïðàâëåíèé]" +msgstr "[ñïèñîê ðåçóëüòàòîâ]" +# :!~ Restorer #, c-format msgid "%d buffer unloaded" msgid_plural "%d buffers unloaded" -msgstr[0] "Âûãðóæåí %d áóôåð" -msgstr[1] "Âûãðóæåíî %d áóôåðà" -msgstr[2] "Âûãðóæåíî %d áóôåðîâ" +msgstr[0] "%d áóôåð óäàë¸í èç ïàìÿòè" +msgstr[1] "%d áóôåðà óäàëåíî èç ïàìÿòè" +msgstr[2] "%d áóôåðîâ óäàëåíî èç ïàìÿòè" +# :!~ Restorer #, c-format msgid "%d buffer deleted" msgid_plural "%d buffers deleted" -msgstr[0] "Óäàë¸í %d áóôåð" -msgstr[1] "Óäàëåíî %d áóôåðà" -msgstr[2] "Óäàëåíî %d áóôåðîâ" +msgstr[0] "%d áóôåð óäàë¸í èç ñïèñêà áóôåðîâ" +msgstr[1] "%d áóôåðà óäàëåíî èç ñïèñêà áóôåðîâ" +msgstr[2] "%d áóôåðîâ óäàëåíî èç ñïèñêà áóôåðîâ" +# :!~ Restorer #, c-format msgid "%d buffer wiped out" msgid_plural "%d buffers wiped out" -msgstr[0] "Ñò¸ðò %d áóôåð" -msgstr[1] "Ñò¸ðòî %d áóôåðà" -msgstr[2] "Ñò¸ðòî %d áóôåðîâ" +msgstr[0] "%d áóôåð óäàë¸í èç ïàìÿòè è ñïèñêà áóôåðîâ" +msgstr[1] "%d áóôåðà óäàëåíî èç ïàìÿòè è ñïèñêà áóôåðîâ" +msgstr[2] "%d áóôåðîâ óäàëåíî èç ïàìÿòè è ñïèñêà áóôåðîâ" +# :!~ Restorer msgid "W14: Warning: List of file names overflow" -msgstr "W14: Ïðåäóïðåæäåíèå: ïåðåïîëíåíèå ñïèñêà èì¸í ôàéëîâ" +msgstr "W14: Âíèìàíèå! Ïåðå÷åíü íàèìåíîâàíèé ôàéëîâ çàïîëíåí ïîëíîñòüþ" +# #Restorer: â ñïèñêå áóôåðîâ, îòîáðàæàåìîì ïî `:buffers`; `:files`; `:ls` +# :!~ Restorer #, c-format msgid "line %ld" -msgstr "ñòðîêà %ld" +msgstr "êóðñîð íà ñòðîêå %ld" +# #Restorer: íàïðèìåð, ïî êîìàíäå `CTRL+G` +# :!~ Restorer msgid " [Modified]" -msgstr " [Èçìåí¸í]" +msgstr " [åñòü èçìåíåíèÿ]" +# #Restorer: íàïðèìåð, ïî êîìàíäå `CTRL+G` +# :!~ Restorer msgid "[Not edited]" -msgstr "[Íå ðåäàêòèðîâàëñÿ]" +msgstr "[íåò èçìåíåíèé]" +# #Restorer: íàïðèìåð, ïî êîìàíäå `CTRL+G` +# ~!: earlier msgid "[Read errors]" -msgstr "[Îøèáêè ÷òåíèÿ]" +msgstr "[îøèáêè ñ÷èòûâàíèÿ]" +# #Restorer: íàïðèìåð, ïî êîìàíäå `CTRL+G` èëè â ñòðîêå ñîñòîÿíèÿ +# #Restorer: â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì è ïðè 'shm' = r +# :!~ Restorer msgid "[RO]" -msgstr "[Ò×]" +msgstr "[ÒÄ×]" +# #Restorer: íàïðèìåð, ïî êîìàíäå `CTRL+G` +# #Restorer: â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[readonly]" msgstr "[òîëüêî äëÿ ÷òåíèÿ]" +# #Restorer: íàïðèìåð, ïî êîìàíäå `CTRL+G` +# :!~ Restorer #, c-format msgid "%ld line --%d%%--" msgid_plural "%ld lines --%d%%--" -msgstr[0] "%ld ñòðîêà --%d%%--" -msgstr[1] "%ld ñòðîêè --%d%%--" -msgstr[2] "%ld ñòðîê --%d%%--" +msgstr[0] "%ld ñòðîêà -- %d %% --" +msgstr[1] "%ld ñòðîêè -- %d %% --" +msgstr[2] "%ld ñòðîê -- %d %% --" +# #Restorer: íàïðèìåð, ïî êîìàíäå `CTRL+G` +# :!~ Restorer #, c-format msgid "line %ld of %ld --%d%%-- col " -msgstr "ñòð. %ld èç %ld --%d%%-- êîë. " +msgstr "ñòðîêà %ld èç %ld -- %d %% -- êîëîíêà " +# #Restorer: â çàãîëîâêå îêíà +# :!~ Restorer msgid "[No Name]" -msgstr "[Íåò èìåíè]" +msgstr "[áåçûìÿííûé]" +# #Restorer: â çàãîëîâêå îêíà +# ~!: earlier msgid "help" msgstr "ñïðàâêà" +# #Restorer: â ñòðîêå ñîñòîÿíèÿ +# ~!: earlier msgid "[Help]" -msgstr "[Ñïðàâêà]" +msgstr "[ñïðàâêà]" +# #Restorer: â ñòðîêå ñîñòîÿíèÿ +# :!~ Restorer msgid "[Preview]" -msgstr "[Ïðåäïðîñìîòð]" +msgstr "[ïðîñìîòð]" +# :!~ Restorer msgid "All" -msgstr "Âåñü" +msgstr "Âåñü òåêñò" +# :!~ Restorer msgid "Bot" -msgstr "Âíèçó" +msgstr "Îêîí÷àíèå" +# :!~ Restorer msgid "Top" -msgstr "Íàâåðõó" +msgstr "Íà÷àëî" +# :!~ Restorer +#, c-format +msgid "%d%%" +msgstr "%d %%" + +# #Restorer: âûâîäèòñÿ â çàãîëîâêå îêíà, ñòðîêå ñîñòîÿíèÿ, êîìíäíîé ñòðîêå ïðè +# #Restorer: ðåäàêòèðîâàíèè íåñêîëüêèõ ôàéëîâ +# ~!: Restorer +#, c-format +msgid " (%d of %d)" +msgstr " (%d èç %d)" + +# #Restorer: âûâîäèòñÿ â çàãîëîâêå îêíà, ñòðîêå ñîñòîÿíèÿ, êîìíäíîé ñòðîêå ïðè +# #Restorer: ðåäàêòèðîâàíèè íåñêîëüêèõ ôàéëîâ +# ~!: Restorer +#, c-format +msgid " ((%d) of %d)" +msgstr " ((%d) èç %d)" + +# #Restorer: âûâîäèòñÿ â çàãîëîâêå îêíà, ñòðîêå ñîñòîÿíèÿ, êîìíäíîé ñòðîêå ïðè +# #Restorer: ðåäàêòèðîâàíèè íåñêîëüêèõ ôàéëîâ +# ~!: Restorer +#, c-format +msgid " (file %d of %d)" +msgstr " (ôàéë %d èç %d" + +# #Restorer: âûâîäèòñÿ â çàãîëîâêå îêíà, ñòðîêå ñîñòîÿíèÿ, êîìíäíîé ñòðîêå ïðè +# #Restorer: ðåäàêòèðîâàíèè íåñêîëüêèõ ôàéëîâ +# ~!: Restorer +#, c-format +msgid " (file (%d) of %d)" +msgstr " (ôàéë (%d) èç %d" + +# #Restorer: â ñòðîêå ñîñòîÿíèÿ äëÿ áóôåðà ñ îêíîì çàïðîñà è óâåäîìëåíèÿ +# :!~ Restorer msgid "[Prompt]" -msgstr "[Çàïðîñ]" +msgstr "[çàïðîñ]" +# #Restorer: â ñòðîêå ñîñòîÿíèÿ äëÿ áóôåðà, àññîöèèðîâàííîãî ñî âñïëûâàþùèì îêíîì +# ~!: earlier msgid "[Popup]" -msgstr "[Âñïëûâàþùèé]" +msgstr "[âñïëûâàþùèé]" +# #Restorer: â ñòðîêå ñîñòîÿíèÿ äëÿ âðåìåííîãî áóôåðà +# ~!: earlier msgid "[Scratch]" -msgstr "[Âðåìåííûé]" +msgstr "[âðåìåííûé]" +# #Restorer: ïðè çàïèñè èçìåí¸ííîãî èçâíå ôàéëà +# :!~ Restorer msgid "WARNING: The file has been changed since reading it!!!" -msgstr "ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ: Ôàéë èçìåí¸í ñ ìîìåíòà ÷òåíèÿ!!!" +msgstr "Âíèìàíèå! Ôàéë áûë èçìåí¸í óæå ïîñëå òîãî, êàê ñ÷èòàí â áóôåð" +# #Restorer: äîïèñûâàåòñÿ ïîñëå ñîîáùåíèÿ «WARNING: The file has been changed since reading it!!!» +# :!~ Restorer msgid "Do you really want to write to it" -msgstr "Ñåðü¸çíî õîòèòå çàïèñàòü â ýòîò ôàéë" +msgstr "Óâåðåíû, ÷òî õîòèòå çàïèñàòü ýòîò ôàéë?" +# #Restorer: ñêîðåå âñåãî â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[New]" -msgstr "[Íîâûé]" +msgstr "[íîâûé]" +# ~!: earlier msgid "[New File]" -msgstr "[Íîâûé ôàéë]" +msgstr "[íîâûé ôàéë]" +# #Restorer: ñêîðåå âñåãî â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid " CONVERSION ERROR" -msgstr " ÎØÈÁÊÀ ÏÐÅÎÁÐÀÇÎÂÀÍÈß" +msgstr " ÎØÈÁÊÀ ÈÇÌÅÍÅÍÈß ÊÎÄÈÐÎÂÊÈ" +# #Restorer: ñêîðåå âñåãî â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier #, c-format msgid " in line %ld;" -msgstr " íà ñòðîêå %ld;" +msgstr " â ñòðîêå %ld;" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[NOT converted]" -msgstr "[ÁÅÇ ïðåîáðàçîâàíèé]" +msgstr "[áåç èçìåíåíèÿ êîäèðîâêè]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[converted]" -msgstr "[ïðåîáðàçîâàíî]" +msgstr "[èçìåíåíà êîäèðîâêà]" +# #Restorer: ñêîðåå âñåãî â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[Device]" -msgstr "[Óñòðîéñòâî]" +msgstr "[óñòðîéñòâî]" +# #Restorer: â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ äîáàâëåíèÿ â ôàéë è ïðè 'shm' = w +# :!~ Restorer msgid " [a]" -msgstr " [ä]" +msgstr " [äîá.]" +# #Restorer: â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ äîáàâëåíèÿ â ôàéë +# ~!: earlier msgid " appended" msgstr " äîáàâëåíî" +# #Restorer: â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ çàïèñè ôàéëà è ïðè 'shm' = w +# :!~ Restorer msgid " [w]" -msgstr " [ç]" +msgstr " [çàï.]" +# #Restorer: â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ çàïèñè ôàéëà +# ~!: earlier msgid " written" msgstr " çàïèñàíî" +# :!~ Restorer msgid "" "\n" "WARNING: Original file may be lost or damaged\n" msgstr "" "\n" -"ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ: Èñõîäíûé ôàéë ìîæåò áûòü óòðà÷åí èëè ïîâðåæä¸í\n" +"Âíèìàíèå! Èñõîäíûé ôàéë ìîæåò áûòü óòðà÷åí èëè ïîâðåæä¸í.\n" +# :!~ Restorer msgid "don't quit the editor until the file is successfully written!" -msgstr "íå âûõîäèòå èç ðåäàêòîðà, ïîêà ôàéë íå áóäåò óñïåøíî çàïèñàí!" +msgstr "Íå çàâåðøàéòå ðàáîòó ïðîãðàììû, ïîêà ôàéë íå áóäåò óñïåøíî çàïèñàí!" +# :!~ Restorer msgid "W10: Warning: Changing a readonly file" -msgstr "W10: Ïðåäóïðåæäåíèå: Èçìåíåíèå ôàéëà ñ ïðàâàìè òîëüêî äëÿ ÷òåíèÿ" +msgstr "W10: Âíèìàíèå! Èçìåíåíèÿ â îòêðûòîì òîëüêî äëÿ ÷òåíèÿ ôàéëå" +# :!~ Restorer msgid "No display" -msgstr "Íåò äèñïëåÿ" +msgstr "Îòñóòñòâóåò ïîäêëþ÷åíèå ê X-ñåðâåðó" +# :!~ Restorer msgid ": Send failed.\n" -msgstr ": Îòïðàâêà íå óäàëàñü.\n" +msgstr " Ñáîé ïåðåäà÷è\n" +# :!~ Restorer msgid ": Send failed. Trying to execute locally\n" -msgstr ": Îòïðàâêà íå óäàëàñü. Ïîïûòêà âûïîëíèòü ëîêàëüíî\n" +msgstr " Ñáîé ïåðåäà÷è. Ïîïûòêà âûïîëíèòü ëîêàëüíî\n" +# #Restorer: äëÿ ÎÑ Windows, ñîîáùåíèå âûâîäèòñÿ â çàãîëîâêå îêíà +# ~!: earlier #, c-format msgid "%d of %d edited" msgstr "îòðåäàêòèðîâàíî %d èç %d" +# :!~ Restorer msgid "No display: Send expression failed.\n" -msgstr "Íåò äèñïëåÿ, îòïðàâêà âûðàæåíèÿ íå óäàëàñü.\n" +msgstr "Ñáîé ïðè îòïðàâêå âûðàæåíèÿ. Îòñóòñòâóåò ïîäêëþ÷åíèå\n" +# :!~ Restorer msgid ": Send expression failed.\n" -msgstr ": Îòïðàâêà âûðàæåíèÿ íå óäàëàñü.\n" +msgstr " Ñáîé ïðè îòïðàâêå âûðàæåíèÿ\n" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer msgid "Used CUT_BUFFER0 instead of empty selection" -msgstr "Âìåñòî ïóñòîãî âûäåëåíèÿ èñïîëüçóåòñÿ CUT_BUFFER0" +msgstr "Ñîäåðæèìîå áóôåðà îáìåíà ïîëó÷åíî èç áóôåðà CUT_BUFFER0" +# #Restorer: îòîáðàæàåòñÿ ïî êîìàíäå `i_CTRL+X`, åñëè îòêëþ÷åí âèä «îêíî ìåíþ» +# :!~ Restorer msgid "tagname" -msgstr "èìÿ ìåòêè" +msgstr "èíäåêñ" +# #Restorer: îòîáðàæàåòñÿ ïî êîìàíäå `i_CTRL+X`, åñëè îòêëþ÷åí âèä «îêíî ìåíþ» +# ~!: earlier msgid " kind file\n" msgstr " òèï ôàéëà\n" +# #Restorer: îòîáðàæàåòñÿ ïî êîìàíäå `:history` +# :!~ Restorer msgid "'history' option is zero" -msgstr "çíà÷åíèå îïöèè 'history' ðàâíî íóëþ" +msgstr "Çíà÷åíèå ïàðàìåòðà 'history' ðàâíî íóëþ" +# :!~ Restorer msgid "Warning: Using a weak encryption method; see :help 'cm'" -msgstr "Ïðåäóïðåæäåíèå: Èñïîëüçóåòñÿ ñëàáûé ìåòîä øèôðîâàíèÿ, ñì. :help 'cm'" +msgstr "Âíèìàíèå! Èñïîëüçóåòñÿ íåíà䏿íîå øèôðîâàíèå. Ïîäðîáíåå ñì. :help 'cm'" +# :!~ Restorer msgid "Note: Encryption of swapfile not supported, disabling swap file" msgstr "" -"Ê ñâåäåíèþ: ñâîï-ôàéë áóäåò îòêëþ÷¸í, òàê êàê åãî øèôðîâàíèå íå " -"ïîääåðæèâàåòñÿ" +"Øèôðîâàíèå ôàéëà ïîäêà÷êè íå ïîääåðæèâàåòñÿ. Òåêóùèé áóôåð áåç ôàéëà ïîäêà÷êè" +# ~!: earlier msgid "Enter encryption key: " msgstr "Ââåäèòå ïàðîëü äëÿ øèôðîâàíèÿ: " +# ~!: earlier msgid "Enter same key again: " msgstr "Ïîâòîðèòå ââîä ïàðîëÿ: " +# ~!: earlier msgid "Keys don't match!" msgstr "Ââåä¸ííûå ïàðîëè íå ñîâïàäàþò!" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[crypted]" -msgstr "[çàøèôðîâàíî]" +msgstr "[øèôðîâàíî]" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>0 +# :!~ Restorer +#, c-format +msgid "xchacha20v2: using custom opslimit \"%llu\" for Key derivation." +msgstr "" +"xChaCha20v2: äëÿ ïîëó÷åíèÿ êëþ÷à ïðèìåíåíî íåñòàíäàðòíîå çíà÷åíèå opslimit " +"\"%llu\"" + +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>0 +# :!~ Restorer +#, c-format +msgid "xchacha20v2: using default opslimit \"%llu\" for Key derivation." +msgstr "" +"xChaCha20v2: äëÿ ïîëó÷åíèÿ êëþ÷à ïðèìåíåíî ñòàíäàðòíîå çíà÷åíèå opslimit \"%llu" +"\"" + +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>0 +# :!~ Restorer +#, c-format +msgid "xchacha20v2: using custom memlimit \"%lu\" for Key derivation." +msgstr "" +"xChaCha20v2: äëÿ ïîëó÷åíèÿ êëþ÷à ïðèìåíåíî íåñòàíäàðòíîå çíà÷åíèå memlimit " +"\"%lu\"" + +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>0 +# :!~ Restorer +#, c-format +msgid "xchacha20v2: using default memlimit \"%lu\" for Key derivation." +msgstr "" +"xChaCha20v2: äëÿ ïîëó÷åíèÿ êëþ÷à ïðèìåíåíî ñòàíäàðòíîå çíà÷åíèå memlimit \"%lu" +"\"" + +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>0 +# :!~ Restorer +#, c-format +msgid "xchacha20v2: using custom algorithm \"%d\" for Key derivation." +msgstr "xChaCha20v2: äëÿ ïîëó÷åíèÿ êëþ÷à ïðèìåí¸í íåñòàíäàðòíûé àëãîðèòì \"%d\"" + +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>0 +# :!~ Restorer +#, c-format +msgid "xchacha20v2: using default algorithm \"%d\" for Key derivation." +msgstr "xChaCha20v2: äëÿ ïîëó÷åíèÿ êëþ÷à ïðèìåí¸í ñòàíäàðòíûé àëãîðèòì \"%d\"" + +# :!~ Restorer msgid "Entering Debug mode. Type \"cont\" to continue." -msgstr "Âêëþ÷¸í ðåæèì îòëàäêè. Äëÿ ïðîäîëæåíèÿ íàáåðèòå \"cont\"." +msgstr "" +"Âûïîëíåíî ïåðåêëþ÷åíèå â ðåæèì îòëàäêè. ×òîáû ïðîäîëæèòü, íàáåðèòå \"cont\"" +# #Restorer: êîìàíäû `:debug`; âûâîäèòñÿ ïðè èçìåíåíèè â òî÷êå îñòàíîâà +# :!~ Restorer #, c-format msgid "Oldval = \"%s\"" -msgstr "Ïðåæ.çí. = \"%s\"" +msgstr "ïðåæíåå çíà÷åíèå = \"%s\"" +# #Restorer: êîìàíäû `:debug`; âûâîäèòñÿ ïðè èçìåíåíèè â òî÷êå îñòàíîâà +# :!~ Restorer #, c-format msgid "Newval = \"%s\"" -msgstr "Íîâ.çí. = \"%s\"" +msgstr "íîâîå çíà÷åíèå = \"%s\"" +# #Restorer: êîìàíäû `:debug` +# :!~ Restorer #, c-format msgid "line %ld: %s" -msgstr "ñòðîêà %ld: %s" +msgstr "ñòðîêà %ld, êîìàíäà %s" +# #Restorer: êîìàíäû `:debug` +# :!~ Restorer #, c-format msgid "cmd: %s" -msgstr "êîìàíäà: %s" +msgstr "êîìàíäà %s" +# :!~ Restorer msgid "frame is zero" -msgstr "íóëåâîé ôðåéì" +msgstr "Ýòî íà÷àëî ñòåêà âûçîâîâ. Êàäð ñòåêà 0" +# :!~ Restorer #, c-format msgid "frame at highest level: %d" -msgstr "ìàêñèìàëüíûé ôðåéì: %d" +msgstr "Ýòî âåðøèíà ñòåêà âûçîâîâ. Êàäð ñòåêà %d" +# :!~ Restorer #, c-format msgid "Breakpoint in \"%s%s\" line %ld" -msgstr "Òî÷êà îñòàíîâà â \"%s%s\" ñòð. %ld" +msgstr "Òî÷êà îñòàíîâà â \"%s%s\", ñòðîêà %ld" +# #Restorer: êîìàíäû `:breaklist` +# :!~ Restorer msgid "No breakpoints defined" msgstr "Òî÷êè îñòàíîâà íå îïðåäåëåíû" +# #Restorer: êîìàíäû `:breaklist` +# #Restorer: %3d - íîìåð òî÷êè îñòàíîâà; %s çàìåíÿåòñÿ íà «func» èëè «file»; %s +# #Restorer: %s çàìåíÿåòñÿ íà íàèìåíîâàíèå ôóíêöèè èëè áóôåðà, ñîîòâåòñòâåííî; +# #Restorer: %ld - íîìåð ñòðîêè +# :!~ Restorer #, c-format msgid "%3d %s %s line %ld" -msgstr "%3d %s %s ñòð. %ld" +msgstr "%3d %s %s ñòðîêà %ld" +# #Restorer: %3d - íîìåð òî÷êè îñòàíîâà; %s çàìåíÿåòñÿ íà âûðàæåíèå, ïåðåìåííóþ... +# :!~ Restorer #, c-format msgid "%3d expr %s" -msgstr "%3d âûð. %s" +msgstr "%3d âûðàæåíèå %s" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "extend() argument" -msgstr "ïàðàìåòðà extend()" +msgstr "àðãóìåíòà ôóíêöèè extend()" +# #Restorer: 'verbose'>0 +# :!~ Restorer #, c-format msgid "Not enough memory to use internal diff for buffer \"%s\"" -msgstr "Íåäîñòàòî÷íî ïàìÿòè äëÿ âñòðîåííîãî diff äëÿ áóôåðà \"%s\"" +msgstr "" +"Âñòðîåííîìó ìåõàíèçìó ñðàâíåíèÿ íåäîñòàòî÷íî ïàìÿòè íà ñ÷èòûâàíèå áóôåðà \"%s\"" +# #Restorer: âûâîäèòñÿ â çàãîëîâêå îêíà âûáîðà ôàéëà +# :!~ Restorer msgid "Patch file" -msgstr "Ôàéë-çàïëàòêà" +msgstr "Ôàéë ñ èñïðàâëåíèÿìè" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Custom" msgstr "×àñòíàÿ îáëàñòü" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Latin supplement" msgstr "Äîïîëíåíèå ê ëàòèíèöå" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Greek and Coptic" msgstr "Ãðå÷åñêîå è êîïòñêîå ïèñüìî" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Cyrillic" msgstr "Êèðèëëèöà" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Hebrew" msgstr "Åâðåéñêîå ïèñüìî" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Arabic" msgstr "Àðàáñêîå ïèñüìî" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Latin extended" msgstr "Ðàñøèðåííàÿ ëàòèíèöà" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Greek extended" msgstr "Ðàñøèðåííîå ãðå÷åñêîå ïèñüìî" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Punctuation" msgstr "Îñíîâíàÿ ïóíêòóàöèÿ" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Super- and subscripts" msgstr "Íàäñòðî÷íûå è ïîäñòðî÷íûå çíàêè" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Currency" -msgstr "Çíàêè âàëþò" +msgstr "Ñèìâîëû âàëþò" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Other" -msgstr "Ïðî÷åå" +msgstr "Ïðî÷èå ñèìâîëû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Roman numbers" msgstr "Ðèìñêèå öèôðû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Arrows" msgstr "Ñòðåëêè" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Mathematical operators" msgstr "Ìàòåìàòè÷åñêèå îïåðàòîðû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Technical" -msgstr "Ðàçíûå òåõíè÷åñêèå çíàêè" +msgstr "Ðàçíûå òåõíè÷åñêèå ñèìâîëû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Box drawing" msgstr "Ïñåâäîãðàôèêà" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Block elements" msgstr "Áëî÷íûå ýëåìåíòû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Geometric shapes" msgstr "Ãåîìåòðè÷åñêèå ôèãóðû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Symbols" msgstr "Ðàçíûå ñèìâîëû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "Dingbats" msgstr "Äåêîðàòèâíûå ñèìâîëû" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# :!~ Restorer msgid "CJK symbols and punctuation" msgstr "Êèòàéñêèå, êîðåéñêèå è ÿïîíñêèå ñèìâîëû è ïóíêòóàöèÿ" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Hiragana" msgstr "Õèðàãàíà" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Katakana" msgstr "Êàòàêàíà" +# #Restorer: âûâîäèòñÿ â òàáëèöå ñèìâîëîâ ïî êîìàíäå `:digraphs!` +# ~!: earlier msgid "Bopomofo" -msgstr "׿óèíü ôóõàî (áîïîìîôî)" +msgstr "׿óèíü (áîïîìîôî)" +# :!~ Restorer msgid "Not enough memory to set references, garbage collection aborted!" -msgstr "Íåäîñòàòî÷íî ïàìÿòè äëÿ óñòàíîâêè ññûëîê — ñáîðêà ìóñîðà ïðåêðàùåíà!" +msgstr "Ñáîðêà ìóñîðà ïðåðâàíà! Íåäîñòàòî÷íî ïàìÿòè äëÿ óñòàíîâêè ññûëîê" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>0 +# :!~ Restorer msgid "" "\n" "\tLast set from " msgstr "" "\n" -"\tÏîñëåäíèé ðàç óñòàíîâëåíî íà " +"\tÇíà÷åíèå áûëî èçìåíåíî â " +# #Restorer: èñïîëüçóåòñÿ â ôóíêöèè confirm() åñëè íå çàäàíû àðãóìåíò buttons +# #Restorer: èñïîëüçóåòñÿ êàê êíîïêà ïî óìîë÷àíèþ â îêíàõ ñîîáùåíèé ÃÈÏ +# :!~ Restorer msgid "&Ok" -msgstr "&Ok" +msgstr "&OK" +# #Restorer: èñïîëüçóåòñÿ â ôóíêöèè inputdialog() +# :!~ Restorer msgid "" "&OK\n" "&Cancel" msgstr "" "&OK\n" -"&C Îòìåíà" +"Îòìåíà (&C)" +# :!~ Restorer msgid "called inputrestore() more often than inputsave()" -msgstr "Ôóíêöèÿ inputrestore() âûçûâàåòñÿ ÷àùå, ÷åì ôóíêöèÿ inputsave()" +msgstr "" +"Êîëè÷åñòâî âûçîâîâ ôóíêöèè inputrestore() ïðåâûøàåò âûçîâû ôóíêöèè inputsave()" +# #Restorer: íàïðèìåð, êîìàíäà `:ascii` è `ga` +# #Restorer: åñëè ïîäêëþ÷åí êîìïîíåíò +digraphs è äëÿ ñèìâîëà åñòü äèãðàô +# :!~ Restorer #, c-format msgid "<%s>%s%s %d, Hex %02x, Oct %03o, Digr %s" -msgstr "<%s>%s%s %d, Øåñ %02x, Âîñ %03o, Äèãð %s" +msgstr "" +"<%s>%s%s äåñÿòè÷íîå %d; øåñòíàäöàòåðè÷íîå %02x; âîñüìåðè÷íîå %03o; äèãðàô %s" +# #Restorer: íàïðèìåð, êîìàíäà `:ascii` è `ga` +# :!~ Restorer #, c-format msgid "<%s>%s%s %d, Hex %02x, Octal %03o" -msgstr "<%s>%s%s %d, Øåñ %02x, Âîñ %03o" +msgstr "<%s>%s%s äåñÿòè÷íîå %d; øåñòíàäöàòåðè÷íîå %02x; âîñüìåðè÷íîå %03o" +# #Restorer: íàïðèìåð, êîìàíäà `:ascii` è `ga` +# #Restorer: åñëè ïîäêëþ÷åí êîìïîíåíò +digraphs è äëÿ ñèìâîëà åñòü äèãðàô +# :!~ Restorer #, c-format msgid "> %d, Hex %04x, Oct %o, Digr %s" -msgstr "> %d, Øåñ %04x, Âîñ %o, Äèãð %s" +msgstr "> äåñÿòè÷íîå %d; øåñòíàäöàòåðè÷íîå %04x; âîñüìåðè÷íîå %o; äèãðàô %s" +# #Restorer: íàïðèìåð, êîìàíäà `:ascii` è `ga` +# #Restorer: åñëè ïîäêëþ÷åí êîìïîíåíò +digraphs è äëÿ ñèìâîëà åñòü äèãðàô +# :!~ Restorer #, c-format msgid "> %d, Hex %08x, Oct %o, Digr %s" -msgstr "> %d, Øåñ %08x, Âîñ %o, Äèãð %s" +msgstr "> äåñÿòè÷íîå %d; øåñòíàäöàòåðè÷íîå %08x; âîñüìåðè÷íîå %o; äèãðàô %s" +# #Restorer: íàïðèìåð, êîìàíäà `:ascii` è `ga` +# :!~ Restorer #, c-format msgid "> %d, Hex %04x, Octal %o" -msgstr "> %d, Øåñ %04x, Âîñ %o" +msgstr "> äåñÿòè÷íîå %d; øåñòíàäöàòåðè÷íîå %04x; âîñüìåðè÷íîå %o" +# #Restorer: íàïðèìåð, êîìàíäà `:ascii` è `ga` +# :!~ Restorer #, c-format msgid "> %d, Hex %08x, Octal %o" -msgstr "> %d, Øåñò %08x, Âîñì %o" +msgstr "> äåñÿòè÷íîå %d; øåñòíàäöàòåðè÷íîå %08x; âîñüìåðè÷íîå %o" +# :!~ Restorer #, c-format msgid "%ld line moved" msgid_plural "%ld lines moved" -msgstr[0] "Ïåðåìåùåíà %ld ñòðîêà" -msgstr[1] "Ïåðåìåùåíî %ld ñòðîêè" -msgstr[2] "Ïåðåìåùåíî %ld ñòðîê" +msgstr[0] "%ld ñòðîêà ïåðåìåùåíà" +msgstr[1] "%ld ñòðîêè ïåðåìåùåíî" +msgstr[2] "%ld ñòðîê ïåðåìåùåíî" +# :!~ Restorer #, c-format msgid "%ld lines filtered" -msgstr "Ïðîïóùåíî ÷åðåç ôèëüòð ñòðîê: %ld" +msgstr "Ñòðîê, îòïðàâëåííûõ íà îáðàáîòêó âíåøíåé ïðîãðàììå: %ld" +# ~!: earlier msgid "[No write since last change]\n" -msgstr "[Èçìåíåíèÿ íå ñîõðàíåíû]\n" +msgstr "[èçìåíåíèÿ íå ñîõðàíåíû]\n" +# #Restorer: çàãîëîâîê îêíà +# ~!: earlier msgid "Save As" msgstr "Ñîõðàíèòü êàê" +# #Restorer: âûâîäèòñÿ â äèàëîãîâîì îêíå ïðè ïåðåçàïèñè ñóùåñòâóþùåãî ôàéëà +# #Restorer: ñì. E140 +# :!~ Restorer msgid "Write partial file?" -msgstr "Çàïèñàòü ôàéë ÷àñòè÷íî?" +msgstr "Ñîõðàíèòü òîëüêî ÷àñòü ôàéëà?" +# #Restorer: âûâîäèòñÿ â äèàëîãîâîì îêíå ïðè ïåðåçàïèñè ñóùåñòâóþùåãî ôàéëà +# :!~ Restorer #, c-format msgid "Overwrite existing file \"%s\"?" -msgstr "Ïåðåçàïèñàòü ñóùåñòâóþùèé ôàéë \"%s\"?" +msgstr "Çàìåíèòü ñóùåñòâóþùèé ôàéë \"%s\"?" +# :!~ Restorer #, c-format msgid "Swap file \"%s\" exists, overwrite anyway?" -msgstr "Ñâîï-ôàéë \"%s\" ñóùåñòâóåò, ïåðåçàïèñàòü?" +msgstr "Çàìåíèòü ñóùåñòâóþùèé ôàéë ïîäêà÷êè \"%s\"?" +# :!~ Restorer #, c-format msgid "" "'readonly' option is set for \"%s\".\n" "Do you wish to write anyway?" msgstr "" -"Äëÿ \"%s\" âêëþ÷åíà îïöèÿ 'readonly'.\n" -"Çàïèñàòü?" +"Äëÿ áóôåðà \"%s\" óñòàíîâëåí ïàðàìåòð 'readonly'.\n" +"Ñîõðàíèòü èçìåíåíèÿ?" +# :!~ Restorer #, c-format msgid "" "File permissions of \"%s\" are read-only.\n" "It may still be possible to write it.\n" "Do you wish to try?" msgstr "" -"Ôàéë \"%s\" èìååò ðåæèì äîñòóïà òîëüêî äëÿ ÷òåíèÿ.\n" -"Íî, âîçìîæíî, ôàéë óäàñòñÿ çàïèñàòü.\n" -"Õîòèòå ïîïðîáîâàòü?" +"Äëÿ ôàéëà \"%s\" óñòàíîâëåíû ïðàâà äîñòóïà òîëüêî äëÿ ÷òåíèÿ.\n" +"Âîçìîæíî, ÷òî óäàñòñÿ âûïîëíèòü çàïèñü â ôàéë.\n" +"Ñîõðàíèòü èçìåíåíèÿ?" +# #Restorer: çàãîëîâîê îêíà îòêðûòèÿ ôàéëà +# :!~ Restorer msgid "Edit File" -msgstr "Ðåäàêòèðîâàíèå ôàéëà" +msgstr "Îòêðûòü ôàéë" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïðè èñïîëíåíèè êîìàíäû `:substitute` +# :!~ Restorer #, c-format msgid "replace with %s (y/n/a/q/l/^E/^Y)?" -msgstr "çàìåíèòü íà %s? (y/n/a/q/l/^E/^Y)" +msgstr "çàìåíèòü ñëîâîì %s ? (y; n; a; q; l; CTRL+E; CTRL+Y)" +# :!~ Restorer msgid "(Interrupted) " -msgstr "(Ïðåðâàíî)" +msgstr "(ïðåðâàíî) " +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' <= %ld +# :!~ Restorer #, c-format msgid "%ld match on %ld line" msgid_plural "%ld matches on %ld line" -msgstr[0] "%ld ñîâïàäåíèå íà %ld ñòðîêå" -msgstr[1] "%ld ñîâïàäåíèÿ íà %ld ñòðîêå" -msgstr[2] "%ld ñîâïàäåíèé íà %ld ñòðîêå" +msgstr[0] "Íàéäåíî %ld ñîâïàäåíèå â %ld ñòðîêå" +msgstr[1] "Íàéäåíî %ld ñîâïàäåíèÿ â %ld ñòðîêå" +msgstr[2] "Íàéäåíî %ld ñîâïàäåíèé â %ld ñòðîêå" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' <= %ld +# :!~ Restorer #, c-format msgid "%ld substitution on %ld line" msgid_plural "%ld substitutions on %ld line" -msgstr[0] "%ld çàìåíà íà %ld ñòðîêå" -msgstr[1] "%ld çàìåíû íà %ld ñòðîêå" -msgstr[2] "%ld çàìåí íà %ld ñòðîêå" +msgstr[0] "Âûïîëíåíà %ld çàìåíà â %ld ñòðîêå" +msgstr[1] "Âûïîëíåíî %ld çàìåíû â %ld ñòðîêå" +msgstr[2] "Âûïîëíåíî %ld çàìåí â %ld ñòðîêå" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' <= %ld +# :!~ Restorer #, c-format msgid "%ld match on %ld lines" msgid_plural "%ld matches on %ld lines" -msgstr[0] "%ld ñîâïàäåíèå íà %ld ñòðîêàõ" -msgstr[1] "%ld ñîâïàäåíèÿ íà %ld ñòðîêàõ" -msgstr[2] "%ld ñîâïàäåíèé íà %ld ñòðîêàõ" +msgstr[0] "Íàéäåíî %ld ñîâïàäåíèå â %ld ñòðîêàõ" +msgstr[1] "Íàéäåíî %ld ñîâïàäåíèÿ â %ld ñòðîêàõ" +msgstr[2] "Íàéäåíî %ld ñîâïàäåíèé â %ld ñòðîêàõ" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' <= %ld +# :!~ Restorer #, c-format msgid "%ld substitution on %ld lines" msgid_plural "%ld substitutions on %ld lines" -msgstr[0] "%ld çàìåíà íà %ld ñòðîêàõ" -msgstr[1] "%ld çàìåíû íà %ld ñòðîêàõ" -msgstr[2] "%ld çàìåí íà %ld ñòðîêàõ" +msgstr[0] "Âûïîëíåíà %ld çàìåíà â %ld ñòðîêàõ" +msgstr[1] "Âûïîëíåíî %ld çàìåíû â %ld ñòðîêàõ" +msgstr[2] "Âûïîëíåíî %ld çàìåí â %ld ñòðîêàõ" +# :!~ Restorer #, c-format msgid "Pattern found in every line: %s" -msgstr "Ñîîòâåòñòâèå øàáëîíó íàéäåíî â êàæäîé ñòðîêå: %s" +msgstr "Âî âñåõ ñòðîêàõ íàéäåíû ñîâïàäåíèÿ ñ îáðàçöîì %s" +# :!~ Restorer #, c-format msgid "Pattern not found: %s" -msgstr "Øàáëîí íå íàéäåí: %s" +msgstr "Íå íàéäåíû ñîâïàäåíèÿ ñ îáðàçöîì %s" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:oldfiles` è `echo v:oldfiles` +# :!~ Restorer msgid "No old files" -msgstr "Íåò ñòàðûõ ôàéëîâ" +msgstr "Ñïèñîê ðàíåå ðåäàêòèðóåìûõ ôàéëîâ ïóñò" +# #Restorer: âûâîäèòñÿ ïðè îáðûâå ðåäàêòèðîâàíèÿ, åñëè íåñîõðàí¸ííûå èçìåíåíèÿ +# ~!: earlier #, c-format msgid "Save changes to \"%s\"?" msgstr "Ñîõðàíèòü èçìåíåíèÿ â \"%s\"?" +# :!~ Restorer msgid "Warning: Entered other buffer unexpectedly (check autocommands)" msgstr "" -"Ïðåäóïðåæäåíèå: Íåîæèäàííûé ïåðåõîä â äðóãîé áóôåð (ïðîâåðüòå àâòîêîìàíäû)" +"Âíèìàíèå! Íåïðåäâèäåííûé ïåðåõîä â äðóãîé áóôåð (ïðîâåðüòå äåéñòâèÿ àâòîêîìàíä)" +# :!~ Restorer #, c-format msgid "W20: Required python version 2.x not supported, ignoring file: %s" msgstr "" -"W20: Íå ïîääåðæèâàåòñÿ python òðåáóåìîé âåðñèè 2.x, ôàéë ïðîèãíîðèðîâàí: %s" +"W20: Âåðñèè 2.x ÿçûêà Python íå ïîääåðæèâàþòñÿ. Îòìåíåíà îáðàáîòêà ôàéëà %s" +# :!~ Restorer #, c-format msgid "W21: Required python version 3.x not supported, ignoring file: %s" msgstr "" -"W21: Íå ïîääåðæèâàåòñÿ python òðåáóåìîé âåðñèè 3.x, ôàéë ïðîèãíîðèðîâàí: %s" +"W21: Âåðñèè 3.x ÿçûêà Python íå ïîääåðæèâàþòñÿ. Îòìåíåíà îáðàáîòêà ôàéëà %s" +# :!~ Restorer msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." -msgstr "Ïåðåõîä â ðåæèì Ex. Äëÿ ïåðåõîäà â Îáû÷íûé ðåæèì íàáåðèòå \"visual\"." +msgstr "" +"Ïåðåêëþ÷åíèå â Ex-ðåæèì. ×òîáû ïåðåêëþ÷èòü â ðåæèì êîìàíä, íàáåðèòå \"visual\"" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>=9 +# ~!: earlier #, c-format msgid "Executing: %s" -msgstr "Âûïîëíåíèå: %s" +msgstr "Âûïîëíåíèå %s" +# #Restorer: âûâîäèòñÿ â ðåæèìå îòëàäêè +# :!~ Restorer msgid "End of sourced file" -msgstr "Êîíåö ñ÷èòàííîãî ôàéëà" +msgstr "Äîñòèãíóòî îêîí÷àíèå îáðàáàòûâàåìîãî êîìàíäíîãî ôàéëà" +# #Restorer: âûâîäèòñÿ â ðåæèìå îòëàäêè +# :!~ Restorer msgid "End of function" -msgstr "Êîíåö ôóíêöèè" +msgstr "Äîñòèãíóòî îêîí÷àíèå îáðàáàòûâàåìîé ôóíêöèè" +# :!~ Restorer msgid "Backwards range given, OK to swap" -msgstr "Çàäàí îáðàòíûé äèàïàçîí, ìåíÿåì ãðàíèöû ìåñòàìè" - -msgid "" -"INTERNAL: Cannot use EX_DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX" msgstr "" -"ÂÍÓÒÐÅÍÍÅÅ: Íåâîçìîæíî èñïîëüçîâàòü EX_DFLALL ñ ADDR_NONE, ADDR_UNSIGNED èëè " -"ADDR_QUICKFIX" +"Äèàïàçîí óêàçàí â îáðàòíîé ïîñëåäîâàòåëüíîñòè. Ïîìåíÿòü çíà÷åíèÿ ìåñòàìè?" +# :!~ Restorer #, c-format msgid "%d more file to edit. Quit anyway?" msgid_plural "%d more files to edit. Quit anyway?" -msgstr[0] "Íå îòðåäàêòèðîâàí %d ôàéë. Âûéòè?" -msgstr[1] "Íå îòðåäàêòèðîâàíû %d ôàéëà. Âûéòè?" -msgstr[2] "Íå îòðåäàêòèðîâàíî %d ôàéëîâ. Âûéòè?" +msgstr[0] "Îñòàëñÿ íå îòðåäàêòèðîâàííûì %d ôàéë. Çàâåðøèòü ðàáîòó?" +msgstr[1] "Îñòàëèñü íå îòðåäàêòèðîâàííûìè %d ôàéëà. Çàâåðøèòü ðàáîòó?" +msgstr[2] "Îñòàëèñü íå îòðåäàêòèðîâàííûìè %d ôàéëîâ. Çàâåðøèòü ðàáîòó?" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:colorscheme`, åñëè îòêëþ÷åí êîìïîíåíò +eval +# ~!: earlier msgid "unknown" -msgstr "íå èçâåñòíî" +msgstr "íåèçâåñòíî" +# :!~ Restorer msgid "Greetings, Vim user!" -msgstr "Ïðèâåòñòâóåì âàñ, ïîëüçîâàòåëü Vim!" +msgstr "Ïðèâåòñòâóåì Âàñ, ïîëüçîâàòåëü ïðîãðàììû Vim!" +# :!~ Restorer msgid "Already only one tab page" -msgstr "Íà ýêðàíå âñåãî îäíà âêëàäêà" +msgstr "Êîìàíäà íå âûïîëíåíà. Îòêðûòà òîëüêî îäíà âêëàäêà" +# #Restorer: çàãîëîâîê ìîäàëüíîãî îêíà îòêðûòèÿ ôàéëà +# :!~ Restorer msgid "Edit File in new tab page" -msgstr "Ðåäàêòèðîâàòü ôàéë â íîâîé âêëàäêå" +msgstr "Îòêðûòü ôàéë â íîâîé âêëàäêå" +# #Restorer: çàãîëîâîê ìîäàëüíîãî îêíà îòêðûòèÿ ôàéëà +# :!~ Restorer msgid "Edit File in new window" -msgstr "Ðåäàêòèðîâàòü ôàéë â íîâîì îêíå" +msgstr "Îòêðûòü ôàéë â íîâîì îêíå" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:tabs` +# ~!: earlier #, c-format msgid "Tab page %d" msgstr "Âêëàäêà %d" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:swapname` +# :!~ Restorer msgid "No swap file" -msgstr "Áåç ñâîï-ôàéëà" +msgstr "Íåò ôàéëà ïîäêà÷êè" +# #Restorer: çàãîëîâîê îêíà, âûâîäèòñÿ ïî êîìàíäå `:browse read` +# :!~ Restorer msgid "Append File" -msgstr "Äîáàâèòü ôàéë" +msgstr "Âñòàâèòü ôàéë" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:winpos` +# :!~ Restorer #, c-format msgid "Window position: X %d, Y %d" -msgstr "Ïîëîæåíèå îêíà: X %d, Y %d" +msgstr "" +"Êîîðäèíàòû âåðõíåãî ëåâîãî óãëà îêíà ïðîãðàììû ïî îñè X: %d; ïî îñè Y: %d" +# #Restorer: çàãîëîâîê îêíà, âûâîäèòñÿ ïî êîìàíäå `:browse redir >` +# :!~ Restorer msgid "Save Redirection" -msgstr "Ïåðåíàïðàâëåíèå çàïèñè" +msgstr "Ñîõðàíèòü ôàéë ñ ñîîáùåíèÿìè ïðîãðàììû" +# #Restorer: â äèàëîãå ïðè îáðûâå ðåäàêòèðîâàíèÿ, åñëè áóôåð íå ñâÿçàí ñ ôàéëîì +# :!~ Restorer msgid "Untitled" -msgstr "Áåç èìåíè" +msgstr "áåçûìÿííûé" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=13 +# ~!: earlier #, c-format msgid "Exception thrown: %s" -msgstr "Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ: %s" +msgstr "Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ %s" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=13 +# ~!: earlier #, c-format msgid "Exception finished: %s" -msgstr "Çàâåðøåíà îáðàáîòêà èñêëþ÷èòåëüíîé ñèòóàöèè: %s" +msgstr "Çàâåðøåíà îáðàáîòêà èñêëþ÷èòåëüíîé ñèòóàöèè %s" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=13 +# ~!: earlier #, c-format msgid "Exception discarded: %s" -msgstr "Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ ïðîèãíîðèðîâàíà: %s" +msgstr "Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ ïðîèãíîðèðîâàíà %s" +# #Restorer: %s --- îïðåäåëåíèå «áðîøåííîãî» èñêëþ÷åíèÿ +# ~!: earlier #, c-format msgid "%s, line %ld" msgstr "%s, ñòðîêà %ld" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=13 +# ~!: earlier #, c-format msgid "Exception caught: %s" -msgstr "Îáðàáîòêà èñêëþ÷èòåëüíîé ñèòóàöèè: %s" +msgstr "Îáðàáîòêà èñêëþ÷èòåëüíîé ñèòóàöèè %s" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=14 +# #Restorer: ñîñòàâíîå ñîîáùåíèå. %s çàìåùàåòñÿ íà :continnue, :break, :finish +# #Restorer: èëè Error and interrupt, èëè Interrupt +# :!~ Restorer #, c-format msgid "%s made pending" msgstr "%s ïðèîñòàíîâëåíî" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=14 +# #Restorer: ñîñòàâíîå ñîîáùåíèå. %s çàìåùàåòñÿ íà :continnue, :break, :finish +# #Restorer: èëè Error and interrupt, èëè Interrupt +# ~!: earlier #, c-format msgid "%s resumed" msgstr "%s âîçîáíîâëåíî" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=14 +# #Restorer: ñîñòàâíîå ñîîáùåíèå. %s çàìåùàåòñÿ íà :continnue, :break, :finish +# #Restorer: èëè Error and interrupt, èëè Interrupt +# ~!: earlier #, c-format msgid "%s discarded" msgstr "%s ïðîïóùåíî" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=14 +# #Restorer: ñîñòàâíîå ñîîáùåíèå. +# #Restorer: ê ñîîáùåíèþ äîïèñûâàåòñÿ : è çíà÷åíèå value èç ñòðóêòóðû except_T +# ~!: earlier msgid "Exception" msgstr "Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=14 +# #Restorer: ñîñòàâíîå ñîîáùåíèå. +# ~!: earlier msgid "Error and interrupt" msgstr "Îøèáêà è ïðåðûâàíèå" +# #Restorer: çàãîëîâîê îêíà â ÃÓÈ è ïîäñòàâëÿåìûé òåêñò â ñîîáùåíèå ex_eval.c +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=14 äëÿ ex_eval.c +# #Restorer: ñîñòàâíîå ñîîáùåíèå â ex_eval.c. +# ~!: earlier msgid "Error" msgstr "Îøèáêà" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=14 +# #Restorer: ñîñòàâíîå ñîîáùåíèå. +# ~!: earlier msgid "Interrupt" msgstr "Ïðåðûâàíèå" +# :!~ Restorer msgid "[Command Line]" -msgstr "[Êîìàíäíàÿ ñòðîêà]" +msgstr "[êîìàíäíàÿ ñòðîêà]" +# #Restorer: â UNIX-ïîäîáíûõ ñèñòåìàõ +# #Restorer: è åù¸ îøèáêà E502: +# ~!: earlier msgid "is a directory" msgstr "ÿâëÿåòñÿ êàòàëîãîì" +# :!~ Restorer msgid "Illegal file name" -msgstr "Íåäîïóñòèìîå èìÿ ôàéëà" +msgstr "Íåäîïóñòèìûå ñèìâîëû èëè ïðåâûøåíà äëèíà íàèìåíîâàíèÿ ôàéëà" +# #Restorer: â UNIX-ïîäîáíûõ ñèñòåìàõ +# ~!: earlier msgid "is not a file" msgstr "íå ÿâëÿåòñÿ ôàéëîì" +# #Restorer: â MS Windows ñèñòåìàõ +# :!~ Restorer msgid "is a device (disabled with 'opendevice' option)" -msgstr "ÿâëÿåòñÿ óñòðîéñòâîì (îòêëþ÷åíî îïöèåé 'opendevice')" +msgstr "" +"ÿâëÿåòñÿ óñòðîéñòâîì (÷òåíèå è çàïèñü îòêëþ÷åíû ÷åðåç ïàðàìåòð 'opendevice')" +# ~!: earlier msgid "[New DIRECTORY]" -msgstr "[Íîâûé ÊÀÒÀËÎÃ]" +msgstr "[íîâûé êàòàëîã]" +# ~!: earlier msgid "[File too big]" -msgstr "[Ôàéë ñëèøêîì áîëüøîé]" +msgstr "[ôàéë ñëèøêîì áîëüøîé]" +# ~!: earlier msgid "[Permission Denied]" -msgstr "[Äîñòóï çàïðåù¸í]" +msgstr "[äîñòóï çàïðåù¸í]" +# :!~ Restorer msgid "Vim: Reading from stdin...\n" -msgstr "Vim: ×òåíèå èç ñòàíäàðòíîãî ïîòîêà ââîäà stdin...\n" +msgstr "Ïðîãðàììà Vim. Ñ÷èòûâàíèå èç ñòàíäàðòíîãî ïîòîêà ââîäà...\n" +# :!~ Restorer msgid "Reading from stdin..." -msgstr "×òåíèå èç ñòàíäàðòíîãî ïîòîêà ââîäà stdin..." +msgstr "Ñ÷èòûâàíèå èç ñòàíäàðòíîãî ïîòîêà ââîäà..." +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[fifo]" -msgstr "[fifo]" +msgstr "[èìåíîâàííûé êàíàë]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[socket]" -msgstr "[ñîêåò]" +msgstr "[ëîêàëüíîå ñîåäèíåíèå]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[character special]" -msgstr "[ñïåöèàëüíûé ñèìâîëüíûé]" +msgstr "[ñïåöèàëüíûé ôàéë óñòðîéñòâà]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[CR missing]" -msgstr "[ïðîïóùåíû ñèìâîëû CR]" +msgstr "[îòñóòñòâóåò ñèìâîë âîçâðàòà êàðåòêè]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[long lines split]" -msgstr "[äëèííûå ñòðîêè ðàçáèòû]" +msgstr "[ðàçáèåíèå ñòðîê]" +# :!~ Restorer #, c-format msgid "[CONVERSION ERROR in line %ld]" -msgstr "[ÎØÈÁÊÀ ÏÐÅÎÁÐÀÇÎÂÀÍÈß â ñòðîêå %ld]" +msgstr "[ÎØÈÁÊÀ ÈÇÌÅÍÅÍÈß ÊÎÄÈÐÎÂÊÈ â ñòðîêå %ld]" +# ~!: earlier #, c-format msgid "[ILLEGAL BYTE in line %ld]" msgstr "[ÍÅÄÎÏÓÑÒÈÌÛÉ ÁÀÉÒ â ñòðîêå %ld]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[READ ERRORS]" -msgstr "[ÎØÈÁÊÈ ×ÒÅÍÈß]" +msgstr "[ÎØÈÁÊÈ Ñ×ÈÒÛÂÀÍÈß]" +# :!~ Restorer msgid "Can't find temp file for conversion" -msgstr "Âðåìåííûé ôàéë äëÿ ïðåîáðàçîâàíèÿ íå íàéäåí" +msgstr "" +"Îòñóòñòâóåò âðåìåííûé ôàéë äëÿ âûïîëíåíèÿ îïåðàöèè èçìåíåíèÿ êîäèðîâêè òåêñòà" +# :!~ Restorer msgid "Conversion with 'charconvert' failed" -msgstr "Ïðåîáðàçîâàíèå ñ ïîìîùüþ 'charconvert' íå âûïîëíåíî" +msgstr "" +"Íå óäàëîñü èçìåíèòü êîäèðîâêó òåêñòà, èñïîëüçóÿ çíà÷åíèå ïàðàìåòðà " +"'charconvert'" +# :!~ Restorer msgid "can't read output of 'charconvert'" -msgstr "íåâîçìîæíî ïðî÷èòàòü âûâîä 'charconvert'" +msgstr "Íå óäàëîñü ñ÷èòàòü ðåçóëüòàò èçìåíåíèÿ êîäèðîâêè òåêñòà" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[dos]" msgstr "[dos]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[dos format]" msgstr "[ôîðìàò dos]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[mac]" msgstr "[mac]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[mac format]" msgstr "[ôîðìàò mac]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[unix]" msgstr "[unix]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier msgid "[unix format]" msgstr "[ôîðìàò unix]" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# ~!: earlier #, c-format msgid "%ld line, " msgid_plural "%ld lines, " @@ -759,89 +1213,117 @@ msgstr[0] "%ld msgstr[1] "%ld ñòðîêè, " msgstr[2] "%ld ñòðîê, " +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer #, c-format msgid "%lld byte" msgid_plural "%lld bytes" msgstr[0] "%lld áàéò" msgstr[1] "%lld áàéòà" -msgstr[2] "%lld áàéòîâ" +msgstr[2] "%lld áàéò" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[noeol]" -msgstr "[noeol]" +msgstr "[íåò ñçñ]" +# #Restorer: äîïèñûâàåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè îïåðàöèÿõ ñ ôàéëîì +# :!~ Restorer msgid "[Incomplete last line]" -msgstr "[Íåçàâåðø¸ííàÿ ïîñëåäíÿÿ ñòðîêà]" +msgstr "[íåò ñèìâîëà çàâåðøåíèÿ ñòðîêè]" +# :!~ Restorer #, c-format msgid "" -"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as " -"well" -msgstr "" -"W12: Ïðåäóïðåæäåíèå: ôàéë \"%s\" è áóôåð Vim áûëè èçìåíåíû íåçàâèñèìî äðóã " -"îò äðóãà" +"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as well" +msgstr "W12: Âíèìàíèå! Íå ñâÿçàííûå èçìåíåíèÿ ñîäåðæèìîãî áóôåðà è ôàéëà \"%s\"" +# :!~ Restorer msgid "See \":help W12\" for more info." -msgstr "Ñì. \":help W12\" äëÿ äîïîëíèòåëüíîé èíôîðìàöèè." +msgstr "×òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ, íàáåðèòå \":help W12\"" +# :!~ Restorer #, c-format msgid "W11: Warning: File \"%s\" has changed since editing started" msgstr "" -"W11: Ïðåäóïðåæäåíèå: ôàéë \"%s\" áûë èçìåí¸í ïîñëå íà÷àëà ðåäàêòèðîâàíèÿ" +"W11: Âíèìàíèå! Ïîñëå ñ÷èòûâàíèÿ â áóôåð, ïðîèçîøëî èçìåíåíèå ôàéëà \"%s\"" +# :!~ Restorer msgid "See \":help W11\" for more info." -msgstr "Ñì. \":help W11\" äëÿ äîïîëíèòåëüíîé èíôîðìàöèè." +msgstr "×òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ, íàáåðèòå \":help W11\"" +# :!~ Restorer #, c-format msgid "W16: Warning: Mode of file \"%s\" has changed since editing started" msgstr "" -"W16: Ïðåäóïðåæäåíèå: ðåæèì äîñòóïà ê ôàéëó \"%s\" áûë èçìåí¸í ïîñëå " -"íà÷àëà ðåäàêòèðîâàíèÿ" +"W16: Âíèìàíèå! Ïîñëå ñ÷èòûâàíèÿ â áóôåð, èçìåíåíû ïðàâà äîñòóïà ê ôàéëó \"%s\"" +# :!~ Restorer msgid "See \":help W16\" for more info." -msgstr "Ñì. \":help W16\" äëÿ äîïîëíèòåëüíîé èíôîðìàöèè." +msgstr "×òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ, íàáåðèòå \":help W16\"" +# :!~ Restorer #, c-format msgid "W13: Warning: File \"%s\" has been created after editing started" -msgstr "" -"W13: Ïðåäóïðåæäåíèå: ôàéë \"%s\" áûë ñîçäàí ïîñëå íà÷àëà ðåäàêòèðîâàíèÿ" +msgstr "W13: Âíèìàíèå! Ïðè ðåäàêòèðîâàíèè íîâîãî áóôåðà îáíàðóæåí ôàéë \"%s\"" +# #Restorer: çàãîëîâîê ìîäàëüíîãî îêíà +# :!~ Restorer msgid "Warning" -msgstr "Ïðåäóïðåæäåíèå" +msgstr "Âíèìàíèå" +# #Restorer: íàèìåíîâàíèå êíîïîê â îêíå äèàëîãà î âíåøíèõ èçìåíåíèÿõ ôàéëà +# :!~ Restorer msgid "" "&OK\n" "&Load File\n" "Load File &and Options" msgstr "" -"&OK\n" -"&L Çàãðóçèòü ôàéë\n" -"&a Çàãðóçèòü ôàéë è îïöèè" +"Ïðîâåðèòü (&O)\n" +"Ñ÷èòàòü ôàéë (&L)\n" +"Ñ÷èòàòü è ïðîâåðèòü (&A)" +# :!~ Restorer msgid "" -msgstr "<ïóñòî>" +msgstr "<íå óêàçàí>" +# #Restorer: äîïèñûâàåòñÿ ê ñîîáùåíèþ «E475: Invalid argument: %s» +# :!~ Restorer msgid "writefile() first argument must be a List or a Blob" -msgstr "writefile() ïåðâûé ïàðàìåòð äîëæåí áûòü ñïèñêîì èëè áëîáîì" +msgstr "â ôóíêöèè writefile(). Òèï àðãóìåíòà íîìåð 1 äîëæåí áûòü List èëè BLOB" +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "Select Directory dialog" -msgstr "Âûáîð êàòàëîãà" +msgstr "Âûáðàòü êàòàëîã" +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "Save File dialog" -msgstr "Ñîõðàíåíèå ôàéëà" +msgstr "Ñîõðàíèòü ôàéë" +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "Open File dialog" -msgstr "Îòêðûòèå ôàéëà" +msgstr "Îòêðûòü ôàéë" +# #Restorer: ïåðåäà¸òñÿ â ñëó÷àå, åñëè íå óäàëîñü íàéòè ôàéëû ïî ìàñêå +# :!~ Restorer msgid "no matches" -msgstr "íåò ñîîòâåòñòâèé" +msgstr "íè÷åãî íå íàéäåíî" +# :!~ Restorer #, c-format msgid "+--%3ld line folded " msgid_plural "+--%3ld lines folded " -msgstr[0] "+--%3ld ñòðîêà â ñêëàäêå " -msgstr[1] "+--%3ld ñòðîêè â ñêëàäêå " -msgstr[2] "+--%3ld ñòðîê â ñêëàäêå " +msgstr[0] "+--%3ld ñòðîêà ñâ¸ðíóòà " +msgstr[1] "+--%3ld ñòðîêè ñâ¸ðíóòî " +msgstr[2] "+--%3ld ñòðîê ñâ¸ðíóòî " +# #Restorer: îòîáðàæàåòñÿ â ñâ¸ðíóòîé ñòðîêå; %s çàìåíÿåòñÿ íà - óêàçûâàþùàÿ +# #Restorer: óðîâåíü âëîæåííîñòè; %3ld íà êîë-âî ñâ¸ðíóòûõ ñòðîê; ïîñëå +# #Restorer: äâîåòî÷èÿ, ïåðâûé íàéäåííûé â ñòðîêàõ íåïðîáåëüíûé òåêñò +# ~!: earlier #, c-format msgid "+-%s%3ld line: " msgid_plural "+-%s%3ld lines: " @@ -849,282 +1331,427 @@ msgstr[0] "+-%s%3ld msgstr[1] "+-%s%3ld ñòðîêè: " msgstr[2] "+-%s%3ld ñòðîê: " +# :!~ Restorer msgid "No match at cursor, finding next" -msgstr "Íåò ñîâïàäåíèÿ ïîä êóðñîðîì, ïîèñê ñëåäóþùåãî" +msgstr "Íå íàéäåíî â òåêóùåé ñòðîêå, ïðîäîëæåíèå ïîèñêà" +# :!~ Restorer msgid "_Save" -msgstr "Ñîõðàíèòü _êàê" +msgstr "_Ñîõðàíèòü" +# :!~ Restorer msgid "_Open" msgstr "_Îòêðûòü" +# ~!: earlier msgid "_Cancel" msgstr "Î_òìåíà" +# :!~ Restorer msgid "_OK" -msgstr "_Äà" +msgstr "Ä_à" +# :!~ Restorer msgid "" "&Yes\n" "&No\n" "&Cancel" msgstr "" -"&Äà\n" -"&Íåò\n" -"Î&òìåíà" +"Äà (&Y)\n" +"Íåò (&N)\n" +"Îòìåíà (&C)" +# #Restorer: íàèìåíîâàíèå êíîïêè â äèàëîãîâîì îêíå +# :!~ Restorer msgid "OK" -msgstr "Äà" +msgstr "OK" +# :!~ Restorer msgid "Yes" msgstr "Äà" +# :!~ Restorer msgid "No" msgstr "Íåò" +# #Restorer: íàèìåíîâàíèå êíîïêè â äèàëîãîâîì îêíå +# ~!: earlier msgid "Cancel" msgstr "Îòìåíà" +# :!~ Restorer msgid "Input _Methods" -msgstr "_Ìåòîäû ââîäà" +msgstr "Ìåòîä _ââîäà" +# #Restorer: çàãîëîâîê îêíà ïîèñêà è çàìåíû ïî êîìàíäå `:promptrepl` +# :!~ Restorer msgid "VIM - Search and Replace..." -msgstr "VIM — Ïîèñê è çàìåíà..." +msgstr "Çàìåíèòü" +# #Restorer: çàãîëîâîê îêíà ïîèñêà ïî êîìàíäå `:promptfind` +# :!~ Restorer msgid "VIM - Search..." -msgstr "VIM — Ïîèñê..." +msgstr "Íàéòè" +# #Restorer: çàãîëîâîê ïîëÿ ïîèñêà â îêíå ïîèñêà è îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "Find what:" -msgstr "×òî íàéòè:" +msgstr "×òî:" +# #Restorer: çàãîëîâîê ïîëÿ çàìåíû â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "Replace with:" -msgstr "Çàìåíèòü íà:" +msgstr "×åì:" +# #Restorer: çàãîëîâîê ïåðåêëþ÷àòåëÿ â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "Match whole word only" -msgstr "Òîëüêî òî÷íûå ñîîòâåòñòâèÿ" +msgstr "Òîëüêî ñëîâî öåëèêîì" +# #Restorer: çàãîëîâîê ïåðåêëþ÷àòåëÿ â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "Match case" -msgstr "Ó÷èòûâàòü ðåãèñòð" +msgstr "Ñ ó÷¸òîì ðåãèñòðà" +# #Restorer: çàãîëîâîê ãðóïïû â îêíå ïîèñêà è çàìåíû +# ~!: earlier msgid "Direction" msgstr "Íàïðàâëåíèå" +# #Restorer: çàãîëîâîê ïåðåêëþ÷àòåëÿ â îêíå ïîèñêà è çàìåíû +# ~!: earlier msgid "Up" msgstr "Ââåðõ" +# #Restorer: çàãîëîâîê ïåðåêëþ÷àòåëÿ â îêíå ïîèñêà è çàìåíû +# ~!: earlier msgid "Down" msgstr "Âíèç" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "Find Next" -msgstr "Íàéòè ñëåäóþùåå" +msgstr "Íàéòè äàëåå" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "Replace" msgstr "Çàìåíèòü" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# ~!: earlier msgid "Replace All" msgstr "Çàìåíèòü âñå" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "_Close" -msgstr "_Çàêðûòü" +msgstr "Î_òìåíà" +# :!~ Restorer msgid "Vim: Received \"die\" request from session manager\n" -msgstr "Vim: Ïîëó÷åí çàïðîñ íà ïðåêðàùåíèå ðàáîòû îò äèñïåò÷åðà ñåàíñîâ\n" +msgstr "" +"Ïðîãðàììà Vim. Îò äèñïåò÷åðà ñåàíñîâ ïîëó÷åí çàïðîñ íà ïðåêðàùåíèå ðàáîòû\n" +# #Restorer: ïóíêò êîíòåêñòíîãî ìåíþ íà âêëàäêå è ïàíåëè âêëàäîê +# ~!: earlier msgid "Close tab" msgstr "Çàêðûòü âêëàäêó" +# #Restorer: ïóíêò êîíòåêñòíîãî ìåíþ íà âêëàäêå è ïàíåëè âêëàäîê +# ~!: earlier msgid "New tab" msgstr "Íîâàÿ âêëàäêà" +# #Restorer: ïóíêò êîíòåêñòíîãî ìåíþ íà âêëàäêå è ïàíåëè âêëàäîê +# ~!: earlier msgid "Open Tab..." msgstr "Îòêðûòü âêëàäêó..." +# :!~ Restorer msgid "Vim: Main window unexpectedly destroyed\n" -msgstr "Vim: Îñíîâíîå îêíî áûëî íåîæèäàííî çàêðûòî\n" +msgstr "Ïðîãðàììà Vim. Íåïðåäâèäåííîå çàêðûòèå îñíîâíîãî îêíà\n" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå âûáîðà ôàéëîâ +# ~!: earlier msgid "&Filter" -msgstr "&Ôèëüòð" +msgstr "Ô&èëüòð" +# #Restorer: íàèìåíîâàíèå êíîïêè â äèàëîãîâîì îêíå +# ~!: earlier msgid "&Cancel" msgstr "Î&òìåíà" +# #Restorer: çàãîëîâîê ïîëÿ â îêíå âûáîðà ôàéëîâ +# ~!: earlier msgid "Directories" msgstr "Êàòàëîãè" +# #Restorer: çàãîëîâîê ïîëÿ â îêíå âûáîðà ôàéëîâ +# ~!: earlier msgid "Filter" msgstr "Ôèëüòð" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå âûáîðà ôàéëîâ +# ~!: earlier msgid "&Help" msgstr "&Ñïðàâêà" +# #Restorer: çàãîëîâîê ïîëÿ â îêíå âûáîðà ôàéëîâ +# ~!: earlier msgid "Files" msgstr "Ôàéëû" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå âûáîðà ôàéëîâ +# ~!: earlier msgid "&OK" -msgstr "&Äà" +msgstr "Ä&à" +# #Restorer: çàãîëîâîê ïîëÿ â îêíå âûáîðà ôàéëîâ +# :!~ Restorer msgid "Selection" -msgstr "Âûäåëåíèå" +msgstr "Âûáðàíî" +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "Vim dialog" -msgstr "Äèàëîãîâîå îêíî Vim" +msgstr "Ïðîãðàììà Vim" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "Find &Next" -msgstr "Íàéòè &ñëåäóþùåå" +msgstr "&Íàéòè äàëåå" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# :!~ Restorer msgid "&Replace" -msgstr "Çà&ìåíà" +msgstr "&Çàìåíèòü" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# ~!: earlier msgid "Replace &All" msgstr "Çàìåíèòü &âñå" +# #Restorer: íàèìåíîâàíèå êíîïêè â îêíå ïîèñêà è çàìåíû +# ~!: earlier msgid "&Undo" -msgstr "Î&òìåíà" +msgstr "Â&åðíóòü" +# #Restorer: ïóíêò êîíòåêñòíîãî ìåíþ íà âêëàäêå è ïàíåëè âêëàäîê +# ~!: earlier msgid "Open tab..." msgstr "Îòêðûòü âêëàäêó..." +# #Restorer: íàèìåíîâàíèå çàãîëîâêà îêíà +# :!~ Restorer msgid "Find string" -msgstr "Íàéòè ñòðîêó" +msgstr "Íàéòè" +# #Restorer: íàèìåíîâàíèå çàãîëîâêà îêíà +# :!~ Restorer msgid "Find & Replace" -msgstr "Íàéòè è çàìåíèòü" +msgstr "Çàìåíèòü" +# #Restorer: çàãîëîâîê îêíà +# #Restorer: ýòî òîëüêî çàïîëíèòåëü +# :!~ Restorer msgid "Not Used" -msgstr "Íå èñïîëüçóåòñÿ" +msgstr "Not Used" +# #Restorer: âûïàäàþùèé ñïèñîê ñ òèïàìè ôàéëîâ (ôèëüòð) +# #Restorer: ýòî òîëüêî çàïîëíèòåëü +# :!~ Restorer msgid "Directory\t*.nothing\n" -msgstr "Êàòàëîã\t*.íè÷åãî\n" +msgstr "Directory\t*.nothing\n" +# :!~ Restorer #, c-format msgid "Font0: %s" -msgstr "Font0: %s" +msgstr "íàèìåíîâàíèå øðèôòà font0 %s" +# :!~ Restorer #, c-format msgid "Font%d: %s" -msgstr "Font%d: %s" +msgstr "íàèìåíîâàíèå øðèôòà font%d %s" +# :!~ Restorer #, c-format msgid "Font%d width is not twice that of font0" -msgstr "Øèðèíà øðèôòà font%d äîëæíà áûòü âäâîå áîëüøå, ÷åì ó font0" +msgstr "øèðèíà øðèôòà font%d äîëæíà áûòü âäâîå áîëüøå øèðèíû øðèôòà font0" +# :!~ Restorer #, c-format msgid "Font0 width: %d" -msgstr "Øèðèíà øðèôòà font0: %d" +msgstr "øèðèíà øðèôòà font0 %d" +# :!~ Restorer #, c-format msgid "Font%d width: %d" -msgstr "Øèðèíà øðèôòà font%d: %d" +msgstr "øèðèíà øðèôòà font%d %d" +# #Restorer: âûâîäèòñÿ â èíôîðìàöèîííîì îêíå +# :!~ Restorer msgid "Invalid font specification" -msgstr "Íåïðàâèëüíîå îïðåäåëåíèå øðèôòà" +msgstr "Óêàçàíî íåäîïóñòèìîå íàèìåíîâàíèå øðèôòà" +# #Restorer: íàèìåíîâàíèå êíîïêè èíôîðìàöèîííîãî îêíà +# ~!: earlier msgid "&Dismiss" -msgstr "Î&òêëîíèòü" +msgstr "Î&òìåíèòü" +# #Restorer: îòîáðàæàåòñÿ, åñëè øðèôò íå ñîâïàäàåò +# :!~ Restorer msgid "no specific match" -msgstr "íåò ñïåöèàëüíîãî ñîâïàäåíèÿ" +msgstr "îòñóòñòâóþò ñîâïàäåíèÿ" +# #Restorer: çàãîëîâîê îêíà âûáîðà øðèôòà +# :!~ Restorer msgid "Vim - Font Selector" -msgstr "Vim — Âûáîð øðèôòà" +msgstr "Øðèôò" +# #Restorer: íàèìåíîâàíèå ïîëÿ âûáðàííîãî øðèôòà +# :!~ Restorer msgid "Name:" -msgstr "Íàçâàíèå:" +msgstr "Øðèôò:" +# #Restorer: íàèìåíîâàíèå ïåðåêëþ÷àòåëÿ â îêíå âûáîðà øðèôòà +# ~!: earlier msgid "Show size in Points" msgstr "Ïîêàçûâàòü ðàçìåð â ïóíêòàõ" +# #Restorer: íàèìåíîâàíèå ïîëÿ âûáîðà êîäèðîâêè â îêíå âûáîðà øðèôòà +# ~!: earlier msgid "Encoding:" msgstr "Êîäèðîâêà:" +# #Restorer: íàèìåíîâàíèå ïîëÿ ñî ñïèñêîì øðèôòîâ â îêíå âûáîðà øðèôòà +# ~!: earlier msgid "Font:" msgstr "Øðèôò:" +# #Restorer: íàèìåíîâàíèå ïîëÿ ñî ñïèñêîì íà÷åðòàíèé â îêíå âûáîðà øðèôòà +# :!~ Restorer msgid "Style:" -msgstr "Ñòèëü:" +msgstr "Íà÷åðòàíèå:" +# #Restorer: íàèìåíîâàíèå ïîëÿ ñî ñïèñêîì ðàçìåðîâ â îêíå âûáîðà øðèôòà +# ~!: earlier msgid "Size:" msgstr "Ðàçìåð:" +# ~!: earlier #, c-format msgid "Page %d" msgstr "Ñòðàíèöà %d" +# :!~ Restorer msgid "No text to be printed" -msgstr "Ïå÷àòàòü íå÷åãî" +msgstr "Îòñóòñòâóåò òåêñò äëÿ ïå÷àòè" +# :!~ Restorer #, c-format msgid "Printing page %d (%d%%)" -msgstr "Ïå÷àòü ñòð. %d (%d%%)" +msgstr "Ïå÷àòü ñòðàíèöû %d (%d %%)" +# ~!: earlier #, c-format msgid " Copy %d of %d" msgstr " Êîïèÿ %d èç %d" +# :!~ Restorer #, c-format msgid "Printed: %s" -msgstr "Íàïå÷àòàíî: %s" +msgstr "Îòïå÷àòàíî: %s" +# :!~ Restorer msgid "Printing aborted" -msgstr "Ïå÷àòü ïðåêðàùåíà" +msgstr "Ïå÷àòü îòìåíåíà" +# ~!: earlier msgid "Sending to printer..." msgstr "Îòïðàâêà íà ïå÷àòü..." +# :!~ Restorer msgid "Print job sent." -msgstr "Çàäàíèå îòïðàâëåíî íà ïå÷àòü." +msgstr "Çàäàíèå îòïðàâëåíî íà ïå÷àòü" +# :!~ Restorer #, c-format msgid "Sorry, help file \"%s\" not found" -msgstr "Èçâèíèòå, ôàéë ñïðàâêè \"%s\" íå íàéäåí" +msgstr "Íå íàéäåí ôàéë äîêóìåíòàöèè \"%s\"" +# :!~ Restorer msgid "W18: Invalid character in group name" -msgstr "W18: Íåäîïóñòèìûé ñèìâîë â èìåíè ãðóïïû" +msgstr "W18: Íåäîïóñòèìûé ñèìâîë â íàèìåíîâàíèè ãðóïïû" +# :!~ Restorer msgid "Add a new database" -msgstr "Äîáàâèòü íîâóþ áàçó äàííûõ" +msgstr "ïîäêëþ÷èòü áàçó äàííûõ cscope" +# :!~ Restorer msgid "Query for a pattern" -msgstr "Çàïðîñ ïî øàáëîíó" +msgstr "îòïðàâèòü çàïðîñ â áàçó äàííûõ cscope" +# :!~ Restorer msgid "Show this message" -msgstr "Ïîêàçàòü ýòî ñîîáùåíèå" +msgstr "êðàòêàÿ èíôîðìàöèÿ î êîìàíäàõ" +# :!~ Restorer msgid "Kill a connection" -msgstr "Ðàçîðâàòü ñîåäèíåíèå" +msgstr "îòêëþ÷èòü áàçó äàííûõ cscope" +# :!~ Restorer msgid "Reinit all connections" -msgstr "Çàíîâî èíèöèàëèçèðîâàòü âñå ñîåäèíåíèÿ" +msgstr "îáíîâèòü ïîäêëþ÷åíèå ê áàçàì äàííûõ cscope" +# :!~ Restorer msgid "Show connections" -msgstr "Ïîêàçàòü ñîåäèíåíèÿ" +msgstr "ïîêàçàòü ïîäêëþ÷¸ííûå áàçû äàííûõ cscope" +# :!~ Restorer msgid "This cscope command does not support splitting the window.\n" -msgstr "Ýòà êîìàíäà cscope íå ïîääåðæèâàåò ðàçäåëåíèå îêíà.\n" +msgstr "Äëÿ êîìàíäû íå ïðåäóñìîòðåí âûâîä ðåçóëüòàòà â îòäåëüíîì îêíå\n" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer #, c-format msgid "Added cscope database %s" -msgstr "Äîáàâëåíà áàçà äàííûõ cscope %s" +msgstr "Âûïîëíåíî ïîäêëþ÷åíèå ê áàçå äàííûõ cscope %s" +# :!~ Restorer msgid "cs_create_connection setpgid failed" -msgstr "cs_create_connection: íå óäàëîñü âûïîëíèòü setpgid" +msgstr "" +"Âíóòðåííÿÿ ôóíêöèÿ cs_create_connection(). Ñáîé âûçîâà ñèñòåìíîé ôóíêöèè " +"setpgid()" +# :!~ Restorer msgid "cs_create_connection exec failed" -msgstr "cs_create_connection: íå óäàëîñü âûïîëíèòü exec" +msgstr "" +"Âíóòðåííÿÿ ôóíêöèÿ cs_create_connection(). Ñáîé âûçîâà ñèñòåìíîé ôóíêöèè " +"execl() èëè CreateProcess()" +# :!~ Restorer msgid "cs_create_connection: fdopen for to_fp failed" -msgstr "cs_create_connection: íå óäàëîñü âûïîëíèòü fdopen äëÿ to_fp" +msgstr "" +"Âíóòðåííÿÿ ôóíêöèÿ cs_create_connection(). Ñáîé óñòàíîâêè ðåæèìà çàïèñè " +"ñèñòåìíîé ôóíêöèåé fdopen()" +# :!~ Restorer msgid "cs_create_connection: fdopen for fr_fp failed" -msgstr "cs_create_connection: íå óäàëîñü âûïîëíèòü fdopen äëÿ fr_fp" +msgstr "" +"Âíóòðåííÿÿ ôóíêöèÿ cs_create_connection(). Ñáîé óñòàíîâêè ðåæèìà ñ÷èòûâàíèÿ " +"ñèñòåìíîé ôóíêöèåé fdopen()" +# :!~ Restorer msgid "cscope commands:\n" -msgstr "Êîìàíäû cscope:\n" +msgstr "Êîìàíäû äëÿ ðàáîòû ñ áàçàìè äàííûõ ïðîãðàììû cscope:\n" +# :!~ Restorer #, c-format msgid "%-5s: %s%*s (Usage: %s)" -msgstr "%-5s: %s%*s (èñïîëüçîâàíèå: %s)" +msgstr "%-5s: %s%*s (îáðàçåö: %s)" +# :!~ Restorer msgid "" "\n" " a: Find assignments to this symbol\n" @@ -1138,368 +1765,516 @@ msgid "" " t: Find this text string\n" msgstr "" "\n" -" a: Íàéòè ïðèñâàèâàíèÿ äëÿ ýòîãî ñèìâîëà\n" -" c: Íàéòè ôóíêöèè, âûçûâàþùèå ýòó ôóíêöèþ\n" -" d: Íàéòè ôóíêöèè, âûçûâàåìûå ýòîé ôóíêöèåé\n" -" e: Íàéòè ýòîò øàáëîí egrep\n" -" f: Íàéòè ýòîò ôàéë\n" -" g: Íàéòè ýòî îïðåäåëåíèå\n" -" i: Íàéòè ôàéëû, âêëþ÷àþùèå (#include) ýòîò ôàéë\n" -" s: Íàéòè ýòîò C-ñèìâîë\n" -" t: Íàéòè ýòó òåêñòîâóþ ñòðîêó\n" +" a: ïîèñê ïðèñâàèâàíèÿ çíà÷åíèÿ äëÿ óêàçàííîãî èäåíòèôèêàòîðà\n" +" c: ïîèñê ôóíêöèé, âûçûâàþùèõ óêàçàííóþ ôóíêöèþ\n" +" d: ïîèñê ôóíêöèé, âûçûâàåìûõ óêàçàííîé ôóíêöèåé\n" +" e: ïîèñê ïî çàäàííîìó ðåãóëÿðíîìó âûðàæåíèþ\n" +" f: ïîèñê óêàçàííîãî ôàéëà\n" +" g: ïîèñê óêàçàííîãî îïðåäåëåíèÿ\n" +" i: ïîèñê ôàéëîâ, ïîäêëþ÷àþùèõ äèðåêòèâîé #include óêàçàííûé ôàéë\n" +" s: ïîèñê óêàçàííîãî èäåíòèôèêàòîðà\n" +" t: ïîèñê óêàçàííîé òåêñòîâîé ñòðîêè\n" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer #, c-format msgid "cscope connection %s closed" -msgstr "ñîåäèíåíèå ñ cscope %s çàêðûòî" +msgstr "Âûïîëíåíî îòêëþ÷åíèå áàçû äàííûõ cscope %s" +# :!~ Restorer #, c-format msgid "Cscope tag: %s" -msgstr "Ìåòêà cscope: %s" +msgstr "Èíäåêñ áàçû äàííûõ cscope %s" +# :!~ Restorer msgid "" "\n" " # line" msgstr "" "\n" -" # ñòðîêà" +" ¹ ñòðîêà" +# :!~ Restorer msgid "filename / context / line\n" -msgstr "èìÿ ôàéëà / êîíòåêñò / ñòðîêà\n" +msgstr " ôàéë; êîíòåêñò; ñòðîêà, ñîäåðæàùàÿ èíäåêñ\n" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer msgid "All cscope databases reset" -msgstr "Ïåðåçàãðóçêà âñåõ áàç äàííûõ cscope" +msgstr "Ïîâòîðíîå ïîäêëþ÷åíèå âñåõ ðàíåå ïîäêëþ÷¸ííûõ áàç äàííûõ cscope" +# :!~ Restorer msgid "no cscope connections\n" -msgstr "ñîåäèíåíèÿ ñ cscope îòñóòñòâóþò\n" +msgstr "Îòñóòñòâóþò ïîäêëþ÷¸ííûå áàçû äàííûõ ïðîãðàììû cscope\n" +# :!~ Restorer msgid " # pid database name prepend path\n" -msgstr " # pid áàçà äàííûõ íà÷àëüíûé ïóòü\n" +msgstr " ¹ ÏÈÄ áàçà äàííûõ îòíîñèòåëüíûé ìàðøðóò\n" +# :!~ Restorer msgid "Lua library cannot be loaded." -msgstr "Áèáëèîòåêà Lua íå ìîæåò áûòü çàãðóæåíà." +msgstr "Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè ÿçûêà Lua" +# :!~ Restorer msgid "cannot save undo information" -msgstr "íåâîçìîæíî ñîõðàíèòü èíôîðìàöèþ îá îòìåíå îïåðàöèè" +msgstr "íå óäàëîñü ñîõðàíèòü èíôîðìàöèÿ äëÿ îòìåíû îïåðàöèé" +# :!~ Restorer msgid "invalid expression" -msgstr "íåïðàâèëüíîå âûðàæåíèå" +msgstr "íåäîïóñòèìîå âûðàæåíèå" +# :!~ Restorer msgid "expressions disabled at compile time" -msgstr "âûðàæåíèÿ îòêëþ÷åíû ïðè êîìïèëÿöèè" +msgstr "êîìïîíåíò âû÷èñëåíèÿ âûðàæåíèé îòêëþ÷¸í ïðè êîìïèëÿöèè" +# :!~ Restorer msgid "hidden option" -msgstr "ñêðûòàÿ îïöèÿ" +msgstr "ïàðàìåòð íå ïîääåðæèâàåòñÿ â ýòîé âåðñèè ïðîãðàììû" +# :!~ Restorer msgid "unknown option" -msgstr "íåèçâåñòíàÿ îïöèÿ" +msgstr "íå ðàñïîçíàíî íàèìåíîâàíèå ïàðàìåòðà" +# :!~ Restorer msgid "window index is out of range" -msgstr "èíäåêñ îêíà çà ïðåäåëàìè äèàïàçîíà" +msgstr "íåäîïóñòèìîå çíà÷åíèå èäåíòèôèêàòîðà îêíà" +# :!~ Restorer msgid "couldn't open buffer" -msgstr "íåâîçìîæíî îòêðûòü áóôåð" +msgstr "íå óäàëîñü îòêðûòü áóôåð" +# :!~ Restorer msgid "cannot delete line" -msgstr "íåâîçìîæíî óäàëèòü ñòðîêó" +msgstr "íå óäàëîñü óäàëèòü ñòðîêó" +# :!~ Restorer msgid "cannot replace line" -msgstr "íåâîçìîæíî çàìåíèòü ñòðîêó" +msgstr "íå óäàëîñü çàìåíèòü ñòðîêó" +# :!~ Restorer msgid "cannot insert line" -msgstr "íåâîçìîæíî âñòàâèòü ñòðîêó" +msgstr "íå óäàëîñü âñòàâèòü ñòðîêó" +# :!~ Restorer msgid "string cannot contain newlines" -msgstr "ñòðîêà íå ìîæåò ñîäåðæàòü ñèìâîë íîâîé ñòðîêè" +msgstr "ñòðîêà íå äîëæíà ñîäåðæàòü ñèìâîëû ðàçäåëèòåëÿ ñòðîê" +# :!~ Restorer msgid "error converting Scheme values to Vim" -msgstr "íåâîçìîæíî ïðåîáðàçîâàòü çíà÷åíèÿ Scheme â Vim" +msgstr "" +"îøèáêà ïðåîáðàçîâàíèÿ òèïà äàííûõ ÿçûêà Scheme â òèï äàííûõ ïðîãðàììû Vim" +# :!~ Restorer msgid "Vim error: ~a" -msgstr "îøèáêà Vim: ~a" +msgstr "Ñîîáùåíèå: ~a" +# :!~ Restorer msgid "Vim error" -msgstr "îøèáêà Vim" +msgstr "Îøèáêà" +# :!~ Restorer msgid "buffer is invalid" -msgstr "íåïðàâèëüíûé áóôåð" +msgstr "ïîëó÷åíî íåäîïóñòèìîå çíà÷åíèå óêàçàòåëÿ íà áóôåð" +# :!~ Restorer msgid "window is invalid" -msgstr "íåïðàâèëüíîå îêíî" +msgstr "ïîëó÷åíî íåäîïóñòèìîå çíà÷åíèå óêàçàòåëÿ íà îêíî" +# :!~ Restorer msgid "linenr out of range" -msgstr "íîìåð ñòðîêè çà ïðåäåëàìè äèàïàçîíà" +msgstr "íîìåð ñòðîêè âûõîäèò çà ïðåäåëû çíà÷åíèé äèàïàçîíà" +# :!~ Restorer msgid "not allowed in the Vim sandbox" -msgstr "íå äîïóñêàåòñÿ â ïåñî÷íèöå Vim" +msgstr "çàïðåùåíî âûïîëíåíèå â èçîëèðîâàííîé ñðåäå ïðîãðàììû Vim" +# :!~ Restorer +#, c-format +msgid "E370: Could not load library %s" +msgstr "E370: Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè %s" + +# :!~ Restorer +msgid "Sorry, this command is disabled: the Perl library could not be loaded." +msgstr "Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè ÿçûêà Perl. Êîìàíäà íå âûïîëíåíà" + +# :!~ Restorer msgid "invalid buffer number" -msgstr "íåïðàâèëüíûé íîìåð áóôåðà" +msgstr "íåäîïóñòèìûé íîìåð áóôåðà" +# ~!: earlier msgid "not implemented yet" msgstr "ïîêà íå ðåàëèçîâàíî" +# :!~ Restorer msgid "cannot set line(s)" -msgstr "íåâîçìîæíî íàçíà÷èòü ñòðîêó èëè ñòðîêè" +msgstr "íå óäàëîñü çàìåíèòü ñòðîêè" +# :!~ Restorer msgid "invalid mark name" -msgstr "íåïðàâèëüíîå èìÿ îòìåòêè" +msgstr "íåäîïóñòèìîå íàèìåíîâàíèå çàêëàäêè" +# :!~ Restorer msgid "mark not set" -msgstr "îòìåòêà íå óñòàíîâëåíà" +msgstr "çàêëàäêà íå óñòàíîâëåíà" +# :!~ Restorer #, c-format msgid "row %d column %d" -msgstr "ðÿä %d êîëîíêà %d" +msgstr "â ñòðîêå %d, êîëîíêà %d" +# :!~ Restorer msgid "cannot insert/append line" -msgstr "íåâîçìîæíî âñòàâèòü èëè äîáàâèòü ñòðîêó" +msgstr "íå óäàëîñü äîáàâèòü ñòðîêó" +# :!~ Restorer msgid "line number out of range" -msgstr "íîìåð ñòðîêè çà ïðåäåëàìè äèàïàçîíà" +msgstr "íîìåð ñòðîêè âûõîäèò çà ïðåäåëû çíà÷åíèé äèàïàçîíà" +# :!~ Restorer msgid "unknown flag: " -msgstr "íåèçâåñòíûé ôëàã: " +msgstr "íå ïîääåðæèâàåìûé ïàðàìåòð êîìàíäû " +# :!~ Restorer msgid "unknown vimOption" -msgstr "íåèçâåñòíàÿ vimOption" +msgstr "íå ðàñïîçíàíî íàèìåíîâàíèå ïàðàìåòðà" +# :!~ Restorer msgid "keyboard interrupt" -msgstr "ïðåðâàíî ñ êëàâèàòóðû" +msgstr "âûïîëíåíèå ïðåðâàíî ïîëüçîâàòåëåì" +# :!~ Restorer msgid "cannot create buffer/window command: object is being deleted" -msgstr "íåâîçìîæíî ñîçäàòü êîìàíäó áóôåðà èëè îêíà: îáúåêò â ïðîöåññå óäàëåíèÿ" - -msgid "" -"cannot register callback command: buffer/window is already being deleted" msgstr "" -"íåâîçìîæíî çàðåãèñòðèðîâàòü êîìàíäó ñ îáðàòíûì âûçîâîì: áóôåð èëè îêíî â " -"ïðîöåññå óäàëåíèÿ" +"îáúåêò áóôåðà èëè îêíà â ïðîöåññå óäàëåíèÿ. Íå óäàëîñü ñîçäàòü äëÿ íèõ êîìàíäû" +# :!~ Restorer +msgid "cannot register callback command: buffer/window is already being deleted" +msgstr "" +"îáúåêò áóôåðà èëè îêíà â ïðîöåññå óäàëåíèÿ. Íå óäàëîñü çàðåãèñòðèðîâàòü êîìàíäó" + +# :!~ Restorer msgid "cannot register callback command: buffer/window reference not found" -msgstr "" -"íåâîçìîæíî çàðåãèñòðèðîâàòü êîìàíäó ñ îáðàòíûì âûçîâîì: ññûëêà íà áóôåð èëè " -"îêíî íå îáíàðóæåíà" +msgstr "íå íàéäåíà ññûëêà íà áóôåð èëè îêíî. Íå óäàëîñü çàðåãèñòðèðîâàòü êîìàíäó" +# :!~ Restorer msgid "cannot get line" -msgstr "íåâîçìîæíî ïîëó÷èòü ñòðîêó" +msgstr "íå óäàëîñü ïîëó÷èòü ñîäåðæèìîå ïåðâîé ñòðîêè èç äèàïàçîíà" +# :!~ Restorer msgid "Unable to register a command server name" -msgstr "Íåâîçìîæíî çàðåãèñòðèðîâàòü èìÿ ñåðâåðà êîìàíä" +msgstr "Íå óäàëîñü çàðåãèñòðèðîâàòü íàèìåíîâàíèå ñåðâåðà êîìàíä" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' < %ld +# :!~ Restorer #, c-format msgid "%ld lines to indent... " -msgstr "Èçìåíÿþòñÿ îòñòóïû â ñòðîêàõ (%ld)..." +msgstr "Âûïîëíÿåòñÿ èçìåíåíèÿ îòñòóïà â %ld ñòðîêàõ... " +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' < %ld +# :!~ Restorer #, c-format msgid "%ld line indented " msgid_plural "%ld lines indented " -msgstr[0] "Èçìåí¸í îòñòóï â %ld ñòðîêå " -msgstr[1] "Èçìåí¸í îòñòóï â %ld ñòðîêàõ " -msgstr[2] "Èçìåí¸í îòñòóï â %ld ñòðîêàõ " +msgstr[0] " %ld ñòðîêå èçìåí¸í îòñòóï" +msgstr[1] " %ld ñòðîêàõ èçìåí¸í îòñòóï" +msgstr[2] " %ld ñòðîêàõ èçìåí¸í îòñòóï" +# :!~ Restorer msgid " Keyword completion (^N^P)" -msgstr " Àâòîäîïîëíåíèå êëþ÷åâîãî ñëîâà (^N^P)" +msgstr " Ïîäñòàíîâêà ñëîâà ïîä êóðñîðîì CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" -msgstr " Ðåæèì ^X (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)" +msgstr " Ðåæèì ïîäñòàíîâêè CTRL+X è CTRL+ (] D E F I K L N O P S U V Y)" +# :!~ Restorer msgid " Whole line completion (^L^N^P)" -msgstr " Àâòîäîïîëíåíèå öåëîé ñòðîêè (^L^N^P)" +msgstr " Ïîäñòàíîâêà öåëîé ñòðîêè CTRL+L è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " File name completion (^F^N^P)" -msgstr " Àâòîäîïîëíåíèå èìåíè ôàéëà (^F^N^P)" +msgstr " Ïîäñòàíîâêà íàèìåíîâàíèÿ ôàéëà CTRL+F è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Tag completion (^]^N^P)" -msgstr " Àâòîäîïîëíåíèå ìåòêè (^]^N^P)" +msgstr " Ïîäñòàíîâêà èç ôàéëà èíäåêñîâ CTRL+] è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Path pattern completion (^N^P)" -msgstr " Àâòîäîïîëíåíèå øàáëîíà ïóòè (^N^P)" +msgstr " Ïîäñòàíîâêà ìàðøðóòà ê ôàéëó CTRL+N è CTRL+P" +# :!~ Restorer msgid " Definition completion (^D^N^P)" -msgstr " Àâòîäîïîëíåíèå îïðåäåëåíèÿ (^D^N^P)" +msgstr " Ïîäñòàíîâêà îïðåäåëåíèé CTRL+D è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Dictionary completion (^K^N^P)" -msgstr " Àâòîäîïîëíåíèå ïî ñëîâàðþ (^K^N^P)" +msgstr " Ïîäñòàíîâêà èç ñëîâàðÿ CTRL+K è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Thesaurus completion (^T^N^P)" -msgstr " Àâòîäîïîëíåíèå ñèíîíèìîâ (^T^N^P)" +msgstr " Ïîäñòàíîâêà èç ñëîâàðÿ ñèíîíèìîâ CTRL+T è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Command-line completion (^V^N^P)" -msgstr " Àâòîäîïîëíåíèå êîìàíäíîé ñòðîêè (^V^N^P)" +msgstr " Ïîäñòàíîâêà êîìàíä ðåäàêòîðà Vim CTRL+V è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " User defined completion (^U^N^P)" -msgstr " Ïîëüçîâàòåëüñêîå àâòîäîïîëíåíèå (^U^N^P)" +msgstr " Ïîäñòàíîâêà èç îïðåäåëåíèé ïîëüçîâàòåëÿ CTRL+U è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Omni completion (^O^N^P)" -msgstr " Omni-äîïîëíåíèå (^O^N^P)" +msgstr " Ïîäñòàíîâêà ïî êîíòåêñòó CTRL+O è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Spelling suggestion (s^N^P)" -msgstr " Ïðåäëîæåíèå èñïðàâëåíèÿ ïðàâîïèñàíèÿ (s^N^P)" +msgstr " Ïîäñòàíîâêà âàðèàíòîâ íàïèñàíèÿ CTRL+S è CTRL+N èëè CTRL+P" +# :!~ Restorer msgid " Keyword Local completion (^N^P)" -msgstr " Ìåñòíîå àâòîäîïîëíåíèå êëþ÷åâîãî ñëîâà (^N^P)" - -msgid "Hit end of paragraph" -msgstr "Êîíåö àáçàöà" +msgstr " Ïîäñòàíîâêà ñëîâ òîëüêî èç òåêóùåãî áóôåðà CTRL+N èëè CTRL+P" +# :!~ Restorer msgid "'dictionary' option is empty" -msgstr "Íå çàäàíî çíà÷åíèå îïöèè 'dictionary'" +msgstr "Íå çàäàíî çíà÷åíèå ïàðàìåòðà 'dictionary'" +# :!~ Restorer msgid "'thesaurus' option is empty" -msgstr "Íå çàäàíî çíà÷åíèå îïöèè 'thesaurus'" +msgstr "Íå çàäàíî çíà÷åíèå ïàðàìåòðà 'thesaurus'" +# :!~ Restorer #, c-format msgid "Scanning dictionary: %s" -msgstr "Ïðîñìîòð ñëîâàðÿ: %s" +msgstr "Ïðîñìîòð ñëîâàðÿ %s" +# :!~ Restorer msgid " (insert) Scroll (^E/^Y)" -msgstr " (âñòàâêà) Ïðîêðóòêà (^E/^Y)" +msgstr " (âñòàâêà) Ïðîêðóòêà òåêñòà êëàâèøàìè CTRL+E è CTRL+Y" +# :!~ Restorer msgid " (replace) Scroll (^E/^Y)" -msgstr " (çàìåíà) Ïðîêðóòêà (^E/^Y)" +msgstr " (çàìåíà) Ïðîêðóòêà òåêñòà êëàâèøàìè CTRL+E è CTRL+Y" +# :!~ Restorer #, c-format msgid "Scanning: %s" -msgstr "Ïðîñìîòð: %s" +msgstr "Ïðîñìîòð %s" +# :!~ Restorer msgid "Scanning tags." -msgstr "Âûïîëíÿåòñÿ ïîèñê ñðåäè ìåòîê." +msgstr "Ïðîñìîòð ôàéëà èíäåêñîâ" +# :!~ Restorer msgid "match in file" -msgstr "ñîîòâåòñòâèå â ôàéëå" +msgstr "íàéäåíî â ôàéëå" +# ~!: earlier msgid " Adding" msgstr " Äîáàâëåíèå" +# ~!: earlier msgid "-- Searching..." msgstr "-- Ïîèñê..." +# ~!: earlier +msgid "Hit end of paragraph" +msgstr "Êîíåö àáçàöà" + +# #Restorer: âûâîäèòñÿ ïðè àâòîïîäñòàíîâêå +# :!~ Restorer +msgid "Pattern not found" +msgstr "Íå íàéäåíû âàðèàíòû äëÿ ïîäñòàíîâêè" + +# ~!: earlier msgid "Back at original" msgstr "Èñõîäíîå ñëîâî" +# ~!: earlier msgid "Word from other line" msgstr "Ñëîâî èç äðóãîé ñòðîêè" +# :!~ Restorer msgid "The only match" -msgstr "Åäèíñòâåííîå ñîîòâåòñòâèå" +msgstr "Åäèíñòâåííûé âàðèàíò" +# :!~ Restorer #, c-format msgid "match %d of %d" -msgstr "ñîîòâåòñòâèå %d èç %d" +msgstr "âàðèàíò %d èç %d" +# :!~ Restorer #, c-format msgid "match %d" -msgstr "ñîîòâåòñòâèå %d" +msgstr "âàðèàíòîâ %d" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "flatten() argument" -msgstr "ïàðàìåòðà flatten()" +msgstr "àðãóìåíòà ôóíêöèè flatten()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "sort() argument" -msgstr "ïàðàìåòðà sort()" +msgstr "àðãóìåíòà ôóíêöèè sort()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "uniq() argument" -msgstr "ïàðàìåòðà uniq()" +msgstr "àðãóìåíòà ôóíêöèè uniq()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "map() argument" -msgstr "ïàðàìåòðà map()" +msgstr "àðãóìåíòà ôóíêöèè map()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "mapnew() argument" -msgstr "ïàðàìåòðà mapnew()" +msgstr "àðãóìåíòà ôóíêöèè mapnew()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "filter() argument" -msgstr "ïàðàìåòðà filter()" +msgstr "àðãóìåíòà ôóíêöèè filter()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "extendnew() argument" -msgstr "ïàðàìåòðà extendnew()" +msgstr "àðãóìåíòà ôóíêöèè extendnew()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "remove() argument" -msgstr "ïàðàìåòðà remove()" +msgstr "àðãóìåíòà ôóíêöèè remove()" +# #Restorer: äîïèñûâàåòñÿ, íàïðèìåð, ê ñîîáùåíèþ E741 èëè E742 +# :!~ Restorer msgid "reverse() argument" -msgstr "ïàðàìåòðà reverse()" +msgstr "àðãóìåíòà ôóíêöèè reverse()" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:language` +# #Restorer: ïåðâûé %s çàìåíÿåòñÿ íà «messages », «ctype » èëè «time » +# :!~ Restorer #, c-format msgid "Current %slanguage: \"%s\"" -msgstr "Àêòèâíûé %sÿçûê: \"%s\"" +msgstr "Ðåãèîíàëüíûå íàñòðîéêè %s: \"%s\"" +# #Restorer: ïîñëå ñîîáùåíèÿ äîïèñûâàåòñÿ ñèìâîë : è îøèáî÷íûé àðãóìåíò â êàâû÷êàõ +# :!~ Restorer msgid "Unknown option argument" -msgstr "Íåèçâåñòíûé íåîáÿçàòåëüíûé ïàðàìåòð" +msgstr "Íå ðàñïîçíàí àðãóìåíò êîìàíäíîé ñòðîêè" +# :!~ Restorer msgid "Too many edit arguments" -msgstr "Ñëèøêîì ìíîãî ïàðàìåòðîâ ðåäàêòèðîâàíèÿ" +msgstr "Ïðåâûøåíî êîëè÷åñòâî ôàéëîâ ïåðåäàâàåìûõ â ïðîãðàììó äëÿ ïðàâêè" +# :!~ Restorer msgid "Argument missing after" -msgstr "Ïðîïóùåí ïàðàìåòð ïîñëå" +msgstr "Íå óêàçàí îáÿçàòåëüíûé ïàðàìåòð ïîñëå" +# :!~ Restorer msgid "Garbage after option argument" -msgstr "Ìóñîð ïîñëå íåîáÿçàòåëüíîãî ïàðàìåòðà" +msgstr "Ïîñòîðîííèå ñèìâîëû ïîñëå àðãóìåíòà êîìàíäíîé ñòðîêè" +# :!~ Restorer msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" msgstr "" -"Ñëèøêîì ìíîãî ïàðàìåòðîâ \"+êîìàíäà\", \"-c êîìàíäà\" èëè \"--cmd êîìàíäà\"" +"Ïðåâûøåíî êîëè÷åñòâî àðãóìåíòîâ \"+êîìàíäà\", \"-c êîìàíäà\" èëè \"--cmd " +"êîìàíäà\"" +# :!~ Restorer msgid "Invalid argument for" -msgstr "Íåäîïóñòèìûé ïàðàìåòð äëÿ" +msgstr "Íåäîïóñòèìîå çíà÷åíèå äëÿ àðãóìåíòà êîìàíäíîé ñòðîêè" +# ~!: earlier #, c-format msgid "%d files to edit\n" msgstr "Ôàéëîâ äëÿ ðåäàêòèðîâàíèÿ: %d\n" +# :!~ Restorer msgid "netbeans is not supported with this GUI\n" -msgstr "NetBeans íå ïîääåðæèâàåòñÿ ñ ýòèì ãðàôè÷åñêèì èíòåðôåéñîì\n" +msgstr "" +"Ñðåäà ðàçðàáîòêè NetBeans íå ïîääåðæèâàåòñÿ ñ ýòèì ãðàôè÷åñêèì èíòåðôåéñîì\n" +# :!~ Restorer msgid "'-nb' cannot be used: not enabled at compile time\n" -msgstr "Íåâîçìîæíî èñïîëüçîâàòü '-nb': âûêëþ÷åíî ïðè êîìïèëÿöèè\n" +msgstr "Íåäîïóñòèìûé àðãóìåíò êîìàíäíîé ñòðîêè '-nb'. Îòêëþ÷åíî ïðè êîìïèëÿöèè\n" +# :!~ Restorer msgid "This Vim was not compiled with the diff feature." -msgstr "Ýòà âåðñèÿ Vim áûëà ñîáðàíà áåç îñîáåííîñòè ïðîñìîòðà îòëè÷èé." +msgstr "Íå ïîääåðæèâàåòñÿ ðåæèì ñðàâíåíèÿ. Êîìïîíåíò îòêëþ÷¸í ïðè êîìïèëÿöèè" +# :!~ Restorer msgid "Attempt to open script file again: \"" -msgstr "Ïîïûòêà ïîâòîðíîãî îòêðûòèÿ ôàéëà ñöåíàðèÿ: \"" +msgstr "Ïîïûòêà ïîâòîðíîãî îòêðûòèÿ êîìàíäíîãî ôàéëà \"" +# :!~ Restorer msgid "Cannot open for reading: \"" -msgstr "Íåâîçìîæíî îòêðûòü äëÿ ÷òåíèÿ: \"" +msgstr "Íå óäàëîñü îòêðûòü íà ñ÷èòûâàíèå \"" +# :!~ Restorer msgid "Cannot open for script output: \"" -msgstr "Íåâîçìîæíî îòêðûòü äëÿ âûâîäà ñöåíàðèÿ: \"" +msgstr "Íå óäàëîñü îòêðûòü íà çàïèñü ôàéë ïðîòîêîëà \"" +# :!~ Restorer msgid "Vim: Error: Failure to start gvim from NetBeans\n" -msgstr "Vim: Îøèáêà: Íå óäàëîñü çàïóñòèòü gvim èç NetBeans\n" +msgstr "" +"Ïðîãðàììà Vim. Íå óäàëîñü çàïóñòèòü ïðîãðàììó gVim èç ñðåäû ðàçðàáîòêè " +"NetBeans\n" +# :!~ Restorer msgid "Vim: Error: This version of Vim does not run in a Cygwin terminal\n" -msgstr "Vim: Îøèáêà: Äàííàÿ âåðñèÿ Vim íå ðàáîòàåò â òåðìèíàëå Cygwin\n" +msgstr "Ïðîãðàììà Vim. Äàííàÿ âåðñèÿ ïðîãðàììû íå ðàáîòàåò â òåðìèíàëå Cygwin\n" +# :!~ Restorer msgid "Vim: Warning: Output is not to a terminal\n" -msgstr "Vim: Ïðåäóïðåæäåíèå: Âûâîä îñóùåñòâëÿåòñÿ íå íà òåðìèíàë\n" +msgstr "Ïðîãðàììà Vim. Âíèìàíèå! Âûâîä îñóùåñòâëÿåòñÿ íå íà òåðìèíàë\n" +# :!~ Restorer msgid "Vim: Warning: Input is not from a terminal\n" -msgstr "Vim: Ïðåäóïðåæäåíèå: Ââîä ïðîèñõîäèò íå ñ òåðìèíàëà\n" +msgstr "Ïðîãðàììà Vim. Âíèìàíèå! Ââîä îñóùåñòâëÿåòñÿ íå ñ òåðìèíàëà\n" +# :!~ Restorer msgid "pre-vimrc command line" -msgstr "êîìàíäíàÿ ñòðîêà ïåðåä âûïîëíåíèåì vimrc" +msgstr "êîìàíäû, âûïîëíÿåìûå ïåðåä îáðàáîòêîé ôàéëà vimrc" +# #Restorer: âûâîäèòñÿ ïðè îøèáêàõ, íàïðèìåð, â àðãóìåíòàõ êîìàíäíîé ñòðîêè +# :!~ Restorer msgid "" "\n" "More info with: \"vim -h\"\n" msgstr "" "\n" -"Äîïîëíèòåëüíàÿ èíôîðìàöèÿ: \"vim -h\"\n" +"×òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ, íàáåðèòå vim -h\n" +# :!~ Restorer msgid "[file ..] edit specified file(s)" -msgstr "[ôàéë ..] ðåäàêòèðîâàíèå óêàçàííûõ ôàéëîâ" +msgstr "[ôàéë ...] ðåäàêòèðîâàòü óêàçàííûå ôàéëû" +# #Restorer: ÷òîáû ïåðåâîä ïîìåñòèëñÿ â 80 ñèìâîëîâ, ðàçáèë íà äâå ñòðîêè +# :!~ Restorer msgid "- read text from stdin" -msgstr "- ÷òåíèå òåêñòà èç ïîòîêà ââîäà stdin" +msgstr "" +"- ñ÷èòûâàòü òåêñò èç ñòàíäàðòíîãî ïîòîêà\n" +"\t\t\t\t\t\t\t\t\t ââîäà" +# #Restorer: ÷òîáû ïåðåâîä ïîìåñòèëñÿ â 80 ñèìâîëîâ, ðàçáèë íà äâå ñòðîêè +# :!~ Restorer msgid "-t tag edit file where tag is defined" -msgstr "-t ìåòêà ðåäàêòèðîâàíèå ôàéëà ñ óêàçàííîé ìåòêîé" +msgstr "" +"-t èíäåêñ ðåäàêòèðîâàòü ôàéë, äëÿ êîòîðîãî ñîçäàí\n" +"\t\t\t\t\t\t\t\t äàííûé èíäåêñ" -# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ +# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ (Ñ. Àë¸øèí) +# #Restorer: èçìåíèë êîëè÷åñòâî ñèìâîëîâ òàáóëÿöèè è ïðîáåëîâ, äàáû áûëî õîðîøî +# :!~ Restorer msgid "-q [errorfile] edit file with first error" msgstr "" -"-q [ôàéë-îøèáîê]\n" -"\t\t\t\t ðåäàêòèðîâàíèå ôàéëà ñ ïåðâîé îøèáêîé" +"-q [ôàéë ðåçóëüòàòîâ] ðåäàêòèðîâàòü ôàéë, ñîäåðæàùèé\n" +"\t\t\t\t\t\t ïåðâûé ðåçóëüòàò èç ñïèñêà" +# :!~ Restorer msgid "" "\n" "\n" @@ -1507,25 +2282,34 @@ msgid "" msgstr "" "\n" "\n" -"Èñïîëüçîâàíèå:" +"Îáðàçåö:" +# #Restorer: ÷òîáû áûëî âûðàâíèâàíèå, ïðîáåëû íå óáèðàòü +# :!~ Restorer msgid " vim [arguments] " -msgstr " vim [ïàðàìåòðû] " +msgstr " vim [àðãóìåíòû] " +# #Restorer: ÷òîáû áûëî âûðàâíèâàíèå, ïðîáåëû íå óáèðàòü +# :!~ Restorer msgid "" "\n" " or:" msgstr "" "\n" -" èëè:" +" èëè" +# #Restorer: â main.c åñòü ñëåäóþùåå: +# #Restorer: * VMS only uses upper case command lines. Interpret "-X" as "-x" +# #Restorer: * and "-/X" as "-X". +# :!~ Restorer msgid "" "\n" "Where case is ignored prepend / to make flag upper case" msgstr "" "\n" -"Åñëè ðåãèñòð èãíîðèðóåòñÿ, äîáàâüòå ïåðåä ôëàãîì / äëÿ âåðõíåãî ðåãèñòðà" +"×òîáû ðàñïîçíàâàëñÿ àðãóìåíò â âåðõíåì ðåãèñòðå, äîáàâüòå ïåðåä íèì ñèìâîë /" +# :!~ Restorer msgid "" "\n" "\n" @@ -1533,509 +2317,694 @@ msgid "" msgstr "" "\n" "\n" -"Ïàðàìåòðû:\n" +"Àðãóìåíòû êîìàíäíîé ñòðîêè:\n" +# :!~ Restorer msgid "--\t\t\tOnly file names after this" -msgstr "--\t\t\tÄàëåå óêàçûâàþòñÿ òîëüêî èìåíà ôàéëîâ" +msgstr "--\t\t\tÂñ¸ ïîñëåäóþùåå ðàññìàòðèâàòü êàê íàèìåíîâàíèÿ ôàéëîâ" +# :!~ Restorer msgid "--literal\t\tDon't expand wildcards" -msgstr "--literal\t\tÍå âûïîëíÿòü ïîäñòàíîâêó ïî ìàñêå" +msgstr "--literal\t\tÍå âûïîëíÿòü ïîäñòàíîâêó ïî ìàñêå â íàèìåíîâàíèÿ ôàéëîâ" +# :!~ Restorer msgid "-register\t\tRegister this gvim for OLE" -msgstr "-register\t\tÇàðåãèñòðèðîâàòü ýòîò gvim äëÿ OLE" +msgstr "-register\t\tÐåãèñòðàöèÿ ïðîãðàììû gVim â ïðîñòðàíñòâå OLE" +# :!~ Restorer msgid "-unregister\t\tUnregister gvim for OLE" -msgstr "-unregister\t\tÎòêëþ÷èòü ðåãèñòðàöèþ äàííîãî gvim äëÿ OLE" +msgstr "-unregister\t\tÎòìåíà ðåãèñòðàöèè ïðîãðàììû gVim â ïðîñòðàíñòâå OLE" +# ~!: earlier msgid "-g\t\t\tRun using GUI (like \"gvim\")" -msgstr "-g\t\t\tÇàïóñòèòü ñ ãðàôè÷åñêèì èíòåðôåéñîì (êàê \"gvim\")" +msgstr "-g\t\t\tÇàïóñê ïðîãðàììû ñ ãðàôè÷åñêèì èíòåðôåéñîì (êàê \"gVim\")" +# :!~ Restorer msgid "-f or --nofork\tForeground: Don't fork when starting GUI" -msgstr "-f èëè --nofork\t àêòèâíîé çàäà÷å: íå âûïîëíÿòü fork ïðè çàïóñêå GUI" +msgstr "" +"-f èëè --nofork\tÏðè çàïóñêå ÃÈÏ èç àêòèâíîé çàäà÷è íå îòêëþ÷àòüñÿ îò íå¸" +# :!~ Restorer msgid "-v\t\t\tVi mode (like \"vi\")" -msgstr "-v\t\t\tÐåæèì Vi (êàê \"vi\")" +msgstr "-v\t\t\tÇàïóñê ïðîãðàììû â ðåæèìå Vi (êàê \"vi\")" +# :!~ Restorer msgid "-e\t\t\tEx mode (like \"ex\")" -msgstr "-e\t\t\tÐåæèì Ex (êàê \"ex\")" +msgstr "-e\t\t\tÇàïóñê ïðîãðàììû â Ex-ðåæèìå (êàê \"ex\")" +# :!~ Restorer msgid "-E\t\t\tImproved Ex mode" -msgstr "-E\t\t\tÓëó÷øåííûé ðåæèì Ex" +msgstr "-E\t\t\tÇàïóñê ïðîãðàììû â óëó÷øåííîì Ex-ðåæèìå" +# :!~ Restorer msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" -msgstr "-s\t\t\tÒèõèé (ïàêåòíûé) ðåæèì (òîëüêî äëÿ \"ex\")" +msgstr "-s\t\t\tÇàïóñê â ðåæèìå ïàêåòíîé îáðàáîòêè (äëÿ \"Ex-ðåæèìà\")" +# :!~ Restorer msgid "-d\t\t\tDiff mode (like \"vimdiff\")" -msgstr "-d\t\t\tÐåæèì îòëè÷èé (êàê \"vimdiff\")" +msgstr "-d\t\t\tÇàïóñê â ðåæèìå ñðàâíåíèÿ ðàçëè÷èé (êàê \"vimdiff\")" +# :!~ Restorer msgid "-y\t\t\tEasy mode (like \"evim\", modeless)" -msgstr "-y\t\t\tÏðîñòîé ðåæèì (êàê \"evim\", áåçðåæèìíûé)" +msgstr "-y\t\t\tÐàáîòà â óïðîù¸ííîì âàðèàíòå (êàê \"evim\", áåçðåæèìíûé)" +# :!~ Restorer msgid "-R\t\t\tReadonly mode (like \"view\")" -msgstr "-R\t\t\tÒîëüêî äëÿ ÷òåíèÿ (êàê \"view\")" +msgstr "-R\t\t\tÐàáîòà â âàðèàíòå òîëüêî äëÿ ÷òåíèÿ (êàê \"view\")" +# :!~ Restorer msgid "-Z\t\t\tRestricted mode (like \"rvim\")" -msgstr "-Z\t\t\tÎãðàíè÷åííûé ðåæèì (êàê \"rvim\")" +msgstr "-Z\t\t\tÐàáîòà â âàðèàíòå ñ îãðàíè÷åíèÿìè (êàê \"rvim\")" +# :!~ Restorer msgid "-m\t\t\tModifications (writing files) not allowed" -msgstr "-m\t\t\tÁåç âîçìîæíîñòè ñîõðàíåíèÿ èçìåíåíèé (çàïèñè ôàéëîâ)" +msgstr "-m\t\t\tÐàáîòà áåç âîçìîæíîñòè ñîõðàíåíèÿ èçìåíåíèé" +# :!~ Restorer msgid "-M\t\t\tModifications in text not allowed" -msgstr "-M\t\t\tÁåç âîçìîæíîñòè âíåñåíèÿ èçìåíåíèé â òåêñò" +msgstr "-M\t\t\tÐàáîòà áåç âîçìîæíîñòè âíåñåíèÿ èçìåíåíèé â òåêñò" +# :!~ Restorer msgid "-b\t\t\tBinary mode" -msgstr "-b\t\t\tÄâîè÷íûé ðåæèì" +msgstr "-b\t\t\tÇàïóñê ïðîãðàììû â ðåæèìå ðàáîòû ñ äâîè÷íûìè äàííûìè" +# :!~ Restorer msgid "-l\t\t\tLisp mode" -msgstr "-l\t\t\tÐåæèì Lisp" +msgstr "-l\t\t\tÇàïóñê ïðîãðàììû â ðåæèìå Lisp" +# :!~ Restorer msgid "-C\t\t\tCompatible with Vi: 'compatible'" -msgstr "-C\t\t\tÐåæèì ñîâìåñòèìîñòè ñ Vi: 'compatible'" +msgstr "-C\t\t\tÐàáîòà â âàðèàíòå ñîâìåñòèìîñòè ñ ðåäàêòîðîì Vi" +# :!~ Restorer msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" -msgstr "-N\t\t\tÐåæèì íåïîëíîé ñîâìåñòèìîñòè ñ Vi: 'nocompatible'" +msgstr "-N\t\t\tÐàáîòà â âàðèàíòå íåïîëíîé ñîâìåñòèìîñòè ñ ðåäàêòîðîì Vi" -# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ +# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ (Ñ. Àë¸øèí) +# :!~ Restorer msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]" msgstr "" -"-V[N][ôàéë]\t\tÂûâîäèòü äîïîëíèòåëüíûå ñîîáùåíèÿ\n" -"\t\t\t\t[óðîâåíü N] [çàïèñûâàòü â ôàéë]" +"-V[N][ôàéë]\t\tÓñòàíîâêà äåòàëèçàöèè âûâîäèìûõ ñîîáùåíèé\n" +"\t\t\t [óêàçàâ òðåáóåìûé óðîâåíü N] [è ôàéë äëÿ çàïèñè]" +# :!~ Restorer msgid "-D\t\t\tDebugging mode" -msgstr "-D\t\t\tÐåæèì îòëàäêè" +msgstr "-D\t\t\tÇàïóñê ïðîãðàììû â ðåæèìå îòëàäêè" +# :!~ Restorer msgid "-n\t\t\tNo swap file, use memory only" -msgstr "-n\t\t\tÁåç ñâîï-ôàéëà, èñïîëüçóåòñÿ òîëüêî ïàìÿòü" +msgstr "-n\t\t\tÐàáîòà áåç ñîçäàíèÿ ôàéëà ïîäêà÷êè íà ÃÌÄ èëè ÆÌÄ" +# :!~ Restorer msgid "-r\t\t\tList swap files and exit" -msgstr "-r\t\t\tÂûâåñòè ñïèñîê ñâîï-ôàéëîâ è çàâåðøèòü ðàáîòó" +msgstr "-r\t\t\tÂûâîä ïåðå÷íÿ ôàéëîâ ïîäêà÷êè è çàâåðøåíèå ðàáîòû" +# #Restorer: äîáàâèë åù¸ îäèí \t, ÷òîáû âûãëÿäåëî åäèíîîáðàçíî +# :!~ Restorer msgid "-r (with file name)\tRecover crashed session" -msgstr "-r (ñ èìåíåì ôàéëà)\tÂîññòàíîâèòü àâàðèéíî çàâåðø¸ííûé ñåàíñ" +msgstr "-r <ôàéë>\t\tÂîññòàíîâëåíèå àâàðèéíî çàâåðø¸ííîãî ñåàíñ" +# ~!: earlier msgid "-L\t\t\tSame as -r" -msgstr "-L\t\t\tÒî æå, ÷òî è -r" +msgstr "-L\t\t\tÒî æå, ÷òî è àðãóìåíò êîìàíäíîé ñòðîêè -r" +# #Restorer: ýòî òîëüêî äëÿ Amiga-like +# :!~ Restorer msgid "-f\t\t\tDon't use newcli to open window" -msgstr "-f\t\t\tÍå èñïîëüçîâàòü newcli äëÿ îòêðûòèÿ îêíà" +msgstr "-f\t\t\tÍå èñïîëüçîâàòü êîìàíäó newcli äëÿ îòêðûòèÿ îêíà" +# #Restorer: ýòî òîëüêî äëÿ Amiga-like +# #Restorer: óáðàë îäèí \t, ÷òîáû âûãëÿäåëî åäèíîîáðàçíî +# :!~ Restorer msgid "-dev \t\tUse for I/O" -msgstr "-dev <óñòðîéñòâî>\t\tÈñïîëüçîâàòü äëÿ I/O óêàçàííîå <óñòðîéñòâî>" +msgstr "-dev <óñòðîéñòâî>\tÈñïîëüçîâàòü äëÿ ââîäà-âûâîäà óêàçàííîå <óñòðîéñòâî>" +# :!~ Restorer msgid "-A\t\t\tStart in Arabic mode" -msgstr "-A\t\t\tÇàïóñê ñ ïîääåðæêîé àðàáñêîãî ÿçûêà" +msgstr "-A\t\t\tÇàïóñê ïðîãðàììû ñ ïîääåðæêîé àðàáñêîé ïèñüìåííîñòè" +# :!~ Restorer msgid "-H\t\t\tStart in Hebrew mode" -msgstr "-H\t\t\tÇàïóñê ñ ïîääåðæêîé èâðèòà" +msgstr "-H\t\t\tÇàïóñê ïðîãðàììû ñ ïîääåðæêîé åâðåéñêîé ïèñüìåííîñòè" +# ~!: earlier msgid "-T \tSet terminal type to " msgstr "-T <òåðìèíàë>\tÍàçíà÷èòü óêàçàííûé òèï <òåðìèíàëà>" +# :!~ Restorer msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" -msgstr "--not-a-term\t\tÍå ïðåäóïðåæäàòü ïðè ââîäå-âûâîäå íå â òåðìèíàë" +msgstr "--not-a-term\t\tÍå ñîîáùàòü îá îòñóòñòâèè òåðìèíàëà äëÿ ââîäà-âûâîäà" +# :!~ Restorer msgid "--gui-dialog-file {fname} For testing: write dialog text" -msgstr "--gui-dialog-file {ôàéë} Äëÿ òåñòèðîâàíèÿ: ñîõðàíèòü òåêñò äèàëîãîâ" +msgstr "--gui-dialog-file {ôàéë} Çàïèñü ñîîáùåíèé äèàëîãîâûõ îêîí. Äëÿ îòëàäêè" +# :!~ Restorer msgid "--ttyfail\t\tExit if input or output is not a terminal" -msgstr "--ttyfail\t\tÂûéòè ïðè ââîäå-âûâîäå íå â òåðìèíàë" +msgstr "--ttyfail\t\tÇàâåðøåíèå ðàáîòû ïðè îòñóòñòâèè òåðìèíàëà ââîäà-âûâîäà" +# :!~ Restorer msgid "-u \t\tUse instead of any .vimrc" -msgstr "-u \t\tÈñïîëüçîâàòü âìåñòî ëþáûõ ôàéëîâ .vimrc" +msgstr "-u <ôàéë>\t\tÈñïîëüçîâàíèå âìåñòî ôàéëîâ .vimrc óêàçàííîãî <ôàéëà>" +# :!~ Restorer msgid "-U \t\tUse instead of any .gvimrc" -msgstr "-U \t\tÈñïîëüçîâàòü âìåñòî ëþáûõ ôàéëîâ .gvimrc" +msgstr "-U <ôàéë>\t\tÈñïîëüçîâàíèå âìåñòî ôàéëîâ .gvimrc óêàçàííîãî <ôàéëà>" +# :!~ Restorer msgid "--noplugin\t\tDon't load plugin scripts" -msgstr "--noplugin\t\tÍå çàãðóæàòü ñöåíàðèè ìîäóëåé" +msgstr "--noplugin\t\tÇàïóñê ïðîãðàììû áåç âíåøíèõ ïîäêëþ÷àåìûõ ìîäóëåé" -# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ +# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ (Ñ. Àë¸øèí) +# :!~ Restorer msgid "-p[N]\t\tOpen N tab pages (default: one for each file)" msgstr "" -"-p[N]\t\tÎòêðûòü N âêëàäîê (ïî óìîë÷àíèþ ïî îäíîé\n" -"\t\t\t\tíà êàæäûé ôàéë)" +"-p[N]\t\tÑîçäàòü âêëàäêè äëÿ N ôàéëîâ (ïî óìîë÷àíèþ ñîçäà¸òñÿ\n" +"\t\t\t ïî îäíîé âêëàäêå íà êàæäûé ôàéë)" -# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ +# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ (Ñ. Àë¸øèí) +# :!~ Restorer msgid "-o[N]\t\tOpen N windows (default: one for each file)" msgstr "" -"-o[N]\t\tÎòêðûòü N îêîí (ïî óìîë÷àíèþ ïî îäíîìó\n" -"\t\t\t\tíà êàæäûé ôàéë)" +"-o[N]\t\tÑîçäàòü îêíà äëÿ N ôàéëîâ (ïî óìîë÷àíèþ ñîçäà¸òñÿ\n" +"\t\t\t ïî îäíîìó îêíó íà êàæäûé ôàéë)" +# :!~ Restorer msgid "-O[N]\t\tLike -o but split vertically" -msgstr "-O[N]\t\tÒî æå, ÷òî è -o, íî ñ âåðòèêàëüíûì ðàçäåëåíèåì îêîí" +msgstr "-O[N]\t\tÒî æå, ÷òî è -o, íî ñ âåðòèêàëüíûì ðàñïîëîæåíèåì îêîí" +# :!~ Restorer msgid "+\t\t\tStart at end of file" -msgstr "+\t\t\tÍà÷àòü ðåäàêòèðîâàíèå â êîíöå ôàéëà" +msgstr "+\t\t\tÓñòàíîâêà êàðåòêè íà ïîñëåäíåé ñòðîêå îòêðûòîãî ôàéëà" +# :!~ Restorer msgid "+\t\tStart at line " -msgstr "+\t\tÍà÷àòü ðåäàêòèðîâàíèå â ñòðîêå ñ íîìåðîì " +msgstr "+<íîìåð>\t\tÓñòàíîâêà êàðåòêè íà <íîìåð> ñòðîêè îòêðûòîãî ôàéëà" +# :!~ Restorer msgid "--cmd \tExecute before loading any vimrc file" -msgstr "--cmd <êîìàíäà>\tÂûïîëíèòü <êîìàíäó> ïåðåä çàãðóçêîé ôàéëà vimrc" +msgstr "--cmd <êîìàíäà>\tÂûïîëíåíèå <êîìàíäû> ïåðåä îáðàáîòêîé ôàéëà .vimrc" +# ~!: earlier msgid "-c \t\tExecute after loading the first file" -msgstr "-c <êîìàíäà>\t\tÂûïîëíèòü <êîìàíäó> ïîñëå çàãðóçêè ïåðâîãî ôàéëà" +msgstr "-c <êîìàíäà>\t\tÂûïîëíåíèå <êîìàíäû> ïîñëå çàãðóçêè ïåðâîãî ôàéëà" -# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ +# :!~ Restorer msgid "-S \t\tSource file after loading the first file" -msgstr "" -"-S <ñåàíñ>\t\tÏðî÷èòàòü ñöåíàðèé <ñåàíñà> ïîñëå çàãðóçêè\n" -"\t\t\t\tïåðâîãî ôàéëà" +msgstr "-S <ñåàíñ>\t\tÂûïîëíåíèå ôàéëà <ñåàíñà> ïîñëå çàãðóçêè ïåðâîãî ôàéëà" -# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ +# :!~ Restorer msgid "-s \tRead Normal mode commands from file " -msgstr "" -"-s <ñöåíàðèé>\tÏðî÷èòàòü êîìàíäû Îáû÷íîãî ðåæèìà èç\n" -"\t\t\t\tôàéëà <ñöåíàðèÿ>" +msgstr "-s <ñöåíàðèé>\tÑ÷èòàòü êîìàíäû ðåæèìà êîìàíä èç ôàéëà <ñöåíàðèÿ>" +# :!~ Restorer msgid "-w \tAppend all typed commands to file " -msgstr "-w <ñöåíàðèé>\tÄîáàâëÿòü âñå ââåä¸ííûå êîìàíäû â ôàéë <ñöåíàðèÿ>" +msgstr "-w <ïðîòîêîë>\tÄîáàâëåíèå âñåõ ââåä¸ííûõ êîìàíä â ôàéë <ïðîòîêîëà>" +# :!~ Restorer msgid "-W \tWrite all typed commands to file " -msgstr "-W <ñöåíàðèé>\tÇàïèñàòü âñå ââåä¸ííûå êîìàíäû â ôàéë <ñöåíàðèÿ>" +msgstr "-W <ïðîòîêîë>\tÇàïèñü âñåõ ââåä¸ííûõ êîìàíä â ôàéë <ïðîòîêîëà>" +# :!~ Restorer msgid "-x\t\t\tEdit encrypted files" -msgstr "-x\t\t\tÐåäàêòèðîâàíèå çàøèôðîâàííûõ ôàéëîâ" +msgstr "-x\t\t\tÈñïîëüçîâàòü øèôðîâàíèå ïðè ñ÷èòûâàíèè è çàïèñè ôàéëîâ" +# :!~ Restorer msgid "-display \tConnect Vim to this particular X-server" -msgstr "-display <äèñïëåé>\tÑîåäèíèòü Vim ñ óêàçàííûì X-ñåðâåðîì" +msgstr "" +"-display \tÂûïîëíèòü ïîäêëþ÷åíèå ïðîãðàììû ê óêàçàííîìó X-ñåðâåðó" +# :!~ Restorer msgid "-X\t\t\tDo not connect to X server" -msgstr "-X\t\t\tÍå âûïîëíÿòü ñîåäèíåíèå ñ X-ñåðâåðîì" +msgstr "-X\t\t\tÇàïóñê ïðîãðàììû áåç ïîäêëþ÷åíèÿ ê X-ñåðâåðó" +# :!~ Restorer msgid "--remote \tEdit in a Vim server if possible" -msgstr "--remote <ôàéëû>\tÏî âîçìîæíîñòè ðåäàêòèðîâàòü <ôàéëû> íà ñåðâåðå Vim" +msgstr "--remote <ôàéëû>\tÐåäàêòèðîâàíèå <ôàéëîâ> íà Vim-ñåðâåðå, åñëè äîñòóïåí" +# :!~ Restorer msgid "--remote-silent Same, don't complain if there is no server" -msgstr "--remote-silent <ôàéëû> Òî æå, íî áåç æàëîá íà îòñóòñòâèå ñåðâåðà" +msgstr "--remote-silent <ôàéëû> Òî æå, íî áåç ñîîáùåíèé ïðè îòñóòñòâèè ñåðâåðà" -msgid "" -"--remote-wait As --remote but wait for files to have been edited" +# #Restorer: äîáàâèë ïàðó ïðîáåëüíûõ ñèìâîëîâ, äàáû ïîäðàâíÿòü ñîîáùåíèå +# ~!: earlier +msgid "--remote-wait As --remote but wait for files to have been edited" msgstr "" -"--remote-wait <ôàéëû> Òî æå, ÷òî è --remote, íî ñ îæèäàíèåì çàâåðøåíèÿ" +"--remote-wait <ôàéëû> Òî æå, ÷òî è --remote, íî ñ îæèäàíèåì çàâåðøåíèÿ" -msgid "" -"--remote-wait-silent Same, don't complain if there is no server" +# :!~ Restorer +msgid "--remote-wait-silent Same, don't complain if there is no server" msgstr "" -"--remote-wait-silent <ôàéëû> Òî æå, íî áåç æàëîá íà îòñóòñòâèå ñåðâåðà" +"--remote-wait-silent <ôàéëû> Òî æå, íî áåç ñîîáùåíèé ïðè îòñóòñòâèè ñåðâåðà" +# #Restorer: äîáàâèë ïàðó ïðîáåëüíûõ ñèìâîëîâ, äàáû ïîäðàâíÿòü ñîîáùåíèå +# :!~ Restorer msgid "" "--remote-tab[-wait][-silent] As --remote but use tab page per file" msgstr "" -"--remote-tab[-wait][-silent] <ôàéëû> Òî æå, ÷òî è --remote, íî ñ âêëàäêàìè" +"--remote-tab[-wait][-silent] <ôàéëû> Òî æå, íî âêëàäêè äëÿ êàæäîãî ôàéëà" +# :!~ Restorer msgid "--remote-send \tSend to a Vim server and exit" -msgstr "--remote-send <êíîïêè>\tÎòïðàâèòü <êíîïêè> íà ñåðâåð Vim è âûéòè" +msgstr "--remote-send <êëàâèøè>\tÎòïðàâêà íà Vim-ñåðâåð êîäîâ <êëàâèø> è âûõîä" +# :!~ Restorer msgid "--remote-expr \tEvaluate in a Vim server and print result" -msgstr "--remote-expr <âûðàæ>\tÂû÷èñëèòü <âûðàæ> íà ñåðâåðå Vim è íàïå÷àòàòü" +msgstr "--remote-expr <âûðàæ>\tÂû÷èñëåíèå íà Vim-ñåðâåðå ñ âûâîäîì ðåçóëüòàòà" +# :!~ Restorer msgid "--serverlist\t\tList available Vim server names and exit" -msgstr "--serverlist\t\tÏîêàçàòü ñïèñîê ñåðâåðîâ Vim è çàâåðøèòü ðàáîòó" +msgstr "--serverlist\t\tÂûâîä äîñòóïíûõ Vim-ñåðâåðîâ è çàâåðøåíèå ðàáîòû" +# :!~ Restorer msgid "--servername \tSend to/become the Vim server " -msgstr "" -"--servername <èìÿ>\tÎòïðàâèòü íà ñåðâåð èëè ñòàòü ñåðâåðîì Vim\n" -"\t\t\t\tñ óêàçàííûì <èìåíåì>" +msgstr "--servername <íàçâ>\tÏîäêëþ÷åíèå ïðè íàëè÷èè, ëèáî ñòàòü ñåðâåðîì <íàçâ>" +# :!~ Restorer msgid "--startuptime \tWrite startup timing messages to " -msgstr "--startuptime <ôàéë>\tÇàïèñàòü âðåìåííûå ìåòêè çàïóñêà â <ôàéë>" +msgstr "--startuptime <ôàéë>\tÇàïèñàòü õðîíîìåòðàæ çàïóñêà ïðîãðàììû â <ôàéë>" +# #Restorer: äîáàâèë îäèí \t ÷òîáû âûãëÿäåëî åäèíîîáðàçíî +# :!~ Restorer msgid "--log \t\tStart logging to early" -msgstr "" -"--log <ôàéë>\t\tÍà÷àòü çàïèñü æóðíàëà â <ôàéë> íà ðàííåì ýòàïå\n" -"\t\t\t\tèíèöèàëèçàöèè" +msgstr "--log <ôàéë>\t\tÇàïèñü ïðîòîêîëà ðàáîòû ñ ýòàïà èíèöèàëèçàöèè ïðîãðàììû" +# :!~ Restorer msgid "-i \t\tUse instead of .viminfo" -msgstr "-i \t\tÈñïîëüçîâàòü âìåñòî .viminfo ôàéë " +msgstr "-i <ôàéë>\t\tÈñïîëüçîâàíèå âìåñòî ôàéëà .viminfo óêàçàííîãî <ôàéëà>" +# \n\t\t.. äëÿ óìåùåíèÿ â 80 ñòîëáöîâ (Ñ. Àë¸øèí) +# #Restorer: óáðàë îäèí \t è äîáàâèë ïðîáåëû, ÷òîáû âûãëÿäåëî åäèíîîáðàçíî +# :!~ Restorer msgid "--clean\t\t'nocompatible', Vim defaults, no plugins, no viminfo" msgstr "" -"--clean\t\tÍåïîëíàÿ ñîâìåñòèìîñòü ñ Vi, Vim ïî óìîë÷àíèþ,\n" -"\t\t\t\táåç ìîäóëåé, áåç viminfo" +"--clean\t\tÇàïóñê ïðîãðàììû ñ íàñòðîéêàìè ïî óìîë÷àíèþ, â âàðèàíòå\n" +"\t\t\t ÷àñòè÷íîé ñîâìåñòèìîñòè ñ ðåäàêòîðîì Vi,\n" +"\t\t\t áåç ïîäêëþ÷àåìûõ ìîäóëåé è ôàéëà .viminfo" +# ~!: earlier msgid "-h or --help\tPrint Help (this message) and exit" -msgstr "-h èëè --help\tÂûâåñòè ñïðàâêó (ýòî ñîîáùåíèå) è çàâåðøèòü ðàáîòó" +msgstr "-h èëè --help\tÂûâîä ñïðàâêè (ýòî ñîîáùåíèå) è çàâåðøåíèå ðàáîòû" +# :!~ Restorer msgid "--version\t\tPrint version information and exit" -msgstr "--version\t\tÂûâåñòè èíôîðìàöèþ î âåðñèè Vim è çàâåðøèòü ðàáîòó" +msgstr "--version\t\tÂûâîä èíôîðìàöèè î âåðñèè ïðîãðàììû è çàâåðøåíèå ðàáîòû" +# :!~ Restorer msgid "" "\n" "Arguments recognised by gvim (Motif version):\n" msgstr "" "\n" -"Ïàðàìåòðû äëÿ gvim (âåðñèÿ Motif):\n" +"Àðãóìåíòû çàïóñêà ïðîãðàììû gVim (âàðèàíò äëÿ Motif):\n" +# :!~ Restorer msgid "-display \tRun Vim on " -msgstr "-display <äèñïëåé>\tÇàïóñòèòü Vim íà óêàçàííîì <äèñïëåå>" - -msgid "-iconic\t\tStart Vim iconified" -msgstr "-iconic\t\tÇàïóñòèòü Vim â ñâ¸ðíóòîì âèäå" - -msgid "-background \tUse for the background (also: -bg)" -msgstr "-background <öâåò>\tÈñïîëüçîâàòü óêàçàííûé <öâåò> äëÿ ôîíà (èëè -bg)" - -msgid "-foreground \tUse for normal text (also: -fg)" -msgstr "-foreground <öâåò>\tÈñïîëüçîâàòü <öâåò> äëÿ îáû÷íîãî òåêñòà (èëè -fg)" - -msgid "-font \t\tUse for normal text (also: -fn)" -msgstr "-font <øðèôò>\tÈñïîëüçîâàòü <øðèôò> äëÿ îáû÷íîãî òåêñòà (èëè -fn)" - -msgid "-boldfont \tUse for bold text" -msgstr "-boldfont <øðèôò>\tÈñïîëüçîâàòü <øðèôò> äëÿ æèðíîãî òåêñòà" - -msgid "-italicfont \tUse for italic text" -msgstr "-italicfont <øðèôò>\tÈñïîëüçîâàòü <øðèôò> äëÿ íàêëîííîãî òåêñòà" - -msgid "-geometry \tUse for initial geometry (also: -geom)" -msgstr "-geometry <ãåîìåòðèÿ>\tÈñïîëüçîâàòü íà÷àëüíóþ <ãåîìåòðèþ> (èëè -geom)" - -msgid "-borderwidth \tUse a border width of (also: -bw)" -msgstr "-borderwidth <øèðèíà>\tÈñïîëüçîâàòü <øèðèíó> áîðäþðà (èëè -bw)" - -msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" msgstr "" -"-scrollbarwidth <øèðèíà> Èñïîëüçîâàòü øèðèíó ïîëîñû ïðîêðóòêè (èëè -sw)" +"-display \tÇàïóñê ïðîãðàììû ñ ïîäêëþ÷åíèåì ê óêàçàííîìó X-ñåðâåðó" +# :!~ Restorer +msgid "-iconic\t\tStart Vim iconified" +msgstr "-iconic\t\tÇàïóñê ïðîãðàììû â ñâ¸ðíóòîì âèäå" + +# :!~ Restorer +msgid "-background \tUse for the background (also: -bg)" +msgstr "-background <öâåò>\tÍàçíà÷èòü óêàçàííûé <öâåò> öâåòîì ôîíà (èëè -bg)" + +# :!~ Restorer +msgid "-foreground \tUse for normal text (also: -fg)" +msgstr "-foreground <öâåò>\tÍàçíà÷èòü óêàçàííûé <öâåò> öâåòîì òåêñòà (èëè -fg)" + +# #Restorer: óáðàë îäèí \t, ÷òîáû âûãëÿäåëî åäèíîîáðàçíî +# :!~ Restorer +msgid "-font \t\tUse for normal text (also: -fn)" +msgstr "-font <øðèôò>\tÍàçíà÷èòü óêàçàííûé <øðèôò> äëÿ îáû÷íîãî òåêñòà ( -fn)" + +# :!~ Restorer +msgid "-boldfont \tUse for bold text" +msgstr "-boldfont <øðèôò>\tÍàçíà÷èòü óêàçàííûé <øðèôò> äëÿ æèðíîãî òåêñòà" + +# :!~ Restorer +msgid "-italicfont \tUse for italic text" +msgstr "-italicfont <øðèôò>\tÍàçíà÷èòü óêàçàííûé <øðèôò> äëÿ íàêëîííîãî òåêñòà" + +# :!~ Restorer +msgid "-geometry \tUse for initial geometry (also: -geom)" +msgstr "" +"-geometry <ðàçìåð>\tÍàçíà÷èòü íà÷àëüíûå ðàçìåð è ïîçèöèþ îêíà (èëè -geom)" + +# :!~ Restorer +msgid "-borderwidth \tUse a border width of (also: -bw)" +msgstr "-borderwidth <øèðèíà>\tÍàçíà÷èòü <øèðèíó> ðàìêè îêíà (èëè -bw)" + +# :!~ Restorer +msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" +msgstr "-scrollbarwidth <øèðèíà> Íàçíà÷èòü <øèðèíó> ïîëîñû ïðîêðóòêè (èëè -sw)" + +# ~!: earlier msgid "-reverse\t\tUse reverse video (also: -rv)" -msgstr "-reverse\t\tÈñïîëüçîâàòü èíâåðñíûé âèäåîðåæèì (èëè -rv)" +msgstr "-reverse\t\tÈñïîëüçîâàíèå èíâåðñíîãî âèäåîðåæèìà (èëè -rv)" +# ~!: earlier msgid "+reverse\t\tDon't use reverse video (also: +rv)" msgstr "+reverse\t\tÍå èñïîëüçîâàòü èíâåðñíûé âèäåîðåæèì (èëè +rv)" +# ~!: earlier msgid "-xrm \tSet the specified resource" -msgstr "-xrm <ðåñóðñ>\tÓñòàíîâèòü óêàçàííûé <ðåñóðñ>" +msgstr "-xrm <ðåñóðñ>\tÓñòàíîâêà óêàçàííîãî <ðåñóðñà>" +# :!~ Restorer msgid "" "\n" "Arguments recognised by gvim (GTK+ version):\n" msgstr "" "\n" -"Ïàðàìåòðû äëÿ gvim (âåðñèÿ GTK+):\n" +"Àðãóìåíòû çàïóñêà ïðîãðàììû gVim (âàðèàíò äëÿ GTK+):\n" +# :!~ Restorer msgid "-display \tRun Vim on (also: --display)" msgstr "" -"-display <äèñïëåé>\tÇàïóñòèòü Vim íà óêàçàííîì <äèñïëåå> (èëè --display)" +"-display \tÏîäêëþ÷åíèå ïðîãðàììû ê X-ñåðâåðó <ñåðâåð> (--display)" +# :!~ Restorer msgid "--role \tSet a unique role to identify the main window" -msgstr "" -"--role <ðîëü>\tÓñòàíîâèòü óíèêàëüíóþ <ðîëü>\n" -"\t\t\t\täëÿ èäåíòèôèêàöèè ãëàâíîãî îêíà" +msgstr "--role <ðîëü>\tÇàäàòü óíèêàëüíóþ <ðîëü> ãëàâíîãî îêíà äëÿ èäåíòèôèêàöèè" +# :!~ Restorer msgid "--socketid \tOpen Vim inside another GTK widget" -msgstr "--socketid \tÎòêðûòü Vim âíóòðè äðóãîãî êîìïîíåíòà GTK" +msgstr "--socketid \tÎòêðûòü ïðîãðàììó âíóòðè äðóãîãî êîìïîíåíòà GTK" +# :!~ Restorer msgid "--echo-wid\t\tMake gvim echo the Window ID on stdout" -msgstr "--echo-wid\t\tÂûâåñòè Window ID äëÿ gvim íà ñòàíäàðòíûé ïîòîê âûâîäà" +msgstr "--echo-wid\t\tÏîêàç ÈÄ îêíà ïðîãðàììû gVim â ñòàíäàðòíîì âûâîäå" +# :!~ Restorer msgid "-P \tOpen Vim inside parent application" -msgstr "-P <çàãîëîâîê ðîäèòåëÿ>\tÎòêðûòü Vim â ðîäèòåëüñêîì ïðèëîæåíèè" +msgstr "-P <çàãîëîâîê îêíà>\tÎòêðûòü ïðîãðàììó â ìíîãîäîêóìåíòíîì ïðèëîæåíèè" +# :!~ Restorer msgid "--windowid \tOpen Vim inside another win32 widget" -msgstr "--windowid \tÎòêðûòü Vim âíóòðè äðóãîãî êîìïîíåíòà win32" +msgstr "--windowid \tÎòêðûòü ïðîãðàììó âíóòðè äðóãîãî êîìïîíåíòà win32" +# #Restorer: îòîáðàæàåòñÿ ïðè 'verbose'>0 +# :!~ Restorer +msgid "Seen modifyOtherKeys: true\n" +msgstr "Äëÿ òåðìèíàëà óñòàíîâëåí ðåæèì modifyOtherKeys\n" + +# :!~ Restorer +msgid "Unknown" +msgstr "íå îïðåäåëåíî" + +# :!~ Restorer +msgid "Off" +msgstr "îòêëþ÷åí" + +# :!~ Restorer +msgid "On" +msgstr "âêëþ÷åí" + +# :!~ Restorer +msgid "Disabled" +msgstr "íåäîñòóïíî" + +# :!~ Restorer +msgid "Cleared" +msgstr "ñáðîøåíî" + +# #Restorer: îòîáðàæàåòñÿ ïðè 'verbose'>0 +# :!~ Restorer +#, c-format +msgid "modifyOtherKeys detected: %s\n" +msgstr "Ñîñòîÿíèå ðåæèìà modifyOtherKeys: %s\n" + +# :!~ Restorer +#, c-format +msgid "Kitty keyboard protocol: %s\n" +msgstr "Ñîñòîÿíèå ïðîòîêîëà «kitty» îáìåíà äàííûìè ñ êëàâèàòóðîé: %s\n" + +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:abbreviata` +# :!~ Restorer msgid "No abbreviation found" -msgstr "Ñîêðàùåíèÿ íå íàéäåíû" +msgstr "Íå íàéäåíû ñîêðàùåíèÿ" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:map` +# :!~ Restorer msgid "No mapping found" -msgstr "Ïðèâÿçêè íå íàéäåíû" +msgstr "Íå íàéäåíû êëàâèàòóðíûå êîìàíäû" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:marks` +# :!~ Restorer msgid "No marks set" -msgstr "Íåò óñòàíîâëåííûõ îòìåòîê" +msgstr "Çàêëàäêè íå óñòàíîâëåíû" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:marks` +# :!~ Restorer msgid "" "\n" "mark line col file/text" msgstr "" "\n" -"îòìåò ñòð êîë ôàéë/òåêñò" +"Çàêë. Ñòð. Êîë. Ôàéë èëè òåêñò" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:jumps` +# :!~ Restorer msgid "" "\n" " jump line col file/text" msgstr "" "\n" -"ïðûæîê ñòð êîë ôàéë/òåêñò" +"Ïåðåõ. Ñòð. Êîë. Ôàéë èëè òåêñò" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:changes` +# :!~ Restorer msgid "" "\n" "change line col text" msgstr "" "\n" -"èçìåí. ñòð êîë òåêñò" +" Èçì. Ñòð. Êîë. Òåêñò" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:recover` +# :!~ Restorer msgid "Enter number of swap file to use (0 to quit): " msgstr "" -"Ââåäèòå íîìåð ñâîï-ôàéëà, êîòîðûé ñëåäóåò èñïîëüçîâàòü (0 äëÿ âûõîäà): " +"Óêàæèòå íîìåð ôàéëà ïîäêà÷êè, êîòîðûé ñëåäóåò èñïîëüçîâàòü (0 äëÿ îòìåíû): " +# :!~ Restorer msgid "Unable to read block 0 from " -msgstr "Íåâîçìîæíî ïðî÷èòàòü áëîê 0 èç " +msgstr "Íå óäàëîñü ñ÷èòàòü áëîê íîìåð 0 èç " +# :!~ Restorer msgid "" "\n" "Maybe no changes were made or Vim did not update the swap file." msgstr "" "\n" -"Íåò èçìåíåíèé, èëè Vim íå ñìîã îáíîâèòü ñâîï-ôàéë." +"Âîçìîæíî, íå áûëî èçìåíåíèé èëè ïðîãðàììå Vim íå óäàëîñü îáíîâèòü ôàéë ïîäêà÷êè" +# :!~ Restorer msgid " cannot be used with this version of Vim.\n" -msgstr " íåëüçÿ èñïîëüçîâàòü â äàííîé âåðñèè Vim.\n" +msgstr " íåñîâìåñòèì ñ äàííîé âåðñèåé ïðîãðàììû Vim.\n" +# :!~ Restorer msgid "Use Vim version 3.0.\n" -msgstr "Èñïîëüçóéòå Vim âåðñèè 3.0.\n" +msgstr "Äëÿ âîññòàíîâëåíèÿ ýòîãî ôàéëà, èñïîëüçóéòå ïðîãðàììó Vim âåðñèè 3.0\n" +# :!~ Restorer msgid " cannot be used on this computer.\n" -msgstr " íåëüçÿ èñïîëüçîâàòü íà ýòîì êîìïüþòåðå.\n" +msgstr " íåñîâìåñòèì ñ ïðîãðàììíî-àïïàðàòíîé àðõèòåêòóðîé äàííîãî êîìïüþòåðà.\n" +# ~!: earlier msgid "The file was created on " -msgstr "Ôàéë áûë ñîçäàí " +msgstr "Ýòîò ôàéë áûë ñîçäàí íà " +# ~!: earlier msgid "" ",\n" "or the file has been damaged." msgstr "" -",\n" -"ëèáî ôàéë áûë ïîâðåæä¸í." +", \n" +"ëèáî îí áûë ïîâðåæä¸í" +# ~!: earlier msgid " has been damaged (page size is smaller than minimum value).\n" -msgstr " áûë ïîâðåæä¸í (ðàçìåð ñòðàíèöû ìåíüøå ìèíèìàëüíîãî çíà÷åíèÿ).\n" +msgstr " áûë ïîâðåæä¸í (ðàçìåð ñòðàíèöû ìåíüøå ìèíèìàëüíîãî çíà÷åíèÿ)\n" +# :!~ Restorer #, c-format msgid "Using swap file \"%s\"" -msgstr "Èñïîëüçóåòñÿ ñâîï-ôàéë \"%s\"" +msgstr "Èñïîëüçóåòñÿ ôàéë ïîäêà÷êè \"%s\"" +# ~!: earlier #, c-format msgid "Original file \"%s\"" msgstr "Èñõîäíûé ôàéë \"%s\"" +# :!~ Restorer #, c-format msgid "Swap file is encrypted: \"%s\"" -msgstr "Ñâîï-ôàéë çàøèôðîâàí: \"%s\"" +msgstr "Øèôðîâàííûé ôàéë ïîäêà÷êè \"%s\"" +# :!~ Restorer msgid "" "\n" "If you entered a new crypt key but did not write the text file," msgstr "" "\n" -"Åñëè âû ââåëè íîâûé ïàðîëü äëÿ øèôðîâàíèÿ, íî íå çàïèñàëè òåêñòîâûé ôàéë," +"Åñëè ïîñëå èçìåíåíèÿ ïàðîëÿ äëÿ øèôðîâàíèÿ, òåêñòîâûé ôàéë íå ñîõðàíÿëè," +# :!~ Restorer msgid "" "\n" "enter the new crypt key." msgstr "" "\n" -"òî ââåäèòå íîâûé ïàðîëü äëÿ øèôðîâàíèÿ." +"òî íàáåðèòå ýòîò íîâûé ïàðîëü." -# Ïåðåâîä ñîîáùåíèÿ ðàçäåë¸í íà äâå ÷àñòè, ÷àñòü ïåðâàÿ +# Ïåðåâîä ñîîáùåíèÿ ðàçäåë¸í íà äâå ÷àñòè, ÷àñòü ïåðâàÿ (Ñ. Àë¸øèí) +# :!~ Restorer msgid "" "\n" "If you wrote the text file after changing the crypt key press enter" msgstr "" "\n" -"Åñëè âû çàïèñàëè òåêñòîâûé ôàéë ïîñëå èçìåíåíèÿ ïàðîëÿ øèôðîâàíèÿ, òî íàæìèòå" +"Åñëè òåêñòîâûé ôàéë óæå áûë ñîõðàí¸í ïîñëå èçìåíåíèÿ ïàðîëÿ øèôðîâàíèÿ," -# Ïåðåâîä ñîîáùåíèÿ ðàçäåë¸í íà äâå ÷àñòè, ÷àñòü âòîðàÿ +# Ïåðåâîä ñîîáùåíèÿ ðàçäåë¸í íà äâå ÷àñòè, ÷àñòü âòîðàÿ (Ñ. Àë¸øèí) +# :!~ Restorer msgid "" "\n" "to use the same key for text file and swap file" msgstr "" "\n" -"Enter äëÿ èñïîëüçîâàíèÿ îäíîãî êëþ÷à äëÿ òåêñòîâîãî ôàéëà è ñâîï-ôàéëà" +"òî íàæìèòå êëàâèøó è áóäåò èñïîëüçîâàí ýòîò æå ñàìûé ïàðîëü" +# :!~ Restorer msgid "???MANY LINES MISSING" -msgstr "???ÎÒÑÓÒÑÒÂÓÅÒ ÌÍÎÃÎ ÑÒÐÎÊ" +msgstr "???ÌÍÎÆÅÑÒÂÎ ÑÒÐÎÊ ÎÒÑÓÒÑÒÂÓÅÒ" +# :!~ Restorer msgid "???LINE COUNT WRONG" -msgstr "???ÍÅÏÐÀÂÈËÜÍÎÅ ÇÍÀ×ÅÍÈÅ ÑרÒ×ÈÊÀ ÑÒÐÎÊ" +msgstr "???ÍÅ ÑÎÂÏÀÄÀÅÒ ÊÎËÈ×ÅÑÒÂÎ ÑÒÐÎÊ" +# ~!: earlier msgid "???EMPTY BLOCK" msgstr "???ÏÓÑÒÎÉ ÁËÎÊ" +# ~!: earlier msgid "???LINES MISSING" msgstr "???ÎÒÑÓÒÑÒÂÓÞÒ ÑÒÐÎÊÈ" +# :!~ Restorer msgid "???BLOCK MISSING" -msgstr "???ÏÐÎÏÓÙÅÍ ÁËÎÊ" +msgstr "???ÁËÎÊ ÏÐÎÏÓÙÅÍ" +# :!~ Restorer msgid "??? from here until ???END lines may be messed up" -msgstr "???ñòðîêè ìîãóò áûòü èñïîð÷åíû îòñþäà äî ???ÊÎÍÖÀ" +msgstr "Ñòðîêè, êîòîðûå âîçìîæíî èñïîð÷åíû, ïîìåùåíû ìåæäó ìåòêàìè ??? è ???END" +# :!~ Restorer msgid "??? from here until ???END lines may have been inserted/deleted" -msgstr "???ñòðîêè ìîãëè áûòü âñòàâëåíû èëè óäàëåíû îòñþäà äî ???ÊÎÍÖÀ" +msgstr "" +"Ñòðîêè, êîòîðûå áûëè äîáàâëåíû èëè óäàëåíû, ïîìåùåíû ìåæäó ìåòêàìè ??? è ???END" +# :!~ Restorer +msgid "??? lines may be missing" +msgstr "??? ýòè ñòðîêè, âîçìîæíî, óòðà÷åíû" + +# :!~ Restorer msgid "???END" -msgstr "???ÊÎÍÅÖ" +msgstr "???END" +# :!~ Restorer msgid "See \":help E312\" for more information." -msgstr "Ñì. \":help E312\" äëÿ äîïîëíèòåëüíîé èíôîðìàöèè." +msgstr "×òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ, íàáåðèòå \":help E312\"" +# ~!: earlier msgid "Recovery completed. You should check if everything is OK." msgstr "Âîññòàíîâëåíèå çàâåðøåíî. Ïðîâåðüòå, âñ¸ ëè â ïîðÿäêå." +# :!~ Restorer msgid "" "\n" "(You might want to write out this file under another name\n" msgstr "" "\n" -"(Ìîæåòå çàïèñàòü ôàéë ïîä äðóãèì èìåíåì è ñðàâíèòü åãî ñ èñõîäíûì\n" +"(Ìîæåòå ñîõðàíèòü ôàéë ïîä äðóãèì íàèìåíîâàíèåì è ñðàâíèòü åãî ñ èñõîäíûì\n" +# ~!: earlier msgid "and run diff with the original file to check for changes)" -msgstr "ôàéëîì ïðè ïîìîùè ïðîãðàììû diff)" +msgstr "ôàéëîì ïðè ïîìîùè ïðîãðàììû diff)." +# :!~ Restorer msgid "Recovery completed. Buffer contents equals file contents." -msgstr "Âîññòàíîâëåíèå çàâåðøåíî. Ñîäåðæèìîå áóôåðà è ôàéëà ýêâèâàëåíòíî." +msgstr "Âîññòàíîâëåíèå çàâåðøåíî. Ñîäåðæèìîå áóôåðà è ôàéëà èäåíòè÷íû." +# :!~ Restorer msgid "" "\n" "You may want to delete the .swp file now." msgstr "" "\n" -"Ôàéë .swp òåïåðü ìîæíî óäàëèòü." +"Ìîæåòå óäàëèòü ôàéë ïîäêà÷êè." +# :!~ Restorer msgid "" "\n" "Note: process STILL RUNNING: " msgstr "" "\n" -"Âíèìàíèå: ïðîöåññ ÅÙ¨ ÂÛÏÎËÍßÅÒÑß: " +"Âíèìàíèå! Ïðîöåññ åù¸ ðàáîòàåò " +# :!~ Restorer msgid "Using crypt key from swap file for the text file.\n" -msgstr "Èñïîëüçîâàíèå êëþ÷à øèôðîâàíèÿ èç ñâîï-ôàéëà äëÿ òåêñòîâîãî ôàéëà.\n" +msgstr "Äëÿ òåêñòîâîãî ôàéëà èñïîëüçóåòñÿ ïàðîëü èç ôàéëà ïîäêà÷êè\n" +# :!~ Restorer msgid "Swap files found:" -msgstr "Îáíàðóæåíû ñâîï-ôàéëû:" +msgstr "Îáíàðóæåííûå ôàéëû ïîäêà÷êè:" +# ~!: earlier msgid " In current directory:\n" msgstr "  òåêóùåì êàòàëîãå:\n" +# :!~ Restorer msgid " Using specified name:\n" -msgstr " Ñ óêàçàííûì èìåíåì:\n" +msgstr " Ñ çàäàííûì íàèìåíîâàíèåì:\n" +# ~!: earlier msgid " In directory " msgstr "  êàòàëîãå " +# ~!: earlier msgid " -- none --\n" msgstr " -- íåò --\n" +# ~!: earlier msgid " owned by: " msgstr " âëàäåëåö: " +# :!~ Restorer msgid " dated: " msgstr " äàòà: " +# :!~ Restorer msgid " dated: " -msgstr " äàòà: " +msgstr " äàòèðîâàííûé: " +# ~!: earlier msgid " [from Vim version 3.0]" -msgstr " [îò Vim âåðñèè 3.0]" +msgstr " [îò ïðîãðàììû Vim âåðñèè 3.0]" +# :!~ Restorer msgid " [does not look like a Vim swap file]" -msgstr " [íå ÿâëÿåòñÿ ñâîï-ôàéëîì Vim]" +msgstr " [íå óäàëîñü ðàñïîçíàòü êàê ôàéë ïîäêà÷êè äëÿ ïðîãðàììû Vim]" +# :!~ Restorer msgid " file name: " -msgstr " èìÿ ôàéëà: " +msgstr "ñâÿçàííûé ñ ôàéëîì: " +# ~!: earlier msgid "" "\n" " modified: " @@ -2043,12 +3012,15 @@ msgstr "" "\n" " èçìåí¸í: " +# ~!: earlier msgid "YES" -msgstr "ÄÀ" +msgstr "äà" +# ~!: earlier msgid "no" msgstr "íåò" +# ~!: earlier msgid "" "\n" " user name: " @@ -2056,9 +3028,11 @@ msgstr "" "\n" " ïîëüçîâàòåëü: " +# ~!: earlier msgid " host name: " msgstr " êîìïüþòåð: " +# ~!: earlier msgid "" "\n" " host name: " @@ -2066,6 +3040,7 @@ msgstr "" "\n" " êîìïüþòåð: " +# ~!: earlier msgid "" "\n" " process ID: " @@ -2073,61 +3048,84 @@ msgstr "" "\n" " ïðîöåññ: " +# ~!: earlier msgid " (STILL RUNNING)" -msgstr " (ÂÛÏÎËÍßÅÒÑß)" +msgstr " (ÐÀÁÎÒÀÅÒ)" +# :!~ Restorer msgid "" "\n" " [not usable with this version of Vim]" msgstr "" "\n" -" [íåïðèãîäåí äëÿ èñïîëüçîâàíèÿ ñ äàííîé âåðñèåé Vim]" +" [íåñîâìåñòèì ñ äàííîé âåðñèåé ïðîãðàììû Vim]" +# :!~ Restorer msgid "" "\n" " [not usable on this computer]" msgstr "" "\n" -" [íåïðèãîäåí äëÿ èñïîëüçîâàíèÿ íà ýòîì êîìïüþòåðå]" +" [íåñîâìåñòèì ñ ïðîãðàììíî-àïïàðàòíîé àðõèòåêòóðîé äàííîãî êîìïüþòåðà]" +# :!~ Restorer msgid " [cannot be read]" -msgstr " [íå ÷èòàåòñÿ]" +msgstr " [íå óäàëîñü ñ÷èòàòü]" +# :!~ Restorer msgid " [cannot be opened]" -msgstr " [íå îòêðûâàåòñÿ]" +msgstr " [íå óäàëîñü îòêðûòü]" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:preserve` +# :!~ Restorer msgid "File preserved" -msgstr "Ñâîï-ôàéë îáíîâë¸í" +msgstr "Ôàéë ïîäêà÷êè îáíîâë¸í" +# #Restorer: ýòî ñîîáùåíèå äëÿ îòëàäêè. Íàäî ëè... +# :!~ Restorer msgid "stack_idx should be 0" -msgstr "çíà÷åíèå stack_idx äîëæíî áûòü ðàâíî 0" +msgstr "Âíóòðåííÿÿ ôóíêöèÿ ml_append_int(). Çíà÷åíèå stack_idx äîëæíî áûòü 0" +# #Restorer: ýòî ñîîáùåíèå äëÿ îòëàäêè. Íàäî ëè... +# :!~ Restorer msgid "deleted block 1?" -msgstr "óäàë¸í áëîê 1?" +msgstr "Âíóòðåííÿÿ ôóíêöèÿ ml_delete(). Âîçìîæíî, óäàë¸í áëîê 1" +# #Restorer: ýòî ñîîáùåíèå äëÿ îòëàäêè. Íàäî ëè... +# :!~ Restorer msgid "pe_line_count is zero" -msgstr "çíà÷åíèå pe_line_count ðàâíî íóëþ" +msgstr "Âíóòðåííÿÿ ôóíêöèÿ ml_find_line(). Çíà÷åíèå pe_line_count ðàâíî íóëþ" +# #Restorer: ýòî ñîîáùåíèå äëÿ îòëàäêè. Íàäî ëè... +# :!~ Restorer msgid "Stack size increases" -msgstr "Ðàçìåð ñòåêà óâåëè÷åí" +msgstr "Âíóòðåííÿÿ ôóíêöèÿ ml_add_stack(). Ðàçìåð ñòåêà óâåëè÷èëñÿ" +# :!~ Restorer msgid "" "\n" "Found a swap file by the name \"" msgstr "" "\n" -"Îáíàðóæåí ñâîï-ôàéë ñ èìåíåì \"" +"Îáíàðóæåí ôàéë ïîäêà÷êè \"" -# Ñ ìàëåíüêîé áóêâû, ÷òîáû ñîîòâåòñòâîâàëî ïî ñòèëþ ñîñåäíèì ñîîáùåíèÿì. +# Ñ ìàëåíüêîé áóêâû, ÷òîáû ñîîòâåòñòâîâàëî ïî ñòèëþ ñîñåäíèì ñîîáùåíèÿì (Ñ. Àë¸øèí). +# ~!: earlier msgid "While opening file \"" msgstr "ïðè îòêðûòèè ôàéëà: \"" +# :!~ Restorer msgid " CANNOT BE FOUND" -msgstr " ÍÅ ÍÀÉÄÅÍÎ" +msgstr " ÍÅ ÓÄÀËÎÑÜ ÍÀÉÒÈ" +# #Restorer: +# :!~ Restorer msgid " NEWER than swap file!\n" -msgstr " Áîëåå ÑÂÅÆÈÉ, ÷åì ñâîï-ôàéë!\n" +msgstr "Êîòîðûé èìååò áîëåå ïîçäíþþ äàòó, ÷åì îáíàðóæåííûé ôàéë ïîäêà÷êè\n" +# #Restorer: äîáàâëåí âòîðîé "\n" è ñäâèíóò ê ãðàíèöå ýêðàíà, +# #Restorer: ÷òîáû âûäåëèòü òåêñò âèçóàëüíî +# :!~ Restorer msgid "" "\n" "(1) Another program may be editing the same file. If this is the case,\n" @@ -2135,49 +3133,72 @@ msgid "" " file when making changes. Quit, or continue with caution.\n" msgstr "" "\n" -"(1) Âîçìîæíî, ðåäàêòèðîâàíèå ýòîãî æå ôàéëà âûïîëíÿåòñÿ â äðóãîé ïðîãðàììå.\n" -" Åñëè ýòî òàê, òî áóäüòå âíèìàòåëüíû ïðè âíåñåíèè èçìåíåíèé, ÷òîáû\n" -" ó âàñ íå ïîÿâèëîñü äâà ðàçíûõ âàðèàíòà îäíîãî è òîãî æå ôàéëà.\n" -" Âûéäèòå èëè ïðîäîëæàéòå ñ îñòîðîæíîñòüþ.\n" +"(1) Âîçìîæíî, ðåäàêòèðîâàíèå ýòîãî æå ôàéëà âûïîëíÿåòñÿ â äðóãîé ïðîãðàììå íà\n" +" ýòîì æå êîìïüþòåðå èëè ïî ñåòåâîìó ïîäêëþ÷åíèþ.\n" +"\n" +" ýòîì ñëó÷àå ëó÷øå íå ðåäàêòèðîâàòü ýòîò ôàéë èëè äåëàòü ýòî îñìîòðèòåëüíî,\n" +"÷òîáû íå ïîÿâèëîñü äâà âàðèàíòà îäíîãî è òîãî æå ôàéëà.\n" +"Áóäüòå âíèìàòåëüíû è åù¸ ðàç âñ¸ ïðîâåðüòå.\n" +"\n" +# #Restorer: äîáàâëåí "\n" +# :!~ Restorer msgid "(2) An edit session for this file crashed.\n" -msgstr "(2) Ñåàíñ ðåäàêòèðîâàíèÿ ýòîãî ôàéëà çàâåðø¸í àâàðèéíî.\n" +msgstr "" +"(2) Ëèáî ïðåäûäóùèé ñåàíñ ðàáîòû ïðîãðàììû ñ ýòèì ôàéëîì áûë çàâåðø¸í " +"àâàðèéíî\n" +" è äàííûå ìîãóò áûòü ïîâðåæäåíû.\n" +"\n" +# #Restorer: ñäâèíóò ê ãðàíèöå ýêðàíà +# :!~ Restorer msgid " If this is the case, use \":recover\" or \"vim -r " -msgstr "  ýòîì ñëó÷àå, èñïîëüçóéòå êîìàíäó \":recover\" èëè \"vim -r " +msgstr " ýòîì ñëó÷àå èñïîëüçóéòå êîìàíäó \":recover\" èëè \"vim -r " +# :!~ Restorer msgid "" "\"\n" " to recover the changes (see \":help recovery\").\n" msgstr "" -"\"\n" -" äëÿ âîññòàíîâëåíèÿ èçìåíåíèé (ñì. \":help recovery\").\n" +"\",\n" +"÷òîáû âûïîëíèòü âîññòàíîâëåíèå äàííûõ (ïîäðîáíåå ñì. \":help recovery\").\n" +# :!~ Restorer msgid " If you did this already, delete the swap file \"" -msgstr " Åñëè âû óæå âûïîëíÿëè ýòó îïåðàöèþ, óäàëèòå ñâîï-ôàéë \"" +msgstr "Åñëè ýòî óæå áûë ñäåëàíî, òî óäàëèòå ôàéë ïîäêà÷êè \"" +# :!~ Restorer msgid "" "\"\n" " to avoid this message.\n" msgstr "" -"\"\n" -" ÷òîáû èçáåæàòü ïîÿâëåíèÿ ýòîãî ñîîáùåíèÿ â áóäóùåì.\n" +"\",\n" +"÷òîáû â äàëüíåéøåì ýòî ñîîáùåíèå áîëüøå íå îòîáðàæàëîñü.\n" +# #Restorer: îòîáðàæàåòñÿ ïðè 'verbose'>0 +# :!~ Restorer msgid "Found a swap file that is not useful, deleting it" -msgstr "Íàéäåí áåñïîëåçíûé ñâîï-ôàéë — óäàëÿþ" +msgstr "Îáíàðóæåííûé ôàéë ïîäêà÷êè íå òðåáóåòñÿ è áóäåò óäàë¸í" +# :!~ Restorer msgid "Swap file \"" -msgstr "Ñâîï-ôàéë \"" +msgstr "Îáíàðóæåí ôàéë ïîäêà÷êè \"" +# :!~ Restorer msgid "\" already exists!" -msgstr "\" óæå ñóùåñòâóåò!" +msgstr "\"!" +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "VIM - ATTENTION" -msgstr "VIM — ÂÍÈÌÀÍÈÅ" +msgstr "Âíèìàíèå" +# :!~ Restorer msgid "Swap file already exists!" -msgstr "Ñâîï-ôàéë óæå ñóùåñòâóåò!" +msgstr "Îáíàðóæåí ôàéë ïîäêà÷êè!" +# #Restorer: êíîïêè îêíî äèàëîãà ïðè îáíàðóæåíèè ñóùåñòâóþùåãî ôàéëà ïîäêà÷êè +# :!~ Restorer msgid "" "&Open Read-Only\n" "&Edit anyway\n" @@ -2185,12 +3206,14 @@ msgid "" "&Quit\n" "&Abort" msgstr "" -"&O Îòêðûòü äëÿ ÷òåíèÿ\n" -"&E Ðåäàêòèðîâàòü\n" -"&R Âîññòàíîâèòü\n" -"&Q Âûõîä\n" -"&A Ïðåðâàòü" +"Òîëüêî ÷òåíèå (&O)\n" +"Ðåäàêòèðîâàòü (&E)\n" +"Âîññòàíîâèòü (&R)\n" +"Âûõîä (&Q)\n" +"Ïðåðâàòü (&A)" +# #Restorer: êíîïêè îêíî äèàëîãà ïðè îáíàðóæåíèè ñóùåñòâóþùåãî ôàéëà ïîäêà÷êè +# :!~ Restorer msgid "" "&Open Read-Only\n" "&Edit anyway\n" @@ -2199,13 +3222,15 @@ msgid "" "&Quit\n" "&Abort" msgstr "" -"&O Îòêðûòü äëÿ ÷òåíèÿ\n" -"&E Ðåäàêòèðîâàòü\n" -"&R Âîññòàíîâèòü\n" -"&D Óäàëèòü\n" -"&Q Âûõîä\n" -"&A Ïðåðâàòü" +"Òîëüêî ÷òåíèå (&O)\n" +"Ðåäàêòèðîâàòü (&E)\n" +"Âîññòàíîâèòü (&R)\n" +"Óäàëèòü (&D)\n" +"Âûõîä (&Q)\n" +"Ïðåðâàòü (&A)" +# #Restorer: îòîáðàæàåòñÿ, íàïðèìåð, ïî êîìàíäå `:menu` +# ~!: earlier msgid "" "\n" "--- Menus ---" @@ -2213,56 +3238,73 @@ msgstr "" "\n" "--- Ìåíþ ---" +# :!~ Restorer msgid "Tear off this menu" -msgstr "Îòîðâàòü ýòî ìåíþ" +msgstr "Îòêðåïèòü ýòî ìåíþ" +# #Restorer: øàáëîí %s çàìåíÿåòñÿ íà íàèìåíîâàíèå ñêðèïòà +# :!~ Restorer #, c-format msgid "Error detected while compiling %s:" -msgstr "Îáíàðóæåíà îøèáêà ïðè êîìïèëÿöèè %s:" +msgstr "Îáíàðóæåíà îøèáêà ïðè êîìïèëÿöèè %s" +# #Restorer: øàáëîí %s çàìåíÿåòñÿ íà íàèìåíîâàíèå ñêðèïòà, àâòîêîìàíäû è ò. ï. +# :!~ Restorer #, c-format msgid "Error detected while processing %s:" -msgstr "Îáíàðóæåíà îøèáêà ïðè îáðàáîòêå %s:" +msgstr "Îáíàðóæåíà îøèáêà ïðè îáðàáîòêå %s" +# #Restorer: øàáëîí %4ld çàìåíÿåòñÿ íà íîìåð ñòðîêè â ñêðèïòå è ýòî ñîîáùåíèå +# #Restorer: äîïèñûâàåòñÿ ê «Error detected while processing %s:» +# :!~ Restorer #, c-format msgid "line %4ld:" msgstr "ñòðîêà %4ld:" -msgid "Messages maintainer: Bram Moolenaar " -msgstr "" -"Ïåðåâîä ñîîáùåíèé íà ðóññêèé ÿçûê: Âàñèëèé Ðàãîçèí , Ñåðãåé Àë¸øèí , Ìàòâåé Òàðàñîâ " -"" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:messages` +# :!~ Restorer +msgid "Messages maintainer: The Vim Project" +msgstr "Restorer, ïåðåâîä íà ðóññêèé ÿçûê, 2020, " +# #Restorer: îòîáðàæàåòñÿ åñëè íàæàòû CTRL+C (CTRL+BREAK) è äàëåå ïðî ïðîäîëæåíèå +# :!~ Restorer msgid "Interrupt: " -msgstr "Ïðåðûâàíèå: " +msgstr "Ïðåðâàíî. " +# :!~ Restorer msgid "Press ENTER or type command to continue" -msgstr "Íàæìèòå ENTER èëè ââåäèòå êîìàíäó äëÿ ïðîäîëæåíèÿ" - -msgid "Unknown" -msgstr "Íå èçâåñòíî" +msgstr "×òîáû ïðîäîëæèòü, íàæìèòå êëàâèøó èëè ââåäèòå êîìàíäó" +# #Restorer: ïðè ïðîêðóòêå ñîîáùåíèÿ. Íàçâàíèå ñêðèïòà è íîìåð ñòðîêè +# ~!: earlier #, c-format msgid "%s line %ld" msgstr "%s ñòðîêà %ld" +# :!~ Restorer msgid "-- More --" -msgstr "-- Ïðîäîëæåíèå ñëåäóåò --" +msgstr "-- Äàëåå --" +# :!~ Restorer msgid " SPACE/d/j: screen/page/line down, b/u/k: up, q: quit " -msgstr " SPACE/d/j: ýêðàí/ñòðàíèöà/ñòðîêà âíèç, b/u/k: ââåðõ, q: âûõîä " +msgstr " SPACE/d/j - âíèç, b/u/k - ââåðõ íà ýêðàí/ñòðàíèöó/ñòðîêó; q - îòáîé " +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "Question" -msgstr "Âîïðîñ" +msgstr "Çàïðîñ" +# #Restorer: êíîïêè îáùåãî îêíà äèàëîãà èñïîëüçóåìîãî â Vim +# :!~ Restorer msgid "" "&Yes\n" "&No" msgstr "" -"&Y Äà\n" -"&N Íåò" +"Äà (&Y)\n" +"Íåò (&N)" +# #Restorer: êíîïêè îáùåãî îêíà äèàëîãà èñïîëüçóåìîãî â Vim +# :!~ Restorer msgid "" "&Yes\n" "&No\n" @@ -2270,285 +3312,377 @@ msgid "" "&Discard All\n" "&Cancel" msgstr "" -"&Y Äà\n" -"&N Íåò\n" -"&A Ñîõðàíèòü âñå\n" -"&D Ïîòåðÿòü âñå\n" -"&C Îòìåíà" +"Äà (&Y)\n" +"Íåò (&N)\n" +"Ñîõðàíèòü âñå (&A)\n" +"Óäàëèòü âñå (&D)\n" +"Îòìåíà (&C)" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `z=` +# :!~ Restorer msgid "Type number and or click with the mouse (q or empty cancels): " -msgstr "Ââåäèòå íîìåð è èëè ù¸ëêíèòå ìûøüþ (q èëè ïóñòî äëÿ îòìåíû): " +msgstr "" +"Ââåäèòå íîìåð è íàæìèòå èëè âûáåðèòå ìûøüþ (åñëè íå óêàçàí, îòìåíà): " +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:tselect` èëè `:browse oldfiles` +# :!~ Restorer msgid "Type number and (q or empty cancels): " -msgstr "Ââåäèòå íîìåð è (q èëè ïóñòî äëÿ îòìåíû): " +msgstr "Ââåäèòå íîìåð è íàæìèòå êëàâèøó (åñëè íå óêàçàí, îòìåíà): " +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:copy`, `:paste`, `:delete` +# :!~ Restorer #, c-format msgid "%ld more line" msgid_plural "%ld more lines" -msgstr[0] "Äîáàâëåíà %ld ñòðîêà" -msgstr[1] "Äîáàâëåíî %ld ñòðîêè" -msgstr[2] "Äîáàâëåíî %ld ñòðîê" +msgstr[0] "%ld ñòðîêà äîáàâëåíà" +msgstr[1] "%ld ñòðîêè äîáàâëåíî" +msgstr[2] "%ld ñòðîê äîáàâëåíî" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:copy`, `:paste`, `:delete` +# :!~ Restorer #, c-format msgid "%ld line less" msgid_plural "%ld fewer lines" -msgstr[0] "Óáðàíà %ld ñòðîêà" -msgstr[1] "Óáðàíî %ld ñòðîêè" -msgstr[2] "Óáðàíî %ld ñòðîê" +msgstr[0] "%ld ñòðîêà óäàëåíà" +msgstr[1] "%ld ñòðîêè óäàëåíî" +msgstr[2] "%ld ñòðîê óäàëåíî" +# #Restorer: âûâîäèòñÿ åñëè ïðè âñòàâêå, óäàëåíèè ñòðîê íàæàòû CTRL+C (CTRL+Break) +# :!~ Restorer msgid " (Interrupted)" -msgstr " (Ïðåðâàíî)" +msgstr " (ýòà îïåðàöèÿ ïðåðâàíà)" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 è 'debug' = beep +# ~!: earlier msgid "Beep!" msgstr "Áè-áè!" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose'>3 +# :!~ Restorer #, c-format msgid "Calling shell to execute: \"%s\"" -msgstr "Âûçîâ îáîëî÷êè äëÿ âûïîëíåíèÿ \"%s\"" +msgstr "Âûçîâ êîìàíäíîé îáîëî÷êè äëÿ èñïîëíåíèÿ \"%s\"" +# :!~ Restorer msgid "Warning: terminal cannot highlight" -msgstr "Ïðåäóïðåæäåíèå: òåðìèíàë íå ìîæåò âûïîëíÿòü ïîäñâåòêó" +msgstr "Âíèìàíèå! Äëÿ äàííîãî òåðìèíàë íåäîñòóïíà ïîäñâåòêà òåêñòà" +# :!~ Restorer msgid "Type :qa! and press to abandon all changes and exit Vim" msgstr "" -"Ââåäèòå :qa! è íàæìèòå äëÿ îòìåíû âñåõ èçìåíåíèé è âûõîäà èç Vim" +"×òîáû çàêðûòü ïðîãðàììó ñ îòìåíîé âñåõ ïðàâîê, íàáåðèòå :qa! è íàæìèòå " +"" +# :!~ Restorer msgid "Type :qa and press to exit Vim" -msgstr "Ââåäèòå :qa è íàæìèòå äëÿ âûõîäà èç Vim" +msgstr "" +"×òîáû çàâåðøèòü ðàáîòó ïðîãðàììû, íàáåðèòå :qa è íàæìèòå êëàâèøó " +# #Restorer: âûâîäèòñÿ ïðè èñïîëíåíèè îïåðàòîðîâ `<`, `>` è ò. ï. +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' <= %ld +# :!~ Restorer #, c-format msgid "%ld line %sed %d time" msgid_plural "%ld line %sed %d times" -msgstr[0] "Èçìåíåíû îòñòóïû, %ld ñòðîêà %s %d ðàç" -msgstr[1] "Èçìåíåíû îòñòóïû, %ld ñòðîêà %s %d ðàçà" -msgstr[2] "Èçìåíåíû îòñòóïû, %ld ñòðîêà %s %d ðàç" +msgstr[0] "Ñäâèã %ld ñòðîêè â íàïðàâëåíèè -%s- âûïîëíåí %d ðàç" +msgstr[1] "Ñäâèã %ld ñòðîê â íàïðàâëåíèè -%s- âûïîëíåí %d ðàçà" +msgstr[2] "Ñäâèã %ld ñòðîê â íàïðàâëåíèè -%s- âûïîëíåí %d ðàç" +# #Restorer: âûâîäèòñÿ ïðè èñïîëíåíèè îïåðàòîðîâ `<`, `>` è ò. ï. +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' <= %ld +# :!~ Restorer #, c-format msgid "%ld lines %sed %d time" msgid_plural "%ld lines %sed %d times" -msgstr[0] "Èçìåíåíû îòñòóïû, %ld ñòðîê %s %d ðàç" -msgstr[1] "Èçìåíåíû îòñòóïû, %ld ñòðîê %s %d ðàçà" -msgstr[2] "Èçìåíåíû îòñòóïû, %ld ñòðîê %s %d ðàç" +msgstr[0] "Ñäâèã %ld ñòðîêè â íàïðàâëåíèè -%s- âûïîëíåí %d ðàç" +msgstr[1] "Ñäâèã %ld ñòðîê â íàïðàâëåíèè -%s- âûïîëíåí %d ðàçà" +msgstr[2] "Ñäâèã %ld ñòðîê â íàïðàâëåíèè -%s- âûïîëíåí %d ðàç" +# #Restorer: âûâîäèòñÿ ïðè èñïîëíåíèè îïåðàòîðà `d` ñ áîëüøèì êîë-âîì òåêñòà +# :!~ Restorer msgid "cannot yank; delete anyway" -msgstr "ñêîïèðîâàòü íå óäàëîñü, óäàëåíèå âûïîëíåíî" +msgstr "Íå óäàëîñü ñîõðàíèòü òåêñò âî âðåìåííûé ðåãèñòð. Âûïîëíèòü óäàëåíèå?" +# #Restorer: âûâîäèòñÿ ïðè èñïîëíåíèè îïåðàòîðîâ `gU`, `~` è ò. ï. +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' < %ld +# :!~ Restorer #, c-format msgid "%ld line changed" msgid_plural "%ld lines changed" -msgstr[0] "èçìåíåíà %ld ñòðîêà" -msgstr[1] "èçìåíåíî %ld ñòðîêè" -msgstr[2] "èçìåíåíî %ld ñòðîê" +msgstr[0] "%ld ñòðîêà èçìåíåíà" +msgstr[1] "%ld ñòðîêè èçìåíåíî" +msgstr[2] "%ld ñòðîê èçìåíåíî" +# #Restorer: âûâîäèòñÿ ïðè èñïîëíåíèè îïåðàòîðîâ äîáàâëåíèÿ è âû÷èòàíèÿ +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' < %ld +# :!~ Restorer #, c-format msgid "%d line changed" msgid_plural "%d lines changed" -msgstr[0] "èçìåíåíà %d ñòðîêà" -msgstr[1] "èçìåíåíî %d ñòðîêè" -msgstr[2] "èçìåíåíî %d ñòðîê" +msgstr[0] "%d ñòðîêà èçìåíåíà" +msgstr[1] "%d ñòðîêè èçìåíåíî" +msgstr[2] "%d ñòðîê èçìåíåíî" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ î ïîçèöèè êóðñîðà ïðè áëîêîâîì âûäåëåíèè +# :!~ Restorer #, c-format msgid "%ld Cols; " -msgstr "Êîëîíîê: %ld; " +msgstr "êîëîíîê %ld; " +# #Restorer: âûâîäèòñÿ ïðè, íàïðèìåð, èñïîëíåíèè îïåðàòîðà `g CTRL+g` +# #Restorer: øàáëîí %s çäåñü çàìåíÿåòñÿ íà «êîëîíîê %ld;» èç ïðåäûäóùåãî msgid +# :!~ Restorer #, c-format msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes" -msgstr "Âûäåëåíî %s%ld èç %ld ñòðîê; %lld èç %lld ñëîâ; %lld èç %lld áàéòîâ" +msgstr "Âûäåëåíî: %sñòðîê %ld èç %ld; ñëîâ %lld èç %lld; áàéò %lld èç %lld" +# #Restorer: âûâîäèòñÿ ïðè, íàïðèìåð, èñïîëíåíèè îïåðàòîðà `g CTRL+g` +# #Restorer: øàáëîí %s çäåñü çàìåíÿåòñÿ íà «êîëîíîê %ld;» èç ïðåäûäóùåãî msgid +# :!~ Restorer #, c-format msgid "" "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of " "%lld Bytes" msgstr "" -"Âûäåëåíî %s%ld èç %ld ñòð.; %lld èç %lld ñëîâ; %lld èç %lld ñèìâ.; %lld èç " -"%lld áàéòîâ" +"Âûäåëåíî: %sñòðîê %ld èç %ld; ñëîâ %lld èç %lld; ëèòåð %lld èç %lld; áàéò %lld " +"èç %lld" +# #Restorer: âûâîäèòñÿ ïðè, íàïðèìåð, èñïîëíåíèè îïåðàòîðà `g CTRL+g` +# :!~ Restorer #, c-format msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld" -msgstr "Êîë. %s èç %s; ñòð. %ld èç %ld; ñë. %lld èç %lld; áàéòîâ %lld èç %lld" +msgstr "" +"Êîëîíêà %s èç %s; ñòðîêà %ld èç %ld; ñëîâî %lld èç %lld; áàéò %lld èç %lld" +# #Restorer: âûâîäèòñÿ ïðè, íàïðèìåð, èñïîëíåíèè îïåðàòîðà `g CTRL+g` +# :!~ Restorer #, c-format msgid "" -"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte " -"%lld of %lld" +"Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte %lld " +"of %lld" msgstr "" -"Êîë. %s èç %s; ñòð. %ld èç %ld; ñë. %lld èç %lld; ñèìâ. %lld èç %lld; áàéòîâ " -"%lld èç %lld" +"Êîëîíêà %s èç %s; ñòðîêà %ld èç %ld; ñëîâî %lld èç %lld; ëèòåðà %lld èç %lld; " +"áàéò %lld èç %lld" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ î ïîçèöèè êóðñîðà èç ïðåäûäóùèõ msgid +# #Restorer: âñòàâèë ïðîáåë ïåðåä ñêîáêîé, ïîñìîòðèì, êàê áóäåò âûãëÿäåòü +# ~!: earlier #, c-format msgid "(+%lld for BOM)" -msgstr "(+%lld ñ ó÷¸òîì BOM)" +msgstr " (+%lld ñ ó÷¸òîì ÌÏÁ)" +# #Restorer: ìîæåò ñðàçó íàïèñàòü ýòî ïî-àðàáñêè +# :!~ Restorer msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'" msgstr "" -"W17: Àðàáñêèé ÿçûê ïîääåðæèâàåòñÿ òîëüêî ñ UTF-8, ââåäèòå " -"':set encoding=utf-8'" +"W17: Äëÿ ðàáîòû ñ àðàáñêîé ïèñüìåííîñòüþ, ââåäèòå êîìàíäó :set encoding=utf-8" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:set termcap` +# :!~ Restorer msgid "" "\n" "--- Terminal codes ---" msgstr "" "\n" -"--- Òåðìèíàëüíûå êîäû ---" +"--- Ïàðàìåòðû òåðìèíàëà ---" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:setglobal [all]` +# :!~ Restorer msgid "" "\n" "--- Global option values ---" msgstr "" "\n" -"--- Ãëîáàëüíûå çíà÷åíèÿ îïöèé ---" +"--- Çíà÷åíèÿ îáùèõ ïàðàìåòðîâ ---" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:setlocal [all]` +# :!~ Restorer msgid "" "\n" "--- Local option values ---" msgstr "" "\n" -"--- Ëîêàëüíûå çíà÷åíèÿ îïöèé ---" +"--- Çíà÷åíèÿ ëîêàëüíûõ ïàðàìåòðîâ ---" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:set [all]` +# :!~ Restorer msgid "" "\n" "--- Options ---" msgstr "" "\n" -"--- Îïöèè ---" - -#, c-format -msgid "For option %s" -msgstr "Äëÿ îïöèè %s" +"--- Ïàðàìåòðû ---" +# #Restorer: îòîáðàæàåòñÿ êàê `íå óäàëîñü îòêðûòü intuition.library!?\n` +# :!~ Restorer msgid "cannot open " -msgstr "íåâîçìîæíî îòêðûòü " +msgstr "Íå óäàëîñü ïîäêëþ÷èòü áèáëèîòåêó " +# :!~ Restorer msgid "VIM: Can't open window!\n" -msgstr "VIM: Íåâîçìîæíî îòêðûòü îêíî!\n" +msgstr "Ïðîãðàììà VIM. Íå óäàëîñü îòîáðàçèòü îêíî íà ýêðàíå!\n" +# :!~ Restorer msgid "Need Amigados version 2.04 or later\n" -msgstr "Íåîáõîäèìà Amigados âåðñèè 2.04 èëè áîëåå ïîçäíåé\n" +msgstr "Òðåáóåòñÿ îïåðàöèîííàÿ ñèñòåìà Amigados âåðñèè 2.04 èëè áîëåå ïîçäíåé\n" +# :!~ Restorer #, c-format msgid "Need %s version %ld\n" -msgstr "Íåîáõîäèìà %s âåðñèè %ld\n" +msgstr "Òðåáóåòñÿ %s âåðñèè %ld\n" +# :!~ Restorer msgid "Cannot open NIL:\n" -msgstr "Íåâîçìîæíî îòêðûòü NIL:\n" +msgstr "Íå óäàëîñü îòêðûòü óñòðîéñòâî NIL:\n" +# :!~ Restorer msgid "Cannot create " -msgstr "Íåâîçìîæíî ñîçäàòü " +msgstr "Íå óäàëîñü ñîçäàòü " +# :!~ Restorer #, c-format msgid "Vim exiting with %d\n" -msgstr "Ïðåêðàùåíèå ðàáîòû Vim ñ êîäîì %d\n" +msgstr "Ðàáîòû ïðîãðàììû Vim çàâåðøèëàñü ñ êîäîì %d\n" +# :!~ Restorer msgid "cannot change console mode ?!\n" -msgstr "íåâîçìîæíî ñìåíèòü ðåæèì êîíñîëè?!\n" +msgstr "Íå óäàëîñü ïåðåêëþ÷èòü ðåæèì ðàáîòû êîíñîëè\n" +# :!~ Restorer msgid "mch_get_shellsize: not a console??\n" -msgstr "mch_get_shellsize: íå â êîíñîëè??\n" +msgstr "" +"Âíóòðåííÿÿ ôóíêöèÿ mch_get_shellsize(). Âîçìîæíî, íå îáíàðóæåíà êîíñîëü\n" +# :!~ Restorer msgid "Cannot execute " -msgstr "Íåâîçìîæíî âûïîëíèòü " +msgstr "Íå óäàëîñü èñïîëíèòü " +# :!~ Restorer msgid "shell " -msgstr "îáîëî÷êà " +msgstr "êîìàíäíîé îáîëî÷êè " +# :!~ Restorer msgid " returned\n" -msgstr " çàâåðøèëà ðàáîòó\n" +msgstr " êîä âîçâðàòà\n" +# :!~ Restorer msgid "ANCHOR_BUF_SIZE too small." -msgstr "ñëèøêîì ìàëàÿ âåëè÷èíà ANCHOR_BUF_SIZE." +msgstr "Çíà÷åíèå ANCHOR_BUF_SIZE î÷åíü ìàëîå" +# :!~ Restorer msgid "I/O ERROR" -msgstr "ÎØÈÁÊÀ ÂÂÎÄÀ-ÂÛÂÎÄÀ" +msgstr "Îøèáêà ââîäà-âûâîäà" +# #Restorer: çàãîëîâîê îêíà +# ~!: earlier msgid "Message" msgstr "Ñîîáùåíèå" +# #Restorer: ïåðâûé %s - íàèìåíîâàíèå ïðèíòåðà, âòîðîé %s - íàèìåíîâàíèå ïîðòà, +# #Restorer: ê êîòîðîìó îí ïîäêëþ÷åí +# :!~ Restorer #, c-format msgid "to %s on %s" -msgstr "â %s íà %s" +msgstr "%s ê %s" +# ~!: earlier #, c-format msgid "Printing '%s'" msgstr "Ïå÷àòü '%s'" +# :!~ Restorer #, c-format msgid "Opening the X display took %ld msec" -msgstr "Îòêðûòèå äèñïëåÿ X çàíÿëî %ld ìñ" +msgstr "Ïîäêëþ÷åíèå ê X-ñåðâåðó çàíÿëî %ld ìñ" +# :!~ Restorer msgid "" "\n" "Vim: Got X error\n" msgstr "" "\n" -"Vim: Îøèáêà X\n" +"Ïðîãðàììà Vim. Ïîëó÷åíà îøèáêà îò X-ñåðâåðà\n" +# :!~ Restorer #, c-format msgid "restoring display %s" -msgstr "âîññòàíîâëåíèå äèñïëåÿ %s" +msgstr "Âîññòàíîâëåíèå ïîäêëþ÷åíèÿ ê X-ñåðâåðó %s" +# :!~ Restorer msgid "Testing the X display failed" -msgstr "Ïðîâåðêà äèñïëåÿ X çàâåðøåíà íåóäà÷íî" +msgstr "Ïðîèçîøëà îøèáêà ïðè ïðîâåðêå äîñòóïíîñòè X-ñåðâåðà" +# :!~ Restorer msgid "Opening the X display timed out" -msgstr "Îòêðûòèå äèñïëåÿ X íå âûïîëíåíî â îòâåä¸ííîå âðåìÿ" +msgstr "Ïîäêëþ÷åíèå ê X-ñåðâåðó íå âûïîëíåíî â îòâåä¸ííîå âðåìÿ" +# :!~ Restorer msgid "" "\n" "Could not get security context for " msgstr "" "\n" -"Íåâîçìîæíî ïîëó÷èòü êîíòåêñò áåçîïàñíîñòè äëÿ " +"Íå óäàëîñü ïîëó÷èòü àòðèáóò áåçîïàñíîñòè äëÿ " +# :!~ Restorer msgid "" "\n" "Could not set security context for " msgstr "" "\n" -"Íåâîçìîæíî óñòàíîâèòü êîíòåêñò áåçîïàñíîñòè äëÿ " +"Íå óäàëîñü íàçíà÷èòü àòðèáóò áåçîïàñíîñòè äëÿ " +# :!~ Restorer #, c-format msgid "Could not set security context %s for %s" -msgstr "Íåâîçìîæíî óñòàíîâèòü êîíòåêñò áåçîïàñíîñòè %s äëÿ %s" +msgstr "Íå óäàëîñü íàçíà÷èòü àòðèáóò áåçîïàñíîñòè %s äëÿ %s" +# :!~ Restorer #, c-format msgid "Could not get security context %s for %s. Removing it!" -msgstr "Íåâîçìîæíî ïîëó÷èòü êîíòåêñò áåçîïàñíîñòè %s äëÿ %s. Áóäåò óäàëåíî!" +msgstr "Íå óäàëîñü ïîëó÷èòü àòðèáóò áåçîïàñíîñòè %s äëÿ %s. Àòðèáóò óäàë¸í" +# :!~ Restorer msgid "" "\n" "Cannot execute shell sh\n" msgstr "" "\n" -"Íåâîçìîæíî çàïóñòèòü îáîëî÷êó sh\n" +"Íå óäàëîñü çàïóñòèòü êîìàíäíóþ îáîëî÷êó sh\n" +# :!~ Restorer msgid "" "\n" "shell returned " msgstr "" "\n" -"Îáîëî÷êà çàâåðøèëà ðàáîòó " +"Îò êîìàíäíîé îáîëî÷êè ïîëó÷åí êîä âîçâðàòà " +# :!~ Restorer msgid "" "\n" "Cannot create pipes\n" msgstr "" "\n" -"Íåâîçìîæíî ñîçäàòü êîíâåéåð\n" +"Íå óäàëîñü ñîçäàòü êîíâåéåð\n" +# :!~ Restorer msgid "" "\n" "Cannot fork\n" msgstr "" "\n" -"Íåâîçìîæíî âûïîëíèòü fork()\n" +"Ïðîèçîøëà îøèáêà ïðè âûçîâå ôóíêöèè fork()\n" +# :!~ Restorer msgid "" "\n" "Cannot execute shell " msgstr "" "\n" -"Íåâîçìîæíî çàïóñòèòü îáîëî÷êó " +"Íå óäàëîñü çàïóñòèòü êîìàíäíóþ îáîëî÷êó " +# ~!: earlier msgid "" "\n" "Command terminated\n" @@ -2556,284 +3690,448 @@ msgstr "" "\n" "Âûïîëíåíèå êîìàíäû ïðåðâàíî\n" +# :!~ Restorer msgid "XSMP lost ICE connection" -msgstr "XSMP óòåðÿíî ñîåäèíåíèå ICE" +msgstr "Ïîòåðÿíî ñîåäèíåíèå XSMP ïî ïðîòîêîëó ICE" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Could not load gpm library: %s" -msgstr "Íåâîçìîæíî çàãðóçèòü áèáëèîòåêó gpm: %s" +msgstr "Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè gpm, îøèáêà %s" +# :!~ Restorer #, c-format msgid "dlerror = \"%s\"" -msgstr "dlerror = \"%s\"" +msgstr "Ôóíêöèÿ dlerror() âåðíóëà çíà÷åíèå \"%s\"" +# :!~ Restorer msgid "Opening the X display failed" -msgstr "Íåóäà÷íîå îòêðûòèå äèñïëåÿ X" +msgstr "Ïðîèçîøëà îøèáêà ïðè ïîäêëþ÷åíèè ê X-ñåðâåðó" +# :!~ Restorer msgid "XSMP handling save-yourself request" -msgstr "XSMP îáðàáàòûâàåò çàïðîñ ñàìîñîõðàíåíèÿ" +msgstr "XSMP îáðàáàòûâàåòñÿ çàïðîñ íà ñîõðàíåíèå ñåññèè" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer msgid "XSMP opening connection" -msgstr "XSMP îòêðûâàåò ñîåäèíåíèå" +msgstr "Îòêðûòî ñîåäèíåíèå ïî XSMP" +# :!~ Restorer msgid "XSMP ICE connection watch failed" -msgstr "XSMP ïîòåðÿíî ñëåæåíèå çà ñîåäèíåíèåì ICE" +msgstr "Ïðîèçîøëà îøèáêà ïðè óñòàíîâêå ñëåæåíèÿ çà ïîäêëþ÷åíèåì ïî ïðîòîêîëó ICE" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "XSMP SmcOpenConnection failed: %s" -msgstr "XSMP íåóäà÷íî âûïîëíåíî SmcOpenConnection: %s" +msgstr "Ôóíêöèÿ SmcOpenConnection() âåðíóëà îøèáêó %s" +# ~!: earlier msgid "At line" -msgstr " ñòðîêå" +msgstr "íà ñòðîêå" +# :!~ Restorer #, c-format msgid "Vim: Caught %s event\n" -msgstr "Vim: Ïåðåõâà÷åíî ñîáûòèå %s\n" +msgstr "Ïðîãðàììîé Vim áûëî ïåðåõâà÷åíî ñîáûòèå %s\n" +# #Restorer: ïîäñòàâëÿåòñÿ â ñîîáùåíèå «Vim: Caught %s event». Ýòî è åñòü ñîáûòèå +# :!~ Restorer msgid "close" -msgstr "çàêðûòèå" +msgstr "çàêðûòèÿ" +# #Restorer: ïîäñòàâëÿåòñÿ â ñîîáùåíèå «Vim: Caught %s event». Ýòî è åñòü ñîáûòèå +# :!~ Restorer msgid "logoff" -msgstr "îòêëþ÷åíèå" +msgstr "çàâåðøåíèÿ ñåàíñà" +# #Restorer: ïîäñòàâëÿåòñÿ â ñîîáùåíèå «Vim: Caught %s event». Ýòî è åñòü ñîáûòèå +# :!~ Restorer msgid "shutdown" -msgstr "çàâåðøåíèå" +msgstr "âûêëþ÷åíèÿ" +# #Restorer: âñ¸-òàêè çàêëþ÷èë ñëîâî «PATH» â çíàê ïðîöåíòà, ïîêà èñïîëüçóþ +# #Restorer: ïåðåâîä òîëüêî äëÿ ñåáÿ. Äîáâàèë #, no-c-format +# #Restorer: çäåñü ïîäðîáíîñòè https://github.com/vim/vim/pull/6762#issuecomment-678662463 +# :!~ Restorer +#, no-c-format msgid "" "VIMRUN.EXE not found in your $PATH.\n" "External commands will not pause after completion.\n" "See :help win32-vimrun for more information." msgstr "" -"VIMRUN.EXE íå íàéäåí â ïóòè, çàäàííîì â $PATH.\n" -"Âíåøíèå êîìàíäû íå áóäóò îñòàíàâëèâàòüñÿ ïîñëå âûïîëíåíèÿ.\n" -"Äîïîëíèòåëüíàÿ èíôîðìàöèÿ â :help win32-vimrun" +"Íå óäàëîñü íàéòè ôàéë VIMRUN.EXE â êàòàëîãàõ,\n" +"óêàçàííûõ â ïåðåìåííîé îêðóæåíèÿ %PATH%.\n" +"Ïîñëå èñïîëíåíèÿ âíåøíèõ êîìàíä,\n" +"îêíî êîìàíäíîé îáîëî÷êè áóäåò ñðàçó çàêðûòî.\n" +"×òîáû ïîëó÷èòü äîïîëíèòåëüíóþ èíôîðìàöèþ, íàáåðèòå :help win32-vimrun" +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "Vim Warning" -msgstr "Ïðåäóïðåæäåíèå Vim" +msgstr "Âíèìàíèå" +# :!~ Restorer #, c-format msgid "shell returned %d" -msgstr "çàâåðøåíèå ðàáîòû îáîëî÷êè ñ êîäîì %d" +msgstr "Îò êîìàíäíîé îáîëî÷êè ïîëó÷åí êîä âîçâðàòà %d" +# #Restorer: âûâîäèòñÿ ïðè ïåðåõîäå ïî èíäåêñó ñïèñêà ðåçóëüòàòîâ +# ~!: earlier #, c-format msgid "(%d of %d)%s%s: " msgstr "(%d èç %d)%s%s: " +# #Restorer: ïîäñòàâëÿåòñÿ â (%d of %d)%s%s: âìåñòî ïåðâîãî %s, åñëè òðåáóåòñÿ +# ~!: earlier msgid " (line deleted)" msgstr " (ñòðîêà óäàëåíà)" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:cnewer`, `:chistory` è ò. ï. +# #Restorer: âìåñòî %s ïîäñòàâëÿåòñÿ >, åñëè â òåêóùåì ñïèñêå ðåçóëüòàòîâ +# :!~ Restorer #, c-format msgid "%serror list %d of %d; %d errors " -msgstr "%sñïèñîê îøèáîê %d èç %d; %d îøèáîê" +msgstr "%sñïèñîê ðåçóëüòàòîâ %d èç %d; çàïèñåé: %d " +# #Restorer: ïðè èñïîëíåíèè êîìàíäû `:chistory` +# :!~ Restorer msgid "No entries" -msgstr "Íåò ýëåìåíòîâ" +msgstr "Íåò çàïèñåé" +# #Restorer: çàãîëîâîê îêíà âûáîðà ôàéëà +# :!~ Restorer msgid "Error file" -msgstr "Ôàéë îøèáîê" +msgstr "Ôàéë ñïèñêà ðåçóëüòàòîâ" +# #Restorer: ïðè èñïîëíåíèè êîìàíäû `:vimgrep`, `:lgrep` è ò. ï. +# :!~ Restorer #, c-format msgid "Cannot open file \"%s\"" -msgstr "Íåâîçìîæíî îòêðûòü ôàéë \"%s\"" +msgstr "Íå óäàëîñü îòêðûòü ôàéë \"%s\"" +# #Restorer: äîïèñûâàåòñÿ ê ñîîáùåíèþ «E475: Invalid argument:» +# :!~ Restorer msgid "cannot have both a list and a \"what\" argument" -msgstr "íåëüçÿ ïåðåäàâàòü ïàðàìåòðû \"list\" è \"what\" îäíîâðåìåííî" +msgstr "" +"â ôóíêöèè setqflist(). Äîëæåí áûòü óêàçàí ëèáî ïåðâûé, ëèáî ïîñëåäíèé àðãóìåíò" +# #Restorer: âûâîäèòñÿ ïðè 'verbose' > 0 +# :!~ Restorer msgid "Switching to backtracking RE engine for pattern: " -msgstr "Âêëþ÷åíî îòñëåæèâàíèå äâèæêà ðåã. âûðàæåíèé äëÿ øàáëîíà: " +msgstr "Ïåðåêëþ÷åíèå íà ìåõàíèçì «ïîèñê ñ âîçâðàòîì» äëÿ ïîèñêîâîãî øàáëîíà: " +# #Restorer: ýòî ñîîáùåíèå äëÿ îòëàäêè. Íàäî ëè... +# :!~ Restorer msgid "External submatches:\n" -msgstr "Âíåøíèå ïîäñîîòâåòñòâèÿ:\n" +msgstr "Âíåøíèå ïîäâûðàæåíèÿ:\n" +# #Restorer: ýòî ñîîáùåíèå äëÿ îòëàäêè. Íàäî ëè... +# :!~ Restorer msgid "Could not open temporary log file for writing, displaying on stderr... " msgstr "" -"Íåâîçìîæíî îòêðûòü ôàéë âðåìåííîãî æóðíàëà äëÿ çàïèñè, âûâîä íà stderr..." +"Íå óäàëîñü îòêðûòü íà çàïèñü ôàéë æóðíàëà. Âûâîä â ñòàíäàðòíûé ïîòîê îøèáîê" +# #Restorer: åñëè óêàçàí ðåãèñòð, äîïèñûâàåòñÿ ê ñîîáùåíèÿì âèäà «1 line yanked%s» +# :!~ Restorer #, c-format msgid " into \"%c" -msgstr " â \"%c" +msgstr " â ðåãèñòð \"%c" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' < %ld +# #Restorer: åñëè ïðè îïåðàöèè óêàçûâàåòñÿ êîíêðåòíûé ðåãèñòð, +# #Restorer: òî %s çàìåíÿåòñÿ íà ñîîáùåíèå « into \"%c» +# :!~ Restorer #, c-format msgid "block of %ld line yanked%s" msgid_plural "block of %ld lines yanked%s" -msgstr[0] "ñêîïèðîâàí áëîê èç %ld ñòðîêè%s" -msgstr[1] "ñêîïèðîâàí áëîê èç %ld ñòðîê%s" -msgstr[2] "ñêîïèðîâàí áëîê èç %ld ñòðîê%s" +msgstr[0] "Âûäåëåííàÿ îáëàñòü èç %ld ñòðîêè ñêîïèðîâàíà%s" +msgstr[1] "Âûäåëåííàÿ îáëàñòü èç %ld ñòðîê ñêîïèðîâàíà%s" +msgstr[2] "Âûäåëåííàÿ îáëàñòü èç %ld ñòðîê ñêîïèðîâàíà%s" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'report' < %ld +# #Restorer: åñëè ïðè îïåðàöèè óêàçûâàåòñÿ êîíêðåòíûé ðåãèñòð, +# #Restorer: òî %s çàìåíÿåòñÿ íà ñîîáùåíèå « into \"%c» +# :!~ Restorer #, c-format msgid "%ld line yanked%s" msgid_plural "%ld lines yanked%s" -msgstr[0] "ñêîïèðîâàíî %ld ñòðîêà%s" -msgstr[1] "ñêîïèðîâàíî %ld ñòðîêè%s" -msgstr[2] "ñêîïèðîâàíî %ld ñòðîê%s" +msgstr[0] "%ld ñòðîêà ñêîïèðîâàíà%s" +msgstr[1] "%ld ñòðîêè ñêîïèðîâàíî%s" +msgstr[2] "%ld ñòðîê ñêîïèðîâàíî%s" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:registers` èëè `:display` +# :!~ Restorer msgid "" "\n" "Type Name Content" msgstr "" "\n" -"Òèï Èìÿ Ñîäåðæèìîå" +"Òèï Ðåã. Ñîäåðæèìîå" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `g shift+r` +# :!~ Restorer msgid " VREPLACE" -msgstr " ÂÈÐÒÓÀËÜÍÀß ÇÀÌÅÍÀ" +msgstr " ÐÅÆÈÌ ÂÈÐÒÓÀËÜÍÎÉ ÇÀÌÅÍÛ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `shift+r` +# :!~ Restorer msgid " REPLACE" -msgstr " ÇÀÌÅÍÀ" +msgstr " ÐÅÆÈÌ ÇÀÌÅÍÛ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `i`,`a`,`I` è ò. ï. +# :!~ Restorer msgid " REVERSE" -msgstr " ÎÁÐÀÒÍÀß" +msgstr " ÇÅÐÊÀËÜÍÛÉ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `i`,`a`,`I` è ò. ï. +# :!~ Restorer msgid " INSERT" -msgstr " ÂÑÒÀÂÊÀ" +msgstr " ÐÅÆÈÌ ÂÑÒÀÂÊÈ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Ïðè âðåìåííîì ïåðåêëþ÷åíèè èç ýòîãî ðåæèìà +# :!~ Restorer msgid " (insert)" -msgstr " (âñòàâêà)" +msgstr " (ðåæèì âñòàâêè)" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Ïðè âðåìåííîì ïåðåêëþ÷åíèè èç ýòîãî ðåæèìà +# :!~ Restorer msgid " (replace)" -msgstr " (çàìåíà)" +msgstr " (ðåæèì çàìåíû)" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Ïðè âðåìåííîì ïåðåêëþ÷åíèè èç ýòîãî ðåæèìà +# :!~ Restorer msgid " (vreplace)" -msgstr " (âèðòóàëüíàÿ çàìåíà)" +msgstr " (ðåæèì âèðòóàëüíîé çàìåíû)" +# #Restorer: íàèìåíîâàíèå ÿçûêà ââîäà, äîïèñûâàåòñÿ ê íàèìåíîâàíèþ ðåæèìà +# :!~ Restorer msgid " Hebrew" msgstr " èâðèò" +# #Restorer: íàèìåíîâàíèå ÿçûêà ââîäà, äîïèñûâàåòñÿ ê íàèìåíîâàíèþ ðåæèìà +# :!~ Restorer msgid " Arabic" msgstr " àðàáñêèé" +# #Restorer: íàèìåíîâàíèå ðåæèìà. +# ~!: earlier msgid " (paste)" msgstr " (âêëåéêà)" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `v` +# :!~ Restorer msgid " VISUAL" -msgstr " ÂÈÇÓÀËÜÍÛÉ ÐÅÆÈÌ" +msgstr " ÐÅÆÈÌ ÂÈÇÓÀËÜÍÛÉ ÏÎÑÈÌÂÎËÜÍÛÉ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `shift+v` +# :!~ Restorer msgid " VISUAL LINE" -msgstr " ÂÈÇÓÀËÜÍÀß ÑÒÐÎÊÀ" +msgstr " ÐÅÆÈÌ ÂÈÇÓÀËÜÍÛÉ ÏÎÑÒÐÎ×ÍÛÉ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `ctrl+v` +# :!~ Restorer msgid " VISUAL BLOCK" -msgstr " ÂÈÇÓÀËÜÍÛÉ ÁËÎÊ" +msgstr " ÐÅÆÈÌ ÂÈÇÓÀËÜÍÛÉ ÁËÎÊÎÂÛÉ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `g h` +# :!~ Restorer msgid " SELECT" -msgstr " ÂÛÄÅËÅÍÈÅ" +msgstr " ÐÅÆÈÌ ÂÛÁÎÐÊÈ ÏÎÑÈÌÂÎËÜÍÛÉ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `g shitf+h` +# :!~ Restorer msgid " SELECT LINE" -msgstr " ÂÛÄÅËÅÍÈÅ ÑÒÐÎÊÈ" +msgstr " ÐÅÆÈÌ ÂÛÁÎÐÊÈ ÏÎÑÒÐÎ×ÍÛÉ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `g ctrl+h` +# :!~ Restorer msgid " SELECT BLOCK" -msgstr " ÂÛÄÅËÅÍÈÅ ÁËÎÊÀ" +msgstr " ÐÅÆÈÌ ÂÛÁÎÐÊÈ ÁËÎÊÎÂÛÉ" +# #Restorer: íàèìåíîâàíèå ðåæèìà. Âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïî êîìàíäå `q` +# :!~ Restorer msgid "recording" -msgstr "çàïèñü" +msgstr "ÇÀÏÈÑÜ Â ÐÅÃÈÑÒÐ" +# #Restorer: ïðè ïîèñêå ôàéëà â çàäàííîì êàòàëîãå, åñëè 'verbose'>10 +# ~!: earlier +#, c-format +msgid "Searching for \"%s\" under \"%s\" in \"%s\"" +msgstr "Ïîèñê \"%s\" â ïîäêàòàëîãå \"%s\" êàòàëîãîâ èç \"%s\"" + +# #Restorer: ïðè ïîèñêå ôàéëà â çàäàííîì êàòàëîãå, åñëè 'verbose'>10 +# ~!: earlier #, c-format msgid "Searching for \"%s\" in \"%s\"" -msgstr "Ïîèñê \"%s\" â \"%s\"" +msgstr "Ïîèñê \"%s\" â êàòàëîãàõ èç \"%s\"" +# #Restorer: ïðè ïîèñêå ôàéëà ïî ìàñêå, åñëè 'verbose'>2 +# ~!: earlier #, c-format msgid "Searching for \"%s\"" msgstr "Ïîèñê \"%s\"" +# #Restorer: åñëè íå íàøëè â êàòàëîãàõ èç runtimepath èëè packpath è 'verbose'>0 +# :!~ Restorer #, c-format msgid "not found in '%s': \"%s\"" -msgstr "íå íàéäåíî â '%s': \"%s\"" +msgstr " êàòàëîãàõ èç '%s' íå íàéäåíî \"%s\"" +# #Restorer: çàãîëîâîê îêíà +# :!~ Restorer msgid "Source Vim script" -msgstr "Âûïîëíèòü ñöåíàðèé Vim" +msgstr "Ôàéë êîìàíä ïðîãðàììû Vim" +# #Restorer: ïðè îáðàáîòêå êîìàíäíîãî ôàéëà ïðîãðàììû Vim +# :!~ Restorer #, c-format msgid "Cannot source a directory: \"%s\"" -msgstr "Íåëüçÿ ñ÷èòàòü êàòàëîã: \"%s\"" +msgstr " êà÷åñòâå êîìàíäíîãî ôàéëà óêàçàí êàòàëîã \"%s\"" +# #Restorer: ïðè îáðàáîòêå êîìàíäíîãî ôàéëà ïðîãðàììû Vim â ðåæèìå îòëàäêè, 'verbose'>0 +# :!~ Restorer #, c-format msgid "could not source \"%s\"" -msgstr "íåâîçìîæíî ñ÷èòàòü \"%s\"" +msgstr "Îøèáêà ïðè îáðàáîòêå êîìàíäíîãî ôàéëà \"%s\"" +# #Restorer: ïðè îáðàáîòêå êîìàíäíîãî ôàéëà ïðîãðàììû Vim, 'verbose'>0 +# :!~ Restorer #, c-format msgid "line %ld: could not source \"%s\"" -msgstr "ñòðîêà %ld: íåâîçìîæíî ñ÷èòàòü \"%s\"" +msgstr "Îøèáêà â ñòðîêå %ld ïðè îáðàáîòêå êîìàíäíîãî ôàéëà \"%s\"" +# #Restorer: ïðè îáðàáîòêå êîìàíäíîãî ôàéëà ïðîãðàììû Vim â ðåæèìå îòëàäêè, 'verbose'>1 +# :!~ Restorer #, c-format msgid "sourcing \"%s\"" -msgstr "ñ÷èòûâàíèå ñöåíàðèÿ \"%s\"" +msgstr "Îáðàáîòêà êîìàíäíîãî ôàéëà \"%s\"" +# #Restorer: ïðè îáðàáîòêå êîìàíäíîãî ôàéëà ïðîãðàììû Vim, 'verbose'>1 +# :!~ Restorer #, c-format msgid "line %ld: sourcing \"%s\"" -msgstr "ñòðîêà %ld: ñ÷èòûâàíèå \"%s\"" +msgstr " ñòðîêå %ld âûçîâ êîìàíäíîãî ôàéëà \"%s\"" +# #Restorer: ïðè îáðàáîòêå êîìàíäíîãî ôàéëà ïðîãðàììû Vim, 'verbose'>1 +# :!~ Restorer #, c-format msgid "finished sourcing %s" -msgstr "ñ÷èòûâàíèå ñöåíàðèÿ %s çàâåðøåíî" +msgstr "Çàâåðøåíà îáðàáîòêà êîìàíäíîãî ôàéëà %s" +# #Restorer: ïðè îáðàáîòêå êîìàíäíîãî ôàéëà ïðîãðàììû Vim â ðåæèìå îòëàäêè, 'verbose'>1 +# #Restorer: è ïðè îáðàáîòêå ïîëüçîâàòåëüñêîé ôóíêöèè â ðåæèìå îòëàäêè, 'verbose'>12 +# :!~ Restorer #, c-format msgid "continuing in %s" -msgstr "ïðîäîëæåíèå â %s" +msgstr "Íà÷èíàåòñÿ îáðàáîòêà %s" +# #Restorer: äîïèñûâàåòñÿ ê «Last set from» ïî êîìàíäå `:verbose set` +# :!~ Restorer msgid "modeline" -msgstr "ðåæèìíàÿ ñòðîêà" +msgstr "ðåæèìíîé ñòðîêå" +# #Restorer: äîïèñûâàåòñÿ ê «Last set from» ïî êîìàíäå `:verbose set` +# :!~ Restorer msgid "--cmd argument" -msgstr "--cmd ïàðàìåòð" +msgstr "àðãóìåíòå êîìàíäíîé ñòðîêè --cmd" +# #Restorer: äîïèñûâàåòñÿ ê «Last set from» ïî êîìàíäå `:verbose set` +# :!~ Restorer msgid "-c argument" -msgstr "-c ïàðàìåòð" +msgstr "àðãóìåíòå êîìàíäíîé ñòðîêè -c" +# #Restorer: äîïèñûâàåòñÿ ê «Last set from» ïî êîìàíäå `:verbose set` +# :!~ Restorer msgid "environment variable" -msgstr "ïåðåìåííàÿ îêðóæåíèÿ" +msgstr "ïåðåìåííîé îêðóæåíèÿ" +# #Restorer: äîïèñûâàåòñÿ ê «Last set from» ïî êîìàíäå `:verbose set` +# :!~ Restorer msgid "error handler" -msgstr "îáðàáîò÷èê îøèáêè" +msgstr "ðåçóëüòàòå âîçíèêøåé îøèáêè" +# #Restorer: äîïèñûâàåòñÿ ê «Last set from» ïî êîìàíäå `:verbose set` +# :!~ Restorer msgid "changed window size" -msgstr "èçìåíåíèå ðàçìåðà îêíà" +msgstr "ðåçóëüòàòå èçìåíåíèÿ ðàçìåðà îêíà" +# :!~ Restorer msgid "W15: Warning: Wrong line separator, ^M may be missing" msgstr "" -"W15: Ïðåäóïðåæäåíèå: íåïðàâèëüíûé ðàçäåëèòåëü ñòðîêè. Âîçìîæíî, ïðîïóùåíî ^M" +"W15: Âíèìàíèå! Íåäîïóñòèìûé ðàçäåëèòåëü ñòðîê. Âîçìîæíî, ïðîïóùåí ñèìâîë " +# :!~ Restorer msgid " (includes previously listed match)" -msgstr " (âêëþ÷àåò ðàííåå ïîêàçàííûå ñîîòâåòñòâèÿ)" +msgstr " (âêëþ÷àåò ðàííåå ïîêàçàííûå)" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:checkpath` è `:checkpath!` +# :!~ Restorer msgid "--- Included files " -msgstr "--- Âêëþ÷¸ííûå ôàéëû " +msgstr "--- Ïîäêëþ÷àåìûå ôàéëû" +# #Restorer: äîïèñûâàåòñÿ ê «--- Included files » òîëüêî äëÿ `:checkpath` +# :!~ Restorer msgid "not found " -msgstr "íå íàéäåíî " +msgstr ", íå íàéäåííûå" +# #Restorer: äîïèñûâàåòñÿ ê «--- Included files» ïî `:checkpath` è `:checkpath!` +# :!~ Restorer msgid "in path ---\n" -msgstr "ïî ïóòè ---\n" +msgstr " â êàòàëîãàõ çàäàííûõ â ïàðàìåòðå 'path' ---\n" +# ~!: earlier msgid " (Already listed)" -msgstr " (Óæå ïîêàçàíî)" +msgstr " (óæå ïîêàçàíî)" +# :!~ Restorer msgid " NOT FOUND" -msgstr " ÍÅ ÍÀÉÄÅÍÎ" +msgstr " ÍÅ ÍÀÉÄÅÍ" +# :!~ Restorer #, c-format msgid "Scanning included file: %s" -msgstr "Ïðîñìîòð âêëþ÷¸ííûõ ôàéëîâ: %s" +msgstr "Ïðîñìîòð â ïîäêëþ÷àåìîì ôàéëå %s" +# #Restorer: âûâîäèòñÿ ïðè verbose >= 5 +# :!~ Restorer #, c-format msgid "Searching included file %s" -msgstr "Ïîèñê âêëþ÷¸ííîãî ôàéëà %s" +msgstr "Ïîèñê ïîäêëþ÷àåìîãî ôàéëà %s" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:checkpath` +# :!~ Restorer msgid "All included files were found" -msgstr "Íàéäåíû âñå âêëþ÷¸ííûå ôàéëû" +msgstr "Âñå ïîäêëþ÷àåìûå ôàéëû áûëè ïðîñìîòðåíû" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:checkpath!` +# :!~ Restorer msgid "No included files" -msgstr "Âêëþ÷¸ííûõ ôàéëîâ íåò" +msgstr "Îòñóòñòâóþò ïîäêëþ÷àåìûå ôàéëû" +# #Restorer: çàãîëîâîê îêíà, âûâîäèòñÿ ïî êîìàíäå `:browse mkview` +# :!~ Restorer msgid "Save View" -msgstr "Ñîõðàíåíèå âèäà" +msgstr "Ñîõðàíèòü ôàéë ïðåäñòàâëåíèÿ" +# #Restorer: çàãîëîâîê îêíà, âûâîäèòñÿ ïî êîìàíäå `:browse mksession` +# :!~ Restorer msgid "Save Session" -msgstr "Ñîõðàíåíèå ñåàíñà" +msgstr "Ñîõðàíèòü ôàéë ñåàíñà" +# #Restorer: çàãîëîâîê îêíà, âûâîäèòñÿ ïî êîìàíäå `:browse mkexrc` è `:browse mkvimrc` +# :!~ Restorer msgid "Save Setup" -msgstr "Ñîõðàíåíèå íàñòðîåê" +msgstr "Ñîõðàíèòü ôàéë èíèöèàëèçàöèè" +# ~!: earlier msgid "[Deleted]" -msgstr "[Óäàëåíî]" +msgstr "[óäàëåíî]" +# #Restorer: íàïðèìåð, ïî êîìàíäå `:sign list` +# ~!: earlier msgid "" "\n" "--- Signs ---" @@ -2841,460 +4139,629 @@ msgstr "" "\n" "--- Çíà÷êè ---" +# #Restorer: íàïðèìåð, ïî êîìàíäå `:sign list` +# ~!: earlier #, c-format msgid "Signs for %s:" msgstr "Çíà÷êè äëÿ %s:" +# #Restorer: íàïðèìåð, ïî êîìàíäå `:sign list` +# ~!: earlier #, c-format msgid " group=%s" msgstr " ãðóïïà=%s" +# #Restorer: íàïðèìåð, ïî êîìàíäå `:sign list` +# :!~ Restorer #, c-format msgid " line=%ld id=%d%s name=%s priority=%d" -msgstr " ñòðîêà=%ld id=%d%s èìÿ=%s ïðèîðèòåò=%d" +msgstr " ñòðîêà=%ld; id=%d%s; íàèìåíîâàíèå=%s ïðèîðèòåò=%d" +# #Restorer: êîìàíäà sign list {name}, icon +# ~!: earlier msgid " (NOT FOUND)" -msgstr " (ÍÅ ÍÀÉÄÅÍÎ)" +msgstr " (íå íàéäåíî)" +# #Restorer: êîìàíäà sign list {name}, icon +# ~!: earlier msgid " (not supported)" msgstr " (íå ïîääåðæèâàåòñÿ)" +# #Restorer: øàáëîíû %s çàìåíÿþòñÿ íà ÿçûê, êîäèðîâêà, ÿçûê, ñîîòâåòñòâåííî +# :!~ Restorer #, c-format msgid "Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\"" -msgstr "" -"Ïðåäóïðåæäåíèå: Íåâîçìîæíî íàéòè ñïèñîê ñëîâ \"%s_%s.spl\" èëè \"%s_ascii.spl" -"\"" +msgstr "Âíèìàíèå! Íå íàéäåí ôàéë \"%s_%s.spl\" èëè \"%s_ascii.spl\"" +# #Restorer: øàáëîíû %s çàìåíÿþòñÿ íà ÿçûê, êîäèðîâêà, ÿçûê, ñîîòâåòñòâåííî +# :!~ Restorer #, c-format msgid "Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\"" -msgstr "" -"Ïðåäóïðåæäåíèå: Íåâîçìîæíî íàéòè ñïèñîê ñëîâ \"%s.%s.spl\" èëè \"%s.ascii.spl" -"\"" +msgstr "Âíèìàíèå! Íå íàéäåí ôàéë \"%s.%s.spl\" èëè \"%s.ascii.spl\"" +# :!~ Restorer #, c-format msgid "Warning: region %s not supported" -msgstr "Ïðåäóïðåæäåíèå: ðåãèîí %s íå ïîääåðæèâàåòñÿ" +msgstr "Âíèìàíèå! Ïðîâåðêà ïðàâîïèñàíèÿ íå ïîääåðæèâàåòñÿ äëÿ ðåãèîíà %s" +# :!~ Restorer #, c-format msgid "Trailing text in %s line %d: %s" -msgstr "Ëèøíèé òåêñò íà õâîñòå â %s ñòð. %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d ïîñòîðîííèå ñèìâîëû %s" +# :!~ Restorer #, c-format msgid "Affix name too long in %s line %d: %s" -msgstr "Èìÿ àôôèêñà ñëèøêîì äëèííîå â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d ïðåâûøåíà äëèíà íàèìåíîâàíèÿ àôôèêñà %s" +# :!~ Restorer msgid "Compressing word tree..." -msgstr "Ñæàòèå äåðåâà ñëîâ..." +msgstr "Ñæàòèå «äåðåâà» ñëîâ ..." +# :!~ Restorer #, c-format msgid "Reading spell file \"%s\"" -msgstr "×òåíèå ôàéëà ïðàâîïèñàíèÿ \"%s\"" +msgstr "Ñ÷èòûâàíèå ôàéëà ñ ïðàâèëàìè íàïèñàíèÿ \"%s\"" +# :!~ Restorer #, c-format msgid "Reading affix file %s..." -msgstr "×òåíèå ôàéëà àôôèêñîâ %s..." +msgstr "Ñ÷èòûâàíèå ôàéëà àôôèêñîâ %s..." +# :!~ Restorer #, c-format msgid "Conversion failure for word in %s line %d: %s" -msgstr "Íå óäàëîñü ïðåîáðàçîâàòü ñëîâî â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d ïðîèçîø¸ë ñáîé ïðè èçìåíåíèè êîäèðîâêè òåêñò %s" +# :!~ Restorer #, c-format msgid "Conversion in %s not supported: from %s to %s" -msgstr "Ïðåîáðàçîâàíèå â %s íå ïîääåðæèâàåòñÿ: èç %s â %s" +msgstr "Äëÿ ôàéëà %s íå ïîääåðæèâàåòñÿ ïåðåêîäèðîâàíèå èç %s â %s" +# :!~ Restorer #, c-format msgid "Invalid value for FLAG in %s line %d: %s" -msgstr "Íåïðàâèëüíîå çíà÷åíèå FLAG â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íåäîïóñòèìîå çíà÷åíèå ïðàâèëà FLAG %s" +# :!~ Restorer #, c-format msgid "FLAG after using flags in %s line %d: %s" -msgstr "FLAG ïîñëå èñïîëüçîâàíèÿ ôëàãîâ â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d ïîñëå çíà÷åíèé ôëàãîâ îáíàðóæåíî ïðàâèëî FLAG %s" +# :!~ Restorer #, c-format msgid "" -"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line " -"%d" +"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d" msgstr "" -"Îïðåäåëåíèå COMPOUNDFORBIDFLAG ïîñëå ýëåìåíòà PFX ìîæåò äàòü íåïðàâèëüíûå " -"ðåçóëüòàòû â %s, ñòðîêà %d" +" ôàéëå %s íà ñòðîêå %d óêàçàí COMPOUNDFORBIDFLAG ïîñëå PFX, ÷òî íåæåëàòåëüíî" +# :!~ Restorer #, c-format msgid "" -"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line " -"%d" +"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d" msgstr "" -"Îïðåäåëåíèå COMPOUNDPERMITFLAG ïîñëå ýëåìåíòà PFX ìîæåò äàòü íåïðàâèëüíûå " -"ðåçóëüòàòû â %s, ñòðîêà %d" +" ôàéëå %s íà ñòðîêå %d óêàçàí COMPOUNDPERMITFLAG ïîñëå PFX, ÷òî íåæåëàòåëüíî" +# :!~ Restorer #, c-format msgid "Wrong COMPOUNDRULES value in %s line %d: %s" -msgstr "Íåïðàâèëüíîå çíà÷åíèå COMPOUNDRULES â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íåäîïóñòèìîå çíà÷åíèå ïðàâèëà COMPOUNDRULES %s" +# :!~ Restorer #, c-format msgid "Wrong COMPOUNDWORDMAX value in %s line %d: %s" -msgstr "Íåïðàâèëüíîå çíà÷åíèå COMPOUNDWORDMAX â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íåäîïóñòèìîå çíà÷åíèå ïðàâèëà COMPOUNDWORDMAX %s" +# :!~ Restorer #, c-format msgid "Wrong COMPOUNDMIN value in %s line %d: %s" -msgstr "Íåïðàâèëüíîå çíà÷åíèå COMPOUNDMIN â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íåäîïóñòèìîå çíà÷åíèå ïðàâèëà COMPOUNDMIN %s" +# :!~ Restorer #, c-format msgid "Wrong COMPOUNDSYLMAX value in %s line %d: %s" -msgstr "Íåïðàâèëüíîå çíà÷åíèå COMPOUNDSYLMAX â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íåäîïóñòèìîå çíà÷åíèå ïðàâèëà COMPOUNDSYLMAX %s" +# :!~ Restorer #, c-format msgid "Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s" -msgstr "Íåïðàâèëüíîå çíà÷åíèå CHECKCOMPOUNDPATTERN â %s, ñòðîêà %d: %s" +msgstr "" +" ôàéëå %s íà ñòðîêå %d íåäîïóñòèìîå çíà÷åíèå ïðàâèëà CHECKCOMPOUNDPATTERN %s" +# :!~ Restorer #, c-format msgid "Different combining flag in continued affix block in %s line %d: %s" msgstr "" -"Äðóãîé îáúåäèíÿþùèé ôëàã â ïðîäîëæàþùåì áëîêå àôôèêñà â %s, ñòðîêà %d: %s" +" ôàéëå %s íà ñòðîêå %d íåäîïóñòèìûé ïðèçíàê êîìáèíèðîâàíèÿ áëîêîâ àôôèêñîâ %s" +# :!~ Restorer #, c-format msgid "Duplicate affix in %s line %d: %s" -msgstr "Ïîâòîðÿþùèéñÿ àôôèêñ â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d óêàçàí óæå ðàíåå îïðåäåë¸ííûé àôôèêñ %s" +# :!~ Restorer #, c-format msgid "" "Affix also used for BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/NOSUGGEST in %s " "line %d: %s" msgstr "" -"Àôôèêñ òàêæå èñïîëüçóåòñÿ äëÿ BAD/RARE/KEEPCASE/NEEDAFFIX/NEEDCOMPOUND/" -"NOSUGGEST â %s, ñòðîêà %d: %s" +" ôàéëå %s íà ñòðîêå %d àôôèêñ çàäàí åù¸ è â êàêîì-òî èç ïðàâèë BAD, RARE, " +"KEEPCASE, NEEDAFFIX, NEEDCOMPOUND, NOSUGGEST %s" +# :!~ Restorer #, c-format msgid "Expected Y or N in %s line %d: %s" -msgstr "Îæèäàëîñü Y èëè N â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d äîïóñòèìî óêàçàòü òîëüêî Y èëè N, à íå %s" +# :!~ Restorer #, c-format msgid "Broken condition in %s line %d: %s" -msgstr "Íàðóøåííîå óñëîâèå â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íåäîïóñòèìîå äëÿ âûïîëíåíèÿ ïîèñêà óñëîâèå %s" +# :!~ Restorer #, c-format msgid "Expected REP(SAL) count in %s line %d" -msgstr "Îæèäàëñÿ ñ÷¸ò÷èê REP(SAL) â %s, ñòðîêà %d" +msgstr " ôàéëå %s íà ñòðîêå %d äëÿ ïðàâèë REP èëè REPSAL íå óêàçàíî êîëè÷åñòâî" +# :!~ Restorer #, c-format msgid "Expected MAP count in %s line %d" -msgstr "Îæèäàëñÿ ñ÷¸ò÷èê MAP â %s, ñòðîêà %d" +msgstr " ôàéëå %s íà ñòðîêå %d äëÿ ïðàâèëà MAP íå óêàçàíî êîëè÷åñòâî" +# :!~ Restorer #, c-format msgid "Duplicate character in MAP in %s line %d" -msgstr "Ïîâòîðÿþùèéñÿ ñèìâîë â MAP â %s, ñòðîêà %d" +msgstr " ôàéëå %s íà ñòðîêå %d ïîâòîð ñèìâîëà â ïðàâèëå MAP" +# :!~ Restorer #, c-format msgid "Unrecognized or duplicate item in %s line %d: %s" -msgstr "Íåðàñïîçíàííûé èëè ïîâòîðÿþùèéñÿ ýëåìåíò â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íåðàñïîçíàííîå èëè ïîâòîðÿþùååñÿ ïðàâèëî %s" +# :!~ Restorer #, c-format msgid "Missing FOL/LOW/UPP line in %s" -msgstr "Ïðîïóùåíà ñòðîêà FOL/LOW/UPP â %s" +msgstr "Îòñóòñòâóåò ñòðîêà ñ ïðàâèëîì FOL, LOW èëè UPP â ôàéëå %s" +# :!~ Restorer msgid "COMPOUNDSYLMAX used without SYLLABLE" -msgstr "COMPOUNDSYLMAX èñïîëüçóåòñÿ áåç SYLLABLE" +msgstr "Èñïîëüçîâàíèå ïðàâèëà COMPOUNDSYLMAX áåç óêàçàíèÿ ïðàâèëà SYLLABLE" +# :!~ Restorer msgid "Too many postponed prefixes" -msgstr "Ñëèøêîì ìíîãî îòëîæåííûõ ïðåôèêñîâ" +msgstr "Áîëüøîå êîëè÷åñòâî îòëîæåííûõ ïðåôèêñîâ" +# :!~ Restorer msgid "Too many compound flags" -msgstr "Ñëèøêîì ìíîãî ñîñòàâíûõ ôëàãîâ" +msgstr "Áîëüøîå êîëè÷åñòâî ïðèçíàêîâ ñîñòàâíûõ ñëîâ" +# :!~ Restorer msgid "Too many postponed prefixes and/or compound flags" -msgstr "Ñëèøêîì ìíîãî îòëîæåííûõ ïðåôèêñîâ è/èëè ñîñòàâíûõ ôëàãîâ" +msgstr "" +"Áîëüøîå êîëè÷åñòâî êàê îòëîæåííûõ ïðåôèêñîâ, òàê è ïðèçíàêîâ ñîñòàâíûõ ñëîâ" +# #Restorer: øàáëîí %s â SOFO çàìåíÿåòñÿ èëè íà «FROM», èëè íà «TO» +# :!~ Restorer #, c-format msgid "Missing SOFO%s line in %s" -msgstr "Ïðîïóùåíà ñòðîêà SOFO%s â %s" +msgstr "Íå óêàçàíà ñòðîêà ñ ïðàâèëîì SOFO%s â ôàéëå %s" +# :!~ Restorer #, c-format msgid "Both SAL and SOFO lines in %s" -msgstr "Îáå ñòðîêè SAL è SOFO â %s" +msgstr "Îáíàðóæåíî èñïîëüçîâàíèå è ïðàâèëà SAL, è ïðàâèëà SOFO â ôàéëå %s" +# :!~ Restorer #, c-format msgid "Flag is not a number in %s line %d: %s" -msgstr "Ôëàã íå ÿâëÿåòñÿ ÷èñëîì â %s, ñòðîêà %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d îáíàðóæåí íå ÷èñëîâîé ïðèçíàê %s" +# :!~ Restorer #, c-format msgid "Illegal flag in %s line %d: %s" -msgstr "Íåäîïóñòèìûé ôëàã â %s íà ñòðîêå %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d îáíàðóæåí íåäîïóñòèìûé ïðèçíàê %s" +# :!~ Restorer #, c-format msgid "%s value differs from what is used in another .aff file" -msgstr "%s èìååò äðóãîå çíà÷åíèå, ÷åì â ôàéëå .aff" +msgstr " äðóãîì ôàéëå àôôèêñîâ îáíàðóæåíî îòëè÷àþùååñÿ çíà÷åíèå äëÿ %s" +# :!~ Restorer #, c-format msgid "Reading dictionary file %s..." -msgstr "×òåíèå ôàéëà ñëîâàðÿ %s..." +msgstr "Ñ÷èòûâàíèå ôàéëà ñëîâàðÿ %s..." +# ~!: earlier #, c-format msgid "line %6d, word %6ld - %s" -msgstr "ñòðîêà %6d, ñëîâî %6ld — %s" +msgstr "ñòðîêà %6d, ñëîâî %6ld - %s" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Duplicate word in %s line %d: %s" -msgstr "Ïîâòîð ñëîâà â %s íà ñòðîêå %d: %s " +msgstr " ôàéëå %s íà ñòðîêå %d ïîâòîð ñëîâà %s" +# :!~ Restorer #, c-format msgid "First duplicate word in %s line %d: %s" -msgstr "Ïåðâûé ïîâòîð ñëîâà â %s íà ñòðîêå %d: %s" +msgstr " ôàéëå %s íà ñòðîêå %d íàõîäèòñÿ ïåðâûé ïîâòîð ñëîâà %s" +# :!~ Restorer #, c-format msgid "%d duplicate word(s) in %s" -msgstr "%d ïîâòîðÿþùèõñÿ ñëîâ â %s" +msgstr "Îáíàðóæåíî ïîâòîðîâ ñëîâ: %d, ôàéë %s " +# :!~ Restorer #, c-format msgid "Ignored %d word(s) with non-ASCII characters in %s" -msgstr "Ïðîïóùåíî %d ñëîâ ñ íå ASCII ñèìâîëàìè â %s" +msgstr "" +"Íå îáðàáîòàíî ñëîâ ñ ñèìâîëàìè, íå âõîäÿùèìè â êîäèðîâêó ASCII: %d, ôàéë %s" +# :!~ Restorer #, c-format msgid "Reading word file %s..." -msgstr "×òåíèå ôàéëà ñëîâ %s..." +msgstr "Ñ÷èòûâàíèå ôàéëà ñî ñïèñêîì ñëîâ %s..." +# :!~ Restorer #, c-format msgid "Conversion failure for word in %s line %ld: %s" -msgstr "Íå óäàëîñü ïðåîáðàçîâàòü ñëîâî â %s, ñòðîêà %ld: %s" +msgstr " ôàéëå %s íà ñòðîêå %ld ïðîèçîø¸ë ñáîé ïðè èçìåíåíèè êîäèðîâêè òåêñò %s" +# :!~ Restorer #, c-format msgid "Duplicate /encoding= line ignored in %s line %ld: %s" -msgstr "Ïðîïóñêàåòñÿ ïîâòîð ñòðîêè /encoding= â %s, ñòðîêà %ld: %s" +msgstr " ôàéëå %s íà ñòðîêå %ld áûë ïðîèãíîðèðîâàí ïîâòîð /encoding= %s" +# :!~ Restorer #, c-format msgid "/encoding= line after word ignored in %s line %ld: %s" -msgstr "Ïðîïóñêàåòñÿ ñòðîêà /encoding= ïîñëå ñëîâà â %s, ñòðîêà %ld: %s" +msgstr "" +" ôàéëå %s íà ñòðîêå %ld ïðîèãíîðèðîâàí óêàçàííûé ïîñëå ñëîâà /encoding= %s" +# :!~ Restorer #, c-format msgid "Duplicate /regions= line ignored in %s line %ld: %s" -msgstr "Ïðîïóñêàåòñÿ ïîâòîð ñòðîêè /regions= â %s, ñòðîêà %ld: %s" +msgstr " ôàéëå %s íà ñòðîêå %ld áûë ïðîèãíîðèðîâàí ïîâòîð %s" +# :!~ Restorer #, c-format msgid "Too many regions in %s line %ld: %s" -msgstr "Ñëèøêîì ìíîãî ðåãèîíîâ â %s, ñòðîêà %ld: %s" +msgstr " ôàéëå %s íà ñòðîêå %ld ïðåâûøåíî êîëè÷åñòâî ðåãèîíîâ %s" +# :!~ Restorer #, c-format msgid "/ line ignored in %s line %ld: %s" -msgstr "/ ñòðîêà ïðîïóñêàåòñÿ â %s, ñòðîêà %ld: %s" +msgstr " ôàéëå %s íà ñòðîêå %ld íå îáðàáîòàí óêàçàííûé ïîñëå ñèìâîëà / òåêñò %s" +# :!~ Restorer #, c-format msgid "Invalid region nr in %s line %ld: %s" -msgstr "Íåäîïóñòèìûé íîìåð ðåãèîíà â %s, ñòðîêà %ld: %s" +msgstr " ôàéëå %s íà ñòðîêå %ld îáíàðóæåí íåäîïóñòèìûé íîìåð ðåãèîíà %s" +# :!~ Restorer #, c-format msgid "Unrecognized flags in %s line %ld: %s" -msgstr "Íåðàñïîçíàííûå ôëàãè â %s, ñòðîêà %ld: %s" +msgstr " ôàéëå %s íà ñòðîêå %ld îáíàðóæåí íåðàñïîçíàííûé ïðèçíàê %s" +# :!~ Restorer #, c-format msgid "Ignored %d words with non-ASCII characters" -msgstr "Ïðîïóùåíî %d ñëîâ ñ íå ASCII ñèìâîëàìè" +msgstr "Íå îáðàáîòàíî ñëîâ ñ ñèìâîëàìè, íå âõîäÿùèìè â êîäèðîâêó ASCII: %d" +# #Restorer: ñ âåðñèè 8.2 ïîäñòàâëÿåòñÿ íàèìåíîâàíèÿ ñæèìàåìîãî «äåðåâà» - %s +# :!~ Restorer #, c-format msgid "Compressed %s: %ld of %ld nodes; %ld (%ld%%) remaining" -msgstr "Ñæàòî %s: %ld èç %ld óçëîâ; îñòàëîñü %ld (%ld%%)" +msgstr "Ñæàòî óçëîâ %s: %ld èç %ld. Îñòàëîñü %ld (%ld%%)" +# :!~ Restorer msgid "Reading back spell file..." -msgstr "×òåíèå çàïèñàííîãî ôàéëà ïðàâîïèñàíèÿ..." +msgstr "Ñ÷èòûâàíèå çàïèñàííîãî ôàéëà ïðàâèë íàïèñàíèÿ ..." +# :!~ Restorer msgid "Performing soundfolding..." -msgstr "Âûïîëíåíèå ôîíåòè÷åñêîé ñâ¸ðòêè..." +msgstr "Ïîñòðîåíèå ïðåôèêñíîãî «äåðåâà» îìîôîíîâ ..." +# :!~ Restorer #, c-format msgid "Number of words after soundfolding: %ld" -msgstr "Êîëè÷åñòâî ñëîâ ïîñëå ôîíåòè÷åñêîé ñâ¸ðòêè: %ld" +msgstr "Êîëè÷åñòâî ñëîâ ïîñëå ïîñòðîåíèå ïðåôèêñíîãî «äåðåâà» îìîôîíîâ %ld" +# ~!: earlier #, c-format msgid "Total number of words: %d" msgstr "Îáùåå êîëè÷åñòâî ñëîâ: %d" +# :!~ Restorer #, c-format msgid "Writing suggestion file %s..." -msgstr "Çàïèñü ôàéëà ïðåäëîæåíèÿ èñïðàâëåíèé ïðàâîïèñàíèÿ %s..." +msgstr "Çàïèñü ôàéëà âàðèàíòîâ íàïèñàíèÿ %s..." +# ~!: earlier #, c-format msgid "Estimated runtime memory use: %d bytes" -msgstr "Îöåíêà èñïîëüçîâàíèÿ ïàìÿòè ïðè âûïîëíåíèè: %d áàéòîâ" +msgstr "Îöåíêà èñïîëüçîâàíèÿ ïàìÿòè ïðè âûïîëíåíèè: %d áàéò" +# :!~ Restorer msgid "Warning: both compounding and NOBREAK specified" -msgstr "Ïðåäóïðåæäåíèå: ïðàâèëî äëÿ ñîñòàâíûõ ñëîâ óêàçàíî âìåñòå ñ NOBREAK" +msgstr "Âíèìàíèå! Óêàçàíû êàê ïðàâèëà äëÿ ñîñòàâíûõ ñëîâ, òàê è ïðàâèëî NOBREAK" +# :!~ Restorer #, c-format msgid "Writing spell file %s..." -msgstr "Çàïèñü ôàéëà ïðàâîïèñàíèÿ %s..." +msgstr "Çàïèñü ôàéëà ïðàâèë íàïèñàíèÿ %s..." +# ~!: earlier msgid "Done!" msgstr "Çàâåðøåíî!" +# ~!: earlier #, c-format msgid "Word '%.*s' removed from %s" msgstr "Ñëîâî '%.*s' óäàëåíî èç %s" +# :!~ Restorer msgid "Seek error in spellfile" -msgstr "Îøèáêà ïîèñêà ïðè ÷òåíèè ôàéëà ïðàâîïèñàíèÿ" +msgstr "Îøèáêà ïîèñêà äàííûõ ïðè ñ÷èòûâàíèè ôàéëà ïðàâèë íàïèñàíèÿ" +# ~!: earlier #, c-format msgid "Word '%.*s' added to %s" msgstr "Ñëîâî '%.*s' äîáàâëåíî â %s" +# :!~ Restorer msgid "Sorry, no suggestions" -msgstr "Èçâèíèòå, íåò ïðåäïîëîæåíèé" +msgstr "Îòñóòñòâóþò âàðèàíòû íàïèñàíèÿ" +# :!~ Restorer #, c-format msgid "Sorry, only %ld suggestions" -msgstr "Èçâèíèòå, òîëüêî %ld ïðåäïîëîæåíèé" +msgstr "Âàðèàíòîâ íàïèñàíèÿ %ld" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `z=` +# ~!: earlier #, c-format msgid "Change \"%.*s\" to:" -msgstr "Çàìåíèòü \"%.*s\" íà:" +msgstr "Çàìåíèòü \"%.*s\" ñëîâîì " +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `z=` +# ~!: earlier #, c-format msgid " < \"%.*s\"" msgstr " < \"%.*s\"" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax` +# :!~ Restorer msgid "No Syntax items defined for this buffer" -msgstr "Ñèíòàêñè÷åñêèå ýëåìåíòû äëÿ äàííîãî áóôåðà íå îïðåäåëåíû" +msgstr "Äëÿ òåêóùåãî áóôåðà íå îïðåäåëåíû ýëåìåíòû ñèíòàêñèñà" +# :!~ Restorer msgid "'redrawtime' exceeded, syntax highlighting disabled" -msgstr "ïðåâûøåíî 'redrawtime', ïîäñâåòêà ñèíòàêñèñà îòêëþ÷åíà" +msgstr "" +"Ïðåâûøåíî óêàçàííîå â ïàðàìåòðå 'redrawtime' âðåìÿ îáíîâëåíèÿ ýêðàíà. " +"Ïîäñâåòêà ñèíòàêñèñà îòêëþ÷åíà" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax iskeyword` +# :!~ Restorer msgid "syntax iskeyword not set" -msgstr "ñèíòàêñè÷åñêîå êëþ÷åâîå ñëîâî íå óñòàíîâëåíî" +msgstr "Çíà÷åíèå 'iskeyword', èñïîëüçóåìîå ïðè ïîäñâåòêå ñèíòàêñèñà, íå çàäàíî" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync` +# :!~ Restorer msgid "syncing on C-style comments" -msgstr "Ñèíõðîíèçàöèÿ ïî êîììåíòàðèÿì â ñòèëå ÿçûêà C" +msgstr "Ðåòðîñïåêòèâíàÿ ñèíõðîíèçàöèÿ ïî ñòðîêàì êîììåíòàðèåâ â ñòèëå ÿçûêà Ñè" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync` +# :!~ Restorer msgid "no syncing" -msgstr "áåç ñèíõðîíèçàöèè" +msgstr "Ðåòðîñïåêòèâíàÿ ñèíõðîíèçàöèÿ ïîäñâåòêè òåêñòà íå âûïîëíÿåòñÿ" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync` +# :!~ Restorer msgid "syncing starts at the first line" -msgstr "ñèíõðîíèçàöèÿ íà÷àòà ñ ïåðâîé ñòðîêè" +msgstr "Ðåòðîñïåêòèâíàÿ ñèíõðîíèçàöèÿ ïîäñâåòêè âûïîëíÿåòñÿ ñ ïåðâîé ñòðîêè" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync` +# :!~ Restorer msgid "syncing starts " -msgstr "ñèíõðîíèçàöèÿ íà÷àòà " +msgstr "Äëÿ ðåòðîñïåêòèâíîé ñèíõðîíèçàöèè ñ÷èòàíî ñòðîê: " +# #Restorer: äîïèñûâàåòñÿ ê ñîîáùåíèÿì «syncing starts» è «minimal», «maximal» +# :!~ Restorer msgid " lines before top line" -msgstr " ñòðîê ïåðåä âåðõíåé ñòðîêîé" +msgstr " îò âåðõíåé ñòðîêè íà ýêðàíå" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync` +# :!~ Restorer msgid "" "\n" "--- Syntax sync items ---" msgstr "" "\n" -"--- Ýëåìåíòû ñèíõðîíèçàöèè ñèíòàêñèñà ---" +"--- Ýëåìåíòû ñèíòàêñèñà äëÿ ñèíõðîíèçàöèè ïîäñâåòêè ---" +# #Restorer: âûâîäèòñÿ ñëåäóþùåé ñòðîêîé ïîñëå ñîîáùåíèÿ «--- Syntax sync items ---» +# #Restorer: åñëè çàäàíî õîòÿ áû ìèíèìàëüíîå, ìàêñèìàëüíîå, ñîñåäíåå êîë-âî ñòðîê +# :!~ Restorer msgid "" "\n" "syncing on items" msgstr "" "\n" -"ñèíõðîíèçàöèÿ ïî ýëåìåíòàì" +"Ðåòðîñïåêòèâíàÿ ñèíõðîíèçàöèÿ ïî ýëåìåíòàì ñèíòàêñèñà" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax` +# :!~ Restorer msgid "" "\n" "--- Syntax items ---" msgstr "" "\n" -"--- Ñèíòàêñè÷åñêèå ýëåìåíòû ---" +"--- Ýëåìåíòû ñèíòàêñèñà ---" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync`, äîïèñûâàåòñÿ ê +# #Restorer: ñîîáùåíèþ «syncing on C-style comments», «syncing on items» +# :!~ Restorer msgid "from the first line" -msgstr "ñ ïåðâîé ñòðîêè" +msgstr "èç ïåðâîé ñòðîêè" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync`, äîïèñûâàåòñÿ ê +# #Restorer: ñîîáùåíèþ «syncing on C-style comments», «syncing on items» +# :!~ Restorer msgid "minimal " -msgstr "ìèíèìóì " +msgstr "ìèíèìàëüíî ñòðîê: " +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync`, äîïèñûâàåòñÿ ê +# #Restorer: ñîîáùåíèþ «syncing on C-style comments», «syncing on items» +# :!~ Restorer msgid "maximal " -msgstr "ìàêñèìóì " +msgstr "ìàêñèìàëüíî ñòðîê: " +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntax sync`, äîïèñûâàåòñÿ ê +# #Restorer: ñîîáùåíèþ «syncing starts» è «syncing on C-style comments» +# :!~ Restorer msgid "; match " -msgstr "; ñîîòâåòñòâèå " +msgstr "; ó÷èòûâàåòñÿ ñîñåäíèõ ñòðîê: " +# #Restorer: îáúåäèíÿåòñÿ ñ ñîîáùåíèåì «; match» è äîïèñûâàåòñÿ ê +# #Restorer: ñîîáùåíèþ «syncing starts» è «syncing on C-style comments» +# :!~ Restorer msgid " line breaks" -msgstr " ïåðåíîñîâ ñòðîê" +msgstr " " +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:syntime report` +# :!~ Restorer msgid "" " TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN" msgstr "" -" ÂÑÅÃÎ ÊÎË. ÑÎÎÒÂ. ÎÒÑÒÀÞÙÈÉ ÑÐÅÄÍÈÉ ÈÌß ØÀÁËÎÍ" +"ÎÁÙÅÅ ÂÐÅÌß ÂÛÇÎÂΠÏÐÈÌÅÍÅÍÎ ÕÓÄØÅÅ ÑÐÅÄÍÅÅ ÍÀÈÌÅÍÎÂÀÍÈÅ ØÀÁËÎÍ" +# :!~ Restorer #, c-format msgid "File \"%s\" does not exist" -msgstr "Ôàéë \"%s\" íå ñóùåñòâóåò" +msgstr "Íå ñóùåñòâóåò ôàéë èíäåêñîâ \"%s\"" +# #Restorer: øàáëîí %s çàìåíÿåòñÿ íà «or more», åñëè åñòü äðóãèå ôàéëû èíäåêñîâ +# :!~ Restorer #, c-format msgid "tag %d of %d%s" -msgstr "ìåòêà %d èç %d%s" +msgstr "èíäåêñîâ %d èç %d%s" +# #Restorer: äîïèñûâàåòñÿ ê ñîîáùåíèþ «tag %d of %d%s», ïðè óñëîâèè, ÷òî +# ~!: earlier msgid " or more" msgstr " è áîëåå" +# :!~ Restorer msgid " Using tag with different case!" -msgstr " Èñïîëüçóåòñÿ ìåòêà ñ ñèìâîëàìè â äðóãîì ðåãèñòðå!" +msgstr "  íàèìåíîâàíèå èíäåêñà ñèìâîëû ñ ðàçëè÷àþùèìñÿ ðåãèñòðîì!" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:tselect` +# :!~ Restorer msgid " # pri kind tag" -msgstr " # ïðè òèï ìåòêà" +msgstr " ¹ Ïð. Òèï Èíäåêñ" +# #Restorer: äîïèñûâàåòñÿ ê ñîîáùåíèþ «# pri kind tag» +# ~!: earlier msgid "file\n" -msgstr "ôàéë\n" +msgstr "Ôàéë\n" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:tags` +# :!~ Restorer msgid "" "\n" " # TO tag FROM line in file/text" msgstr "" "\n" -" # Ê ìåòêå ÎÒ ñòð. â ôàéëå/òåêñòå" +" ¹ Íà èíäåêñ Èç ñòðîêè  ôàéëå èëè òåêñòå" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=5 +# :!~ Restorer msgid "Ignoring long line in tags file" -msgstr "Èãíîðèðîâàíèå äëèííîé ñòðîêè â ôàéëå tags" +msgstr "" +"Ñòðîêà â ôàéëå èíäåêñîâ ïðåâûøàåò äîïóñòèìóþ äëèíó. Îáðàáîòêà íå âûïîëíåíà" +# ~!: earlier #, c-format msgid "Before byte %ld" msgstr "Ïåðåä áàéòîì %ld" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=5 +# :!~ Restorer #, c-format msgid "Searching tags file %s" -msgstr "Ïîèñê â ôàéëå ìåòîê %s" +msgstr "Ïîèñê â ôàéëå èíäåêñîâ %s" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Duplicate field name: %s" -msgstr "Ïîâòîðÿþùååñÿ èìÿ ïîëÿ: %s" +msgstr "Ïîëå ñ òàêèì íàèìåíîâàíèåì ñóùåñòâóåò %s" +# :!~ Restorer msgid "' not known. Available builtin terminals are:" -msgstr "' íå èçâåñòåí. Äîñòóïíû âñòðîåííûå òåðìèíàëû:" +msgstr "' òåðìèíàë íå ðàñïîçíàí. Äîñòóïíû ñëåäóþùèå âñòðîåííûå òåðìèíàëû:" +# ~!: earlier msgid "defaulting to '" msgstr "ïî óìîë÷àíèþ '" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïî êîìàíäå `:set termcap` +# :!~ Restorer msgid "" "\n" "--- Terminal keys ---" msgstr "" "\n" -"--- Êíîïêè òåðìèíàëà ---" +"--- Êëàâèøè, äîñòóïíûå â òåðìèíàëå ---" +# #Restorer: äèàëîã ïðè îñòàíîâêå ðàáîòû êîìàíäû, ïðîãðàììû â îêíå òåðìèíàëà +# :!~ Restorer #, c-format msgid "Kill job in \"%s\"?" msgstr "Çàâåðøèòü çàäàíèå â \"%s\"?" +# #Restorer: âûâîäèòñÿ â ñòðîêå ñòàòóñà è çàãîëîâêå îêíà +# ~!: earlier msgid "Terminal" msgstr "Òåðìèíàë" +# #Restorer: âûâîäèòñÿ â ñòðîêå ñòàòóñà è çàãîëîâêå îêíà +# :!~ Restorer msgid "Terminal-finished" -msgstr "Òåðìèíàë-çàâåðøåíî" +msgstr "Òåðìèíàë; çàâåðøåíî" +# #Restorer: íàïðèìåð, ïðè ïîäêëþ÷åíèè ê òåðìèíàëó ïî êîìàíäå `:term NONE` +# #Restorer: âûâîäèòñÿ â ñòðîêå ñòàòóñà è çàãîëîâêå îêíà +# ~!: earlier msgid "active" -msgstr "àêòèâíî" +msgstr "àêòèâèðîâàí" +# #Restorer: âûâîäèòñÿ â ñòðîêå ñòàòóñà è çàãîëîâêå îêíà +# :!~ Restorer msgid "running" -msgstr "âûïîëíåíèå" +msgstr "ðàáîòàåò" +# #Restorer: âûâîäèòñÿ â ñòðîêå ñòàòóñà è çàãîëîâêå îêíà +# ~!: earlier msgid "finished" msgstr "çàâåðøåíî" +# :!~ Restorer msgid "(Invalid)" -msgstr "(Íåïðàâèëüíî)" +msgstr "(íåäîïóñòèìîå çíà÷åíèå)" +# #Restorer: â ïåðåâîäå ôîðìàò áûë "÷èñëî ìåñÿö ãîä äåíü íåäåëè ÷àñ:ìèíóòû:ñåêóíäû" +# #Restorer: èçìåíèë ôîðìàò íà "äåíü íåäåëè ÷èñëî ìåñÿö ãîä ÷àñ:ìèíóòû:ñåêóíäû" +# :!~ Restorer #, no-c-format msgid "%a %b %d %H:%M:%S %Y" -msgstr "%d %b %Y %a %H:%M:%S" +msgstr "%a %d %b %Y %H:%M:%S" +# #Restorer: äîáàâëÿåòñÿ ê ñîîáùåíèþ â êîìàíäíîé ñòðîêå ïðè, íàïðèìåð, +# #Restorer: îòìåíå èëè âîçâðàòå èçìåíåíèé èëè òàáëèöå undolist +# ~!: earlier #, c-format msgid "%ld second ago" msgid_plural "%ld seconds ago" @@ -3302,173 +4769,269 @@ msgstr[0] "%ld msgstr[1] "%ld ñåêóíäû íàçàä" msgstr[2] "%ld ñåêóíä íàçàä" +# #Restorer: ÿ òàê ïîíèìàþ, ÷òî ýòî òîëüêî äëÿ BeOS è èæå ñ íåé +# :!~ Restorer msgid "new shell started\n" -msgstr "çàïóñê íîâîé îáîëî÷êè\n" +msgstr "Çàïóñê êîìàíäíîé îáîëî÷êè\n" +# :!~ Restorer msgid "Vim: Error reading input, exiting...\n" -msgstr "Vim: Îøèáêà ÷òåíèÿ ââîäà, âûõîä...\n" +msgstr "" +"Ïðîãðàììà Vim. Îøèáêà ñ÷èòûâàíèÿ èç âõîäíîãî ïîòîêà. Çàâåðøåíèå ðàáîòû...\n" +# :!~ Restorer msgid "No undo possible; continue anyway" -msgstr "Îòìåíà íåâîçìîæíà: ïðîäîëæàòü âûïîëíåíèå" +msgstr "Îòìåíà èçìåíåíèé íå äîñòóïíà. Ïðîäîëæèòü?" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer msgid "Cannot write undo file in any directory in 'undodir'" -msgstr "Íåâîçìîæíî çàïèñàòü ôàéë îòìåí â êàêîì-ëèáî êàòàëîãå èç 'undodir'" +msgstr "" +"Íå óäàëîñü çàïèñàòü ôàéë èçìåíåíèé íè â îäèí èç êàòàëîãîâ èç ïàðàìåòðà 'udodir'" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Will not overwrite with undo file, cannot read: %s" -msgstr "Ôàéë îòìåí íå ïåðåçàïèñàí: íåâîçìîæíî ïðî÷èòàòü %s" +msgstr "Íå óäàëîñü ñ÷èòàòü è çàïèñàòü ôàéë èçìåíåíèé %s" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Will not overwrite, this is not an undo file: %s" -msgstr "Ïåðåçàïèñü íå âûïîëíåíà: ýòî íå ôàéë îòìåí %s" +msgstr "Íå óäàëîñü çàïèñàòü ôàéë. Ôàéë íå ÿâëÿåòñÿ ôàéëîì èçìåíåíèé %s" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer msgid "Skipping undo file write, nothing to undo" -msgstr "Ïðîïóùåíà çàïèñü ôàéëà îòìåí: íå÷åãî îòìåíÿòü" +msgstr "Çàïèñü ôàéëà èçìåíåíèé íå âûïîëíåíà. Èçìåíåíèÿ îòñóòñòâóþò." +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Writing undo file: %s" -msgstr "Çàïèñü ôàéëà îòìåí: %s" +msgstr "Çàïèñü ôàéëà èçìåíåíèé %s" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Not reading undo file, owner differs: %s" -msgstr "Ôàéë îòìåí íå ïðî÷èòàí: äðóãîé âëàäåëåö %s" +msgstr "" +"Âëàäåëüöåì ôàéëà ÿâëÿåòñÿ äðóãîé ïîëüçîâàòåëü. Íå óäàëîñü ñ÷èòàòü ôàéë " +"èçìåíåíèé %s" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Reading undo file: %s" -msgstr "×òåíèå ôàéëà îòìåí: %s" +msgstr "Ñ÷èòûâàíèå ôàéëà èçìåíåíèé %s" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, äëÿ êîìàíä `:wundo` è `:rundo` ïðè 'verbose'>0 +# :!~ Restorer msgid "File contents changed, cannot use undo info" -msgstr "" -"Ñîäåðæèìîå ôàéëà èçìåíèëîñü — íåâîçìîæíî èñïîëüçîâàòü èíôîðìàöèþ îá îòìåíàõ" +msgstr "Ñîäåðæèìîå ôàéëà áûëî èçìåíåíî. Èíôîðìàöèÿ îá èçìåíåíèÿõ íåïðèìåíèìà" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïðè èñïîëíåíèè êîìàíä `:wundo` è `:rundo` +# :!~ Restorer #, c-format msgid "Finished reading undo file %s" -msgstr "Çàâåðøåíî ÷òåíèå ôàéëà îòìåí %s" +msgstr "Çàâåðøåíî ñ÷èòûâàíèå ôàéëà èçìåíåíèé %s" +# :!~ Restorer msgid "Already at oldest change" -msgstr "Óæå íà ñàìîì ïåðâîì èçìåíåíèè" +msgstr "Äîñòèãíóòà ïåðâàÿ çàïèñü èçìåíåíèé" +# :!~ Restorer msgid "Already at newest change" -msgstr "Óæå íà ñàìîì ïîñëåäíåì èçìåíåíèè" +msgstr "Äîñòèãíóòà ïîñëåäíÿÿ çàïèñü èçìåíåíèé" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: èç-çà òîãî, ÷òî ñíà÷àëà âûâîäèòñÿ ÷èñëî, íàäî êàê-òî èçâåðíóòüñÿ +# :!~ Restorer msgid "more line" -msgstr "ñòð. äîáàâëåíà" +msgstr "ñòðîêà âîçâðàùåíà" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: èç-çà òîãî, ÷òî ñíà÷àëà âûâîäèòñÿ ÷èñëî, íàäî êàê-òî èçâåðíóòüñÿ +# :!~ Restorer msgid "more lines" -msgstr "ñòð. äîáàâëåíî" +msgstr "ñòðîêè âîçâðàùåíî" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: èç-çà òîãî, ÷òî ñíà÷àëà âûâîäèòñÿ ÷èñëî, íàäî êàê-òî èçâåðíóòüñÿ +# :!~ Restorer msgid "line less" -msgstr "ñòð. óäàëåíà" +msgstr "ñòðîêà óáðàíà" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: èç-çà òîãî, ÷òî ñíà÷àëà âûâîäèòñÿ ÷èñëî, íàäî êàê-òî èçâåðíóòüñÿ +# :!~ Restorer msgid "fewer lines" -msgstr "ñòð. óäàëåíî" +msgstr "ñòðîêè óáðàíî" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: èç-çà òîãî, ÷òî ñíà÷àëà âûâîäèòñÿ ÷èñëî, íàäî êàê-òî èçâåðíóòüñÿ +# :!~ Restorer msgid "change" -msgstr "èçì." +msgstr "âîçâðàùåíî èëè óáðàíî" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: èç-çà òîãî, ÷òî ñíà÷àëà âûâîäèòñÿ ÷èñëî, íàäî êàê-òî èçâåðíóòüñÿ +# :!~ Restorer msgid "changes" -msgstr "èçì." +msgstr "âîçâðàùåíî èëè óáðàíî" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: âûâîäèòñÿ êàê «1 ñòðîêà óáðàíà; èçìåíåíèå ¹ 75 10 ñ íàçàä» èëè +# #Restorer: «25 âîçâðàùåíî èëè óáðàíî; èçìåíåíèå ¹ 750 98 ñ íàçàä» èëè +# #Restorer: «4 ñòðîêè âîçâðàùåíî; èçìåíåíèå ¹ 175 23:33:07» +# :!~ Restorer #, c-format msgid "%ld %s; %s #%ld %s" -msgstr "%ld %s; %s #%ld %s" +msgstr "%ld %s; %s ¹ %ld %s" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: ïî áîëüøîìó ñ÷¸òó ýòî íå èìååò ñìûñëà, òàê êàê ïîêàçûâàåò êàêîé +# #Restorer: àáñîëþòíûé íîìåð èçìåíåíèÿ áûë èñïîëüçîâàí, íî îí íå âñåãäà òî÷åí +# :!~ Restorer msgid "before" -msgstr "ïåðåä" +msgstr "èçìåíåíèå" +# #Restorer: âûâîäèòñÿ â êîìàíäíîé ñòðîêå ïðè îòìåíå èëè âîçâðàòå èçìåíåíèé +# #Restorer: ïî áîëüøîìó ñ÷¸òó ýòî íå èìååò ñìûñëà, òàê êàê ïîêàçûâàåò êàêîé +# #Restorer: àáñîëþòíûé íîìåð èçìåíåíèÿ áûë èñïîëüçîâàí, íî îí íå âñåãäà òî÷åí +# :!~ Restorer msgid "after" -msgstr "ïîñëå" +msgstr "èçìåíåíèå" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:undolist` ïðè ïóñòîì ïåðå÷íå èçìåíåíèé +# :!~ Restorer msgid "Nothing to undo" -msgstr "Íå÷åãî îòìåíÿòü" +msgstr "Èçìåíåíèÿ îòñóòñòâóþò" -# Çàãîëîâîê òàáëèöû :undolist +# #Restorer: çàãîëîâîê òàáëèöû ïî êîìàíäå `:undolist` +# :!~ Restorer msgid "number changes when saved" -msgstr " íîìåð èçìåí. êîãäà ñîõðàíåíî" +msgstr "¹ àáñ. ¹ îòí. Êîãäà Ñîõðàíåíî" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:command` +# :!~ Restorer msgid "" "\n" " Name Args Address Complete Definition" msgstr "" "\n" -" Èìÿ Ïàð. Àäðåñ Äîïîëí. Îïðåäåëåíèå" +" Êîìàíäà Ïàðàìåòðû Äåéñòâóåò Ïîäñòàíîâêà ×òî äåëàåò" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:command` +# :!~ Restorer msgid "No user-defined commands found" -msgstr "Êîìàíäû, îïðåäåë¸ííûå ïîëüçîâàòåëåì, íå îáíàðóæåíû" +msgstr "Íå íàéäåíû ñîçäàííûå ïîëüçîâàòåëåì êîìàíäû" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "W22: Text found after :endfunction: %s" -msgstr "W22: Òåêñò ïîñëå :endfunction: %s" +msgstr "W22: Ïîñòîðîííèé òåêñò ïîñëå êîìàíäû :endfunction %s" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=12 +# #Restorer: øàáëîí %s çàìåíÿåòñÿ íàèìåíîâàíèåì ôóíêöèè +# ~!: earlier #, c-format msgid "calling %s" msgstr "âûçîâ %s" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=12 +# #Restorer: øàáëîí %s çàìåíÿåòñÿ íàèìåíîâàíèåì ôóíêöèè +# ~!: earlier #, c-format msgid "%s aborted" msgstr "%s ïðåðâàíà" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=12 +# #Restorer: øàáëîí %s çàìåíÿåòñÿ íàèìåíîâàíèåì ôóíêöèè, #%ld --- çíà÷åíèåì +# :!~ Restorer #, c-format msgid "%s returning #%ld" -msgstr "%s âîçâðàùàåò #%ld" +msgstr "%s âåðíóëà #%ld" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>=12 +# #Restorer: øàáëîí %s çàìåíÿåòñÿ íàèìåíîâàíèåì ôóíêöèè, %s --- çíà÷åíèåì +# :!~ Restorer #, c-format msgid "%s returning %s" -msgstr "%s âîçâðàùàåò %s" +msgstr "%s âåðíóëà %s" +# :!~ Restorer #, c-format msgid "Function %s does not need compiling" -msgstr "Ôóíêöèÿ %s íå òðåáóåò êîìïèëÿöèè" +msgstr "Íå òðåáóåòñÿ êîìïèëÿöèÿ ôóíêöèè %s" +# #Restorer: ïåðâûé %s çàìåíÿåòñÿ íà VIM_VERSION_LONG_ONLY (òîëüêî íàèìåíîâàíèå +# #Restorer: ïðîãðàììû), âòîðîé %s - VIM_VERSION_DATE_ONLY (äàòà ïåðâîãî âûïóñêà), +# #Restorer: òðåòèé %s - äàòîé òåêóùåé ñáîðêè +# #Restorer: âûâîäèòñÿ ïî êîìàíäå vim.exe -h èëè `:version` +# :!~ Restorer +# "%s (%s, ñáîðàíî â %s)" #, c-format msgid "%s (%s, compiled %s)" -msgstr "%s (%s, ñîáðàíî %s)" +msgstr "%s (%s, ñáîðêà îò %s)" +# #Restorer: ñì. VIMDLL â Make_mvc.mak +# :!~ Restorer msgid "" "\n" "MS-Windows 64-bit GUI/console version" msgstr "" "\n" -"Ãðàôè÷åñêàÿ/êîíñîëüíàÿ âåðñèÿ äëÿ MS-Windows 64 áèòà" +"Âåðñèÿ äëÿ MS Windows 64-ðàçðÿäíàÿ ñ ãðàôè÷åñêèì è êîíñîëüíûì èíòåðôåéñîì" +# #Restorer: ñì. VIMDLL â Make_mvc.mak +# :!~ Restorer msgid "" "\n" "MS-Windows 32-bit GUI/console version" msgstr "" "\n" -"Ãðàôè÷åñêàÿ/êîíñîëüíàÿ âåðñèÿ äëÿ MS-Windows 32 áèòà" +"Âåðñèÿ äëÿ MS Windows 32-ðàçðÿäíàÿ c ãðàôè÷åñêèì è êîíñîëüíûì èíòåðôåéñîì" +# :!~ Restorer msgid "" "\n" "MS-Windows 64-bit GUI version" msgstr "" "\n" -"Ãðàôè÷åñêàÿ âåðñèÿ äëÿ MS-Windows 64 áèòà" +"Âåðñèÿ äëÿ MS Windows 64-ðàçðÿäíàÿ ñ ãðàôè÷åñêèì èíòåðôåéñîì" +# :!~ Restorer msgid "" "\n" "MS-Windows 32-bit GUI version" msgstr "" "\n" -"Ãðàôè÷åñêàÿ âåðñèÿ äëÿ MS-Windows 32 áèòà" +"Âåðñèÿ äëÿ MS Windows 32-ðàçðÿäíàÿ ñ ãðàôè÷åñêèì èíòåðôåéñîì" +# ~!: earlier msgid " with OLE support" msgstr " ñ ïîääåðæêîé OLE" +# :!~ Restorer msgid "" "\n" "MS-Windows 64-bit console version" msgstr "" "\n" -"Êîíñîëüíàÿ âåðñèÿ äëÿ MS-Windows 64 áèòà" +"Âåðñèÿ äëÿ MS Windows 64-ðàçðÿäíàÿ êîíñîëüíàÿ" +# :!~ Restorer msgid "" "\n" "MS-Windows 32-bit console version" msgstr "" "\n" -"Êîíñîëüíàÿ âåðñèÿ äëÿ MS-Windows 32 áèòà" +"Âåðñèÿ äëÿ MS Windows 32-ðàçðÿäíàÿ êîíñîëüíàÿ" +# ~!: earlier msgid "" "\n" "macOS version" @@ -3476,13 +5039,15 @@ msgstr "" "\n" "Âåðñèÿ äëÿ macOS" +# :!~ Restorer msgid "" "\n" "macOS version w/o darwin feat." msgstr "" "\n" -"Âåðñèÿ äëÿ macOS áåç darwin" +"Âåðñèÿ äëÿ macOS áåç ôóíêöèîíàëüíîñòè Darwin" +# ~!: earlier msgid "" "\n" "OpenVMS version" @@ -3490,233 +5055,346 @@ msgstr "" "\n" "Âåðñèÿ äëÿ OpenVMS" +# :!~ Restorer msgid "" "\n" "Included patches: " msgstr "" "\n" -"Çàïëàòêè: " +"Èñïðàâëåíèÿ: " +# :!~ Restorer msgid "" "\n" "Extra patches: " msgstr "" "\n" -"Äîïîëíèòåëüíûå çàïëàòêè: " +"Äîïîëíèòåëüíûå èñïðàâëåíèÿ: " +# ~!: earlier msgid "Modified by " msgstr "Ñ èçìåíåíèÿìè, âíåñ¸ííûìè " +# #Restorer: óáðàë ïðîáåë, ò. ê. áóäåò äîáàâëåí âìåñòî «by» +# :!~ Restorer msgid "" "\n" "Compiled " msgstr "" "\n" -"Ñêîìïèëèðîâàíî" +"Ñêîìïèëèðîâàíà" +# #Restorer: äîïèñûâàåòñÿ ê ñîîáùåíèþ «Compiled » +# :!~ Restorer msgid "by " msgstr " " +# :!~ Restorer msgid "" "\n" "Huge version " msgstr "" "\n" -"Îãðîìíàÿ âåðñèÿ " - -msgid "" -"\n" -"Big version " -msgstr "" -"\n" -"Áîëüøàÿ âåðñèÿ " +"Ìàêñèìàëüíàÿ âåðñèÿ " +# #Restororer: Ïîñëå îáúåäèíåíèÿ Big è Normal âåðñèé +# :!~ Restorer msgid "" "\n" "Normal version " msgstr "" "\n" -"Îáû÷íàÿ âåðñèÿ " - -msgid "" -"\n" -"Small version " -msgstr "" -"\n" -"Ìàëàÿ âåðñèÿ " +"Ðàñøèðåííàÿ âåðñèÿ " +# #Restororer: Ïîñëå îáúåäèíåíèÿ Tiny è Small âåðñèé +# :!~ Restorer msgid "" "\n" "Tiny version " msgstr "" "\n" -"Êðîõîòíàÿ âåðñèÿ " +"Ìèíèìàëüíàÿ âåðñèÿ " +# ~!: earlier msgid "without GUI." msgstr "áåç ãðàôè÷åñêîãî èíòåðôåéñà." +# :!~ Restorer msgid "with GTK3 GUI." msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì GTK3." +# ~!: earlier msgid "with GTK2-GNOME GUI." msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì GTK2-GNOME." +# ~!: earlier msgid "with GTK2 GUI." msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì GTK2." +# ~!: earlier msgid "with X11-Motif GUI." msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì X11-Motif." +# :!~ Restorer msgid "with Haiku GUI." -msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì Haiku." +msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì Haiku" +# ~!: earlier msgid "with Photon GUI." msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì Photon." +# ~!: earlier msgid "with GUI." msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì." +# :!~ Restorer msgid " Features included (+) or not (-):\n" -msgstr " Âêëþ÷¸ííûå(+) è îòêëþ÷¸ííûå(-) îñîáåííîñòè:\n" +msgstr "  ýòîé âåðñèè âêëþ÷åíû (+) è îòêëþ÷åíû (-) ñëåäóþùèå êîìïîíåíòû:\n" +# ~!: earlier msgid " system vimrc file: \"" msgstr " îáùåñèñòåìíûé ôàéë vimrc: \"" +# ~!: earlier msgid " user vimrc file: \"" msgstr " ïîëüçîâàòåëüñêèé ôàéë vimrc: \"" +# ~!: earlier msgid " 2nd user vimrc file: \"" msgstr " âòîðîé ïîëüçîâàòåëüñêèé ôàéë vimrc: \"" +# ~!: earlier msgid " 3rd user vimrc file: \"" msgstr " òðåòèé ïîëüçîâàòåëüñêèé ôàéë vimrc: \"" +# ~!: earlier msgid " user exrc file: \"" msgstr " ïîëüçîâàòåëüñêèé ôàéë exrc: \"" +# ~!: earlier msgid " 2nd user exrc file: \"" msgstr " âòîðîé ïîëüçîâàòåëüñêèé ôàéë exrc: \"" +# ~!: earlier msgid " system gvimrc file: \"" msgstr " îáùåñèñòåìíûé ôàéë gvimrc: \"" +# ~!: earlier msgid " user gvimrc file: \"" msgstr " ïîëüçîâàòåëüñêèé ôàéë gvimrc: \"" +# ~!: earlier msgid "2nd user gvimrc file: \"" msgstr " âòîðîé ïîëüçîâàòåëüñêèé ôàéë gvimrc: \"" +# ~!: earlier msgid "3rd user gvimrc file: \"" msgstr " òðåòèé ïîëüçîâàòåëüñêèé ôàéë gvimrc: \"" +# :!~ Restorer msgid " defaults file: \"" -msgstr " ôàéë óìîë÷àíèé: \"" +msgstr " ôàéë ïðåäóñòàíîâëåííûõ íàñòðîåê: \"" +# ~!: earlier msgid " system menu file: \"" msgstr " îáùåñèñòåìíûé ôàéë ìåíþ: \"" +# ~!: earlier msgid " fall-back for $VIM: \"" msgstr " çíà÷åíèå $VIM ïî óìîë÷àíèþ: \"" +# ~!: earlier msgid " f-b for $VIMRUNTIME: \"" msgstr " çíà÷åíèå $VIMRUNTIME ïî óìîë÷àíèþ: \"" +# :!~ Restorer msgid "Compilation: " -msgstr "Ïàðàìåòðû êîìïèëÿöèè: " +msgstr "Ïàðàìåòðû ñáîðêè: " +# :!~ Restorer msgid "Compiler: " -msgstr "Êîìïèëÿòîð: " +msgstr "Ñáîðùèê: " +# :!~ Restorer msgid "Linking: " -msgstr "Ñáîðêà: " +msgstr "Ñâÿçûâàíèå: " +# :!~ Restorer msgid " DEBUG BUILD" -msgstr " ÎÒËÀÄÎ×ÍÀß ÑÁÎÐÊÀ" +msgstr " ÑÁÎÐÊÀ ÄËß ÎÒËÀÄÊÈ" +# :!~ Restorer msgid "VIM - Vi IMproved" -msgstr "VIM — Vi IMproved (óëó÷øåííûé Vi)" +msgstr "VIM --- Vi IMproved (óëó÷øåííûé Vi)" +# ~!: earlier msgid "version " msgstr "âåðñèÿ " +# #Restorer: ôàìèëèþ íàïèñàë êàê â ru.wikipedia.org. Íàäî ïîñìîòðåòü êàê ïðàâèëüíî +# #Restorer: ôàìèëèÿ ïåðåâîäèòñÿ íà ðóññêèé êàê «Ìåëüíèêîâ» (www.moolenaar.net) +# :!~ Restorer msgid "by Bram Moolenaar et al." msgstr "Áðàì Ìîëåíàð è äðóãèå" +# :!~ Restorer msgid "Vim is open source and freely distributable" -msgstr "Vim — ñâîáîäíî ðàñïðîñòðàíÿåìàÿ ïðîãðàììà ñ îòêðûòûì êîäîì" +msgstr "" +"Ðåäàêòîð Vim --- ñâîáîäíî ðàñïðîñòðàíÿåìàÿ ïðîãðàììà ñ îòêðûòûì èñõîäíûì êîäîì" +# :!~ Restorer msgid "Help poor children in Uganda!" -msgstr "Áåäíûì äåòÿì â Óãàíäå íóæíà âàøà ïîìîùü!" +msgstr "Íåñ÷àñòíûì äåòÿì Óãàíäû òðåáóåòñÿ âàøà ïîìîùü!" +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :help iccf for information " -msgstr "íàáåðèòå :help iccf äëÿ äîïîëíèòåëüíîé èíôîðìàöèè" +msgstr "" +"íàáåðèòå :help iccf ÷òîáû óçíàòü îá ýòîì ïîäðîáíåå " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :q to exit " -msgstr "íàáåðèòå :q ÷òîáû âûéòè èç ïðîãðàììû " +msgstr "" +"íàáåðèòå :q ÷òîáû çàâåðøèòü ðàáîòó ñ ïðîãðàììîé " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :help or for on-line help" -msgstr "íàáåðèòå :help èëè äëÿ ïîëó÷åíèÿ ñïðàâêè " +msgstr "" +"íàáåðèòå :help èëè íàæìèòå ÷òîáû îçíàêîìèòüñÿ ñ äîêóìåíòàöèåé " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :help version9 for version info" -msgstr "íàáåðèòå :help version9 äëÿ èíôîðìàöèè î âåðñèè " +msgstr "" +"íàáåðèòå :help version9 ÷òîáû óçíàòü ïîäðîáíåå îá ýòîé âåðñèè" +# :!~ Restorer msgid "Running in Vi compatible mode" -msgstr "Ðàáîòà â Vi-ñîâìåñòèìîì ðåæèìå" +msgstr "Ïðîãðàììà ðàáîòàåò â ðåæèìå ñîâìåñòèìîñòè ñ ðåäàêòîðîì Vi" +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :set nocp for Vim defaults" -msgstr "íàáåðèòå :set nocp äëÿ ïåðåõîäà â ðåæèì Vim " +msgstr "" +"íàáåðèòå :set nocp ÷òîáû àêòèâèðîâàòü âîçìîæíîñòè Vim " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :help cp-default for info on this" -msgstr "íàáåðèòå :help cp-default äëÿ äîïîëíèòåëüíîé èíôîðìàöèè" +msgstr "" +"íàáåðèòå :help cp-default ÷òîáû óçíàòü îá ýòîì ïîäðîáíåå " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "menu Help->Orphans for information " -msgstr "ìåíþ Ñïðàâêà->Ñèðîòû äëÿ ïîëó÷åíèÿ èíôîðìàöèè " +msgstr "" +"ìåíþ Ñïðàâêà->Áëàãîòâîðèòåëüíîñòü ÷òîáû óçíàòü îá ýòîì ïîäðîáíåå" +# #Restorer: âûâîäèòñÿ òîëüêî â ÃÈÏ ïðè çàïóñêå gVim Easy +# :!~ Restorer msgid "Running modeless, typed text is inserted" -msgstr "Áåçðåæèìíàÿ ðàáîòà, âñòàâêà ââåä¸ííîãî òåêñòà" +msgstr "" +"Óïðîù¸ííûé âàðèàíò. Âñ¸ ÷òî íàáèðàåòñÿ, ñ÷èòàåòñÿ òåêñòîì è ïîìåùàåòñÿ â áóôåð" +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "menu Edit->Global Settings->Toggle Insert Mode " -msgstr "ìåíþ Ïðàâêà->Ãëîáàëüíûå íàñòðîéêè->Ðåæèì Âñòàâêè " +msgstr "" +"ìåíþ Ïðàâêà->Îáùèå ïàðàìåòðû->Ðåæèì âñòàâêè ÷òîáû ïåðåêëþ÷àòü èç " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# :!~ Restorer msgid " for two modes " -msgstr " äëÿ äâóõ ðåæèìîâ " +msgstr "" +" ðåæèìà âñòàâêè â ðåæèì êîìàíä" +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "menu Edit->Global Settings->Toggle Vi Compatible" -msgstr "ìåíþ Ïðàâêà->Ãëîáàëüíûå íàñòðîéêè->Ñîâìåñòèìîñòü ñ Vi " +msgstr "" +"ìåíþ Ïðàâêà->Îáùèå ïàðàìåòðû->Ñîâìåñòèìîñòü ñ Vi ÷òîáû àêòèâèðîâàòü " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# :!~ Restorer msgid " for Vim defaults " -msgstr " äëÿ ïåðåõîäà â ðåæèì Vim " +msgstr "" +" âîçìîæíîñòè ðåäàêòîðà Vim" +# :!~ Restorer msgid "Sponsor Vim development!" -msgstr "Ïîìîãèòå â ðàçðàáîòêå Vim!" +msgstr "Ïîääåðæèòå ðàçðàáîòêó ïðîãðàììû «Ðåäàêòîð Vim»!" +# :!~ Restorer msgid "Become a registered Vim user!" -msgstr "Ñòàíüòå çàðåãèñòðèðîâàííûì ïîëüçîâàòåëåì Vim!" +msgstr "Ñòàíüòå çàðåãèñòðèðîâàííûì ïîëüçîâàòåëåì ïðîãðàììû «Ðåäàêòîð Vim»!" +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :help sponsor for information " -msgstr "íàáåðèòå :help sponsor äëÿ ïîëó÷åíèÿ èíôîðìàöèè " +msgstr "" +"íàáåðèòå :help sponsor ÷òîáû óçíàòü îá ýòîì ïîäðîáíåå " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "type :help register for information " -msgstr "íàáåðèòå :help register äëÿ ïîëó÷åíèÿ èíôîðìàöèè " +msgstr "" +"íàáåðèòå :help register ÷òîáû óçíàòü îá ýòîì ïîäðîáíåå " +# #Restorer: ïðîáåëû íå óáèðàòü, ñäåëàíî äëÿ âûðàâíèâàíèÿ ñîîáùåíèé +# #Restorer: âûðàâíèâàåòñÿ ïî ñàìîìó äëèííîìó ïîäîáíîìó ñîîáùåíèþ +# :!~ Restorer msgid "menu Help->Sponsor/Register for information " -msgstr "ìåíþ Ñïðàâêà->Ïîìîùü/Ðåãèñòðàöèÿ äëÿ ïîëó÷åíèÿ èíôîðìàöèè " +msgstr "" +"ìåíþ Ñïðàâêà->Ñîäåéñòâèå è ðåãèñòðàöèÿ ÷òîáû óçíàòü îá ýòîì ïîäðîáíåå" +# #Restorer: ïîäñòàâëÿåòñÿ â «E1016: Cannot declare a %s variable: %s» êàê +# #Restorer: ïåðâàÿ %s. Ìîæåò ëó÷øå íå ïåðåâîäèòü? Ïîêà ñäåëàë. Âûãëÿäèò òàê +# #Restorer: E1016: Äëÿ îáëàñòè äåéñòâèÿ «ãëîáàëüíàÿ» íå ìîæåò áûòü îáúÿâëåíà ïåðåìåííàÿ %s +# :!~ Restorer msgid "global" -msgstr "ãëîáàëüíûé" +msgstr "«ãëîáàëüíûé»" +# #Restorer: ïîäñòàâëÿåòñÿ â «E1016: Cannot declare a %s variable: %s» êàê +# #Restorer: ïåðâàÿ %s. Ìîæåò ëó÷øå íå ïåðåâîäèòü? Ïîêà ñäåëàë. Âûãëÿäèò òàê: +# #Restorer: E1016: Äëÿ îáëàñòè äåéñòâèÿ «áóôåð» íå ìîæåò áûòü îáúÿâëåíà ïåðåìåííàÿ %s +# :!~ Restorer msgid "buffer" -msgstr "áóôåð" +msgstr "«áóôåð»" +# #Restorer: ïîäñòàâëÿåòñÿ â «E1016: Cannot declare a %s variable: %s» êàê +# #Restorer: ïåðâàÿ %s. Ìîæåò ëó÷øå íå ïåðåâîäèòü? Ïîêà ñäåëàë. Âûãëÿäèò òàê +# #Restorer: E1016: Äëÿ îáëàñòè äåéñòâèÿ «îêíî» íå ìîæåò áûòü îáúÿâëåíà ïåðåìåííàÿ %s +# :!~ Restorer msgid "window" -msgstr "îêíî" +msgstr "«îêíî»" +# #Restorer: ïîäñòàâëÿåòñÿ â «E1016: Cannot declare a %s variable: %s» êàê +# #Restorer: ïåðâàÿ %s. Ìîæåò ëó÷øå íå ïåðåâîäèòü? Ïîêà ñäåëàë. Âûãëÿäèò òàê +# #Restorer: E1016: Äëÿ îáëàñòè äåéñòâèÿ «âêëàäêà» íå ìîæåò áûòü îáúÿâëåíà ïåðåìåííàÿ %s +# :!~ Restorer msgid "tab" -msgstr "âêëàäêà" +msgstr "«âêëàäêà»" +# #Restorer: äîïèñûâàåòñÿ â ñîîáùåíèå «E723: Missing end of Dictionary '}': %s» +# :!~ Restorer msgid "[end of lines]" -msgstr "[êîíåö ñòðîê]" +msgstr "è îáíàðóæåíî îêîí÷àíèå ñòðîêè" +# #Restorer: â ôàéëå viminfo +# ~!: earlier msgid "" "\n" "# Buffer list:\n" @@ -3724,56 +5402,76 @@ msgstr "" "\n" "# Ñïèñîê áóôåðîâ:\n" +# #Restorer: çàïèñü â viminfo-ôàéë æóðíàëà (history) êîìàíä, ïîèñêà è ïðî÷. +# :!~ Restorer #, c-format msgid "" "\n" "# %s History (newest to oldest):\n" msgstr "" "\n" -"# %s, èñòîðèÿ (íà÷èíàÿ îò ñâåæåãî ê ñòàðîìó):\n" +"# Æóðíàë %s (îò íîâûõ ê ñòàðûì):\n" +# #Restorer: çàïèñü â viminfo-ôàéë æóðíàëà (history) êîìàíä, ïîèñêà è ïðî÷. +# :!~ Restorer msgid "Command Line" -msgstr "Êîìàíäíàÿ ñòðîêà" +msgstr "êîìàíäíîé ñòðîêè" +# #Restorer: çàïèñü â viminfo-ôàéë æóðíàëà (history) êîìàíä, ïîèñêà è ïðî÷. +# :!~ Restorer msgid "Search String" -msgstr "Ñòðîêà ïîèñêà" +msgstr "ïîèñêîâîé ñòðîêè" +# #Restorer: çàïèñü â viminfo-ôàéë æóðíàëà (history) êîìàíä, ïîèñêà è ïðî÷. +# :!~ Restorer msgid "Expression" -msgstr "Âûðàæåíèå" +msgstr "âû÷èñëåíèé" +# #Restorer: çàïèñü â viminfo-ôàéë æóðíàëà (history) êîìàíä, ïîèñêà è ïðî÷. +# :!~ Restorer msgid "Input Line" -msgstr "Ñòðîêà ââîäà" +msgstr "ñòðîêè ââîäà" +# #Restorer: çàïèñü â viminfo-ôàéë æóðíàëà (history) êîìàíä, ïîèñêà è ïðî÷. +# :!~ Restorer msgid "Debug Line" -msgstr "Ñòðîêà îòëàäêè" +msgstr "êîìàíä îòëàäêè" +# :!~ Restorer msgid "" "\n" "# Bar lines, copied verbatim:\n" msgstr "" "\n" -"# Ñòðîêè ñ '|' ñêîïèðîâàíû äîñëîâíî:\n" +"# Ñòðîêè, íà÷èíàþùèåñÿ ñ âåðòèêàëüíîé ëèíèè, êîïèðóþòñÿ êàê åñòü\n" +# #Restorer: ïåðâûé %s çàìåíÿåòñÿ íà E575:, âòîðîé %s íà «Illegal starting char» +# :!~ Restorer #, c-format msgid "%sviminfo: %s in line: " -msgstr "%sviminfo: %s â ñòðîêå: " +msgstr "%s%s â viminfo-ôàéëå íà ñòðîêå " +# ~!: earlier msgid "" "\n" "# global variables:\n" msgstr "" "\n" -"# ãëîáàëüíûå ïåðåìåííûå:\n" +"# Ãëîáàëüíûå ïåðåìåííûå:\n" +# #Restorer: çàïèñü â viminfo-ôàéëå +# :!~ Restorer msgid "" "\n" "# Last Substitute String:\n" "$" msgstr "" "\n" -"# Ïîñëåäíÿÿ ñòðîêà äëÿ çàìåíû:\n" +"# Ñòðîêà çàìåíû, èñïîëüçîâàííàÿ â ïðåäûäóùèé ðàç:\n" "$" +# #Restorer: øàáëîíû %s çàìåíÿþòñÿ íà ñëîâî «Substitute » +# :!~ Restorer #, c-format msgid "" "\n" @@ -3781,12 +5479,16 @@ msgid "" "~" msgstr "" "\n" -"# Ïîñëåäíèé %sØàáëîí ïîèñêà:\n" +"# Ïîèñêîâûé øàáëîí%s, èñïîëüçîâàííûé â ïðåäûäóùèé ðàç:\n" "~" +# #Restorer: ïîäñòàâëÿåòñÿ â «# Last %sSearch Pattern:» +# :!~ Restorer msgid "Substitute " -msgstr "Çàìåíà " +msgstr " çàìåíû" +# #Restorer: â viminfo-ôàéëå +# ~!: earlier msgid "" "\n" "# Registers:\n" @@ -3794,31 +5496,39 @@ msgstr "" "\n" "# Ðåãèñòðû:\n" +# #Restorer: â viminfo-ôàéëå +# :!~ Restorer msgid "" "\n" "# History of marks within files (newest to oldest):\n" msgstr "" "\n" -"# Èñòîðèÿ ìåñòíûõ îòìåòîê (îò áîëåå ñâåæèõ ê ñòàðûì):\n" +"# Æóðíàë ëîêàëüíûõ çàêëàäîê (îò íîâûõ ê ñòàðûì):\n" +# #Restorer: â viminfo-ôàéëå +# :!~ Restorer msgid "" "\n" "# File marks:\n" msgstr "" "\n" -"# Ãëîáàëüíûå îòìåòêè:\n" +"# Æóðíàë îáùèõ çàêëàäîê:\n" +# #Restorer: â viminfo-ôàéëå +# :!~ Restorer msgid "" "\n" "# Jumplist (newest first):\n" msgstr "" "\n" -"# Ñïèñîê ïðûæêîâ (ñíà÷àëà áîëåå ñâåæèå):\n" +"# Æóðíàë ïåðåõîäîâ (âíà÷àëå áîëåå íîâûå):\n" +# :!~ Restorer #, c-format msgid "# This viminfo file was generated by Vim %s.\n" -msgstr "# Ýòîò ôàéë viminfo àâòîìàòè÷åñêè ñîçäàí Vim %s.\n" +msgstr "# Ýòîò viminfo-ôàéë àâòîìàòè÷åñêè ñîçäàí ïðîãðàììîé Vim %s.\n" +# ~!: earlier msgid "" "# You may edit it if you're careful!\n" "\n" @@ -3826,4816 +5536,6783 @@ msgstr "" "# Åãî ìîæíî (îñòîðîæíî!) ðåäàêòèðîâàòü.\n" "\n" +# #Restorer: ïèøåòñÿ â viminfo-ôàéë +# :!~ Restorer msgid "# Value of 'encoding' when this file was written\n" -msgstr "# Çíà÷åíèå îïöèè 'encoding' â ìîìåíò çàïèñè ôàéëà\n" +msgstr "# Çíà÷åíèå ïàðàìåòðà 'encoding' â ìîìåíò çàïèñè ôàéëà\n" +# #Restorer: îòîáðàæàåòñÿ ïðè 'verbose'>0 +# #Restorer: ïåðâûé %s íàèìåíîâàíèå ôàéëà, îñòàëüíûå íà «info», «marks», +# #Restorer: «oldfiles», «FAILED» +# :!~ Restorer #, c-format msgid "Reading viminfo file \"%s\"%s%s%s%s" -msgstr "×òåíèå ôàéëà viminfo \"%s\"%s%s%s%s" +msgstr "Ñ÷èòûâàíèå èç viminfo-ôàéëà \"%s\":%s%s%s%s" +# #Restorer: ïîäñòàâëÿåòñÿ â ñîîáùåíèå «Reading viminfo file \"%s\"%s%s%s» +# :!~ Restorer msgid " info" -msgstr " èíôî" +msgstr " îáùåé èíôîðìàöèè;" +# #Restorer: ïîäñòàâëÿåòñÿ â ñîîáùåíèå «Reading viminfo file \"%s\"%s%s%s» +# :!~ Restorer msgid " marks" -msgstr " îòìåòîê" +msgstr " ñâåäåíèé î çàêëàäêàõ;" +# #Restorer: ïîäñòàâëÿåòñÿ â ñîîáùåíèå «Reading viminfo file \"%s\"%s%s%s» +# :!~ Restorer msgid " oldfiles" -msgstr " ñòàðûõ ôàéëîâ" +msgstr " ñâåäåíèé î ðàíåå ðåäàêòèðóåìûõ ôàéëàõ" +# #Restorer: ïîäñòàâëÿåòñÿ â ñîîáùåíèå «Reading viminfo file \"%s\"%s%s%s» +# :!~ Restorer msgid " FAILED" -msgstr " ÍÅÓÄÀ×ÍÎ" +msgstr " ÍÅ ÂÛÏÎËÍÅÍÎ" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "Writing viminfo file \"%s\"" -msgstr "Çàïèñü ôàéëà viminfo \"%s\"" +msgstr "Çàïèñü viminfo-ôàéëà \"%s\"" +# #Restorer: âûâîäèòñÿ ïðè èñïîëíåíèè êîìàíä `CTRL+W SHIFT+T` èëè `CTRL+W o` +# :!~ Restorer msgid "Already only one window" -msgstr "Íà ýêðàíå âñåãî îäíî îêíî" - -#, c-format -msgid "E370: Could not load library %s" -msgstr "E370: Íåâîçìîæíî çàãðóçèòü áèáëèîòåêó %s" - -msgid "Sorry, this command is disabled: the Perl library could not be loaded." -msgstr "" -"Èçâèíèòå, äàííàÿ êîìàíäà îòêëþ÷åíà: íåâîçìîæíî çàãðóçèòü áèáëèîòåêó Perl." +msgstr " ðàáî÷åé îáëàñòè ïðèñóòñòâóåò òîëüêî îäíî îêíî" +# :!~ Restorer msgid "Edit with Vim using &tabpages" -msgstr "Ðåäàêòèðîâàòü âî &âêëàäêàõ Vim" +msgstr "Îòêðûòü ôàéëû â îòäåëüíûõ âêëàäêà&õ ïðîãðàììû Vim" +# :!~ Restorer msgid "Edit with single &Vim" -msgstr "Ðåäàêòèðîâàòü â &îäíîì Vim" +msgstr "Îòêðûòü âñå ôàéëû â îäíîé ïðîãðàììå &Vim" +# :!~ Restorer msgid "Diff with Vim" -msgstr "Ñðàâíèòü ñ ïîìîùüþ Vim" +msgstr "Ñðàâíèòü ôàéëû â ïðîãðàììå Vim" +# :!~ Restorer msgid "Edit with &Vim" -msgstr "Ðå&äàêòèðîâàòü ñ ïîìîùüþ Vim" +msgstr "Îòêðûòü â ïðîãðàììå &Vim" +# :!~ Restorer msgid "Edit with existing Vim" -msgstr "Ðåäàêòèðîâàòü â çàïóùåííîì Vim" +msgstr "Îòêðûòü â ðàáîòàþùåé ïðîãðàììå Vim" +# :!~ Restorer msgid "Edit with existing Vim - " -msgstr "Ðåäàêòèðîâàòü â çàïóùåííîì Vim — " +msgstr "Îòêðûòü â ðàáîòàþùåé ïðîãðàììå Vim - " +# :!~ Restorer msgid "Edits the selected file(s) with Vim" -msgstr "Ðåäàêòèðîâàòü âûäåëåííûå ôàéëû ñ ïîìîùüþ Vim" +msgstr "Îòêðûòü îòìå÷åííûå ôàéëû â ïðîãðàììå Vim" +# #Restorer: òåêñò îêíà ñîîáùåíèé +# :!~ Restorer msgid "Error creating process: Check if gvim is in your path!" -msgstr "Îøèáêà ñîçäàíèÿ ïðîöåññà: ïðîâåðüòå äîñòóïíîñòü gvim â ïóòè!" +msgstr "" +"Ñáîé ïðè ñîçäàíèè ïðîöåññà. Ïðîâåðüòå, ÷òî ïðîãðàììà gVim óñòàíîâëåíà â " +"ñîîòâåòñòâóþùèé êàòàëîã" +# #Restorer: çàãîëîâîê îêíà ñîîáùåíèÿ +# :!~ Restorer msgid "gvimext.dll error" -msgstr "îøèáêà gvimext.dll" +msgstr "Îøèáêà" +# ~!: earlier msgid "Interrupted" msgstr "Ïðåðâàíî" +# :!~ Restorer msgid "E10: \\ should be followed by /, ? or &" -msgstr "E10: Ïîñëå \\ äîëæåí èäòè ñèìâîë /, ? èëè &" +msgstr "E10: Ïîñëå ñèìâîëà \\ òðåáóåòñÿ óêàçàòü îäíó èç êîìàíä /, ? èëè &" -msgid "E11: Invalid in command-line window; executes, CTRL-C quits" +# :!~ Restorer +msgid "E11: Invalid in command-line window; :q closes the window" msgstr "" -"E11: Íåäîïóñòèìî â îêíå êîìàíäíîé ñòðîêè; âûïîëíåíèå, CTRL-C âûõîä" +"E11: Íåïðèìåíèìî â îêíå êîìàíäîé ñòðîêè. ×òîáû çàêðûòü ýòî îêíî, íàáåðèòå " +"êîìàíäó :q" +# :!~ Restorer msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" msgstr "" -"E12: Êîìàíäà íå äîïóñêàåòñÿ â exrc/vimrc â òåêóùåì êàòàëîãå èëè ïîèñêå ìåòîê" +"E12: Çàïðåùåíû êîìàíäû èç ôàéëîâ èíäåêñà è exrc èëè vimrc òåêóùåãî êàòàëîãà" +# :!~ Restorer msgid "E13: File exists (add ! to override)" -msgstr "E13: Ôàéë ñóùåñòâóåò (äîáàâüòå !, ÷òîáû ïåðåçàïèñàòü)" +msgstr "E13: Ôàéë óæå ñóùåñòâóåò (÷òîáû çàìåíèòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer #, c-format msgid "E15: Invalid expression: \"%s\"" -msgstr "E15: Íåäîïóñòèìîå âûðàæåíèå: \"%s\"" +msgstr "E15: Çàäàíî íåäîïóñòèìîå âûðàæåíèå \"%s\"" +# :!~ Restorer msgid "E16: Invalid range" -msgstr "E16: Íåäîïóñòèìûé äèàïàçîí" +msgstr "E16: Óêàçàí íåäîïóñòèìûé äèàïàçîí" +# :!~ Restorer #, c-format msgid "E17: \"%s\" is a directory" -msgstr "E17: \"%s\" ÿâëÿåòñÿ êàòàëîãîì" +msgstr "E17: Óêàçàííîå çíà÷åíèå ÿâëÿåòñÿ êàòàëîãîì \"%s\"" +# :!~ Restorer msgid "E18: Unexpected characters in :let" -msgstr "E18: Íåîæèäàííûå ñèìâîëû â :let" +msgstr "E18: Íåäîïóñòèìûå ñèìâîëû â ïðèñâàèâàåìîì âûðàæåíèè êîìàíäû :let" +# :!~ Restorer msgid "E18: Unexpected characters in assignment" -msgstr "E18: Íåîæèäàííûå ñèìâîëû ïîñëå îïåðàòîðà ïðèñâàèâàíèÿ" +msgstr "E18: Íåäîïóñòèìûå ñèìâîëû â ïðèñâàèâàåìîì âûðàæåíèè" +# :!~ Restorer msgid "E19: Mark has invalid line number" -msgstr "E19: Îòìåòêà óêàçûâàåò íà íåïðàâèëüíûé íîìåð ñòðîêè" +msgstr "E19: Çàêëàäêà óêàçûâàåò íà íå ñóùåñòâóþùóþ ñòðîêó" +# :!~ Restorer msgid "E20: Mark not set" -msgstr "E20: Îòìåòêà íå îïðåäåëåíà" +msgstr "E20: Íå ñóùåñòâóåò óêàçàííîé çàêëàäêè" +# :!~ Restorer msgid "E21: Cannot make changes, 'modifiable' is off" -msgstr "E21: Èçìåíåíèÿ íåâîçìîæíû, òàê êàê âûêëþ÷åíà îïöèÿ 'modifiable'" +msgstr "E21: Áóôåð íå ìîæåò áûòü èçìåí¸í. Íå óñòàíîâëåí ïàðàìåòð 'modifiable'" +# :!~ Restorer msgid "E22: Scripts nested too deep" -msgstr "E22: Ñëèøêîì ãëóáîêî âëîæåííûå ñöåíàðèè" +msgstr "E22: Ïðåâûøåíî êîëè÷åñòâî âûçîâîâ êîìàíäíîãî ôàéëà ïðîãðàììû Vim" +# :!~ Restorer msgid "E23: No alternate file" -msgstr "E23: Ñîñåäíèé ôàéë íå ñóùåñòâóåò" +msgstr "E23: Îòñóòñòâóþò ñîñåäíèå ôàéëû" +# :!~ Restorer msgid "E24: No such abbreviation" -msgstr "E24: Íåò òàêîãî ñîêðàùåíèÿ" +msgstr "E24: Îòñóòñòâóåò óêàçàííîå ñîêðàùåíèå" +# :!~ Restorer msgid "E25: GUI cannot be used: Not enabled at compile time" msgstr "" -"E25: Âîçìîæíîñòü èñïîëüçîâàíèÿ ãðàôè÷åñêîãî èíòåðôåéñà âûêëþ÷åíà ïðè " -"êîìïèëÿöèè" +"E25: Ïîääåðæêà ãðàôè÷åñêîãî èíòåðôåéñà íå áûëà àêòèâèðîâàíà ïðè êîìïèëÿöèè" +# :!~ Restorer msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" -msgstr "E26: Ïîääåðæêà èâðèòà âûêëþ÷åíà ïðè êîìïèëÿöèè\n" +msgstr "" +"E26: Ïîääåðæêà åâðåéñêîé ïèñüìåííîñòè íå áûëà àêòèâèðîâàíà ïðè êîìïèëÿöèè\n" +# :!~ Restorer msgid "E27: Farsi support has been removed\n" -msgstr "E27: Ïîääåðæêà ïåðñèäñêîãî ÿçûêà áûëà óäàëåíà\n" +msgstr "E27: Ïîääåðæêà ïåðñèäñêîé ïèñüìåííîñòè áûëà óáðàíà èç ïðîãðàììû\n" +# :!~ Restorer #, c-format msgid "E28: No such highlight group name: %s" -msgstr "E28: Ãðóïïà ïîäñâåòêè ñèíòàêñèñà %s íå ñóùåñòâóåò" +msgstr "E28: Íå ñóùåñòâóåò ãðóïïû ïîäñâåòêè ñèíòàêñèñà %s" +# :!~ Restorer msgid "E29: No inserted text yet" -msgstr "E29: Ïîêà íåò âñòàâëåííîãî òåêñòà" +msgstr "E29: Ðåãèñòð äëÿ ïîñëåäíåãî âñòàâëåííîãî òåêñòà ïóñò" +# :!~ Restorer msgid "E30: No previous command line" -msgstr "E30: Ïðåäûäóùåé êîìàíäíîé ñòðîêè íåò" +msgstr "E30: Ðåãèñòð äëÿ êîìàíä ðåæèìà êîìàíäíîé ñòðîêè ïóñò" +# :!~ Restorer msgid "E31: No such mapping" -msgstr "E31: Òàêîé ïðèâÿçêè íå ñóùåñòâóåò" +msgstr "E31: Íå ñóùåñòâóåò êëàâèàòóðíîé êîìàíäû" +# :!~ Restorer msgid "E32: No file name" -msgstr "E32: Íåò èìåíè ôàéëà" +msgstr "E32: Òðåáóåòñÿ óêàçàòü íàèìåíîâàíèå ôàéëà" +# :!~ Restorer msgid "E33: No previous substitute regular expression" -msgstr "E33: Íåò ïðåäûäóùåãî ðåãóëÿðíîãî âûðàæåíèÿ äëÿ çàìåíû" +msgstr "E33:  ýòîì ñåàíñå ðàáîòû íå ïðèìåíÿëàñü ñòðîêà çàìåíû" +# :!~ Restorer msgid "E34: No previous command" -msgstr "E34: Íåò ïðåäûäóùåé êîìàíäû" +msgstr "E34:  ýòîì ñåàíñå ðàáîòû íå âûçûâàëàñü âíåøíÿÿ êîìàíäà" +# :!~ Restorer msgid "E35: No previous regular expression" -msgstr "E35: Íåò ïðåäûäóùåãî ðåãóëÿðíîãî âûðàæåíèÿ" +msgstr "E35:  ýòîì ñåàíñå ðàáîòû íå ïðèìåíÿëñÿ ïîèñêîâûé çàïðîñ" +# :!~ Restorer msgid "E36: Not enough room" -msgstr "E36: Íåäîñòàòî÷íî ìåñòà" +msgstr "E36: Íå äîñòàòî÷íî ìåñòà äëÿ ñîçäàíèÿ íîâîãî îêíà" +# :!~ Restorer msgid "E37: No write since last change" -msgstr "E37: Èçìåíåíèÿ íå ñîõðàíåíû" +msgstr "E37: Äàííûå â áóôåðå íå ñîõðàíåíû" +# :!~ Restorer msgid "E37: No write since last change (add ! to override)" -msgstr "E37: Èçìåíåíèÿ íå ñîõðàíåíû (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" - -msgid "E38: Null argument" -msgstr "E38: Íóëåâîé ïàðàìåòð" +msgstr "" +"E37: Äàííûå â áóôåðå íå ñîõðàíåíû (÷òîáû èãíîðèðîâàòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E39: Number expected" -msgstr "E39: Òðåáóåòñÿ ÷èñëî" +msgstr "E39:  êà÷åñòâå àðãóìåíòà äîëæíî áûòü óêàçàíî ÷èñëî" +# #Restorer: à òàêæå äëÿ êîìàíä `:cfile` è ò. ï. +# :!~ Restorer #, c-format msgid "E40: Can't open errorfile %s" -msgstr "E40: Íå óäàëîñü îòêðûòü ôàéë îøèáîê %s" +msgstr "E40: Íå óäàëîñü îòêðûòü ôàéë ñî ñïèñêîì ðåçóëüòàòîâ %s" +# :!~ Restorer msgid "E41: Out of memory!" -msgstr "E41: Íå õâàòàåò ïàìÿòè!" +msgstr "E41: Íå äîñòàòî÷íî ïàìÿòè!" +# :!~ Restorer msgid "E42: No Errors" -msgstr "E42: Íåò îøèáîê" - -msgid "E43: Damaged match string" -msgstr "E43: Ïîâðåæäåíà ñòðîêà ñîîòâåòñòâèÿ" - -msgid "E44: Corrupted regexp program" -msgstr "E44: Ïðîãðàììà îáðàáîòêè ðåãóëÿðíûõ âûðàæåíèé èñïîð÷åíà" +msgstr "E42: Îòñóòñòâóþò çàïèñè â ñïèñêå ðåçóëüòàòîâ" +# :!~ Restorer msgid "E45: 'readonly' option is set (add ! to override)" -msgstr "E45: Âêëþ÷åíà îïöèÿ 'readonly' (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +msgstr "" +"E45: Óñòàíîâëåí ïàðàìåòð 'readonly' (÷òîáû çàïèñàòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E46: Cannot change read-only variable" -msgstr "E46: Íåâîçìîæíî èçìåíèòü ïåðåìåííóþ òîëüêî äëÿ ÷òåíèÿ" +msgstr "E46: Íå äîïóñêàåòñÿ ïðèñâàèâàíèå çíà÷åíèÿ íåèçìåíÿåìîé ïåðåìåííîé" +# :!~ Restorer #, c-format msgid "E46: Cannot change read-only variable \"%s\"" -msgstr "E46: Íåâîçìîæíî èçìåíèòü ïåðåìåííóþ òîëüêî äëÿ ÷òåíèÿ \"%s\"" +msgstr "E46: Íå äîïóñêàåòñÿ ïðèñâàèâàíèå çíà÷åíèÿ íåèçìåíÿåìîé ïåðåìåííîé \"%s\"" +# :!~ Restorer msgid "E47: Error while reading errorfile" -msgstr "E47: Îøèáêà ïðè ÷òåíèè ôàéëà îøèáîê" +msgstr "E47: Îøèáêà ñ÷èòûâàíèÿ ôàéëà ðåçóëüòàòîâ" +# :!~ Restorer msgid "E48: Not allowed in sandbox" -msgstr "E48: Íå äîïóñêàåòñÿ â ïåñî÷íèöå" +msgstr "E48: Çàïðåùåíî âûïîëíåíèå â èçîëèðîâàííîé ñðåäå" +# :!~ Restorer msgid "E49: Invalid scroll size" -msgstr "E49: Íåäîïóñòèìûé ðàçìåð ïðîêðóòêè" +msgstr "E49: Íåäîïóñòèìîå çíà÷åíèå êîëè÷åñòâà ñòðîê ïðè ïðîêðóòêå" +# :!~ Restorer msgid "E50: Too many \\z(" -msgstr "E50: Ñëèøêîì ìíîãî \\z(" +msgstr "E50: Ïðåâûøåíî êîëè÷åñòâî ïîäâûðàæåíèé âèäà \\z(" +# :!~ Restorer #, c-format msgid "E51: Too many %s(" -msgstr "E51: Ñëèøêîì ìíîãî %s(" +msgstr "E51: Ïðåâûøåíî êîëè÷åñòâî ïîäâûðàæåíèé âèäà %s(" +# :!~ Restorer msgid "E52: Unmatched \\z(" -msgstr "E52: Íåò ïàðû äëÿ \\z(" +msgstr "E52: Îòñóòñòâóåò ýêðàíèðîâàííàÿ çàêðûâàþùàÿ êðóãëàÿ ñêîáêà äëÿ \\z(" +# :!~ Restorer #, c-format msgid "E53: Unmatched %s%%(" -msgstr "E53: Íåò ïàðû äëÿ %s%%(" +msgstr "E53: Îòñóòñòâóåò ýêðàíèðîâàííàÿ çàêðûâàþùàÿ êðóãëàÿ ñêîáêà äëÿ %s%%(" +# :!~ Restorer #, c-format msgid "E54: Unmatched %s(" -msgstr "E54: Íåò ïàðû äëÿ %s(" +msgstr "E54: Îòñóòñòâóåò ýêðàíèðîâàííàÿ çàêðûâàþùàÿ êðóãëàÿ ñêîáêà äëÿ %s(" +# :!~ Restorer #, c-format msgid "E55: Unmatched %s)" -msgstr "E55: Íåò ïàðû äëÿ %s)" +msgstr "E55: Îòñóòñòâóåò ýêðàíèðîâàííàÿ îòêðûâàþùàÿ êðóãëàÿ ñêîáêà äëÿ %s)" +# :!~ Restorer #, c-format msgid "E59: Invalid character after %s@" -msgstr "E59: Íåäîïóñòèìûé ñèìâîë ïîñëå %s@" +msgstr "E59: Íåäîïóñòèìûé ñèìâîë ïîñëå ìåòàñèìâîëà %s@" +# :!~ Restorer #, c-format msgid "E60: Too many complex %s{...}s" -msgstr "E60: ×åðåñ÷óð ìíîãî ñëîæíûõ êâàíòèôèêàòîðîâ %s{...}" +msgstr "E60: Ïðåâûøåíî êîëè÷åñòâî èíòåðâàëüíûõ êâàíòèôèêàòîðîâ %s{...}" +# :!~ Restorer #, c-format msgid "E61: Nested %s*" -msgstr "E61: Âëîæåííûå %s*" +msgstr "E61: Íå äîïóñêàåòñÿ óêàçàíèå êâàíòèôèêàòîðà äëÿ êâàíòèôèêàòîðà %s*" +# :!~ Restorer #, c-format msgid "E62: Nested %s%c" -msgstr "E62: Âëîæåííûå %s%c" +msgstr "E62: Íå äîïóñêàåòñÿ óêàçàíèå êâàíòèôèêàòîðà äëÿ êâàíòèôèêàòîðà %s%c" +# :!~ Restorer msgid "E63: Invalid use of \\_" -msgstr "E63: Íåäîïóñòèìîå èñïîëüçîâàíèå \\_" +msgstr "" +"E63: Äîïóñêàåòñÿ ïðèìåíåíèå ìåòàñèìâîëà \\_ òîëüêî ñ ñèìâîëüíûìè êëàññàìè" +# :!~ Restorer #, c-format msgid "E64: %s%c follows nothing" -msgstr "E64: %s%c íè çà ÷åì íå ñëåäóåò" +msgstr "E64: Îòñóòñòâóþò ýëåìåíòû, ïðåäøåñòâóþùèå ìåòàñèìâîëó %s%c" +# :!~ Restorer msgid "E65: Illegal back reference" -msgstr "E65: Íåäîïóñòèìàÿ îáðàòíàÿ ññûëêà" +msgstr "E65: Îòñóòñòâóþò ïîäâûðàæåíèÿ äëÿ çàäàííûõ îáðàòíûõ ññûëîê" +# :!~ Restorer msgid "E66: \\z( not allowed here" -msgstr "E66: \\z( íå ìîæåò áûòü èñïîëüçîâàíî çäåñü" +msgstr "E66: Íå äîïóñêàåòñÿ èñïîëüçîâàòü ïîäâûðàæåíèÿ âèäà \\z(" +# :!~ Restorer msgid "E67: \\z1 - \\z9 not allowed here" -msgstr "E67: \\z1 è ò.ï. çäåñü íå ðàçðåøåíû" +msgstr "E67: Íå äîïóñêàåòñÿ èñïîëüçîâàòü îáðàòíûå ññûëêè \\z1 - \\z9" +# :!~ Restorer msgid "E68: Invalid character after \\z" -msgstr "E68: Íåäîïóñòèìûé ñèìâîë ïîñëå \\z" +msgstr "E68: Íåäîïóñòèìûé ñèìâîë ïîñëå ìåòàñèìâîëà \\z" +# :!~ Restorer #, c-format msgid "E69: Missing ] after %s%%[" -msgstr "E69: Ïðîïóùåíà ] ïîñëå %s%%[" +msgstr "E69: Îòñóòñòâóåò çàêðûâàþùàÿ êâàäðàòíàÿ ñêîáêà äëÿ %s%%[" +# :!~ Restorer #, c-format msgid "E70: Empty %s%%[]" -msgstr "E70: Ïóñòîå %s%%[]" +msgstr "E70: Îòñóòñòâóþò ýëåìåíòû â êëàññå ôàêóëüòàòèâíûõ ýëåìåíòîâ %s%%[]" +# :!~ Restorer #, c-format msgid "E71: Invalid character after %s%%" -msgstr "E71: Íåäîïóñòèìûé ñèìâîë ïîñëå %s%%" +msgstr "E71: Íåäîïóñòèìûé ñèìâîë ïîñëå ìåòàñèìâîëà %s%%" +# :!~ Restorer msgid "E72: Close error on swap file" -msgstr "E72: Îøèáêà çàêðûòèÿ ñâîï-ôàéëà" +msgstr "E72: Îøèáêà ïðè çàêðûòèè ôàéëà ïîäêà÷êè" +# :!~ Restorer msgid "E73: Tag stack empty" -msgstr "E73: Ñòåê ìåòîê ïóñòîé" +msgstr "E73: Îòñóòñòâóþò èíäåêñû" +# :!~ Restorer msgid "E74: Command too complex" -msgstr "E74: Ñëèøêîì ñëîæíàÿ êîìàíäà" +msgstr "E74: Ïðåâûøåíà äëèíà ðåçóëüòàòà âûïîëíåíèÿ êëàâèàòóðíîé êîìàíäû" +# :!~ Restorer msgid "E75: Name too long" -msgstr "E75: Ñëèøêîì äëèííîå èìÿ" +msgstr "E75: Ïðåâûøåíà äëèíà ìàðøðóòà ê ôàéëó" +# :!~ Restorer msgid "E76: Too many [" -msgstr "E76: Ñëèøêîì ìíîãî ñèìâîëîâ [" +msgstr "E76: Ïðåâûøåíî êîëè÷åñòâî îòêðûâàþùèõ êâàäðàòíûõ ñêîáîê" +# :!~ Restorer msgid "E77: Too many file names" -msgstr "E77: Ñëèøêîì ìíîãî èì¸í ôàéëîâ" +msgstr "E77: Øàáëîíó ñîîòâåòñòâóåò áîëåå îäíîãî ôàéëà" +# :!~ Restorer msgid "E78: Unknown mark" -msgstr "E78: Íåèçâåñòíàÿ îòìåòêà" +msgstr "E78: Íå óäàëîñü ðàñïîçíàòü íàèìåíîâàíèå çàêëàäêè" +# :!~ Restorer msgid "E79: Cannot expand wildcards" -msgstr "E79: Íåâîçìîæíî âûïîëíèòü ïîäñòàíîâêó ïî ìàñêå" +msgstr "E79: Íå ðàñïîçíàíî íàèìåíîâàíèå ôàéëà ïðè ïîäñòàíîâêå ïî ìàñêå" +# :!~ Restorer msgid "E80: Error while writing" -msgstr "E80: Îøèáêà ïðè çàïèñè" +msgstr "E80: Ïðîèçîøëà îøèáêà â ïðîöåññå çàïèñè" +# :!~ Restorer msgid "E81: Using not in a script context" -msgstr "E81: Èñïîëüçîâàíèå âíå êîíòåêñòà ñöåíàðèÿ" +msgstr "E81: Èäåíòèôèêàòîð çàäàí âíå êîìàíäíîãî ôàéëà" +# :!~ Restorer msgid "E82: Cannot allocate any buffer, exiting..." -msgstr "E82: Íåâîçìîæíî âûäåëèòü ïàìÿòü äàæå äëÿ îäíîãî áóôåðà, âûõîä..." +msgstr "E82: Íåäîñòàòî÷íî ïàìÿòè äàæå äëÿ îäíîãî áóôåðà. Çàâåðøåíèå ðàáîòû..." +# :!~ Restorer msgid "E83: Cannot allocate buffer, using other one..." -msgstr "E83: Íåâîçìîæíî âûäåëèòü ïàìÿòü äëÿ áóôåðà, èñïîëüçóåì äðóãîé áóôåð..." +msgstr "" +"E83: Íåäîñòàòî÷íî ïàìÿòè äëÿ ðàáîòû ñ áóôåðîì. Çàãðóæàåòñÿ äðóãîé áóôåð..." +# :!~ Restorer msgid "E84: No modified buffer found" -msgstr "E84: Èçìåí¸ííûõ áóôåðîâ íå îáíàðóæåíî" +msgstr "E84: Îòñóòñòâóþò èçìåí¸ííûå áóôåðû" +# :!~ Restorer msgid "E85: There is no listed buffer" -msgstr "E85: Ñïèñîê áóôåðîâ ïóñò" +msgstr "E85: Óêàçàííûé áóôåð îòñóòñòâóåò â ñïèñêå áóôåðîâ" +# :!~ Restorer #, c-format msgid "E86: Buffer %ld does not exist" -msgstr "E86: Áóôåð %ld íå ñóùåñòâóåò" +msgstr "E86: Áóôåð ïîä íîìåðîì %ld íå ñóùåñòâóåò" +# :!~ Restorer msgid "E87: Cannot go beyond last buffer" -msgstr "E87: Ýòî ïîñëåäíèé áóôåð" +msgstr "E87: Äîñòèãíóòà êîíå÷íàÿ ïîçèöèÿ ñïèñêà áóôåðîâ" +# :!~ Restorer msgid "E88: Cannot go before first buffer" -msgstr "E88: Ýòî ïåðâûé áóôåð" +msgstr "E88: Äîñòèãíóòà íà÷àëüíàÿ ïîçèöèÿ ñïèñêà áóôåðîâ" +# :!~ Restorer #, c-format msgid "E89: No write since last change for buffer %d (add ! to override)" msgstr "" -"E89: Íå ñîõðàíåíû èçìåíåíèÿ â áóôåðå %d (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +"E89: Íå ñîõðàíåíû äàííûå â áóôåðå %d (÷òîáû èãíîðèðîâàòü, óêàæèòå " +"ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E90: Cannot unload last buffer" -msgstr "E90: Íåâîçìîæíî âûãðóçèòü èç ïàìÿòè ïîñëåäíèé áóôåð" +msgstr "" +"E90: Êîìàíäà íå âûïîëíåíà. Äëÿ ðàáîòû ïðîãðàììû òðåáóåòñÿ õîòÿ áû îäèí áóôåð" +# :!~ Restorer msgid "E91: 'shell' option is empty" -msgstr "E91: Çíà÷åíèå îïöèè 'shell' íå çàäàíî" +msgstr "E91: Íå çàäàíî çíà÷åíèå ïàðàìåòðà 'shell'" +# :!~ Restorer #, c-format msgid "E92: Buffer %d not found" -msgstr "E92: Íå íàéäåí áóôåð %d" +msgstr "E92: Áóôåð ïîä íîìåðîì %d íå îáíàðóæåí" +# :!~ Restorer #, c-format msgid "E93: More than one match for %s" -msgstr "E93: Íåñêîëüêî ñîîòâåòñòâèé äëÿ %s" +msgstr "E93: Îáíàðóæåíî íåñêîëüêî áóôåðîâ ñ íàèìåíîâàíèåì %s" +# :!~ Restorer #, c-format msgid "E94: No matching buffer for %s" -msgstr "E94: Íåò ñîîòâåòñòâóþùåãî %s áóôåðà" +msgstr "E94: Íå óäàëîñü íàéòè áóôåð ñ íàèìåíîâàíèåì %s" +# :!~ Restorer msgid "E95: Buffer with this name already exists" -msgstr "E95: Áóôåð ñ òàêèì èìåíåì óæå ñóùåñòâóåò" +msgstr "E95: Îáíàðóæåí áóôåð ñ òàêèì æå íàèìåíîâàíèåì" +# :!~ Restorer #, c-format msgid "E96: Cannot diff more than %d buffers" -msgstr "E96: Íåâîçìîæíî îòîáðàçèòü îòëè÷èÿ äëÿ áîëåå ÷åì %d áóôåðîâ" +msgstr "E96: Ðàçðåøåíî ñðàâíåíèå íå áîëåå ÷åì %d áóôåðîâ" +# :!~ Restorer msgid "E97: Cannot create diffs" -msgstr "E97: Íåâîçìîæíî ñîçäàòü ôàéëû îòëè÷èé" +msgstr "" +"E97: Íå óäàëîñü çàïóñòèòü ïðîãðàììó diff èëè ïîëó÷èòü âûâîä ýòîé ïðîãðàììû" +# :!~ Restorer msgid "E98: Cannot read diff output" -msgstr "E98: Íåâîçìîæíî ïðî÷èòàòü âûâîä diff" +msgstr "E98: Íå óäàëîñü ñ÷èòàòü ôàéë ñ ðåçóëüòàòîì ñðàâíåíèÿ" +# :!~ Restorer msgid "E99: Current buffer is not in diff mode" -msgstr "E99: Àêòèâíûé áóôåð íå íàõîäèòñÿ â ðåæèìå îòëè÷èé" +msgstr "E99: Äëÿ òåêóùåãî áóôåðà íà àêòèâèðîâàí ðåæèì ñðàâíåíèÿ" +# :!~ Restorer msgid "E100: No other buffer in diff mode" -msgstr "E100: Áîëüøå íåò áóôåðîâ â ðåæèìå îòëè÷èé" +msgstr "E100: Íå îáíàðóæåíî äðóãèõ áóôåðîâ â ðåæèìå ñðàâíåíèÿ" +# :!~ Restorer msgid "E101: More than two buffers in diff mode, don't know which one to use" -msgstr "E101:  ðåæèìå îòëè÷èé áîëåå äâóõ áóôåðîâ — íå ìîãó âûáðàòü" +msgstr "E101: Ñëèÿíèå íå âûïîëíåíî. Áîëåå äâóõ áóôåðîâ â ðåæèìå ñðàâíåíèÿ" +# :!~ Restorer #, c-format msgid "E102: Can't find buffer \"%s\"" -msgstr "E102: Íå ìîãó íàéòè áóôåð \"%s\"" +msgstr "E102: Íå óäàëîñü íàéòè áóôåð \"%s\"" +# :!~ Restorer #, c-format msgid "E103: Buffer \"%s\" is not in diff mode" -msgstr "E103: Áóôåð \"%s\" íå íàõîäèòñÿ â ðåæèìå îòëè÷èé" +msgstr "E103: Íå àêòèâèðîâàí ðåæèì ñðàâíåíèÿ äëÿ áóôåðà \"%s\"" +# :!~ Restorer msgid "E104: Escape not allowed in digraph" -msgstr "E104: Ýêðàíèðóþùèé ñèìâîë Escape íåëüçÿ èñïîëüçîâàòü â äèãðàôå" +msgstr "E104: Íå äîïóñêàåòñÿ óêàçàíèå êëàâèøè ïðè çàäàíèè äèãðàôà" +# :!~ Restorer msgid "E105: Using :loadkeymap not in a sourced file" -msgstr "E105: Êîìàíäà :loadkeymap ïðèìåíåíà âíå ôàéëà ñöåíàðèÿ" +msgstr "E105: Êîìàíäà :loadkeymap óêàçàíà âíå êîìàíäíîãî ôàéëà" +# :!~ Restorer #, c-format msgid "E107: Missing parentheses: %s" -msgstr "E107: Ïðîïóùåíû ñêîáêè: %s" +msgstr "E107: Íå óêàçàíû àðãóìåíòû â êðóãëûõ ñêîáêàõ ïðè âûçîâå ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E108: No such variable: \"%s\"" -msgstr "E108: Íåò òàêîé ïåðåìåííîé: \"%s\"" +msgstr "E108: Íå ñóùåñòâóåò ïåðåìåííîé \"%s\"" +# :!~ Restorer msgid "E109: Missing ':' after '?'" -msgstr "E109: Ïðîïóùåíî ':' ïîñëå '?'" +msgstr "E109: Îòñóòñòâóåò ñèìâîë äâîåòî÷èÿ ':' â êîìàíäå ïðîâåðêè óñëîâèÿ '?'" +# :!~ Restorer msgid "E110: Missing ')'" -msgstr "E110: Ïðîïóùåíà ')'" +msgstr "E110: Ïðè ãðóïïèðîâêå âûðàæåíèé ïðîïóùåíà çàêðûâàþùàÿ êðóãëàÿ ñêîáêà" +# :!~ Restorer msgid "E111: Missing ']'" -msgstr "E111: Ïðîïóùåíà ']'" +msgstr "E111: Îòñóòñòâóåò çàêðûâàþùàÿ ïðÿìîóãîëüíàÿ ñêîáêà" +# :!~ Restorer #, c-format msgid "E112: Option name missing: %s" -msgstr "E112: Íå óêàçàíî èìÿ îïöèè: %s" +msgstr "E112: Òðåáóåòñÿ óêàçàòü íàèìåíîâàíèå ïàðàìåòðà ïîñëå %s" +# :!~ Restorer #, c-format msgid "E113: Unknown option: %s" -msgstr "E113: Íåèçâåñòíàÿ îïöèÿ: %s" +msgstr "E113: Íå ðàñïîçíàí ïàðàìåòð ñ íàèìåíîâàíèåì %s" +# :!~ Restorer #, c-format msgid "E114: Missing double quote: %s" -msgstr "E114: Ïðîïóùåíà äâîéíàÿ êàâû÷êà: %s" +msgstr "" +"E114: Çíà÷åíèÿ ñòðîêîâûõ êîíñòàíò äîëæíû çàêëþ÷àòüñÿ â äâîéíûå êàâû÷êè %s" +# :!~ Restorer #, c-format msgid "E115: Missing single quote: %s" -msgstr "E115: Ïðîïóùåíà îäèíàðíàÿ êàâû÷êà: %s" +msgstr "" +"E115: Çíà÷åíèÿ ëèòåðàëüíûõ êîíñòàíò äîëæíû çàêëþ÷àòüñÿ â îäèíàðíûå êàâû÷êè %s" +# :!~ Restorer #, c-format msgid "E116: Invalid arguments for function %s" -msgstr "E116: Ïàðàìåòðû äëÿ ôóíêöèè %s çàäàíû íåâåðíî" +msgstr "E116: Çàäàíû íåäîïóñòèìûå àðãóìåíòû â ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E117: Unknown function: %s" -msgstr "E117: Íåèçâåñòíàÿ ôóíêöèÿ: %s" +msgstr "E117: Íå ðàñïîçíàíà ôóíêöèÿ %s" +# :!~ Restorer #, c-format msgid "E118: Too many arguments for function: %s" -msgstr "E118: Ñëèøêîì ìíîãî ïàðàìåòðîâ äëÿ ôóíêöèè %s" +msgstr "E118: Ïðåâûøåíî êîëè÷åñòâî àðãóìåíòîâ â ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E119: Not enough arguments for function: %s" -msgstr "E119: Íåäîñòàòî÷íî ïàðàìåòðîâ äëÿ ôóíêöèè %s" +msgstr "E119: Íåäîñòàòî÷íîå êîëè÷åñòâî àðãóìåíòîâ â ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E120: Using not in a script context: %s" -msgstr "E120: èñïîëüçóåòñÿ âíå ñöåíàðèÿ: %s" +msgstr "E120: Èäåíòèôèêàòîð çàäàí âíå êîìàíäíîãî ôàéëà äëÿ ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E121: Undefined variable: %s" -msgstr "E121: Íåîïðåäåë¸ííàÿ ïåðåìåííàÿ: %s" +msgstr "E121: Îòñóòñòâóåò îïðåäåëåíèå ïåðåìåííîé %s" +# :!~ Restorer #, c-format msgid "E121: Undefined variable: %c:%s" -msgstr "E121: Íåîïðåäåë¸ííàÿ ïåðåìåííàÿ: %c:%s" +msgstr "E121:  ïðîñòðàíñòâå èì¸í %c îòñóòñòâóåò îïðåäåëåíèå ïåðåìåííîé %s" +# :!~ Restorer #, c-format msgid "E122: Function %s already exists, add ! to replace it" -msgstr "E122: Ôóíêöèÿ %s óæå ñóùåñòâóåò, äîáàâüòå !, ÷òîáû çàìåíèòü å¸" +msgstr "" +"E122: Ôóíêöèè %s óæå îïðåäåëåíà. ×òîáû çàìåíèòü å¸, óêàæèòå ìîäèôèêàòîð !" +# :!~ Restorer #, c-format msgid "E123: Undefined function: %s" -msgstr "E123: Íåîïðåäåë¸ííàÿ ôóíêöèÿ: %s" +msgstr "E123: Ôóíêöèÿ ñ òàêèì íàèìåíîâàíèåì íå îïðåäåëåíà %s" +# :!~ Restorer #, c-format msgid "E124: Missing '(': %s" -msgstr "E124: Ïðîïóùåíà '(': %s" +msgstr "E124: Íå óêàçàíû êðóãëûå ñêîáêè ïðè îïðåäåëåíèè ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E125: Illegal argument: %s" -msgstr "E125: Íåäîïóñòèìûé ïàðàìåòð: %s" +msgstr "E125: Íåäîïóñòèìûé àðãóìåíò %s" +# :!~ Restorer msgid "E126: Missing :endfunction" -msgstr "E126: Ïðîïóùåíà êîìàíäà :endfunction" +msgstr "E126: Íå óêàçàíà êîìàíäà :endfunction" +# :!~ Restorer #, c-format msgid "E127: Cannot redefine function %s: It is in use" -msgstr "E127: Íåâîçìîæíî ïåðåîïðåäåëèòü ôóíêöèþ %s: îíà èñïîëüçóåòñÿ" +msgstr "E127: Ïåðåîïðåäåëåíèå íå âûïîëíåíî. Ýòà ôóíêöèÿ ñåé÷àñ èñïîëüçóåòñÿ %s" +# :!~ Restorer #, c-format msgid "E128: Function name must start with a capital or \"s:\": %s" -msgstr "E128: Èìÿ ôóíêöèè äîëæíî íà÷èíàòüñÿ ñ çàãëàâíîé áóêâû èëè \"s:\": %s" +msgstr "" +"E128: Íàèìåíîâàíèå ôóíêöèè äîëæíî íà÷èíàòüñÿ ñ ñèìâîëîâ \"s:\" èëè ïðîïèñíîé " +"áóêâû %s" +# :!~ Restorer msgid "E129: Function name required" -msgstr "E129: Òðåáóåòñÿ èìÿ ôóíêöèè" +msgstr "E129: Òðåáóåòñÿ óêàçàòü íàèìåíîâàíèå ôóíêöèè" +# :!~ Restorer #, c-format msgid "E131: Cannot delete function %s: It is in use" -msgstr "E131: Íåâîçìîæíî óäàëèòü ôóíêöèþ %s: îíà èñïîëüçóåòñÿ" +msgstr "E131: Óäàëåíèå íå âûïîëíåíî. Ýòà ôóíêöèÿ ñåé÷àñ èñïîëüçóåòñÿ %s" +# :!~ Restorer msgid "E132: Function call depth is higher than 'maxfuncdepth'" -msgstr "E132: Ãëóáèíà âûçîâà ôóíêöèè áîëüøå, ÷åì çíà÷åíèå 'maxfuncdepth'" +msgstr "" +"E132: Ïðåâûøåíî êîëè÷åñòâî âûçîâîâ ôóíêöèé, çàäàííîå â ïàðàìåòðå 'maxfuncdepth'" +# :!~ Restorer msgid "E133: :return not inside a function" -msgstr "E133: êîìàíäà :return âíå ôóíêöèè" +msgstr "E133: Êîìàíäà :return óêàçàííà âíå òåëà ôóíêöèè" +# :!~ Restorer msgid "E134: Cannot move a range of lines into itself" -msgstr "E134: Íåâîçìîæíî ïåðåìåñòèòü äèàïàçîí ñòðîê íà ñåáÿ" +msgstr "" +"E134: Àäðåñ íàçíà÷åíèÿ íàõîäèòñÿ â òîì æå äèàïàçîíå ÷òî è ïåðåìåùàåìûå ñòðîêè" +# :!~ Restorer msgid "E135: *Filter* Autocommands must not change current buffer" -msgstr "E135: Àâòîêîìàíäû *Filter* íå äîëæíû èçìåíÿòü àêòèâíûé áóôåð" +msgstr "E135: Àâòîêîìàíäû ïî ñîáûòèÿì *Filter* íå äîëæíû èçìåíÿòü òåêóùèé áóôåð" +# :!~ Restorer msgid "E136: viminfo: Too many errors, skipping rest of file" msgstr "" -"E136: viminfo: Ñëèøêîì ìíîãî îøèáîê — îñòàâøàÿñÿ ÷àñòü ôàéëà áóäåò ïðîïóùåíà" +"E136: Îáíàðóæåíî ìíîæåñòâî îøèáîê â viminfo-ôàéëå. Ñ÷èòûâàíèå ôàéëà ïðåêðàùåíî" +# :!~ Restorer #, c-format msgid "E137: Viminfo file is not writable: %s" -msgstr "E137: Ïðàâà íà çàïèñü ôàéëà viminfo îòñóòñòâóþò: %s" +msgstr "E137: Îòñóòñòâóþò ïðàâà íà çàïèñü viminfo-ôàéëà %s" +# :!~ Restorer #, c-format msgid "E138: Can't write viminfo file %s!" -msgstr "E138: Íåâîçìîæíî çàïèñàòü ôàéë viminfo %s!" +msgstr "E138: Íå óäàëîñü âûïîëíèòü çàïèñü viminfo-ôàéëà %s" +# :!~ Restorer msgid "E139: File is loaded in another buffer" -msgstr "E139: Ôàéë çàãðóæåí â äðóãîé áóôåð" +msgstr "E139: Ôàéë ñ òàêèì íàèìåíîâàíèåì îòêðûò â äðóãîì áóôåðå" +# :!~ Restorer msgid "E140: Use ! to write partial buffer" -msgstr "E140: Äëÿ çàïèñè ÷àñòè áóôåðà èñïîëüçóéòå !" +msgstr "E140: ×òîáû ñîõðàíèòü òîëüêî ÷àñòü ôàéëà, óêàæèòå ìîäèôèêàòîð !" +# :!~ Restorer #, c-format msgid "E141: No file name for buffer %ld" -msgstr "E141: Áóôåð %ld íå ñâÿçàí ñ èìåíåì ôàéëà" +msgstr "E141: Îòñóòñòâóåò çàäàííîå íàèìåíîâàíèå ôàéëà äëÿ áóôåðà %ld" +# :!~ Restorer msgid "E142: File not written: Writing is disabled by 'write' option" -msgstr "E142: Ôàéë íå ñîõðàí¸í: çàïèñü îòêëþ÷åíà îïöèåé 'write'" +msgstr "E142: Ôàéë íå ñîõðàí¸í. Çàïèñü îòêëþ÷åíà ÷åðåç ïàðàìåòð 'write'" +# :!~ Restorer #, c-format msgid "E143: Autocommands unexpectedly deleted new buffer %s" -msgstr "E143: Àâòîêîìàíäû íåîæèäàííî óäàëèëè íîâûé áóôåð %s" +msgstr "E143: Äåéñòâèÿ àâòîêîìàíä âûçâàëè íåïðåäâèäåííîå óäàëåíèå áóôåðà %s" +# :!~ Restorer msgid "E144: Non-numeric argument to :z" -msgstr "E144: Ïàðàìåòð êîìàíäû :z äîëæåí áûòü ÷èñëîì" +msgstr "E144: Òðåáóåòñÿ óêàçàòü ÷èñëîâîé ïàðàìåòð äëÿ êîìàíäû :z" +# :!~ Restorer msgid "E145: Shell commands and some functionality not allowed in rvim" msgstr "" -"E145: Èñïîëüçîâàíèå êîìàíä îáîëî÷êè è íåêîòîðàÿ ôóíêöèîíàëüíîñòü íå " -"äîïóñêàþòñÿ â rvim" +"E145: Êîìàíäû êîìàíäíîé îáîëî÷êè è íåêîòîðàÿ ôóíêöèîíàëüíîñòü îòêëþ÷åíû â " +"âàðèàíòå ïðîãðàììû rvim" +# :!~ Restorer msgid "E146: Regular expressions can't be delimited by letters" -msgstr "E146: Ðåãóëÿðíûå âûðàæåíèÿ íå ìîãóò ðàçäåëÿòüñÿ áóêâàìè" +msgstr "" +"E146: Çàïðåùåíû ðàçäåëèòåëè øàáëîíà ïîèñêà è ñòðîêè çàìåíû â âèäå áóêâ è öèôð" +# :!~ Restorer msgid "E147: Cannot do :global recursive with a range" -msgstr "E147: Íåâîçìîæíî âûïîëíèòü :global ðåêóðñèâíî ñ äèàïàçîíîì" +msgstr "" +"E147: Íå äîïóñêàåòñÿ ðåêóðñèâíûé âûçîâ êîìàíäû :global ïðè óêàçàíèè äèàïàçîíà" +# :!~ Restorer msgid "E148: Regular expression missing from :global" -msgstr "E148:  êîìàíäå :global ïðîïóùåíî ðåãóëÿðíîå âûðàæåíèå" +msgstr "E148: Íå óêàçàí øàáëîí ïîèñêà äëÿ êîìàíäû :global" +# :!~ Restorer #, c-format msgid "E149: Sorry, no help for %s" -msgstr "E149: Ê ñîæàëåíèþ, ñïðàâêà äëÿ %s îòñóòñòâóåò" +msgstr "E149: Íå íàéäåíà äîêóìåíòàöèþ ïî %s" +# :!~ Restorer #, c-format msgid "E150: Not a directory: %s" -msgstr "E150: %s íå ÿâëÿåòñÿ êàòàëîãîì" +msgstr "E150: Íå óäàëîñü ðàñïîçíàòü êàê êàòàëîã %s" +# :!~ Restorer #, c-format msgid "E151: No match: %s" -msgstr "E151: Íåò ñîîòâåòñòâèÿ: %s" +msgstr "E151: Íå óäàëîñü íàéòè %s" +# :!~ Restorer #, c-format msgid "E152: Cannot open %s for writing" -msgstr "E152: Íåâîçìîæíî îòêðûòü %s äëÿ çàïèñè" +msgstr "E152: Íå óäàëîñü îòêðûòü íà çàïèñü %s" +# :!~ Restorer #, c-format msgid "E153: Unable to open %s for reading" -msgstr "E153: Íåâîçìîæíî îòêðûòü %s äëÿ ÷òåíèÿ" +msgstr "E153: Íå óäàëîñü îòêðûòü íà ñ÷èòûâàíèå %s" +# :!~ Restorer #, c-format msgid "E154: Duplicate tag \"%s\" in file %s/%s" -msgstr "E154: Ïîâòîðÿþùàÿñÿ ìåòêà \"%s\" â ôàéëå %s/%s" +msgstr "E154: Ïîâòîðíûé èíäåêñ \"%s\" â ôàéëå %s\\%s" +# :!~ Restorer #, c-format msgid "E155: Unknown sign: %s" -msgstr "E155: Íåèçâåñòíûé çíà÷îê: %s" +msgstr "E155: Íå óäàëîñü îáíàðóæèòü çíà÷îê %s" +# :!~ Restorer msgid "E156: Missing sign name" -msgstr "E156: Ïðîïóùåíî èìÿ çíà÷êà" +msgstr "E156: Íå óêàçàíî íàèìåíîâàíèå çíà÷êà" +# :!~ Restorer #, c-format msgid "E157: Invalid sign ID: %d" -msgstr "E157: Íåïðàâèëüíûé èäåíòèôèêàòîð çíà÷êà: %d" +msgstr "E157: Íåäîïóñòèìûé èäåíòèôèêàòîð çíà÷êà %d" +# :!~ Restorer #, c-format msgid "E158: Invalid buffer name: %s" -msgstr "E158: Íåïðàâèëüíîå èìÿ áóôåðà: %s" +msgstr "E158: Íåäîïóñòèìîå íàèìåíîâàíèå áóôåðà %s" +# :!~ Restorer msgid "E159: Missing sign number" -msgstr "E159: Ïðîïóùåí íîìåð çíà÷êà" +msgstr "E159: Íå óêàçàí íîìåð çíà÷êà" +# :!~ Restorer #, c-format msgid "E160: Unknown sign command: %s" -msgstr "E160: Íåèçâåñòíàÿ êîìàíäà çíà÷êà %s" +msgstr "E160: Ïðè îïðåäåëåíèè çíà÷êà óêàçàí íåäîïóñòèìûé ïàðàìåòð %s" +# :!~ Restorer #, c-format msgid "E161: Breakpoint not found: %s" -msgstr "E161: Òî÷êà îñòàíîâà íå íàéäåíà: %s" +msgstr "E161: Íå íàéäåíà òî÷êà îñòàíîâà %s" +# :!~ Restorer #, c-format msgid "E162: No write since last change for buffer \"%s\"" -msgstr "E162: Íåñîõðàí¸ííûå èçìåíåíèÿ â áóôåðå \"%s\"" +msgstr "E162: Íå ñîõðàíåíû äàííûå â áóôåðå \"%s\"" +# ~!: earlier msgid "E163: There is only one file to edit" msgstr "E163: Äëÿ ðåäàêòèðîâàíèÿ äîñòóïåí òîëüêî îäèí ôàéë" +# ~!: earlier msgid "E164: Cannot go before first file" msgstr "E164: Ýòî ïåðâûé ôàéë" +# ~!: earlier msgid "E165: Cannot go beyond last file" msgstr "E165: Ýòî ïîñëåäíèé ôàéë" +# :!~ Restorer msgid "E166: Can't open linked file for writing" -msgstr "E166: Ôàéë ïî ññûëêå íå äîñòóïåí äëÿ çàïèñè" +msgstr "E166: Íå óäàëîñü îòêðûòü íà çàïèñü ôàéë ïî ññûëêå" +# :!~ Restorer msgid "E167: :scriptencoding used outside of a sourced file" -msgstr "E167: Êîìàíäà :scriptencoding èñïîëüçóåòñÿ âíå ôàéëà ñöåíàðèÿ" +msgstr "E167: Êîìàíäà :scriptencoding óêàçàíà âíå êîìàíäíîãî ôàéëà" +# :!~ Restorer msgid "E168: :finish used outside of a sourced file" -msgstr "E168: Êîìàíäà :finish èñïîëüçóåòñÿ âíå ôàéëà ñöåíàðèÿ" +msgstr "E168: Êîìàíäà :finish óêàçàíà âíå êîìàíäíîãî ôàéëà" +# :!~ Restorer msgid "E169: Command too recursive" -msgstr "E169: Ñëèøêîì ðåêóðñèâíàÿ êîìàíäà" +msgstr "E169: Ïðåâûøåíî êîëè÷åñòâî âûçîâîâ âëîæåííûõ êîìàíä" +# :!~ Restorer msgid "E170: Missing :endwhile" -msgstr "E170: Îòñóòñòâóåò êîìàíäà :endwhile" +msgstr "E170: Íå óêàçàíà êîìàíäà :endwhile" +# :!~ Restorer msgid "E170: Missing :endfor" -msgstr "E170: Îòñóòñòâóåò êîìàíäà :endfor" +msgstr "E170: Íå óêàçàíà êîìàíäà :endfor" +# :!~ Restorer msgid "E171: Missing :endif" -msgstr "E171: Îòñóòñòâóåò êîìàíäà :endif" +msgstr "E171: Íå óêàçàíà êîìàíäà :endif" +# :!~ Restorer msgid "E172: Missing marker" -msgstr "E172: Ïðîïóùåí ìàðêåð" +msgstr "E172: Íå óêàçàí ìàðêåð" +# :!~ Restorer #, c-format msgid "E173: %d more file to edit" msgid_plural "E173: %d more files to edit" -msgstr[0] "E173: Íå îòðåäàêòèðîâàí %d ôàéë" -msgstr[1] "E173: Íå îòðåäàêòèðîâàíî %d ôàéëà" -msgstr[2] "E173: Íå îòðåäàêòèðîâàíî %d ôàéëîâ" +msgstr[0] "E173: Îñòàëñÿ íå îòðåäàêòèðîâàííûì %d ôàéë" +msgstr[1] "E173: Îñòàëèñü íå îòðåäàêòèðîâàííûìè %d ôàéëà" +msgstr[2] "E173: Îñòàëèñü íå îòðåäàêòèðîâàííûìè %d ôàéëîâ" +# :!~ Restorer #, c-format msgid "E174: Command already exists: add ! to replace it: %s" -msgstr "E174: Êîìàíäà óæå ñóùåñòâóåò, äîáàâüòå !, ÷òîáû çàìåíèòü: %s" +msgstr "" +"E174: Êîìàíäà %s óæå ñóùåñòâóåò. ×òîáû çàìåíèòü å¸, óêàæèòå ìîäèôèêàòîð !" +# :!~ Restorer msgid "E175: No attribute specified" -msgstr "E175: Ïàðàìåòð íå çàäàí" +msgstr "E175: Àòðèáóò íå îïðåäåë¸í" +# :!~ Restorer msgid "E176: Invalid number of arguments" -msgstr "E176: Íåïðàâèëüíîå êîëè÷åñòâî ïàðàìåòðîâ" +msgstr "E176: Çàäàíî íåäîïóñòèìîå êîëè÷åñòâî àðãóìåíòîâ" +# :!~ Restorer msgid "E177: Count cannot be specified twice" -msgstr "E177: ×èñëî-ïðèñòàâêó íåëüçÿ óêàçûâàòü äâàæäû" +msgstr "" +"E177: Ðàçðåøåíî óêàçûâàòü òîëüêî îäèí èç àòðèáóòîâ, èëè -count, èëè -range" +# :!~ Restorer msgid "E178: Invalid default value for count" -msgstr "E178: Íåïðàâèëüíîå çíà÷åíèå ÷èñëà-ïðèñòàâêè ïî óìîë÷àíèþ" +msgstr "E178: Íåäîïóñòèìîå çíà÷åíèå àòðèáóòà -range èëè -count" +# :!~ Restorer #, c-format msgid "E179: Argument required for %s" -msgstr "E179: Äëÿ %s òðåáóåòñÿ óêàçàòü ïàðàìåòð" +msgstr "E179: Íå çàäàíî çíà÷åíèå àòðèáóòà %s" +# :!~ Restorer #, c-format msgid "E180: Invalid complete value: %s" -msgstr "E180: Íåïðàâèëüíîå çíà÷åíèå äîïîëíåíèÿ: %s" +msgstr "E180: Äëÿ àòðèáóòà -complete çàäàíî íåäîïóñòèìîå çíà÷åíèå %s" +# :!~ Restorer #, c-format msgid "E180: Invalid address type value: %s" -msgstr "E180: Íåïðàâèëüíîå çíà÷åíèå òèïà àäðåñà: %s" +msgstr "E180: Äëÿ àòðèáóòà -addr çàäàíî íåäîïóñòèìîå çíà÷åíèå %s" +# :!~ Restorer #, c-format msgid "E181: Invalid attribute: %s" -msgstr "E181: Íåïðàâèëüíûé àòðèáóò: %s" +msgstr "E181: Íåäîïóñòèìûé àòðèáóò %s" +# :!~ Restorer msgid "E182: Invalid command name" -msgstr "E182: Íåïðàâèëüíîå èìÿ êîìàíäû" +msgstr "E182: Íåäîïóñòèìîå íàèìåíîâàíèå êîìàíäû" +# :!~ Restorer msgid "E183: User defined commands must start with an uppercase letter" -msgstr "E183: Êîìàíäà ïîëüçîâàòåëÿ äîëæíà íà÷èíàòüñÿ ñ çàãëàâíîé áóêâû" +msgstr "" +"E183: Íàèìåíîâàíèÿ êîìàíä ïîëüçîâàòåëÿ äîëæíû íà÷èíàòüñÿ ñ ïðîïèñíîé áóêâû" +# :!~ Restorer #, c-format msgid "E184: No such user-defined command: %s" -msgstr "E184: Íåò òàêîé êîìàíäû ïîëüçîâàòåëÿ: %s" +msgstr "E184: Íå ñóùåñòâóåò êîìàíäû ïîëüçîâàòåëÿ %s" +# :!~ Restorer #, c-format msgid "E185: Cannot find color scheme '%s'" -msgstr "E185: Íåâîçìîæíî íàéòè öâåòîâóþ ñõåìó '%s'" +msgstr "E185: Íå íàéäåíà öâåòîâàÿ ñõåìà \"%s\"" +# :!~ Restorer msgid "E186: No previous directory" -msgstr "E186: Íåò ïðåäûäóùåãî êàòàëîãà" +msgstr "E186: Ðàíåå èçìåíåíèé êàòàëîãà íå âûïîëíÿëîñü, îñòàëñÿ òåêóùèé êàòàëîã" +# :!~ Restorer msgid "E187: Directory unknown" -msgstr "E187: Íåèçâåñòíûé êàòàëîã" +msgstr "E187: Íå ðàñïîçíàí êàòàëîã" +# :!~ Restorer msgid "E188: Obtaining window position not implemented for this platform" -msgstr "E188: Äëÿ äàííîé ñèñòåìû îïðåäåëåíèå ïîëîæåíèÿ îêíà íå ðåàëèçîâàíî" +msgstr "" +"E188: â äàííîé ñèñòåìå íå ïîääåðæèâàåòñÿ îïðåäåëåíèå êîîðäèíàò îêíà ïðîãðàììû" +# :!~ Restorer #, c-format msgid "E189: \"%s\" exists (add ! to override)" -msgstr "E189: \"%s\" ñóùåñòâóåò (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +msgstr "E189: Ôàéë \"%s\" óæå ñóùåñòâóåò (÷òîáû çàìåíèòü, óêàæèòå ìîäèôèêàòîð !)" +# #Restorer: ñì. E212 +# :!~ Restorer #, c-format msgid "E190: Cannot open \"%s\" for writing" -msgstr "E190: Íåâîçìîæíî îòêðûòü äëÿ çàïèñè \"%s\"" +msgstr "E190: Íå óäàëîñü îòêðûòü íà çàïèñü ôàéëà \"%s\"" +# :!~ Restorer msgid "E191: Argument must be a letter or forward/backward quote" -msgstr "E191: Ïàðàìåòð äîëæåí áûòü ïðÿìîé èëè îáðàòíîé êàâû÷êîé èëè áóêâîé" +msgstr "" +"E191: Òðåáóåòñÿ óêàçàòü áóêâó, ïðÿìóþ èëè îáðàòíóþ êàâû÷êó êàê ïàðàìåòð êîìàíäû" +# :!~ Restorer msgid "E192: Recursive use of :normal too deep" -msgstr "E192: Ñëèøêîì ãëóáîêàÿ ðåêóðñèÿ ïðè èñïîëüçîâàíèè êîìàíäû :normal" +msgstr "E192: Ïðåâûøåíî êîëè÷åñòâî ïîâòîðíûõ âûçîâîâ êîìàíäû :normal" +# :!~ Restorer #, c-format msgid "E193: %s not inside a function" -msgstr "E193: Êîìàíäà %s ìîæåò èñïîëüçîâàòüñÿ òîëüêî âíóòðè ôóíêöèè" +msgstr "E193: Êîìàíäà %s óêàçàíà âíå òåëà ôóíêöèè" +# :!~ Restorer msgid "E194: No alternate file name to substitute for '#'" -msgstr "E194: Íåò ñîñåäíåãî èìåíè ôàéëà äëÿ çàìåíû '#'" +msgstr "" +"E194: Îòñóòñòâóåò íàèìåíîâàíèå ñîñåäíåãî ôàéëà äëÿ çàìåùåíèÿ ñïåöñèìâîëà '#'" +# :!~ Restorer msgid "E195: Cannot open viminfo file for reading" -msgstr "E195: Íåâîçìîæíî îòêðûòü ôàéë viminfo äëÿ ÷òåíèÿ" +msgstr "E195: Íå óäàëîñü îòêðûòü viminfo-ôàéë íà ñ÷èòûâàíèå" +# :!~ Restorer msgid "E196: No digraphs in this version" -msgstr "E196:  ýòîé âåðñèè äèãðàôû íå ðàáîòàþò" +msgstr "" +"E196:  äàííîé âåðñèè ïðîãðàììû ôóíêöèîíàëüíîñòü äèãðàôîâ íå ïîääåðæèâàåòñÿ" +# :!~ Restorer #, c-format msgid "E197: Cannot set language to \"%s\"" -msgstr "E197: Íåâîçìîæíî ñìåíèòü ÿçûê íà \"%s\"" +msgstr "E197: Íå óäàëîñü èçìåíèòü ðåãèîíàëüíûå íàñòðîéêè äëÿ \"%s\"" +# :!~ Restorer msgid "E199: Active window or buffer deleted" -msgstr "E199: Óäàëåíî àêòèâíîå îêíî èëè áóôåð" +msgstr "E199: Óäàëåíû àêòèâíîå îêíî èëè áóôåð" +# :!~ Restorer msgid "E200: *ReadPre autocommands made the file unreadable" -msgstr "E200:  ðåçóëüòàòå âûïîëíåíèÿ àâòîêîìàíä *ReadPre ôàéë ñòàë íå÷èòàåìûì" +msgstr "" +"E200:  ðåçóëüòàòå äåéñòâèé àâòîêîìàíä ïî ñîáûòèþ *ReadPre ôàéë ñòàë íå÷èòàåì" +# :!~ Restorer msgid "E201: *ReadPre autocommands must not change current buffer" -msgstr "E201: Àâòîêîìàíäû *ReadPre íå äîëæíû èçìåíÿòü àêòèâíûé áóôåð" +msgstr "" +"E201: Äåéñòâèÿ àâòîêîìàíä äëÿ ñîáûòèé *ReadPre íå äîëæíû èçìåíÿòü òåêóùèé áóôåð" +# :!~ Restorer msgid "E202: Conversion made file unreadable!" -msgstr "E202:  ðåçóëüòàòå ïðåîáðàçîâàíèÿ ôàéë ñòàë íå÷èòàåì!" +msgstr "E202:  ðåçóëüòàòå èçìåíåíèÿ êîäèðîâêè òåêñòà ôàéë ñòàë íå÷èòàåì!" +# :!~ Restorer msgid "E203: Autocommands deleted or unloaded buffer to be written" msgstr "" -"E203: Áóôåð, êîòîðûé òðåáîâàëîñü çàïèñàòü, óäàë¸í èëè âûãðóæåí àâòîêîìàíäîé" +"E203: Äåéñòâèÿ àâòîêîìàíä âûçâàëè óäàëåíèå áóôåðà ïðåäíàçíà÷åííûé äëÿ çàïèñè" +# :!~ Restorer msgid "E204: Autocommand changed number of lines in unexpected way" -msgstr "E204: Êîëè÷åñòâî ñòðîê èçìåíåíî àâòîêîìàíäîé íåîæèäàííûì îáðàçîì" +msgstr "E204: Äåéñòâèÿ àâòîêîìàíä âûçâàëè èçìåíåíèå êîëè÷åñòâà ñòðîê áóôåðå" +# :!~ Restorer msgid "E205: Patchmode: can't save original file" -msgstr "E205: Ðåæèì çàïëàòêè: íåâîçìîæíî ñîõðàíåíèå èñõîäíîãî ôàéëà" +msgstr "" +"E205: Íå óäàëîñü ñîõðàíèòü èñõîäíûé ôàéë ñ ðàñøèðåíèåì èç ïàðàìåòðà 'patchmode'" +# :!~ Restorer msgid "E206: Patchmode: can't touch empty original file" -msgstr "E206: Ðåæèì çàïëàòêè: íåâîçìîæíî ñîçäàòü ïóñòîé èñõîäíûé ôàéë" +msgstr "E206: Èñõîäíûé ôàéë íå ñîäåðæèò äàííûõ èëè äîñòóï ê íåìó îãðàíè÷åí" +# :!~ Restorer msgid "E207: Can't delete backup file" -msgstr "E207: Íåâîçìîæíî óäàëèòü ðåçåðâíûé ôàéë" +msgstr "E207: Íå óäàëîñü óäàëèòü ðåçåðâíûé ôàéë" +# ~!: earlier #, c-format msgid "E208: Error writing to \"%s\"" -msgstr "E208: Îøèáêà çàïèñè â \"%s\"" +msgstr "E208: Îøèáêà çàïèñè ôàéëà \"%s\"" +# ~!: earlier #, c-format msgid "E209: Error closing \"%s\"" -msgstr "E209: Îøèáêà çàêðûòèÿ \"%s\"" +msgstr "E209: Îøèáêà çàêðûòèÿ ôàéëà \"%s\"" +# ~!: earlier #, c-format msgid "E210: Error reading \"%s\"" -msgstr "E210: Îøèáêà ÷òåíèÿ \"%s\"" +msgstr "E210: Îøèáêà ñ÷èòûâàíèÿ ôàéëà \"%s\"" +# :!~ Restorer #, c-format msgid "E211: File \"%s\" no longer available" -msgstr "E211: Ôàéë \"%s\" áîëüøå íå äîñòóïåí" +msgstr "E211: Íå äîñòóïåí ôàéë \"%s\"" +# :!~ Restorer msgid "E212: Can't open file for writing" -msgstr "E212: Íåâîçìîæíî îòêðûòü ôàéë äëÿ çàïèñè" +msgstr "E212: Íå óäàëîñü îòêðûòü ôàéë íà çàïèñü" +# :!~ Restorer msgid "E213: Cannot convert (add ! to write without conversion)" msgstr "" -"E213: Ïðåîáðàçîâàíèå íåâîçìîæíî (äîáàâüòå ! äëÿ çàïèñè áåç ïðåîáðàçîâàíèÿ)" +"E213: Íå óäàëîñü èçìåíèòü êîäèðîâêó òåêñòà (÷òîáû çàïèñàòü áåç èçìåíåíèÿ, " +"óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E214: Can't find temp file for writing" -msgstr "E214: Âðåìåííûé ôàéë äëÿ çàïèñè íå íàéäåí" +msgstr "E214: Íó óäàëîñü íàéòè âðåìåííûé ôàéë äëÿ ïðîäîëæåíèÿ îïåðàöèè çàïèñè" +# :!~ Restorer #, c-format msgid "E215: Illegal character after *: %s" -msgstr "E215: Íåäîïóñòèìûå ñèìâîëû ïîñëå *: %s" +msgstr "E215: Òðåáóåòñÿ ïðîáåëüíûé ñèìâîë ïîñëå ñèìâîëà * â %s" +# :!~ Restorer #, c-format msgid "E216: No such event: %s" -msgstr "E216: Íåñóùåñòâóþùåå ñîáûòèå: %s" +msgstr "E216: Íå ñóùåñòâóåò ñîáûòèå %s" +# :!~ Restorer #, c-format msgid "E216: No such group or event: %s" -msgstr "E216: Íåñóùåñòâóþùàÿ ãðóïïà èëè ñîáûòèå: %s" +msgstr "E216: Íå ñóùåñòâóåò ãðóïïû èëè ñîáûòèÿ %s" +# :!~ Restorer msgid "E217: Can't execute autocommands for ALL events" -msgstr "E217: Íåâîçìîæíî âûïîëíèòü àâòîêîìàíäû äëÿ ÂÑÅÕ ñîáûòèé ñðàçó" - -msgid "E218: Autocommand nesting too deep" -msgstr "E218: Ñëèøêîì ãëóáîêî âëîæåííûå àâòîêîìàíäû" - -msgid "E219: Missing {." -msgstr "E219: Ïðîïóùåíà {." - -msgid "E220: Missing }." -msgstr "E220: Ïðîïóùåíà }." - -msgid "E221: Marker cannot start with lower case letter" -msgstr "E221: Ìàðêåð äîëæåí íà÷èíàòüñÿ ñ çàãëàâíîé áóêâû" - -msgid "E222: Add to internal buffer that was already read from" msgstr "" -"E222: Äîáàâëåíèå âî âíóòðåííèé áóôåð, èç êîòîðîãî óæå ïðîèçâîäèëîñü ÷òåíèå" +"E217: Íå äîïóñêàåòñÿ îäíîâðåìåííîå âûïîëíåíèå àâòîêîìàíä äëÿ âñåõ ñîáûòèé" +# :!~ Restorer +msgid "E218: Autocommand nesting too deep" +msgstr "E218: Ïðåâûøåíî êîëè÷åñòâî âëîæåííûõ àâòîêîìàíä" + +# :!~ Restorer +msgid "E219: Missing {." +msgstr "E219: Íå óêàçàíà îòêðûâàþùàÿ ôèãóðíàÿ ñêîáêà" + +# :!~ Restorer +msgid "E220: Missing }." +msgstr "E220: Íå óêàçàíà çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà" + +# :!~ Restorer +msgid "E221: Marker cannot start with lower case letter" +msgstr "E221: Íàèìåíîâàíèå ìàðêåðà äîëæíî íà÷èíàòüñÿ ñ ïðîïèñíîé áóêâû" + +# :!~ Restorer msgid "E223: Recursive mapping" -msgstr "E223: Ðåêóðñèâíàÿ ïðèâÿçêà" +msgstr "E223: Ïðåâûøåíî êîëè÷åñòâî ïåðåíàçíà÷åíèé êëàâèàòóðíîé êîìàíäû" +# :!~ Restorer #, c-format msgid "E224: Global abbreviation already exists for %s" -msgstr "E224: Óæå åñòü ãëîáàëüíîå ñîêðàùåíèå äëÿ %s" +msgstr "E224: Îáíàðóæåíî ñóùåñòâóþùåå ãëîáàëüíîå ñîêðàùåíèå %s" +# :!~ Restorer #, c-format msgid "E225: Global mapping already exists for %s" -msgstr "E225: Óæå åñòü ãëîáàëüíàÿ ïðèâÿçêà äëÿ %s" +msgstr "E225: Îáíàðóæåíà ñóùåñòâóþùàÿ ãëîáàëüíàÿ êëàâèàòóðíàÿ êîìàíäà %s" +# :!~ Restorer #, c-format msgid "E226: Abbreviation already exists for %s" -msgstr "E226: Óæå åñòü ñîêðàùåíèå äëÿ %s" +msgstr "E226: Îáíàðóæåíî ñóùåñòâóþùåå ñîêðàùåíèå %s" +# :!~ Restorer #, c-format msgid "E227: Mapping already exists for %s" -msgstr "E227: Óæå åñòü ïðèâÿçêà äëÿ %s" - -msgid "E228: makemap: Illegal mode" -msgstr "E228: makemap: íåäîïóñòèìûé ðåæèì" +msgstr "E227: Îáíàðóæåíà ñóùåñòâóþùàÿ êëàâèàòóðíàÿ êîìàíäà %s" +# :!~ Restorer msgid "E229: Cannot start the GUI" -msgstr "E229: Íåâîçìîæíî ïåðåéòè â ðåæèì ãðàôè÷åñêîãî èíòåðôåéñà" +msgstr "E229: Ãðàôè÷åñêèé èíòåðôåéñ ïðîãðàììû íå ìîæåò áûòü çàïóùåí" +# :!~ Restorer #, c-format msgid "E230: Cannot read from \"%s\"" -msgstr "E230: Íåâîçìîæíî âûïîëíèòü ÷òåíèå \"%s\"" +msgstr "E230: Íå óäàëîñü ñ÷èòàòü ñîäåðæèìîå ôàéëà \"%s\"" +# :!~ Restorer msgid "E231: 'guifontwide' invalid" -msgstr "E231: Íåïðàâèëüíîå çíà÷åíèå îïöèè 'guifontwide'" - -msgid "E232: Cannot create BalloonEval with both message and callback" -msgstr "" -"E232: Íåëüçÿ ñîçäàòü \"ïóçûðü\" äëÿ âû÷èñëåíèé, âêëþ÷àþùèé è ñîîáùåíèå, è " -"îáðàòíûé âûçîâ" +msgstr "E231: Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà 'guifontwide'" +# :!~ Restorer msgid "E233: Cannot open display" -msgstr "E233: Íåâîçìîæíî îòêðûòü äèñïëåé" +msgstr "E233: Íå óäàëîñü âûïîëíèòü ïîäêëþ÷åíèå ê X-ñåðâåðó" +# :!~ Restorer #, c-format msgid "E234: Unknown fontset: %s" -msgstr "E234: Íåèçâåñòíûé øðèôòîâîé íàáîð: %s" +msgstr "E234: Íå óäàëîñü ðàñïîçíàòü øðèôòîâîé íàáîð %s" +# :!~ Restorer #, c-format msgid "E235: Unknown font: %s" -msgstr "E235: Íåèçâåñòíûé øðèôò: %s" +msgstr "E235: Íå óäàëîñü ðàñïîçíàòü øðèôò %s" +# :!~ Restorer #, c-format msgid "E236: Font \"%s\" is not fixed-width" -msgstr "E236: Øðèôò \"%s\" íå ÿâëÿåòñÿ ìîíîøèðèííûì" +msgstr "E236: Çàäàííûé øðèôò íå ÿâëÿåòñÿ ìîíîøèðèííûì \"%s\"" +# :!~ Restorer msgid "E237: Printer selection failed" -msgstr "E237: Íåóäà÷íîå çàâåðøåíèå âûáîðà ïðèíòåðà" +msgstr "E237: Îøèáêà ïðè ïîäêëþ÷åíèè ê ïðèíòåðó" +# ~!: earlier #, c-format msgid "E238: Print error: %s" -msgstr "E238: Îøèáêà ïå÷àòè: %s" +msgstr "E238: Îøèáêà ïå÷àòè %s" +# :!~ Restorer #, c-format msgid "E239: Invalid sign text: %s" -msgstr "E239: Íåïðàâèëüíûé òåêñò çíà÷êà: %s" +msgstr "E239: Íåäîïóñòèìîå îïèñàíèå çíà÷êà %s" +# :!~ Restorer msgid "E240: No connection to the X server" -msgstr "E240: Íåò ñâÿçè ñ X-ñåðâåðîì" +msgstr "E240: Îòñóòñòâóåò ïîäêëþ÷åíèå ê X-ñåðâåðó" +# :!~ Restorer #, c-format msgid "E241: Unable to send to %s" -msgstr "E241: Íå ìîãó îòïðàâèòü ñîîáùåíèå äëÿ %s" +msgstr "E241: Íå óäàëîñü îòïðàâèòü ñîîáùåíèå äëÿ %s" +# :!~ Restorer msgid "E242: Can't split a window while closing another" -msgstr "E242: Íåâîçìîæíî ðàçäåëèòü îêíî ïðè çàêðûòèè äðóãîãî" +msgstr "" +"E242: Íå äîïóñêàåòñÿ ðàçáèåíèå îêíà îäíîâðåìåííî ñ çàêðûòèåì äðóãîãî îêíà" +# :!~ Restorer #, c-format msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." -msgstr "E243: Ïàðàìåòð íå ïîääåðæèâàåòñÿ: \"-%s\"; èñïîëüçóéòå âåðñèþ OLE" +msgstr "" +"E243: Íå ïîääåðæèâàåòñÿ àðãóìåíò êîìàíäíîé ñòðîêè \"-%s\". Òðåáóåòñÿ âåðñèÿ " +"ïðîãðàììû ñ ïîääåðæêîé òåõíîëîãèè OLE" +# :!~ Restorer #, c-format msgid "E244: Illegal %s name \"%s\" in font name \"%s\"" -msgstr "E244: Íåäîïóñòèìîå çíà÷åíèå %s \"%s\" â èìåíè øðèôòà \"%s\"" +msgstr "" +"E244: Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà %s \"%s\" â îïðåäåëåíèè øðèôòà \"%s\"" +# :!~ Restorer #, c-format msgid "E245: Illegal char '%c' in font name \"%s\"" -msgstr "E245: Íåäîïóñòèìûé ñèìâîë '%c' â èìåíè øðèôòà \"%s\"" +msgstr "E245: Íåäîïóñòèìûé ïàðàìåòð '%c' â îïðåäåëåíèè øðèôòà \"%s\"" +# :!~ Restorer msgid "E246: FileChangedShell autocommand deleted buffer" -msgstr "E246: Áóôåð óäàë¸í ïðè âûïîëíåíèè àâòîêîìàíäû FileChangedShell" +msgstr "" +"E246: Äåéñòâèÿ àâòîêîìàíä ïî ñîáûòèþ FileChangedShell âûçâàëè óäàëåíèå áóôåðà" +# :!~ Restorer #, c-format msgid "E247: No registered server named \"%s\"" -msgstr "E247: Ñåðâåð \"%s\" íå çàðåãèñòðèðîâàí" +msgstr "E247: Íå çàðåãèñòðèðîâàí ñåðâåð \"%s\"" +# :!~ Restorer msgid "E248: Failed to send command to the destination program" -msgstr "E248: Íå óäàëàñü îòïðàâêà êîìàíäû â äðóãóþ ïðîãðàììó" +msgstr "E248: Îøèáêà ïðè îòïðàâêå êîìàíäû â äðóãóþ ïðîãðàììó" +# :!~ Restorer msgid "E249: Window layout changed unexpectedly" -msgstr "E249: Íåîæèäàííî èçìåíèëîñü ðàñïîëîæåíèå îêîí" +msgstr "E249: Äåéñòâèÿ àâòîêîìàíä âûçâàëè èçìåíåíèå ðàñïîëîæåíèÿ îêîí" +# ~!: earlier #, c-format msgid "E250: Fonts for the following charsets are missing in fontset %s:" -msgstr "E250:  íàáîðå øðèôòîâ %s îòñóòñòâóþò øðèôòû äëÿ ñëåäóþùèõ êîäèðîâîê:" +msgstr "E250:  íàáîðå øðèôòîâ %s îòñóòñòâóþò øðèôòû äëÿ êîäèðîâîê:" +# #Restorer: îòîáðàæàåòñÿ òîëüêî ïðè ñïåöèôè÷åñêèõ óñëîâèÿõ +# :!~ Restorer msgid "E251: VIM instance registry property is badly formed. Deleted!" msgstr "" -"E251: Íåïðàâèëüíî ñôîðìèðîâàíî çíà÷åíèå ïðîöåññà VIM â ðååñòðå. Óäàëåíî!" +"E251: Óäåëåíî çàðåãèñòðèðîâàííîå ïðîãðàììîé Vim ñâîéñòâî íåäîïóñòèìîãî ôîðìàòà" +# :!~ Restorer #, c-format msgid "E252: Fontset name: %s - Font '%s' is not fixed-width" -msgstr "E252: Íàáîð øðèôòîâ: %s — øðèôò '%s' íå ÿâëÿåòñÿ ìîíîøèðèííûì" +msgstr "E252:  íàáîðå øðèôòîâ %s øðèôò '%s' íå ÿâëÿåòñÿ ìîíîøèðèííûì" +# :!~ Restorer #, c-format msgid "E253: Fontset name: %s" -msgstr "E253: Íàáîð øðèôòîâ: %s" +msgstr "E253:  íàáîðå øðèôòîâ %s" +# :!~ Restorer #, c-format msgid "E254: Cannot allocate color %s" -msgstr "E254: Íåâîçìîæíî íàçíà÷èòü öâåò %s" +msgstr "E254: Íåäîïóñòèìîå íàèìåíîâàíèå öâåòà %s" +# :!~ Restorer msgid "E255: Couldn't read in sign data" -msgstr "E255: Íåâîçìîæíî ïðî÷èòàòü äàííûå çíà÷êà" +msgstr "E255: Íå óäàëîñü ñ÷èòàòü äàííûå èç ôàéëà çàíà÷êà" +# :!~ Restorer msgid "E257: cstag: Tag not found" -msgstr "E257: cstag: Ìåòêà íå íàéäåíà" +msgstr "E257: Ïî êîìàíäå :cstag íå óäàëîñü íàéòè óêàçàííûé èíäåêñ" +# :!~ Restorer msgid "E258: Unable to send to client" -msgstr "E258: Íå ìîãó îòâåòèòü êëèåíòó" +msgstr "E258: Íå óäàëîñü îòïðàâèòü ñîîáùåíèå êëèåíòó" +# :!~ Restorer #, c-format msgid "E259: No matches found for cscope query %s of %s" -msgstr "E259: Íå íàéäåíî ñîîòâåòñòâèé ïî çàïðîñó cscope %s äëÿ %s" +msgstr "E259:  áàçàõ äàííûõ cscope ïî çàïðîñó %s íå íàéäåí %s" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè 'verbose' > 0 +# :!~ Restorer msgid "E260: Missing name after ->" -msgstr "E260: Ïðîïóùåíî èìÿ ïîñëå ->" +msgstr "E260: Íå óêàçàí âûçûâàåìûé ìåòîä â çàïèñè ->" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer #, c-format msgid "E261: Cscope connection %s not found" -msgstr "E261: Ñîåäèíåíèå ñ cscope %s íå îáíàðóæåíî" +msgstr "E261: Îòñóòñòâóåò ïîäêëþ÷åíèå ê áàçå äàííûõ cscope íîìåð %s" +# :!~ Restorer #, c-format msgid "E262: Error reading cscope connection %d" -msgstr "E262: Îøèáêà ÷òåíèÿ èç cscope, ñîåäèíåíèå %d" +msgstr "E262: Îøèáêà ïðè ñ÷èòûâàíèè èç áàçû äàííûõ cscope íîìåð %d" +# :!~ Restorer msgid "" -"E263: Sorry, this command is disabled, the Python library could not be " -"loaded." +"E263: Sorry, this command is disabled, the Python library could not be loaded." msgstr "" -"E263: Ê ñîæàëåíèþ, ýòà êîìàíäà íå ðàáîòàåò, ïîñêîëüêó íå çàãðóæåíà " -"áèáëèîòåêà Python" +"E263: Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè ÿçûêà Python. Êîìàíäà íå âûïîëíåíà" +# :!~ Restorer msgid "E264: Python: Error initialising I/O objects" -msgstr "E264: Python: Îøèáêà èíèöèàëèçàöèè îáúåêòîâ ââîäà-âûâîäà" +msgstr "" +"E264: Îøèáêà ïðè èíèöèàëèçàöèè ìîäóëåì ÿçûêà Python îáúåêòîâ ââîäà-âûâîäà" +# :!~ Restorer msgid "E265: $_ must be an instance of String" -msgstr "E265: $_ äîëæåí áûòü ýêçåìïëÿðîì ñòðîêè" +msgstr "E265: Ïåðåìåííàÿ $_ äîëæíà áûòü ýêçåìïëÿðîì îáúåêòà String" +# :!~ Restorer msgid "" "E266: Sorry, this command is disabled, the Ruby library could not be loaded." msgstr "" -"E266: Ê ñîæàëåíèþ, ýòà êîìàíäà íå ðàáîòàåò, ïîñêîëüêó íå çàãðóæåíà " -"áèáëèîòåêà Ruby" +"E266: Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè ÿçûêà Ruby. Êîìàíäà íå âûïîëíåíà" +# :!~ Restorer msgid "E267: Unexpected return" -msgstr "E267: Íåîæèäàííûé return" +msgstr "E267: Íåïðåäâèäåííîå ïîÿâëåíèå èíñòðóêöèè return" +# :!~ Restorer msgid "E268: Unexpected next" -msgstr "E268: Íåîæèäàííûé next" +msgstr "E268: Íåïðåäâèäåííîå ïîÿâëåíèå èíñòðóêöèè next" +# :!~ Restorer msgid "E269: Unexpected break" -msgstr "E269: Íåîæèäàííûé break" +msgstr "E269: Íåïðåäâèäåííîå ïîÿâëåíèå èíñòðóêöèè break" +# :!~ Restorer msgid "E270: Unexpected redo" -msgstr "E270: Íåîæèäàííûé redo" +msgstr "E270: Íåïðåäâèäåííîå ïîÿâëåíèå èíñòðóêöèè redo" +# :!~ Restorer msgid "E271: Retry outside of rescue clause" -msgstr "E271: Retry âíå îïåðàòîðà rescue" +msgstr "E271: Îáíàðóæåíà èíñòðóêöèÿ retry âíå áëîêà rescue" +# ~!: earlier msgid "E272: Unhandled exception" msgstr "E272: Íåîáðàáîòàííîå èñêëþ÷åíèå" +# :!~ Restorer #, c-format msgid "E273: Unknown longjmp status %d" -msgstr "E273: Íåèçâåñòíîå ñîñòîÿíèå longjmp %d" +msgstr "E273: Íåîïðåäåë¸ííîå ñîñòîÿíèå %d" +# #Restorer: âûâîäèòñÿ ïðè 'verbose' > 0 +# :!~ Restorer msgid "E274: No white space allowed before parenthesis" -msgstr "E274: Ïðîáåëüíûå ñèìâîëû íå äîïóñêàþòñÿ ïåðåä ñêîáêàìè" +msgstr "E274: Íå äîïóñêàåòñÿ ïðîáåëüíûé ñèìâîë ïåðåä êðóãëûìè ñêîáêàìè" +# :!~ Restorer msgid "E275: Cannot add text property to unloaded buffer" -msgstr "E275: Íåâîçìîæíî äîáàâèòü òåêñòîâîå ñâîéñòâî âûãðóæåííîìó áóôåðó" +msgstr "" +"E275: Íå äîïóñêàåòñÿ èçìåíåíèå ñâîéñòâà òåêñòà â óäàë¸ííîì èç ïàìÿòè áóôåðå" +# :!~ Restorer #, c-format msgid "E276: Cannot use function as a method: %s" -msgstr "E276: Íåâîçìîæíî èñïîëüçîâàòü ôóíêöèþ êàê ìåòîä: %s" +msgstr "E276: Íå äîïóñêàåòñÿ èñïîëüçîâàíèå ôóíêöèè êàê ìåòîä %s" +# :!~ Restorer msgid "E277: Unable to read a server reply" -msgstr "E277: Ñåðâåð íå îòâå÷àåò" +msgstr "E277: Íå óäàëîñü ñ÷èòàòü îòâåò ñåðâåðà" +# :!~ Restorer msgid "E279: Sorry, ++shell is not supported on this system" -msgstr "E279: ++shell íå ïîääåðæèâàåòñÿ äëÿ äàííîé ñèñòåìû" - -msgid "" -"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." -"org" -msgstr "" -"E280: ÊÐÈÒÈ×ÅÑÊÀß ÎØÈÁÊÀ TCL: âîçìîæíî, ïîâðåæä¸í ñïèñîê ññûëîê. " -"Ïîæàëóéñòà, ñîîáùèòå îá ýòîì ïî àäðåñó vim-dev@vim.org" +msgstr "E279: Àðãóìåíò ++shell íå ïîääåðæèâàåòñÿ äëÿ äàííîé îïåðàöèîííîé ñèñòåìû" +# :!~ Restorer #, c-format msgid "E282: Cannot read from \"%s\"" -msgstr "E282: Íåâîçìîæíî âûïîëíèòü ÷òåíèå èç \"%s\"" +msgstr "E282: Íå óäàëîñü ñ÷èòàòü ôàéë \"%s\"" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:marks` +# :!~ Restorer #, c-format msgid "E283: No marks matching \"%s\"" -msgstr "E283: Íåò îòìåòîê, ñîâïàäàþùèõ ñ \"%s\"" +msgstr "E283: Îòñóòñòâóþò çàêëàäêè \"%s\"" +# ~!: earlier msgid "E284: Cannot set IC values" -msgstr "E284: Íåâîçìîæíî óñòàíîâèòü çíà÷åíèÿ êîíòåêñòà ââîäà" +msgstr "E284: Íå óäàëîñü íàçíà÷èòü çíà÷åíèÿ êîíòåêñòà ââîäà" +# :!~ Restorer msgid "E285: Failed to create input context" -msgstr "E285: Íåâîçìîæíî ñîçäàòü êîíòåêñò ââîäà" +msgstr "E285: Îøèáêà ïðè ñîçäàíèè êîíòåêñòà ââîäà" +# #Restorer: âûâîäèòñÿ ïðè çíà÷åíèè ïàðàìåòðà 'verbose'>0 +# :!~ Restorer msgid "E286: Failed to open input method" -msgstr "E286: Íåóäà÷íàÿ ïîïûòêà îòêðûòü ìåòîä ââîäà" +msgstr "E286: Îøèáêà ïðè çàïóñêå ñëóæáû ìåòîäà ââîäà" +# :!~ Restorer msgid "E287: Warning: Could not set destroy callback to IM" msgstr "" -"E287: Ïðåäóïðåæäåíèå: íåâîçìîæíî íàçíà÷èòü îáð. âûçîâ óíè÷òîæåíèÿ ìåòîäà " -"ââîäà" +"E287: Âíèìàíèå! Íå óäàëîñü íàçíà÷èòü ôóíêöèþ äëÿ îñòàíîâêè ñëóæáû ìåòîäà ââîäà" +# :!~ Restorer msgid "E288: Input method doesn't support any style" -msgstr "E288: Ìåòîä ââîäà íå ïîääåðæèâàåò ñòèëè" +msgstr "E288: Ñëóæáà ìåòîäà ââîäà íå ïîääåðæèâàåò ñòèëè îòîáðàæåíèÿ" +# #Restorer: âûâîäèòñÿ òîëüêî ïðè çíà÷åíèè ïàðàìåòðà 'verbose'>0 +# :!~ Restorer msgid "E289: Input method doesn't support my preedit type" -msgstr "" -"E289: Ìåòîä ââîäà íå ïîääåðæèâàåò ìîé òèï ïðåäâàðèòåëüíîãî ðåäàêòèðîâàíèÿ" +msgstr "E289: Ñëóæáà ìåòîäà ââîäà íå ïîääåðæèâàåò íàçíà÷åííûé ñòèëü îòîáðàæåíèÿ" +# #Restorer: âûâîäèòñÿ äëÿ ôóíêöèè matchaddpos() +# :!~ Restorer msgid "E290: List or number required" -msgstr "E290: Òðåáóåòñÿ ñïèñîê èëè ÷èñëî" - -#, c-format -msgid "E292: Invalid count for del_bytes(): %ld" -msgstr "E292: Íåïðàâèëüíûé ñ÷¸ò÷èê â ôóíêöèè del_bytes(): %ld" - -msgid "E293: Block was not locked" -msgstr "E293: Áëîê íå çàáëîêèðîâàí" +msgstr "E290: Çíà÷åíèåì àðãóìåíòà {ïîç} äîëæíî áûòü ÷èñëî ëèáî ïåðå÷åíü ÷èñåë" +# :!~ Restorer msgid "E294: Seek error in swap file read" -msgstr "E294: Îøèáêà ïîèñêà ïðè ÷òåíèè ñâîï-ôàéëà" +msgstr "E294: Îøèáêà ïîèñêà áëîêà äàííûõ ïðè ñ÷èòûâàíèè ôàéëà ïîäêà÷êè" +# :!~ Restorer msgid "E295: Read error in swap file" -msgstr "E295: Îøèáêà ÷òåíèÿ ñâîï-ôàéëà" +msgstr "E295: Îøèáêà ñ÷èòûâàíèÿ áëîêà äàííûõ èç ôàéëà ïîäêà÷êè" +# :!~ Restorer msgid "E296: Seek error in swap file write" -msgstr "E296: Îøèáêà ïîèñêà ïðè çàïèñè ñâîï-ôàéëà" +msgstr "E296: Îøèáêà ïîèñêà áëîêà äàííûõ ïðè çàïèñè ôàéëà ïîäêà÷êè" +# :!~ Restorer msgid "E297: Write error in swap file" -msgstr "E297: Îøèáêà ïðè çàïèñè ñâîï-ôàéëà" - -msgid "E298: Didn't get block nr 0?" -msgstr "E298: Íå ïîëó÷åí áëîê íîìåð 0?" - -msgid "E298: Didn't get block nr 1?" -msgstr "E298: Íå ïîëó÷åí áëîê íîìåð 1?" - -msgid "E298: Didn't get block nr 2?" -msgstr "E298: Íå ïîëó÷åí áëîê íîìåð 2?" +msgstr "E297: Îøèáêà çàïèñè áëîêà äàííûõ â ôàéë ïîäêà÷êè" +# :!~ Restorer msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" msgstr "" -"E299: Íå äîïóñêàåòñÿ âû÷èñëåíèå Perl â ïåñî÷íèöå áåç ìîäóëÿ áåçîïàñíîñòè" +"E299: Îòñóòñòâóåò ìîäóëü áåçîïàñíîñòè ÿçûêà Perl. Èñïîëíåíèå êîìàíä â " +"èçîëèðîâàííîé ñðåäå îãðàíè÷åíî" +# :!~ Restorer msgid "E300: Swap file already exists (symlink attack?)" msgstr "" -"E300: Ñâîï-ôàéë óæå ñóùåñòâóåò (àòàêà ñ èñïîëüçîâàíèåì ñèìâîëüíîé ññûëêè?)" +"E300: Ôàéë ïîäêà÷êè óæå ñóùåñòâóåò (âîçìîæíî, àòàêà ïî ñèìâîëüíîé ññûëêå)" +# :!~ Restorer msgid "E301: Oops, lost the swap file!!!" -msgstr "E301: Îé, ïîòåðÿëñÿ ñâîï-ôàéë!!!" +msgstr "E301: Íå óäàëîñü îòêðûòü ôàéë ïîäêà÷êè. Âîçìîæíî, îí áûë óäàë¸í" +# :!~ Restorer msgid "E302: Could not rename swap file" -msgstr "E302: Íåâîçìîæíî ïåðåèìåíîâàòü ñâîï-ôàéë" +msgstr "E302: Íå óäàëîñü ïåðåèìåíîâàòü ôàéë ïîäêà÷êè" +# :!~ Restorer #, c-format msgid "E303: Unable to open swap file for \"%s\", recovery impossible" -msgstr "" -"E303: Íå óäàëîñü îòêðûòü ñâîï-ôàéë äëÿ \"%s\", âîññòàíîâëåíèå íåâîçìîæíî" - -msgid "E304: ml_upd_block0(): Didn't get block 0??" -msgstr "E304: ml_upd_block0(): íå ïîëó÷åí áëîê 0??" +msgstr "E303: Íå óäàëîñü îòêðûòü ôàéë ïîäêà÷êè. Íåâîçìîæíî âîññòàíîâèòü \"%s\"" +# :!~ Restorer #, c-format msgid "E305: No swap file found for %s" -msgstr "E305: Ñâîï-ôàéë äëÿ %s íå íàéäåí" +msgstr "E305: Íå îáíàðóæåí ôàéë ïîäêà÷êè äëÿ %s" +# :!~ Restorer #, c-format msgid "E306: Cannot open %s" -msgstr "E306: Íå ìîãó îòêðûòü %s" +msgstr "E306: Íå óäàëîñü îòêðûòü %s" +# :!~ Restorer #, c-format msgid "E307: %s does not look like a Vim swap file" -msgstr "E307: %s íå ÿâëÿåòñÿ ñâîï-ôàéëîì Vim" +msgstr "E307: Íå óäàëîñü ðàñïîçíàòü êàê ôàéë ïîäêà÷êè %s" +# :!~ Restorer msgid "E308: Warning: Original file may have been changed" -msgstr "E308: Ïðåäóïðåæäåíèå: èñõîäíûé ôàéë ìîã áûòü èçìåí¸í" +msgstr "E308: Âíèìàíèå! Èñõîäíûé ôàéë âîçìîæíî óæå áûë èçìåí¸í" +# :!~ Restorer #, c-format msgid "E309: Unable to read block 1 from %s" -msgstr "E309: Íåâîçìîæíî ïðî÷èòàòü áëîê 1 èç %s" +msgstr "E309: Íå óäàëîñü ñ÷èòàòü áëîê íîìåð 1 èç %s" +# :!~ Restorer #, c-format msgid "E310: Block 1 ID wrong (%s not a .swp file?)" msgstr "" -"E310: Íåïðàâèëüíûé èäåíòèôèêàòîð ïåðâîãî áëîêà (%s íå ÿâëÿåòñÿ ôàéëîì .swp?)" +"E310: Íåäîïóñòèìûé èäåíòèôèêàòîð â áëîêå 1 (âîçìîæíî, ýòî íå ôàéë ïîäêà÷êè %s)" +# ~!: earlier msgid "E311: Recovery Interrupted" msgstr "E311: Âîññòàíîâëåíèå ïðåðâàíî" -msgid "" -"E312: Errors detected while recovering; look for lines starting with ???" -msgstr "" -"E312: Âî âðåìÿ âîññòàíîâëåíèÿ îáíàðóæåíû îøèáêè; ñì. ñòðîêè, íà÷èíàþùèåñÿ " -"ñ ???" +# :!~ Restorer +msgid "E312: Errors detected while recovering; look for lines starting with ???" +msgstr "E312: Îøèáêè ïðè âîññòàíîâëåíèè. Òàêèå ñòðîêè ïîìå÷åíû ñèìâîëàìè ???" +# :!~ Restorer msgid "E313: Cannot preserve, there is no swap file" -msgstr "E313: Íåâîçìîæíî îáíîâèòü ñâîï-ôàéë, ïîñêîëüêó îí íå îáíàðóæåí" +msgstr "E313: Íå îáíàðóæåí ôàéë ïîäêà÷êè. Êîìàíäà íå âûïîëíåíà" +# :!~ Restorer msgid "E314: Preserve failed" -msgstr "E314: Íåóäà÷íàÿ ïîïûòêà îáíîâëåíèÿ ñâîï-ôàéëà" - -#, c-format -msgid "E315: ml_get: Invalid lnum: %ld" -msgstr "E315: ml_get: íåïðàâèëüíîå çíà÷åíèå lnum: %ld" - -#, c-format -msgid "E316: ml_get: Cannot find line %ld in buffer %d %s" -msgstr "E316: ml_get: íåâîçìîæíî íàéòè ñòðîêó %ld â áóôåðå %d %s" - -msgid "E317: Pointer block id wrong" -msgstr "E317: Íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà" - -msgid "E317: Pointer block id wrong 2" -msgstr "E317: Íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà 2" - -msgid "E317: Pointer block id wrong 3" -msgstr "E317: Íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà 3" - -msgid "E317: Pointer block id wrong 4" -msgstr "E317: Íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà 4" - -msgid "E318: Updated too many blocks?" -msgstr "E318: Îáíîâëåíî ñëèøêîì ìíîãî áëîêîâ?" +msgstr "E314: Îøèáêà ïðè îáíîâëåíèè ôàéëà ïîäêà÷êè" +# :!~ Restorer msgid "E319: Sorry, the command is not available in this version" -msgstr "E319: Èçâèíèòå, ýòà êîìàíäà íåäîñòóïíà â äàííîé âåðñèè" - -#, c-format -msgid "E320: Cannot find line %ld" -msgstr "E320: Ñòðîêà %ld íå îáíàðóæåíà" +msgstr "E319: Êîìàíäà íåäîñòóïíà â äàííîé âåðñèè ïðîãðàììû" +# :!~ Restorer #, c-format msgid "E321: Could not reload \"%s\"" -msgstr "E321: Íåâîçìîæíî âûïîëíèòü ïåðåçàãðóçêó \"%s\"" - -#, c-format -msgid "E322: Line number out of range: %ld past the end" -msgstr "E322: Íîìåð ñòðîêè çà ïðåäåëàìè äèàïàçîíà: %ld" - -#, c-format -msgid "E323: Line count wrong in block %ld" -msgstr "E323: Íåïðàâèëüíîå çíà÷åíèå ñ÷¸ò÷èêà ñòðîê â áëîêå %ld" +msgstr "E321: Íå óäàëîñü âûïîëíèòü ïåðåçàãðóçêó áóôåðà \"%s\"" +# :!~ Restorer msgid "E324: Can't open PostScript output file" -msgstr "E324: Íåâîçìîæíî îòêðûòü ôàéë PostScript" +msgstr "E324: Íå óäàëîñü îòêðûòü âûõîäíîé ôàéë â ôîðìàòå PostScript" +# :!~ Restorer msgid "E325: ATTENTION" -msgstr "E325: ÂÍÈÌÀÍÈÅ" +msgstr "E325: Âíèìàíèå!" +# :!~ Restorer msgid "E326: Too many swap files found" -msgstr "E326: Îáíàðóæåíî ñëèøêîì ìíîãî ñâîï-ôàéëîâ" +msgstr "E326: Îáíàðóæåíî áîëüøîå êîëè÷åñòâî ôàéëîâ ïîäêà÷êè" +# :!~ Restorer msgid "E327: Part of menu-item path is not sub-menu" -msgstr "E327: Êîìïîíåíò ïóòè ê ýëåìåíòó ìåíþ íå ÿâëÿåòñÿ ïîäìåíþ" +msgstr "" +"E327:  öåïî÷êå ïóíêòîâ ìåíþ îäèí èç êîìïîíåíòîâ íå ÿâëÿåòñÿ ïóíêòîì ïîäìåíþ" +# :!~ Restorer msgid "E328: Menu only exists in another mode" -msgstr "E328: Ìåíþ ñóùåñòâóåò òîëüêî â äðóãîì ðåæèìå" +msgstr "E328: Ýòîò ïóíêò ìåíþ îïðåäåë¸í äëÿ äðóãîãî ðåæèìà ïðîãðàììû" +# :!~ Restorer #, c-format msgid "E329: No menu \"%s\"" -msgstr "E329: Íåò ìåíþ \"%s\"" +msgstr "E329: Íå ñóùåñòâóåò ïóíêò ìåíþ \"%s\"" +# :!~ Restorer msgid "E330: Menu path must not lead to a sub-menu" -msgstr "E330: Ïóòü ê ìåíþ íå äîëæåí âåñòè ê ïîäìåíþ" +msgstr "E330: Öåïî÷êà ïóíêòîâ ìåíþ íå äîëæíà îêàí÷èâàòüñÿ íà ïóíêòå ïîäìåíþ" +# :!~ Restorer msgid "E331: Must not add menu items directly to menu bar" -msgstr "E331: Ýëåìåíòû ìåíþ íåëüçÿ äîáàâëÿòü íåïîñðåäñòâåííî â ïîëîñêó ìåíþ" +msgstr "E331: Íå äîïóñêàåòñÿ ðàçìåùàòü èñïîëíÿåìûå ïóíêòû ìåíþ â ñòðîêå ìåíþ" +# :!~ Restorer msgid "E332: Separator cannot be part of a menu path" -msgstr "E332: Ðàçäåëèòåëü íå ìîæåò áûòü êîìïîíåíòîì ïóòè ê ìåíþ" +msgstr "" +"E332: Íå äîïóñêàåòñÿ óêàçûâàòü ðàçäåëèòåëü êàê êîìïîíåíò â öåïî÷êå ïóíêòîâ ìåíþ" +# :!~ Restorer msgid "E333: Menu path must lead to a menu item" -msgstr "E333: Ïóòü ê ìåíþ äîëæåí âåñòè ê ýëåìåíòó ìåíþ" +msgstr "E333: Öåïî÷êà ïóíêòîâ ìåíþ äîëæíà îêàí÷èâàòüñÿ èñïîëíÿåìûì ïóíêòîì ìåíþ" +# :!~ Restorer #, c-format msgid "E334: Menu not found: %s" -msgstr "E334: Ìåíþ íå íàéäåíî: %s" +msgstr "E334: Íå íàéäåí ïóíêò ìåíþ %s" +# ~!: earlier #, c-format msgid "E335: Menu not defined for %s mode" -msgstr "E335: Ìåíþ íå îïðåäåëåíî äëÿ ðåæèìà %s" +msgstr "E335: Ïóíêò ìåíþ íå îïðåäåë¸í äëÿ ðåæèìà %s" +# :!~ Restorer msgid "E336: Menu path must lead to a sub-menu" -msgstr "E336: Ïóòü ê ìåíþ äîëæåí âåñòè ê ïîäìåíþ" +msgstr "E336:  öåïî÷êå ïóíêòîâ ìåíþ äîëæåí áûòü óêàçàí ïóíêò ïîäìåíþ" +# :!~ Restorer msgid "E337: Menu not found - check menu names" -msgstr "E337: Ìåíþ íå íàéäåíî — ïðîâåðüòå èìåíà ìåíþ" +msgstr "E337: Íå íàéäåí ïóíêò ìåíþ. Ïðîâåðüòå íàèìåíîâàíèÿ ïóíêòîâ ìåíþ" +# :!~ Restorer msgid "E338: Sorry, no file browser in console mode" msgstr "" -"E338: Èçâèíèòå, íî â êîíñîëüíîì ðåæèìå íåò ïðîâîäíèêà ïî ôàéëîâîé ñèñòåìå" +"E338: Íå ïîääåðæèâàåòñÿ îêíî âûáîðà ôàéëîâ ïðè ðàáîòå ïðîãðàììû â êîíñîëè" +# :!~ Restorer msgid "E339: Pattern too long" -msgstr "E339: Ñëèøêîì äëèííûé øàáëîí" +msgstr "E339: Ïðåâûøåíà äëèíà ðåãóëÿðíîãî âûðàæåíèÿ" -msgid "E341: Internal error: lalloc(0, )" -msgstr "E341: Âíóòðåííÿÿ îøèáêà: lalloc(0, )" +# :!~ Restorer +msgid "E340: Internal error; if you can reproduce please report a bug" +msgstr "" +"E340: Âíóòðåííÿÿ îøèáêà. Åñëè âîçìîæíî å¸ âîñïðîèçâåñòè, ñîîáùèòå ðàçðàáîò÷èêó" +# :!~ Restorer #, c-format msgid "E342: Out of memory! (allocating %lu bytes)" -msgstr "E342: Íå õâàòàåò ïàìÿòè! (âûäåëÿåòñÿ %lu áàéòîâ)" +msgstr "E342: Íå äîñòàòî÷íî ïàìÿòè! (âûäåëÿåòñÿ %lu áàéò)" +# :!~ Restorer #, c-format msgid "" -"E343: Invalid path: '**[number]' must be at the end of the path or be " -"followed by '%s'." +"E343: Invalid path: '**[number]' must be at the end of the path or be followed " +"by '%s'." msgstr "" -"E343: Íåïðàâèëüíî çàäàí ïóòü: '**[÷èñëî]' äîëæíî áûòü ëèáî â êîíöå ïóòè, " -"ëèáî çà íèì äîëæíî ñëåäîâàòü '%s'" +"E343: Ìàñêà âèäà '**[÷èñëî]' óêàçûâàåòñÿ ïîñëåäíåé èëè ïîñëå íå¸ äîëæåí áûòü " +"'%s'" +# :!~ Restorer #, c-format msgid "E344: Can't find directory \"%s\" in cdpath" -msgstr "E344: Êàòàëîã \"%s\" íå íàéäåí â ïóòè äëÿ ñìåíû êàòàëîãà" +msgstr "" +"E344: Èñïîëüçóÿ çíà÷åíèÿ ïàðàìåòðà 'cdpath' íå óäàëîñü íàéòè êàòàëîã \"%s\"" +# :!~ Restorer #, c-format msgid "E345: Can't find file \"%s\" in path" -msgstr "E345: Ôàéë \"%s\" â èçâåñòíûõ êàòàëîãàõ íå íàéäåí" +msgstr "E345: Èñïîëüçóÿ çíà÷åíèÿ ïàðàìåòðà 'path' íå óäàëîñü íàéòè ôàéë \"%s\"" +# :!~ Restorer #, c-format msgid "E346: No more directory \"%s\" found in cdpath" -msgstr "E346:  ïóòè ñìåíû êàòàëîãà áîëüøå íåò êàòàëîãîâ \"%s\"" +msgstr "E346:  çíà÷åíèè ïàðàìåòðà 'cdpath' íåò êàòàëîãà \"%s\"" +# :!~ Restorer #, c-format msgid "E347: No more file \"%s\" found in path" -msgstr "E347:  èçâåñòíûõ êàòàëîãàõ áîëüøå íåò ôàéëîâ \"%s\"" +msgstr "E347:  êàòàëîãàõ èç ïàðàìåòðà 'path' íåò ôàéëà \"%s\"" +# :!~ Restorer msgid "E348: No string under cursor" -msgstr "E348: Íåò ñòðîêè â ïîçèöèè êóðñîðà" +msgstr "E348:  ïîçèöèè êóðñîðà îòñóòñòâóåò òåêñò äëÿ âûïîëíåíèÿ ïîèñêà" +# :!~ Restorer msgid "E349: No identifier under cursor" -msgstr "E349: Íåò èìåíè â ïîçèöèè êóðñîðà" +msgstr "E349:  ïîçèöèè êóðñîðà îòñóòñòâóåò ñëîâî äëÿ âûïîëíåíèÿ ïîèñêà" +# :!~ Restorer msgid "E350: Cannot create fold with current 'foldmethod'" msgstr "" -"E350: Íåâîçìîæíî ñîçäàòü ñêëàäêó ïðè òåêóùåì çíà÷åíèè îïöèè 'foldmethod'" +"E350: Íå óäàëîñü ñîçäàòü áëîê ñòðóêòóðû ïðè òåêóùåì çíà÷åíèè ïàðàìåòðà " +"'foldmethod'" +# :!~ Restorer msgid "E351: Cannot delete fold with current 'foldmethod'" msgstr "" -"E351: Íåâîçìîæíî óäàëèòü ñêëàäêó ïðè òåêóùåì çíà÷åíèè îïöèè 'foldmethod'" +"E351: Íå óäàëîñü óáðàòü áëîê ñòðóêòóðû ïðè òåêóùåì çíà÷åíèè ïàðàìåòðà " +"'foldmethod'" +# :!~ Restorer msgid "E352: Cannot erase folds with current 'foldmethod'" msgstr "" -"E352: Íåâîçìîæíî ñòåðåòü ñêëàäêè ïðè òåêóùåì çíà÷åíèè îïöèè 'foldmethod'" +"E352: Íå óäàëîñü îòìåíèòü îòîáðàæåíèå ñòðóêòóðû ïðè òåêóùåì çíà÷åíèè ïàðàìåòðà " +"'foldmethod'" +# :!~ Restorer #, c-format msgid "E353: Nothing in register %s" -msgstr "E353:  ðåãèñòðå %s íè÷åãî íåò" +msgstr "E353: Îòñóòñòâóþò äàííûå â ðåãèñòðå %s" +# :!~ Restorer #, c-format msgid "E354: Invalid register name: '%s'" -msgstr "E354: Íåäîïóñòèìîå èìÿ ðåãèñòðà: '%s'" +msgstr "E354: Íåäîïóñòèìîå íàèìåíîâàíèå ðåãèñòðà '%s'" +# :!~ Restorer #, c-format msgid "E355: Unknown option: %s" -msgstr "E355: Íåèçâåñòíàÿ îïöèÿ: %s" - -msgid "E356: get_varp ERROR" -msgstr "E356: ÎØÈÁÊÀ get_varp" +msgstr "E355: Íå óäàëîñü ðàñïîçíàòü íàèìåíîâàíèå ïàðàìåòðà %s" +# :!~ Restorer #, c-format msgid "E357: 'langmap': Matching character missing for %s" -msgstr "E357: 'langmap': íåò ñèìâîëà ñîîòâåòñòâóþùåãî %s" +msgstr "E357: Îòñóòñòâóåò ñîïîñòàâëåííûé ñèìâîë â ïàðàìåòðå 'langmap' äëÿ %s" +# :!~ Restorer #, c-format msgid "E358: 'langmap': Extra characters after semicolon: %s" -msgstr "E358: 'langmap': ëèøíèå ñèìâîëû ïîñëå òî÷êè ñ çàïÿòîé: %s" - -msgid "E359: Screen mode setting not supported" -msgstr "E359: Äàííûé ðåæèì ýêðàíà íå ïîääåðæèâàåòñÿ" - -msgid "E360: Cannot execute shell with -f option" -msgstr "E360: Íåâîçìîæíî âûïîëíèòü îáîëî÷êó ñ ïàðàìåòðîì -f" - -msgid "E362: Using a boolean value as a Float" msgstr "" -"E362: Èñïîëüçîâàíèå ëîãè÷åñêîãî çíà÷åíèÿ âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +"E358:  çíà÷åíèè ïàðàìåòðà 'langmap' ïîñòîðîííèå ñèìâîëû ïîñëå ðàçäåëèòåëÿ ; %s" +# :!~ Restorer +msgid "E359: Screen mode setting not supported" +msgstr "E359: Óñòàíîâêà ðåæèìà ýêðàíà íå ïîääåðæèâàåòñÿ" + +# :!~ Restorer +msgid "E360: Cannot execute shell with -f option" +msgstr "" +"E360: Íå óäàëîñü âûçâàòü êîìàíäíóþ îáîëî÷êó. Ïðîãðàììà çàïóùåíà ñ àðãóìåíòîì '-" +"f'" + +# :!~ Restorer +msgid "E362: Using a boolean value as a Float" +msgstr "E362: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åíî ëîãè÷åñêîå çíà÷åíèå" + +# :!~ Restorer msgid "E363: Pattern uses more memory than 'maxmempattern'" -msgstr "E363: Øàáëîí èñïîëüçóåò áîëüøå ïàìÿòè, ÷åì 'maxmempattern'" +msgstr "" +"E363: Âûäåëÿåìàÿ ïîä ïîèñêîâûé çàïðîñ ïàìÿòü ïðåâûøàåò çíà÷åíèå â " +"'maxmempattern'" +# :!~ Restorer #, c-format msgid "E364: Library call failed for \"%s()\"" -msgstr "E364: Íåóäà÷íûé âûçîâ \"%s()\" èç ñòîðîííåé áèáëèîòåêè" +msgstr "E364: Îøèáêà ïðè âûçîâå èç ñèñòåìíîé áèáëèîòåêå ôóíêöèè \"%s()\"" +# :!~ Restorer msgid "E365: Failed to print PostScript file" -msgstr "E365: Íå óäàëîñü âûïîëíèòü ïå÷àòü ôàéëà PostScript" +msgstr "E365: Îøèáêà ïðè ïå÷àòè ôàéëà PostScript" +# :!~ Restorer msgid "E366: Not allowed to enter a popup window" -msgstr "E366: Íå äîïóñêàåòñÿ ïåðåõîä âî âñïëûâàþùåå îêíî" +msgstr "E366: Çàïðåù¸í ïåðåõîä âî âñïëûâàþùåå îêíî" +# :!~ Restorer #, c-format msgid "E367: No such group: \"%s\"" -msgstr "E367: Ãðóïïà \"%s\" íå ñóùåñòâóåò" +msgstr "E367: Íå ñóùåñòâóåò ãðóïïà àâòîêîìàíä \"%s\"" +# :!~ Restorer #, c-format msgid "E368: Got SIG%s in libcall()" -msgstr "E368: Ôóíêöèÿ libcall() ïåðåõâàòèëà ñèãíàë SIG%s" +msgstr "E368: Ïîëó÷åííûé ÷åðåç ôóíêöèþ libcall() ñèãíàë SIG%s" +# :!~ Restorer #, c-format msgid "E369: Invalid item in %s%%[]" -msgstr "E369: Íåäîïóñòèìûé ýëåìåíò â %s%%[]" +msgstr "E369: Íåäîïóñòèìûé ìåòàñèìâîë â êëàññå ôàêóëüòàòèâíûõ ýëåìåíòîâ %s%%[]" +# :!~ Restorer #, c-format msgid "E370: Could not load library %s: %s" -msgstr "E370: Íåâîçìîæíî çàãðóçèòü áèáëèîòåêó %s: %s" +msgstr "E370: Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè %s, îøèáêà %s" +# :!~ Restorer msgid "E371: Command not found" -msgstr "E371: Êîìàíäà íå íàéäåíà" +msgstr "E371: Íå íàéäåí ôàéë êîìàíäíîé îáîëî÷êè" +# :!~ Restorer #, c-format msgid "E372: Too many %%%c in format string" -msgstr "E372:  ñòðîêå ôîðìàòà ñëèøêîì ìíîãî %%%c" +msgstr "E372:  ôîðìàòíîé ñòðîêå ïðåâûøåíî êîëè÷åñòâî %%%c" +# :!~ Restorer #, c-format msgid "E373: Unexpected %%%c in format string" -msgstr "E373: Íåîæèäàííûé ýëåìåíò %%%c â ñòðîêå ôîðìàòà" +msgstr "E373:  ôîðìàòíîé ñòðîêå íåïðåäâèäåííîå ïîÿâëåíèå %%%c" +# :!~ Restorer msgid "E374: Missing ] in format string" -msgstr "E374:  ñòðîêå ôîðìàòà ïðîïóùåíà ]" +msgstr "E374: Íå óêàçàí ñèìâîë çàêðûâàþùåé êâàäðàòíîé ñêîáêè â ôîðìàòíîé ñòðîêå" +# :!~ Restorer #, c-format msgid "E375: Unsupported %%%c in format string" -msgstr "E375: %%%c íå ïîääåðæèâàåòñÿ â ñòðîêå ôîðìàòà" +msgstr "E375:  ôîðìàòíîé ñòðîêå íå ïîääåðæèâàåòñÿ ýëåìåíò %%%c" +# :!~ Restorer #, c-format msgid "E376: Invalid %%%c in format string prefix" -msgstr "E376: Íåäîïóñòèìûé %%%c â ïðèñòàâêå â ñòðîêå ôîðìàòà" +msgstr "E376:  ôîðìàòíîé ñòðîêå íåäîïóñòèìûé ñïåöèôèêàòîð %%%c" +# :!~ Restorer #, c-format msgid "E377: Invalid %%%c in format string" -msgstr "E377: Íåäîïóñòèìûé %%%c â ñòðîêå ôîðìàòà" +msgstr "E377:  ôîðìàòíîé ñòðîêå íåäîïóñòèìûé ýëåìåíò %%%c" +# :!~ Restorer msgid "E378: 'errorformat' contains no pattern" -msgstr "E378:  çíà÷åíèè îïöèè 'errorformat' îòñóòñòâóåò øàáëîí" +msgstr "E378: Íå çàäàíî çíà÷åíèå øàáëîíà â ïàðàìåòðå 'errorformat'" +# :!~ Restorer msgid "E379: Missing or empty directory name" -msgstr "E379: Èìÿ êàòàëîãà íå çàäàíî èëè ðàâíî ïóñòîé ñòðîêå" +msgstr "E379: Óêàçàíà ïóñòàÿ ñòðîêà èëè îøèáêà â íàèìåíîâàíèè êàòàëîãà" +# :!~ Restorer msgid "E380: At bottom of quickfix stack" -msgstr "E380: Âíèçó ñòåêà áûñòðûõ èñïðàâëåíèé" +msgstr "E380: Äîñòèãíóòà íèæíÿÿ ãðàíèöà ñïèñêà ðåçóëüòàòîâ" +# :!~ Restorer msgid "E381: At top of quickfix stack" -msgstr "E381: Íàâåðõó ñòåêà áûñòðûõ èñïðàâëåíèé" +msgstr "E381: Äîñòèãíóòà âåðõíÿÿ ãðàíèöà ñïèñêà ðåçóëüòàòîâ" +# :!~ Restorer msgid "E382: Cannot write, 'buftype' option is set" -msgstr "" -"E382: Çàïèñü íåâîçìîæíà: îïöèÿ 'buftype' íå ïóñòà" +msgstr "E382: Íå óäàëîñü çàïèñàòü áóôåð ïðè òåêóùåì çíà÷åíèè ïàðàìåòðà 'buftype'" +# :!~ Restorer #, c-format msgid "E383: Invalid search string: %s" -msgstr "E383: Íåïðàâèëüíàÿ ñòðîêà ïîèñêà: %s" +msgstr "E383: Íåäîïóñòèìûé ïîèñêîâûé çàïðîñ %s" +# :!~ Restorer #, c-format msgid "E384: Search hit TOP without match for: %s" -msgstr "E384: Ïîèñê çàêîí÷åí â ÍÀ×ÀËÅ äîêóìåíòà; %s íå íàéäåíî" +msgstr "E384: Äîñòèãíóòà âåðõíÿÿ ãðàíèöà äîêóìåíòà. Íåò ñîâïàäåíèé ñ %s" +# :!~ Restorer #, c-format msgid "E385: Search hit BOTTOM without match for: %s" -msgstr "E385: Ïîèñê çàêîí÷åí â ÊÎÍÖÅ äîêóìåíòà; %s íå íàéäåíî" +msgstr "E385: Äîñòèãíóòà íèæíÿÿ ãðàíèöà äîêóìåíòà. Íåò ñîâïàäåíèé ñ %s" +# :!~ Restorer msgid "E386: Expected '?' or '/' after ';'" -msgstr "E386: Ïîñëå ';' îæèäàåòñÿ ââîä '?' èëè '/'" +msgstr "" +"E386:  ïîèñêîâîì çàïðîñå ïîñëå ñèìâîëà ';' óêàçûâàåòñÿ êîìàíäà '?' èëè '/'" +# :!~ Restorer msgid "E387: Match is on current line" -msgstr "E387: Ñîîòâåòñòâèå â òåêóùåé ñòðîêå" +msgstr "E387: Èñêîìîå ñëîâî íàõîäèòñÿ â òåêóùåé ñòðîêå" +# :!~ Restorer msgid "E388: Couldn't find definition" -msgstr "E388: Îïðåäåëåíèå íå íàéäåíî" +msgstr "E388: Íå íàéäåíî îïðåäåëåíèå" +# :!~ Restorer msgid "E389: Couldn't find pattern" -msgstr "E389: Øàáëîí íå íàéäåí" +msgstr "E389: Íå íàéäåíû ñîâïàäåíèÿ ñ øàáëîíîì" +# :!~ Restorer #, c-format msgid "E390: Illegal argument: %s" -msgstr "E390: Íåäîïóñòèìûé ïàðàìåòð: %s" +msgstr "E390: Íåäîïóñòèìûé àðãóìåíò %s" +# :!~ Restorer #, c-format msgid "E391: No such syntax cluster: %s" -msgstr "E391: Ñèíòàêñè÷åñêèé êëàñòåð %s íå íàéäåí" +msgstr "E391: Íå ñóùåñòâóåò êîëëåêöèè %s" +# :!~ Restorer #, c-format msgid "E392: No such syntax cluster: %s" -msgstr "E392: Ñèíòàêñè÷åñêèé êëàñòåð %s íå íàéäåí" +msgstr "E392: Íå ñóùåñòâóåò êîëëåêöèè %s" +# :!~ Restorer msgid "E393: group[t]here not accepted here" -msgstr "E393: Çäåñü íåëüçÿ èñïîëüçîâàòü group[t]here" +msgstr "E393: Çäåñü íåïðèìåíèì ïàðàìåòð grouphere èëè groupthere" +# :!~ Restorer #, c-format msgid "E394: Didn't find region item for %s" -msgstr "E394: Ýëåìåíò îáëàñòè äëÿ %s íå íàéäåí" +msgstr "E394: Íå íàéäåí îáúåêò îáëàñòè äëÿ ãðóïïû %s" +# :!~ Restorer msgid "E395: Contains argument not accepted here" -msgstr "E395: Çäåñü íåëüçÿ èñïîëüçîâàòü ïàðàìåòð contains" +msgstr "E395: Çäåñü íåïðèìåíèì ïàðàìåòð contains" +# :!~ Restorer msgid "E397: Filename required" -msgstr "E397: Òðåáóåòñÿ óêàçàòü èìÿ ôàéëà" +msgstr "E397: Òðåáóåòñÿ óêàçàòü íàèìåíîâàíèå ôàéëà" +# :!~ Restorer #, c-format msgid "E398: Missing '=': %s" -msgstr "E398: Ïðîïóùåíî '=': %s" +msgstr "E398: Íå óêàçàí çíàê ðàâåíñòâà ó ïàðàìåòðîâ êîìàíäû :syntax region %s" +# :!~ Restorer #, c-format msgid "E399: Not enough arguments: syntax region %s" -msgstr "E399: Íå õâàòàåò ïàðàìåòðîâ, ñèíòàêñè÷åñêèé ðåãèîí %s" +msgstr "E399: Óêàçàíû íå âñå òðåáóåìûå ïàðàìåòðû äëÿ êîìàíäû :syntax region %s" +# :!~ Restorer msgid "E400: No cluster specified" -msgstr "E400: Êëàñòåð íå óêàçàí" +msgstr "E400: Íå óäàëîñü ñîçäàòü êîëëåêöèþ ãðóïï ñèíòàêñèñà" +# :!~ Restorer #, c-format msgid "E401: Pattern delimiter not found: %s" -msgstr "E401: Íå íàéäåí ðàçäåëèòåëü øàáëîíîâ: %s" +msgstr "E401: Íå óäàëîñü ðàñïîçíàòü ñèìâîë ðàçäåëèòåëåé øàáëîíà %s" +# :!~ Restorer #, c-format msgid "E402: Garbage after pattern: %s" -msgstr "E402: Ìóñîð ïîñëå øàáëîíà: %s" +msgstr "E402: Ïîñòîðîííèå ñèìâîëû ïîñëå øàáëîíà %s" +# :!~ Restorer msgid "E403: syntax sync: Line continuations pattern specified twice" -msgstr "" -"E403: Ñèíõðîíèçàöèÿ ñèíòàêñèñà: øàáëîí ïðîäîëæåíèÿ ñòðîêè óêàçàí äâàæäû" +msgstr "E403: Ïàðàìåòð linecont äëÿ êîìàíäû :syntax sync óêàçàí äâàæäû" +# :!~ Restorer #, c-format msgid "E404: Illegal arguments: %s" -msgstr "E404: Íåäîïóñòèìûå ïàðàìåòðû: %s" +msgstr "E404: Íåäîïóñòèìûå ïàðàìåòðû êîìàíäû :syntax sync %s" +# :!~ Restorer #, c-format msgid "E405: Missing equal sign: %s" -msgstr "E405: Ïðîïóùåí çíàê ðàâåíñòâà: %s" +msgstr "E405: Íå óêàçàí ñèìâîë çíàêà ðàâåíñòâà ïîñëå %s" +# :!~ Restorer #, c-format msgid "E406: Empty argument: %s" -msgstr "E406: Ïóñòîé ïàðàìåòð: %s" +msgstr "E406: Îòñóòñòâóþò çíà÷åíèÿ ïàðàìåòðà %s" +# :!~ Restorer #, c-format msgid "E407: %s not allowed here" -msgstr "E407: %s íå äîïóñêàåòñÿ â ýòîì ìåñòå" +msgstr "E407: Äëÿ ýòîãî ïàðàìåòðà çàïðåùåíî çíà÷åíèå %s" +# :!~ Restorer #, c-format msgid "E408: %s must be first in contains list" -msgstr "E408: %s äîëæíî áûòü ïåðâûì â ñïèñêå contains" +msgstr "E408:  çíà÷åíèÿõ ïàðàìåòðà contains âíà÷àëå óêàçûâàåòñÿ çíà÷åíèå %s" +# :!~ Restorer #, c-format msgid "E409: Unknown group name: %s" -msgstr "E409: Íåèçâåñòíàÿ ãðóïïà: %s" +msgstr "E409: Íå óäàëîñü ðàñïîçíàòü íàèìåíîâàíèå ãðóïïû %s" +# :!~ Restorer #, c-format msgid "E410: Invalid :syntax subcommand: %s" -msgstr "E410: Íåïðàâèëüíàÿ ïîäêîìàíäà :syntax: %s" +msgstr "E410: Äëÿ êîìàíäû :syntax óêàçàíà íåäîïóñòèìàÿ èíñòðóêöèÿ %s" +# :!~ Restorer #, c-format msgid "E411: Highlight group not found: %s" -msgstr "E411: Ãðóïïà ïîäñâåòêè ñèíòàêñèñà %s íå íàéäåíà" +msgstr "E411: Íå íàéäåíà ãðóïïó ïîäñâåòêè %s" +# :!~ Restorer #, c-format msgid "E412: Not enough arguments: \":highlight link %s\"" -msgstr "E412: Íå õâàòàåò ïàðàìåòðîâ: \":highlight link %s\"" +msgstr "" +"E412: Óêàçàíû íå âñå òðåáóåìûå ïàðàìåòðû â êîìàíäå \":highlight link %s\"" +# :!~ Restorer #, c-format msgid "E413: Too many arguments: \":highlight link %s\"" -msgstr "E413: Ñëèøêîì ìíîãî ïàðàìåòðîâ: \":highlight link %s\"" +msgstr "E413: Ïðåâûøåíî êîëè÷åñòâî ïàðàìåòðîâ â êîìàíäå \":highlight link %s\"" +# :!~ Restorer msgid "E414: Group has settings, highlight link ignored" -msgstr "E414: Ó ãðóïïû åñòü íàñòðîéêè, highlight link èãíîðèðóåòñÿ" +msgstr "" +"E414: Íå âûïîëíåíî ñâÿçûâàíèå ãðóïï ïîäñâåòêè. Ó ãðóïïû óæå çàäàíû ïàðàìåòðû" +# :!~ Restorer #, c-format msgid "E415: Unexpected equal sign: %s" -msgstr "E415: Íåîæèäàííûé çíàê ðàâåíñòâà: %s" +msgstr "E415: Íåïðåäâèäåííûé çíàê ðàâåíñòâà â %s" +# :!~ Restorer #, c-format msgid "E416: Missing equal sign: %s" -msgstr "E416: Ïðîïóùåí çíàê ðàâåíñòâà: %s" +msgstr "E416: Íå óêàçàí çíàê ðàâåíñòâà â %s" +# :!~ Restorer #, c-format msgid "E417: Missing argument: %s" -msgstr "E417: Ïðîïóùåí ïàðàìåòð: %s" +msgstr "E417: Íå óêàçàí ïàðàìåòð â %s" +# :!~ Restorer #, c-format msgid "E418: Illegal value: %s" -msgstr "E418: Íåäîïóñòèìîå çíà÷åíèå: %s" +msgstr "E418: Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà %s" +# :!~ Restorer +msgid "E418: I'm a teapot" +msgstr "E418: Ýòî æå ÷àéíèê" + +# :!~ Restorer msgid "E419: FG color unknown" -msgstr "E419: Íåèçâåñòíûé öâåò òåêñòà" +msgstr "E419: Íå óäàëîñü ïîëó÷èòü öâåò òåêñòà äëÿ óñòàíîâêè çíà÷åíèÿ ïàðàìåòðà" +# :!~ Restorer msgid "E420: BG color unknown" -msgstr "E420: Íåèçâåñòíûé öâåò ôîíà" +msgstr "E420: Íå óäàëîñü ïîëó÷èòü öâåò ôîíà äëÿ óñòàíîâêè çíà÷åíèÿ ïàðàìåòðà" +# :!~ Restorer #, c-format msgid "E421: Color name or number not recognized: %s" -msgstr "E421: Èìÿ èëè íîìåð öâåòà íåèçâåñòíî: %s" +msgstr "" +"E421: Íå óäàëîñü ðàñïîçíàòü èìåíîâàííîå èëè ÷èñëîâîå îáîçíà÷åíèå öâåòà â %s" +# :!~ Restorer #, c-format msgid "E422: Terminal code too long: %s" -msgstr "E422: Ñëèøêîì äëèííûé êîä òåðìèíàëà: %s" +msgstr "E422: Ïðåâûøåíî êîëè÷åñòâî óïðàâëÿþùèõ êîäîâ òåðìèíàëà â %s" +# :!~ Restorer #, c-format msgid "E423: Illegal argument: %s" -msgstr "E423: Íåäîïóñòèìûé ïàðàìåòð: %s" +msgstr "E423: Äëÿ êîìàíäû :highlight çàäàí íåäîïóñòèìûé ïàðàìåòð %s" +# :!~ Restorer msgid "E424: Too many different highlighting attributes in use" -msgstr "E424: Èñïîëüçóåòñÿ ñëèøêîì ìíîãî ðàçíûõ àòðèáóòîâ ïîäñâåòêè ñèíòàêñèñà" +msgstr "E424: Ïðåâûøåíî êîëè÷åñòâî àòðèáóòîâ ïîäñâåòêè ñèíòàêñèñà" +# :!~ Restorer msgid "E425: Cannot go before first matching tag" -msgstr "E425: Íåâîçìîæíî ïåðåéòè â ïîçèöèþ äî ïåðâîé ñîâïàäàþùåé ìåòêè" +msgstr "E425: Íå äîïóñêàåòñÿ ïåðåõîä çà ïåðâûé ñîâïàäàþùèé èíäåêñ" +# :!~ Restorer #, c-format msgid "E426: Tag not found: %s" -msgstr "E426: Ìåòêà íå íàéäåíà: %s" +msgstr "E426: Íå íàéäåí èíäåêñ %s" +# :!~ Restorer msgid "E427: There is only one matching tag" -msgstr "E427: Åñòü òîëüêî îäíà ñîâïàäàþùàÿ ìåòêà" +msgstr "E427: Îäèí ñîîòâåòñòâóþùèé èíäåêñ" +# :!~ Restorer msgid "E428: Cannot go beyond last matching tag" -msgstr "E428: Íåâîçìîæíî ïåðåéòè â ïîçèöèþ çà ïîñëåäíåé ñîâïàäàþùåé ìåòêîé" +msgstr "E428: Íå äîïóñêàåòñÿ ïåðåõîä çà ïîñëåäíèé ñîâïàäàþùèé èíäåêñ" +# :!~ Restorer #, c-format msgid "E429: File \"%s\" does not exist" -msgstr "E429: Ôàéë \"%s\" íå ñóùåñòâóåò" +msgstr "E429: Íå ñóùåñòâóåò ôàéë èíäåêñîâ \"%s\"" +# :!~ Restorer #, c-format msgid "E430: Tag file path truncated for %s\n" -msgstr "E430: Ïóòü ê ôàéëó ìåòîê %s îáðåçàí\n" +msgstr "" +"E430: Âûïîëíåíî óñå÷åíèå ìàðøðóòà äî äîïóñòèìîé äëèíû ê ôàéëó èíäåêñîâ %s\n" +# :!~ Restorer #, c-format msgid "E431: Format error in tags file \"%s\"" -msgstr "E431: Îøèáêà ôîðìàòà â ôàéëå ìåòîê \"%s\"" +msgstr "E431: Íåïîääåðæèâàåìûé ôîðìàò ñòðîê â ôàéëå èíäåêñîâ \"%s\"" +# :!~ Restorer #, c-format msgid "E432: Tags file not sorted: %s" -msgstr "E432: Ôàéë ìåòîê íå îòñîðòèðîâàí: %s" +msgstr "E432: Îáíàðóæåíû íåóïîðÿäî÷åííûå çàïèñè â ôàéëå èíäåêñîâ %s" +# :!~ Restorer msgid "E433: No tags file" -msgstr "E433: Ôàéë ìåòîê íå îáíàðóæåí" +msgstr "E433: Òðåáóåìûé ôàéë èíäåêñîâ íå óêàçàí â çíà÷åíèè ïàðàìåòðà 'tags'" +# :!~ Restorer msgid "E434: Can't find tag pattern" -msgstr "E434: Íå íàéäåí øàáëîí ìåòêè" +msgstr "E434: Íå íàéäåí èíäåêñ ïî çàäàííîìó øàáëîíó" +# :!~ Restorer msgid "E435: Couldn't find tag, just guessing!" -msgstr "E435: Ìåòêà íå íàéäåíà, ïûòàåìñÿ óãàäàòü!" +msgstr "E435: Íå íàéäåí èíäåêñ ïî çàäàííîìó øàáëîíó. Ïîäáîð âàðèàíòîâ" +# :!~ Restorer #, c-format msgid "E436: No \"%s\" entry in termcap" -msgstr "E436:  termcap íåò çàïèñè \"%s\"" +msgstr "E436:  áàçå termcap íå íàéäåíà çàïèñü \"%s\"" +# :!~ Restorer msgid "E437: Terminal capability \"cm\" required" -msgstr "E437: Òðåáóåòñÿ ñïîñîáíîñòü òåðìèíàëà \"cm\"" - -msgid "E438: u_undo: Line numbers wrong" -msgstr "E438: u_undo: íåïðàâèëüíûå íîìåðà ñòðîê" - -msgid "E439: Undo list corrupt" -msgstr "E439: Ïîâðåæä¸í ñïèñîê îòìåí" - -msgid "E440: Undo line missing" -msgstr "E440: Ïîòåðÿíà ñòðîêà îòìåíû" +msgstr "E437: Òåðìèíàë îáÿçàí ïîääåðæèâàòü êîìàíäû ïåðåìåùåíèÿ êóðñîðà" +# :!~ Restorer msgid "E441: There is no preview window" -msgstr "E441: Îêíî ïðåäïðîñìîòðà îòñóòñòâóåò" +msgstr "E441: Îòñóòñòâóåò îêíî ïðîñìîòðà" +# :!~ Restorer msgid "E442: Can't split topleft and botright at the same time" -msgstr "E442: Îêíî íå ìîæåò áûòü îäíîâðåìåííî ñëåâà ââåðõó è ñïðàâà âíèçó" +msgstr "E442: Íå äîïóñêàåòñÿ îäíîâðåìåííîå óêàçàíèå êîìàíä :topleft è :botright" +# :!~ Restorer msgid "E443: Cannot rotate when another window is split" -msgstr "E443: Íåâîçìîæíî ïîìåíÿòü ìåñòàìè, ïîêà äðóãîå îêíî ðàçäåëåíî" +msgstr "" +"E443: Íå ïðèìåíèìî ê îêíàì, èìåþùèì ðàçëè÷èå ëèáî ïî âûñîòå, ëèáî ïî øèðèíå" +# :!~ Restorer msgid "E444: Cannot close last window" -msgstr "E444: Íåëüçÿ çàêðûòü ïîñëåäíåå îêíî" +msgstr "" +"E444: Êîìàíäà íå âûïîëíåíà. Äëÿ ðàáîòû ïðîãðàììû òðåáóåòñÿ õîòÿ áû îäíî îêíî" +# :!~ Restorer msgid "E445: Other window contains changes" -msgstr "E445:  äðóãîì îêíå åñòü íåñîõðàí¸ííûå èçìåíåíèÿ" +msgstr "E445:  äðóãèõ îêíàõ èìåþòñÿ íå ñîõðàí¸ííûå äàííûå" +# :!~ Restorer msgid "E446: No file name under cursor" -msgstr "E446: Íåò èìåíè ôàéëà â ïîçèöèè êóðñîðà" +msgstr "E446: Íå óäàëîñü ðàñïîçíàòü íàèìåíîâàíèå ôàéëà â ïîçèöèè êóðñîðà" +# :!~ Restorer #, c-format msgid "E447: Can't find file \"%s\" in path" -msgstr "E447: Ôàéë \"%s\" íå íàéäåí ïî èçâåñòíûì ïóòÿì" +msgstr "E447: Íå íàéäåí â ïðåäîïðåäåë¸ííûõ êàòàëîãàõ ôàéë \"%s\"" +# :!~ Restorer #, c-format msgid "E448: Could not load library function %s" -msgstr "E448: Íå óäàëîñü çàãðóçèòü ôóíêöèþ %s èç áèáëèîòåêè" +msgstr "E448: Ôàéë áèáëèîòåêè íå ïîäêëþ÷åí. Íå óäàëîñü âûçâàòü ôóíêöèþ %s" +# #Restorer: ïîñëå ýòîãî ñîîáùåíèÿ äîïèñûâàåòñÿ : è ïîòîì ñàìî âûðàæåíèå +# :!~ Restorer msgid "E449: Invalid expression received" -msgstr "E449: Ïîëó÷åíî íåäîïóñòèìîå âûðàæåíèå" +msgstr "E449: Íå óäàëîñü âû÷èñëèòü ïîëó÷åííîå âûðàæåíèå" +# :!~ Restorer msgid "E450: Buffer number, text or a list required" -msgstr "E450: Òðåáóåòñÿ íîìåð áóôåðà, ñòðîêà èëè ñïèñîê" +msgstr "" +"E450: Àðãóìåíò íîìåð 1 äîëæåí áûòü íîìåðîì áóôåðà, ñòðîêîé èëè ñïèñîê ñòðîê" +# :!~ Restorer #, c-format msgid "E451: Expected }: %s" -msgstr "E451: Îæèäàëàñü ñêîáêà }: %s" +msgstr "E451: Íå óêàçàíà çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà â %s" +# :!~ Restorer msgid "E452: Double ; in list of variables" -msgstr "E452: Äâå òî÷êè ñ çàïÿòîé â ñïèñêå ïåðåìåííûõ" +msgstr "" +"E452:  ïåðå÷íå ïåðåìåííûõ îáíàðóæåí ïîâòîðÿþùèéñÿ ñèìâîë òî÷êè ñ çàïÿòîé" +# :!~ Restorer msgid "E453: UL color unknown" -msgstr "E453: Íåèçâåñòíûé öâåò ïîä÷¸ðêèâàíèÿ" +msgstr "" +"E453: Íå óäàëîñü ïîëó÷èòü öâåò ëèíèè ïîä÷¸ðêèâàíèÿ äëÿ óñòàíîâêè çíà÷åíèÿ" +# :!~ Restorer msgid "E454: Function list was modified" -msgstr "E454: Ñïèñîê ôóíêöèé áûë èçìåí¸í" +msgstr "E454: Îáíàðóæåíî èçìåíåíèå ñïèñêà ôóíêöèé" +# :!~ Restorer msgid "E455: Error writing to PostScript output file" -msgstr "E455: Îøèáêà çàïèñè â ôàéë PostScript" +msgstr "E455: Îøèáêà çàïèñè âûõîäíîãî ôàéëà â ôîðìàòå PostScript" +# :!~ Restorer #, c-format msgid "E456: Can't open file \"%s\"" -msgstr "E456: Íåâîçìîæíî îòêðûòü ôàéë \"%s\"" +msgstr "E456: Íå óäàëîñü îòêðûòü ôàéë \"%s\"" +# :!~ Restorer #, c-format msgid "E456: Can't find PostScript resource file \"%s.ps\"" -msgstr "E456: Ôàéë ðåñóðñîâ PostScript \"%s.ps\" íå íàéäåí" +msgstr "E456: Íå íàéäåí ôàéë îïèñàíèé PostScript \"%s.ps\"" +# :!~ Restorer #, c-format msgid "E457: Can't read PostScript resource file \"%s\"" -msgstr "E457: Íåâîçìîæíî ïðî÷èòàòü ôàéë ðåñóðñîâ PostScript \"%s\"" +msgstr "E457: Íå óäàëîñü ñ÷èòàòü ôàéë îïèñàíèé PostScript \"%s\"" +# :!~ Restorer msgid "E458: Cannot allocate colormap entry, some colors may be incorrect" msgstr "" -"E458: Íåâîçìîæíî âûäåëèòü çàïèñü â òàáëèöå öâåòîâ — íåêîòîðûå öâåòà ìîãóò " -"îòîáðàæàòüñÿ íåïðàâèëüíî" +"E458: Íå óäàëîñü ñ÷èòàòü çàïèñü èç ïàëèòðû. Öâåòà ìîãóò îòîáðàæàòüñÿ " +"íåêîððåêòíî" +# :!~ Restorer msgid "E459: Cannot go back to previous directory" -msgstr "E459: Âîçâðàò â ïðåäûäóùèé êàòàëîã íåâîçìîæåí" +msgstr "E459: Ó ïðîãðàììû Vim îòñóòñòâóþò ïðàâà íà èñïîëíåíèå â òåêóùåì êàòàëîãå" +# :!~ Restorer msgid "E460: Entries missing in mapset() dict argument" -msgstr "E460: Íå õâàòàåò ýëåìåíòîâ â ïàðàìåòðå dict ôóíêöèè mapset()" +msgstr "E460: Íå óêàçàíû çàïèñè â àðãóìåíòå dict ôóíêöèè mapset()" +# :!~ Restorer #, c-format msgid "E461: Illegal variable name: %s" -msgstr "E461: Íåäîïóñòèìîå èìÿ ïåðåìåííîé: %s" +msgstr "E461: Íåäîïóñòèìûå ñèìâîëû â íàèìåíîâàíèè ïåðåìåííîé %s" +# :!~ Restorer #, c-format msgid "E462: Could not prepare for reloading \"%s\"" -msgstr "E462: Íåâîçìîæíî ïîäãîòîâèòüñÿ ê ïåðåçàãðóçêå \"%s\"" +msgstr "" +"E462: Íå âûïîëíåíû ïîäãîòîâèòåëüíûå äåéñòâèÿ äëÿ ïåðåçàãðóçêè áóôåðà \"%s\"" +# :!~ Restorer msgid "E463: Region is guarded, cannot modify" -msgstr "E463: Íåâîçìîæíî èçìåíèòü îõðàíÿåìóþ îáëàñòü" +msgstr "" +"E463:  ñðåäå ðàçðàáîòêè NetBeans äàííàÿ îáëàñòü ïîìå÷åíà êàê íåèçìåíÿåìàÿ" +# #Restorer: ïîñëå ñîîáùåíèÿ äîïèñûâàåòñÿ ñèìâîë : è îøèáî÷íàÿ êîìàíäà +# :!~ Restorer msgid "E464: Ambiguous use of user-defined command" -msgstr "E464: Íåîäíîçíà÷íîå èñïîëüçîâàíèå êîìàíäû ïîëüçîâàòåëÿ" +msgstr "E464: Íåðàñïîçíàíà ñîçäàííàÿ ïîëüçîâàòåëåì êîìàíäà" +# :!~ Restorer #, c-format msgid "E464: Ambiguous use of user-defined command: %s" -msgstr "E464: Íåîäíîçíà÷íîå èñïîëüçîâàíèå êîìàíäû ïîëüçîâàòåëÿ: %s" +msgstr "E464: Íåðàñïîçíàíà ñîçäàííàÿ ïîëüçîâàòåëåì êîìàíäà %s" +# :!~ Restorer msgid "E465: :winsize requires two number arguments" -msgstr "E465: Êîìàíäà :winsize òðåáóåò óêàçàíèÿ äâóõ ÷èñëîâûõ ïàðàìåòðîâ" +msgstr "E465: Äëÿ êîìàíäû :winsize òðåáóåòñÿ óêàçàòü äâà ÷èñëîâûõ çíà÷åíèÿ" +# :!~ Restorer msgid "E466: :winpos requires two number arguments" -msgstr "E466: Êîìàíäà :winpos òðåáóåò óêàçàíèÿ äâóõ ÷èñëîâûõ ïàðàìåòðîâ" +msgstr "E466: Äëÿ êîìàíäû :winpos òðåáóåòñÿ óêàçàòü äâà ÷èñëîâûõ çíà÷åíèÿ" +# :!~ Restorer msgid "E467: Custom completion requires a function argument" -msgstr "E467: Îñîáîå äîïîëíåíèå òðåáóåò óêàçàíèÿ ôóíêöèè-ïàðàìåòðà" +msgstr "" +"E467: Äëÿ çíà÷åíèé custom* âòîðûì çíà÷åíèåì óêàçûâàåòñÿ íàèìåíîâàíèå ôóíêöèè" +# :!~ Restorer msgid "E468: Completion argument only allowed for custom completion" msgstr "" -"E468: Ïàðàìåòð àâòîäîïîëíåíèÿ ìîæíî èñïîëüçîâàòü òîëüêî ñ îñîáûì äîïîëíåíèåì" +"E468: Ðàñøèðåííûå ïàðàìåòðû àòðèáóòà -complete ðàçðåøåíû â çíà÷åíèÿõ custom*" +# :!~ Restorer #, c-format msgid "E469: Invalid cscopequickfix flag %c for %c" -msgstr "E469: Íåïðàâèëüíûé ôëàã cscopequickfix %c ïîñëå %c" +msgstr "E469: Íåäîïóñòèìûé ôëàã %c äëÿ çíà÷åíèÿ ïàðàìåòðà 'cscopequickfix' %c" +# :!~ Restorer msgid "E470: Command aborted" msgstr "E470: Âûïîëíåíèå êîìàíäû ïðåðâàíî" +# :!~ Restorer msgid "E471: Argument required" -msgstr "E471: Òðåáóåòñÿ óêàçàòü ïàðàìåòð" +msgstr "E471: Òðåáóåòñÿ óêàçàòü ïàðàìåòð êîìàíäû" +# :!~ Restorer msgid "E472: Command failed" -msgstr "E472: Íå óäàëîñü âûïîëíèòü êîìàíäó" - -msgid "E473: Internal error in regexp" -msgstr "E473: Âíóòðåííÿÿ îøèáêà â ðåãóëÿðíîì âûðàæåíèè" +msgstr "E472: Îøèáêà ïðè âûïîëíåíèè êîìàíäû" +# :!~ Restorer msgid "E474: Invalid argument" -msgstr "E474: Íåäîïóñòèìûé ïàðàìåòð" +msgstr "E474: Íåäîïóñòèìûé àðãóìåíò" +# :!~ Restorer #, c-format msgid "E475: Invalid argument: %s" -msgstr "E475: Íåäîïóñòèìûé ïàðàìåòð: %s" +msgstr "E475: Íåäîïóñòèìûé àðãóìåíò %s" +# :!~ Restorer #, c-format msgid "E475: Invalid value for argument %s" -msgstr "E475: Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà: %s" +msgstr "E475: Íåäîïóñòèìîå çíà÷åíèå àðãóìåíòà %s" +# :!~ Restorer #, c-format msgid "E475: Invalid value for argument %s: %s" -msgstr "E475: Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà %s: %s" +msgstr "E475: Íåäîïóñòèìîå çíà÷åíèå àðãóìåíòà %s êàê %s" +# :!~ Restorer msgid "E476: Invalid command" msgstr "E476: Íåäîïóñòèìàÿ êîìàíäà" +# :!~ Restorer #, c-format msgid "E476: Invalid command: %s" -msgstr "E476: Íåäîïóñòèìàÿ êîìàíäà: %s" +msgstr "E476: Íåäîïóñòèìàÿ êîìàíäà %s" +# :!~ Restorer +#, c-format +msgid "E476: Invalid command: %s, expected %s" +msgstr "E476: Íåäîïóñòèìàÿ êîìàíäà %s, îæèäàëàñü êîìàíäà %s" + +# :!~ Restorer msgid "E477: No ! allowed" -msgstr "E477: ! íå äîïóñêàåòñÿ" +msgstr "E477: Íå äîïóñêàåòñÿ óêàçàíèå ìîäèôèêàòîðà ! ñ äàííîé êîìàíäîé" +# ~!: earlier msgid "E478: Don't panic!" msgstr "E478: Ñïîêîéñòâèå, òîëüêî ñïîêîéñòâèå!" +# :!~ Restorer msgid "E479: No match" -msgstr "E479: Íåò ñîîòâåòñòâèÿ" +msgstr "E479: Íå îáíàðóæåíî ñîâïàäåíèé" +# :!~ Restorer #, c-format msgid "E480: No match: %s" -msgstr "E480: Íåò ñîîòâåòñòâèÿ: %s" +msgstr "E480: Íå îáíàðóæåíî ñîâïàäåíèé ñ %s" +# :!~ Restorer msgid "E481: No range allowed" -msgstr "E481: Èñïîëüçîâàíèå äèàïàçîíà íå äîïóñêàåòñÿ" +msgstr "E481: Íå äîïóñêàåòñÿ óêàçàíèå äèàïàçîíà ñòðîê â ïàðàìåòðàõ êîìàíäû" +# :!~ Restorer #, c-format msgid "E482: Can't create file %s" -msgstr "E482: Íåâîçìîæíî ñîçäàòü ôàéë %s" +msgstr "E482: Íå óäàëîñü ñîçäàòü ôàéë %s" +# :!~ Restorer msgid "E483: Can't get temp file name" -msgstr "E483: Íåâîçìîæíî ïîëó÷èòü èìÿ âðåìåííîãî ôàéëà" +msgstr "E483: Íå óäàëîñü ïîëó÷èòü íàèìåíîâàíèå âðåìåííîãî ôàéëà" +# :!~ Restorer #, c-format msgid "E484: Can't open file %s" -msgstr "E484: Íåâîçìîæíî îòêðûòü ôàéë %s" +msgstr "E484: Íå óäàëîñü îòêðûòü ôàéë %s" +# :!~ Restorer #, c-format msgid "E485: Can't read file %s" -msgstr "E485: Íåâîçìîæíî ïðî÷èòàòü ôàéë %s" +msgstr "E485: Íå óäàëîñü ñ÷èòàòü ôàéë %s" +# #Restorer: âûâîäèòñÿ ïðè àâòîïîäñòàíîâêå +# :!~ Restorer msgid "E486: Pattern not found" -msgstr "E486: Øàáëîí íå íàéäåí" +msgstr "E486: Îòñóòñòâóþò âàðèàíòû äëÿ ïîäñòàíîâêè" +# :!~ Restorer #, c-format msgid "E486: Pattern not found: %s" -msgstr "E486: Øàáëîí íå íàéäåí: %s" +msgstr "E486: Íå íàéäåíû ñîâïàäåíèÿ ñ îáðàçöîì %s" +# :!~ Restorer msgid "E487: Argument must be positive" -msgstr "E487: Ïàðàìåòð äîëæåí áûòü ïîëîæèòåëüíûì ÷èñëîì" +msgstr "E487: Çàäàííîå çíà÷åíèå äîëæíî áûòü ïîëîæèòåëüíûì ÷èñëîì" +# :!~ Restorer +#, c-format +msgid "E487: Argument must be positive: %s" +msgstr "E487: Çàäàííîå çíà÷åíèå %s äîëæíî áûòü ïîëîæèòåëüíûì ÷èñëîì" + +# :!~ Restorer msgid "E488: Trailing characters" -msgstr "E488: Ëèøíèå ñèìâîëû íà õâîñòå" +msgstr "E488: Ïîñòîðîííèå çàâåðøàþùèå ñèìâîëû" +# :!~ Restorer #, c-format msgid "E488: Trailing characters: %s" -msgstr "E488: Ëèøíèå ñèìâîëû íà õâîñòå: %s" +msgstr "E488: Ïîñòîðîííèå çàâåðøàþùèå ñèìâîëû %s" +# :!~ Restorer msgid "E489: No call stack to substitute for \"\"" -msgstr "E489: Íåò ñòåêà âûçîâîâ äëÿ çàìåíû \"\"" +msgstr "" +"E489: Îòñóòñòâóåò êîìàíäíûé ôàéë â ñòåêå âûçîâîâ äëÿ çàìåùåíèÿ ñïåöñèìâîëà " +"\"\"" +# :!~ Restorer msgid "E490: No fold found" -msgstr "E490: Ñêëàäîê íå îáíàðóæåíî" +msgstr "E490: Íå îáíàðóæåíî áëîêîâ ñî ñâ¸ðíóòûì òåêñòîì" +# :!~ Restorer #, c-format msgid "E491: JSON decode error at '%s'" -msgstr "E491: Îøèáêà äåêîäèðîâàíèÿ JSON '%s'" +msgstr "E491: Îøèáêà ïðè äåêîäèðîâàíèè '%s'" +# #Restorer: ïîñëå ñîîáùåíèÿ äîïèñûâàåòñÿ ñèìâîë : è îøèáî÷íàÿ êîìàíäà +# :!~ Restorer msgid "E492: Not an editor command" -msgstr "E492: Ýòî íå êîìàíäà ðåäàêòîðà" +msgstr "E492: Íå óäàëîñü ðàñïîçíàòü êîìàíäó" +# #Restorer: âûâîäèòñÿ òîëüêî ïðè îáðàáîòêå êîìàíäíûõ ôàéëîâ è â Ex-ðåæèìå +# :!~ Restorer msgid "E493: Backwards range given" -msgstr "E493: Çàäàí îáðàòíûé äèàïàçîí" +msgstr "E493: Äèàïàçîí óêàçàí â îáðàòíîé ïîñëåäîâàòåëüíîñòè" +# :!~ Restorer msgid "E494: Use w or w>>" -msgstr "E494: Èñïîëüçóéòå w èëè w>>" +msgstr "E494: Íåîáõîäèìî óêàçàòü êîìàíäó :write èëè :write>>" +# :!~ Restorer msgid "E495: No autocommand file name to substitute for \"\"" -msgstr "E495: Íåò àâòîêîìàíäíîãî èìåíè ôàéëà äëÿ çàìåíû \"\"" +msgstr "" +"E495: Îòñóòñòâóåò ôàéë äëÿ çàìåùåíèÿ â àâòîêîìàíäå ñïåöñèìâîëà \"\"" +# :!~ Restorer msgid "E496: No autocommand buffer number to substitute for \"\"" -msgstr "E496: Íåò àâòîêîìàíäíîãî íîìåðà áóôåðà äëÿ çàìåíû \"\"" +msgstr "" +"E496: Îòñóòñòâóåò íîìåð áóôåð äëÿ çàìåùåíèÿ â àâòîêîìàíäå ñïåöñèìâîëà \"" +"\"" +# :!~ Restorer msgid "E497: No autocommand match name to substitute for \"\"" -msgstr "E497: Íåò àâòîêîìàíäíîãî èìåíè ñîîòâåòñòâèÿ äëÿ çàìåíû \"\"" +msgstr "" +"E497: Îòñóòñòâóåò îáðàçåö äëÿ çàìåùåíèÿ â àâòîêîìàíäå ñïåöñèìâîëà \"\"" +# :!~ Restorer msgid "E498: No :source file name to substitute for \"\"" -msgstr "E498: Íåò èìåíè ôàéëà :source äëÿ çàìåíû \"\"" +msgstr "" +"E498: Îòñóòñòâóåò êîìàíäíûé ôàéë äëÿ çàìåùåíèÿ â êîìàíäå :source ñïåöñèìâîëà " +"\"\"" +# :!~ Restorer #, no-c-format msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" -msgstr "E499: Ïóñòîå èìÿ ôàéëà äëÿ '%' èëè '#' ðàáîòàåò òîëüêî c \":p:h\"" +msgstr "" +"E499: Åñëè áóôåð íå ñâÿçàí ñ ôàéëîì, ñïåöñèìâîë '%' èëè '#' ïðèìåíÿþò ñ " +"ìîäèôèêàòîðàìè \":p:h\"" +# :!~ Restorer msgid "E500: Evaluates to an empty string" -msgstr "E500: Ðåçóëüòàòîì ÿâëÿåòñÿ ïóñòàÿ ñòðîêà" +msgstr "E500:  ðåçóëüòàòå çàìåùåíèÿ ñïåöñèìâîëà áûëà ïîëó÷åíà ïóñòàÿ ñòðîêà" +# :!~ Restorer msgid "E501: At end-of-file" -msgstr "E501:  êîíöå ôàéëà" +msgstr "E501: Äîñòèãíóòî îêîí÷àíèå ôàéëà" +# #Restorer: îøèáêà E503: +# ~!: earlier msgid "is not a file or writable device" -msgstr "íå ÿâëÿåòñÿ ôàéëîì èëè óñòðîéñòâîì äîñòóïíûì äëÿ çàïèñè" +msgstr "íå ÿâëÿåòñÿ ôàéëîì èëè óñòðîéñòâîì, äîñòóïíûì äëÿ çàïèñè" +# :!~ Restorer #, c-format msgid "E503: \"%s\" is not a file or writable device" -msgstr "E503: \"%s\" íå ÿâëÿåòñÿ ôàéëîì èëè óñòðîéñòâîì äîñòóïíûì äëÿ çàïèñè" +msgstr "E503: \"%s\" íå ÿâëÿåòñÿ ôàéëîì èëè óñòðîéñòâîì, äîñòóïíûì äëÿ çàïèñè" +# :!~ Restorer +msgid "E503: Coffee is currently not available" +msgstr "E503: Êîôå åù¸ íå ãîòîâ" + +# #Restorer: îøèáêà E504: +# :!~ Restorer msgid "is read-only (cannot override: \"W\" in 'cpoptions')" msgstr "" -"îòêðûò òîëüêî äëÿ ÷òåíèÿ (ïåðåçàïèñü çàïðåùåíà ôëàãîì \"W\" â 'cpoptions')" +"ôàéë òîëüêî äëÿ ÷òåíèÿ (÷òîáû çàïèñàòü, óáåðèòå ôëàã \"W\" â 'cpoptions')" +# #Restorer: îøèáêà E505: +# :!~ Restorer msgid "is read-only (add ! to override)" -msgstr "îòêðûò òîëüêî äëÿ ÷òåíèÿ (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +msgstr "ôàéë òîëüêî äëÿ ÷òåíèÿ (÷òîáû çàïèñàòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer #, c-format msgid "E505: \"%s\" is read-only (add ! to override)" msgstr "" -"E505: \"%s\" îòêðûò òîëüêî äëÿ ÷òåíèÿ (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +"E505: Ôàéë \"%s\" òîëüêî äëÿ ÷òåíèÿ (÷òîáû çàïèñàòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E506: Can't write to backup file (add ! to override)" msgstr "" -"E506: Çàïèñü â ðåçåðâíûé ôàéë íåâîçìîæíà (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +"E506: Íå óäàëîñü çàïèñàòü ðåçåðâíûé ôàéë (÷òîáû èãíîðèðîâàòü, óêàæèòå " +"ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E507: Close error for backup file (add ! to write anyway)" msgstr "" -"E507: Îøèáêà çàêðûòèÿ ðåçåðâíîãî ôàéëà (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +"E507: Íå óäàëîñü çàêðûòü ðåçåðâíûé ôàéë (÷òîáû çàïèñàòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E508: Can't read file for backup (add ! to write anyway)" msgstr "" -"E508: Íåâîçìîæíî ïðî÷èòàòü ðåçåðâíûé ôàéë (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +"E508: Íå óäàëîñü ñ÷èòàòü ðåçåðâíûé ôàéë (÷òîáû çàïèñàòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E509: Cannot create backup file (add ! to override)" msgstr "" -"E509: Íåâîçìîæíî ñîçäàòü ðåçåðâíûé ôàéë (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +"E509: Íå óäàëîñü ñîçäàòü ðåçåðâíûé ôàéë (÷òîáû èãíîðèðîâàòü, óêàæèòå " +"ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E510: Can't make backup file (add ! to write anyway)" msgstr "" -"E510: Íåâîçìîæíî ñîçäàòü ðåçåðâíûé ôàéë (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)" +"E510: Íå óäàëîñü ñîçäàòü ðåçåðâíûé ôàéë (÷òîáû çàïèñàòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E511: NetBeans already connected" -msgstr "E511: Óæå ñîåäèí¸í ñ NetBeans" +msgstr "E511: Ñîåäèíåíèå ñî ñðåäîé ðàçðàáîòêè NetBeans óæå óñòàíîâëåíî" +# :!~ Restorer msgid "E512: Close failed" -msgstr "E512: Íå óäàëîñü çàêðûòü ôàéë" +msgstr "E512: Îøèáêà çàêðûòèÿ ôàéëà ïîñëå îïåðàöèè çàïèñè" +# :!~ Restorer msgid "E513: Write error, conversion failed (make 'fenc' empty to override)" msgstr "" -"E513: Îøèáêà çàïèñè, ïðåîáðàçîâàíèå íå óäàëîñü (î÷èñòèòå 'fenc', ÷òîáû " -"îáîéòè)" +"E513: Îøèáêà çàïèñè. Ñáîé ïðè èçìåíåíèè êîäèðîâêè òåêñòà (÷òîáû èãíîðèðîâàòü, " +"ñáðîñüòå ïàðàìåòð 'fenc')" +# :!~ Restorer #, c-format msgid "" "E513: Write error, conversion failed in line %ld (make 'fenc' empty to " "override)" msgstr "" -"E513: Îøèáêà çàïèñè, ïðåîáðàçîâàíèå íå óäàëîñü â ñòðîêå %ld (î÷èñòèòå " -"'fenc', ÷òîáû îáîéòè)" +"E513: Îøèáêà çàïèñè. Ñáîé ïðè èçìåíåíèè êîäèðîâêè òåêñòà â ñòðîêå %ld (÷òîáû " +"èãíîðèðîâàòü, ñáðîñüòå ïàðàìåòð 'fenc')" +# :!~ Restorer msgid "E514: Write error (file system full?)" -msgstr "E514: Îøèáêà çàïèñè (íåò ñâîáîäíîãî ìåñòà?)" +msgstr "E514: Îøèáêà çàïèñè. Âîçìîæíî, íåäîñòàòî÷íî ìåñòà íà äèñêå" +# :!~ Restorer msgid "E515: No buffers were unloaded" -msgstr "E515: Íè îäèí áóôåð íå áûë âûãðóæåí èç ïàìÿòè" +msgstr "E515: Íå óäàëîñü óäàëèòü áóôåðû èç ïàìÿòè" +# :!~ Restorer msgid "E516: No buffers were deleted" -msgstr "E516: Íè îäèí áóôåð íå áûë óäàë¸í" +msgstr "E516: Íå óäàëîñü óäàëèòü áóôåðû èç ñïèñêà áóôåðîâ" +# :!~ Restorer msgid "E517: No buffers were wiped out" -msgstr "E517: Íè îäèí áóôåð íå áûë ñò¸ðò" +msgstr "E517: Íå óäàëîñü óäàëèòü áóôåðû èç ïàìÿòè è ñïèñêà áóôåðîâ" +# #Restorer: `E518: Íå ðàñïîçíàí ïàðàìåòð: <óêàçàííûé ïàðàìåòð>` +# :!~ Restorer msgid "E518: Unknown option" -msgstr "E518: Íåèçâåñòíàÿ îïöèÿ" +msgstr "E518: Íå ðàñïîçíàí ïàðàìåòð" +# #Restorer: `E519: Íå ïîääåðæèâàåòñÿ ïàðàìåòð: <óêàçàííûé ïàðàìåòð>` +# :!~ Restorer msgid "E519: Option not supported" -msgstr "E519: Îïöèÿ íå ïîääåðæèâàåòñÿ" +msgstr "E519: Íå ïîääåðæèâàåòñÿ ïàðàìåòð" +# :!~ Restorer msgid "E520: Not allowed in a modeline" -msgstr "E520: Íå äîïóñêàåòñÿ â ðåæèìíîé ñòðîêå" +msgstr "E520:  ðåæèìíîé ñòðîêå çàïðåùåíà óñòàíîâêà ïàðàìåòðà" +# :!~ Restorer msgid "E521: Number required after =" -msgstr "E521: Ïîñëå = òðåáóåòñÿ óêàçàòü ÷èñëî" +msgstr "E521: Òðåáóåòñÿ ÷èñëîâîå çíà÷åíèå ñðàçó ïîñëå çíàêà ðàâíî" +# :!~ Restorer #, c-format msgid "E521: Number required: &%s = '%s'" -msgstr "E521: Òðåáóåòñÿ óêàçàòü ÷èñëî: &%s = '%s'" +msgstr "E521: Òðåáóåòñÿ çàäàòü ÷èñëîâîå çíà÷åíèå &%s = '%s'" +# #Restorer: `E522:  áàçå termcap íå îáíàðóæåí ïàðàìåòð: <óêàçàííûé ïàðàìåòð>` +# :!~ Restorer msgid "E522: Not found in termcap" -msgstr "E522: Íå íàéäåíî â termcap" +msgstr "E522:  áàçå termcap îòñóòñòâóåò çàïèñü" +# :!~ Restorer msgid "E523: Not allowed here" -msgstr "E523: Çäåñü íå ðàçðåøåíî" +msgstr "E523:  öåëÿõ áåçîïàñíîñòè äàííûå äåéñòâèÿ çàïðåùåíû" +# :!~ Restorer msgid "E524: Missing colon" -msgstr "E524: Ïðîïóùåíî äâîåòî÷èå" +msgstr "E524: Íå óêàçàí ñèìâîë äâîåòî÷èÿ, êàê ðàçäåëèòåëü ôëàãà è çíà÷åíèÿ" +# :!~ Restorer msgid "E525: Zero length string" -msgstr "E525: Ñòðîêà íóëåâîé äëèíû" +msgstr "E525: Íå äîïóñêàåòñÿ óñòàíîâêà ïóñòîãî çíà÷åíèÿ äëÿ" +# :!~ Restorer #, c-format msgid "E526: Missing number after <%s>" -msgstr "E526: Ïðîïóùåíî ÷èñëî ïîñëå <%s>" +msgstr "E526: Íå óêàçàíî ÷èñëîâîå çíà÷åíèå ïîñëå ñèìâîëà <%s>" +# :!~ Restorer msgid "E527: Missing comma" -msgstr "E527: Ïðîïóùåíà çàïÿòàÿ" +msgstr "E527: Íå óêàçàí ñèìâîë çàïÿòîé, êàê ðàçäåëèòåëü çíà÷åíèé" +# :!~ Restorer msgid "E528: Must specify a ' value" -msgstr "E528: Íåîáõîäèìî óêàçàòü çíà÷åíèå äëÿ '" +msgstr "E528: Òðåáóåòñÿ óêàçàòü çíà÷åíèå äëÿ ôëàãà ' " +# :!~ Restorer msgid "E529: Cannot set 'term' to empty string" -msgstr "E529: Çíà÷åíèå îïöèè 'term' íå ìîæåò áûòü ïóñòîé ñòðîêîé" +msgstr "E529: Íå äîïóñêàåòñÿ óñòàíîâêà ïóñòîãî çíà÷åíèÿ" +# :!~ Restorer msgid "E530: Cannot change 'term' in the GUI" -msgstr "E530:  ãðàôè÷åñêîì èíòåðôåéñå èçìåíèòü òåðìèíàë íåëüçÿ" +msgstr "" +"E530: Ïðè ðàáîòå â ãðàôè÷åñêîì èíòåðôåéñå íå äîïóñêàåòñÿ èçìåíåíèå ïàðàìåòðà" +# :!~ Restorer msgid "E531: Use \":gui\" to start the GUI" -msgstr "E531: Äëÿ çàïóñêà ãðàôè÷åñêîãî èíòåðôåéñà èñïîëüçóéòå \":gui\"" +msgstr "E531: ×òîáû çàïóñòèòü ãðàôè÷åñêèé èíòåðôåéñ, íàáåðèòå êîìàíäó \":gui\"" +# :!~ Restorer msgid "E532: Highlighting color name too long in defineAnnoType" -msgstr "E532: Ñëèøêîì äëèííîå èìÿ ãðóïïû ïîäñâåòêè ñèíòàêñèñà â defineAnnoType" +msgstr "E532: Ïðåâûøåíà äëèíà íàèìåíîâàíèÿ öâåòà â êîìàíäå defineAnnoType" +# :!~ Restorer msgid "E533: Can't select wide font" -msgstr "E533: Íåâîçìîæíî âûáðàòü øðèôò ñ ñèìâîëàìè äâîéíîé øèðèíû" +msgstr "E533: Íå óäàëîñü ïîäîáðàòü øðèôò ñ ïîëíîøèðèííûìè ñèìâîëàìè" +# :!~ Restorer msgid "E534: Invalid wide font" -msgstr "E534: Íåïðàâèëüíûé øðèôò ñ ñèìâîëàìè äâîéíîé øèðèíû" +msgstr "E534: Íåäîïóñòèìîå íàèìåíîâàíèå øðèôòà ñ ïîëíîøèðèííûìè ñèìâîëàìè" +# :!~ Restorer #, c-format msgid "E535: Illegal character after <%c>" -msgstr "E535: Íåïðàâèëüíûé ñèìâîë ïîñëå <%c>" +msgstr "E535: Íåäîïóñòèìûé ñèìâîë ïîñëå ôëàãà <%c> â" +# :!~ Restorer msgid "E536: Comma required" -msgstr "E536: Òðåáóåòñÿ çàïÿòàÿ" +msgstr "E536: Íå óêàçàí ñèìâîë çàïÿòîé, êàê ðàçäåëèòåëü ìàðêåðîâ â" +# :!~ Restorer #, c-format msgid "E537: 'commentstring' must be empty or contain %s" -msgstr "E537: Îïöèÿ 'commentstring' äîëæíà áûòü ïóñòîé èëè æå ñîäåðæàòü %s" +msgstr "" +"E537: Çíà÷åíèå ïàðàìåòðà äîëæíî ñîäåðæàòü ñèìâîëû %s èëè áûòü ïóñòîé ñòðîêîé" +# :!~ Restorer #, c-format msgid "E538: Pattern found in every line: %s" -msgstr "E538: Ñîîòâåòñòâèå øàáëîíó íàéäåíî â êàæäîé ñòðîêå: %s" +msgstr "E538: Âî âñåõ ñòðîêàõ íàéäåíû ñîâïàäåíèÿ ñ øàáëîíîì %s" +# #Restorer: `E539: Íåäîïóñòèìûé ñèìâîë <%s>: <óêàçàííûé ïàðàìåòð>` +# ~!: earlier #, c-format msgid "E539: Illegal character <%s>" msgstr "E539: Íåäîïóñòèìûé ñèìâîë <%s>" +# :!~ Restorer msgid "E540: Unclosed expression sequence" -msgstr "E540: Íåçàêðûòîå âûðàæåíèå" +msgstr "E540: Îòñóòñòâóåò çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà ïîñëå âûðàæåíèÿ" +# :!~ Restorer msgid "E542: Unbalanced groups" -msgstr "E542: Íåñáàëàíñèðîâàííûå ãðóïïû" +msgstr "E542: Îáíàðóæåíà íåçàêðûòàÿ ãðóïïà çàïèñåé" +# :!~ Restorer msgid "E543: Not a valid codepage" -msgstr "E543: Íåäîïóñòèìîå èìÿ êîäèðîâêè" +msgstr "E543: Íåäîïóñòèìàÿ êîäîâàÿ ñòðàíèöà" +# :!~ Restorer msgid "E544: Keymap file not found" -msgstr "E544: Ôàéë ñ ðàñêëàäêîé êëàâèàòóðû íå íàéäåí" +msgstr "E544: Íå íàéäåí ôàéë ñ îïèñàíèåì ðàñêëàäêè êëàâèàòóðû" +# :!~ Restorer msgid "E545: Missing colon" -msgstr "E545: Ïðîïóùåíî äâîåòî÷èå" +msgstr "E545: Íå óêàçàí ñèìâîë äâîåòî÷èÿ, êàê ðàçäåëèòåëü ðåæèìà è ïàðàìåòðà" +# :!~ Restorer msgid "E546: Illegal mode" -msgstr "E546: Íåäîïóñòèìûé ðåæèì" +msgstr "" +"E546: Íåäîïóñòèìîå çíà÷åíèå ðåæèìà â ïàðàìåòðå 'guicursor' èëè 'mouseshape'" +# :!~ Restorer msgid "E547: Illegal mouseshape" -msgstr "E547: Íåäîïóñòèìàÿ ôîðìà êóðñîðà ìûøè" +msgstr "E547: Íåäîïóñòèìûé ïàðàìåòð, îïðåäåëÿþùèé âèä óêàçàòåëÿ «ìûøè»" +# :!~ Restorer msgid "E548: Digit expected" -msgstr "E548: Òðåáóåòñÿ óêàçàòü öèôðó" +msgstr "E548: Òðåáóåòñÿ óêàçàòü ÷èñëîâîå çíà÷åíèå äëÿ ïàðàìåòðà" +# :!~ Restorer msgid "E549: Illegal percentage" -msgstr "E549: Íåäîïóñòèìîå ÷èñëî ïðîöåíòîâ" +msgstr "E549: Íåäîïóñòèìîå çíà÷åíèå âåëè÷èíû ïðîöåíòà" +# :!~ Restorer msgid "E550: Missing colon" -msgstr "E550: Ïðîïóùåíî äâîåòî÷èå" +msgstr "E550: Íå óêàçàí ñèìâîë äâîåòî÷èÿ, êàê ðàçäåëèòåëü ôëàãà è åãî çíà÷åíèÿ" +# :!~ Restorer msgid "E551: Illegal component" -msgstr "E551: Íåäîïóñòèìûé êîìïîíåíò" +msgstr "E551: Íåäîïóñòèìîå êîëè÷åñòâî êîìïîíåíòîâ äëÿ ïàðàìåòðà" +# :!~ Restorer msgid "E552: Digit expected" -msgstr "E552: Òðåáóåòñÿ óêàçàòü öèôðó" +msgstr "E552: Òðåáóåòñÿ óêàçàòü ÷èñëîâîå çíà÷åíèå" +# :!~ Restorer msgid "E553: No more items" -msgstr "E553: Áîëüøå íåò ýëåìåíòîâ" +msgstr "E553: Äîñòèãíóòà êîíå÷íàÿ çàïèñü" +# :!~ Restorer #, c-format msgid "E554: Syntax error in %s{...}" -msgstr "E554: Ñèíòàêñè÷åñêàÿ îøèáêà â %s{...}" +msgstr "E554: Îøèáêà ñèíòàêñèñà â èíòåðâàëüíîì êâàíòèôèêàòîðå %s{...}" +# :!~ Restorer msgid "E555: At bottom of tag stack" -msgstr "E555: Âíèçó ñòåêà ìåòîê" +msgstr "E555: Äîñòèãíóòà íèæíÿÿ ãðàíèöà ñòåêà èíäåêñîâ" +# :!~ Restorer msgid "E556: At top of tag stack" -msgstr "E556: Íàâåðõó ñòåêà ìåòîê" +msgstr "E556: Äîñòèãíóòà âåðõíÿÿ ãðàíèöà ñòåêà èíäåêñîâ" +# :!~ Restorer msgid "E557: Cannot open termcap file" -msgstr "E557: Íåâîçìîæíî îòêðûòü ôàéë termcap" +msgstr "E557: Íå óäàëîñü îòêðûòü ôàéë áàçû termcap" +# :!~ Restorer msgid "E558: Terminal entry not found in terminfo" -msgstr "E558:  terminfo íåò çàïèñè îá ýòîì òåðìèíàëå" +msgstr "E558: Íå íàéäåíà èíôîðìàöèÿ îá ýòîì òåðìèíàëå â áàçå terminfo" +# :!~ Restorer msgid "E559: Terminal entry not found in termcap" -msgstr "E559:  termcap íåò çàïèñè îá ýòîì òåðìèíàëå" +msgstr "E559: Íå íàéäåíà èíôîðìàöèÿ îá ýòîì òåðìèíàëå â áàçå termcap" +# :!~ Restorer #, c-format msgid "E560: Usage: cs[cope] %s" -msgstr "E560: Èñïîëüçîâàíèå: cs[cope] %s" +msgstr "E560: Îáðàçåö: cs[cope] %s" +# :!~ Restorer msgid "E561: Unknown cscope search type" -msgstr "E561: Íåèçâåñòíûé òèï ïîèñêà cscope" +msgstr "E561: Íå ðàñïîçíàí çàïðîñ ê áàçå äàííûõ cscope" +# :!~ Restorer msgid "E562: Usage: cstag " -msgstr "E562: Èñïîëüçîâàíèå: cstag <èìÿ>" +msgstr "E562: Îáðàçåö: cstag <èíäåêñ>" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer #, c-format msgid "E563: stat(%s) error: %d" -msgstr "E563: Îøèáêà stat(%s): %d" +msgstr "E563: Ñèñòåìíàÿ ôóíêöèÿ stat() äëÿ ôàéëà %s âåðíóëà êîä îøèáêè %d" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer #, c-format msgid "E564: %s is not a directory or a valid cscope database" -msgstr "E564: %s íå ÿâëÿåòñÿ êàòàëîãîì èëè èìåíåì áàçû cscope" +msgstr "" +"E564: Íå ÿâëÿåòñÿ êàòàëîãîì èëè áàçîé äàííûõ cscope óêàçàííîå çíà÷åíèå %s" +# :!~ Restorer msgid "E565: Not allowed to change text or change window" -msgstr "E565: Íå ðàçðåøàåòñÿ èçìåíÿòü òåêñò ëèáî ïåðåõîäèòü â äðóãîå îêíî" +msgstr "E565: Çàïðåùåíà ïðàâêà òåêñòà èëè èçìåíåíèå îêíà" +# :!~ Restorer msgid "E566: Could not create cscope pipes" -msgstr "E566: Íå óäàëîñü ñîçäàòü êîíâåéåðíîå ïîäêëþ÷åíèå ê cscope" +msgstr "E566: Íå óäàëîñü ñîçäàòü êàíàë ïîäêëþ÷åíèÿ ê ïðîãðàììå cscope" +# :!~ Restorer msgid "E567: No cscope connections" -msgstr "E567: Ñîåäèíåíèé ñ cscope íå ñîçäàíî" +msgstr "E567: Îòñóòñòâóåò ïîäêëþ÷åíèå ê áàçå äàííûõ cscope" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer msgid "E568: Duplicate cscope database not added" -msgstr "E568: Äàííàÿ áàçà äàííûõ cscope óæå ïîäñîåäèíåíà" - -msgid "E570: Fatal error in cs_manage_matches" -msgstr "E570: Êðèòè÷åñêàÿ îøèáêà â cs_manage_matches" +msgstr "E568: Óêàçàííàÿ áàçà äàííûõ cscope óæå ïîäêëþ÷åíà" +# :!~ Restorer msgid "" "E571: Sorry, this command is disabled: the Tcl library could not be loaded." msgstr "" -"E571: Ê ñîæàëåíèþ, ýòà êîìàíäà íå ðàáîòàåò, ïîñêîëüêó íå çàãðóæåíà " -"áèáëèîòåêà Tcl" +"E571: Íå óäàëîñü ïîäêëþ÷èòü ôàéë áèáëèîòåêè ÿçûêà Tcl. Êîìàíäà íå âûïîëíåíà" +# :!~ Restorer #, c-format msgid "E572: Exit code %d" -msgstr "E572: Êîä çàâåðøåíèÿ %d" +msgstr "E572: Êîä âîçâðàòà %d" +# :!~ Restorer #, c-format msgid "E573: Invalid server id used: %s" -msgstr "E573: Íåïðàâèëüíûé èäåíòèôèêàòîð ñåðâåðà: %s" +msgstr "E573: Íåäîïóñòèìûé èäåíòèôèêàòîð ñåðâåðà %s" +# :!~ Restorer #, c-format msgid "E574: Unknown register type %d" -msgstr "E574: Íåèçâåñòíûé òèï ðåãèñòðà %d" +msgstr "E574:  ðåãèñòðå íåðàñïîçíàííûé òèï äàííûõ %d" +# #Restorer: îøèáêà E575, ïîäñòàâëÿåòñÿ â ñîîáùåíèå «%sviminfo: %s in line:» +# ~!: earlier msgid "Illegal starting char" -msgstr "Íåäîïóñòèìûé íà÷àëüíûé ñèìâîë" +msgstr "íåäîïóñòèìûé íà÷àëüíûé ñèìâîë" +# #Restorer: âûâîäèòñÿ êàê îøèáêà E576: +# :!~ Restorer msgid "Missing '>'" -msgstr "Ïðîïóùåíà '>'" +msgstr "îòñóòñòâóåò ñèìâîë çàêðûâàþùåé óãëîâîé ñêîáêè â çàïèñè æóðíàëà çàêëàäîê" +# #Restorer: âûâîäèòñÿ êàê îøèáêà E577: +# :!~ Restorer msgid "Illegal register name" -msgstr "Íåäîïóñòèìîå èìÿ ðåãèñòðà" +msgstr "íåäîïóñòèìîå íàèìåíîâàíèå ðåãèñòðà" +# :!~ Restorer msgid "E579: :if nesting too deep" -msgstr "E579: Ñëèøêîì ãëóáîêî âëîæåííûé :if" +msgstr "E579: Ïðåâûøåíî êîëè÷åñòâî âëîæåíèé êîìàíä :if" +# :!~ Restorer msgid "E579: Block nesting too deep" -msgstr "E579: Ñëèøêîì ãëóáîêî âëîæåííûé áëîê" +msgstr "E579: Ïðåâûøåíî êîëè÷åñòâî âëîæåíèé áëîêîâ êîìàíä" +# :!~ Restorer msgid "E580: :endif without :if" -msgstr "E580: :endif áåç :if" +msgstr "E580: Äëÿ êîìàíäû :endif íåò êîìàíäû :if" +# :!~ Restorer msgid "E581: :else without :if" -msgstr "E581: :else áåç :if" +msgstr "E581: Äëÿ êîìàíäû :else íåò êîìàíäà :if" +# :!~ Restorer msgid "E582: :elseif without :if" -msgstr "E582: :elseif áåç :if" +msgstr "E582: Äëÿ êîìàíäû :elseif íåò êîìàíäû :if" +# :!~ Restorer msgid "E583: Multiple :else" -msgstr "E583: Îáíàðóæåíî íåñêîëüêî :else" +msgstr "E583: Îáíàðóæåíî íåñêîëüêî ñëåäóþùèõ îäíà çà äðóãîé êîìàíä :else" +# :!~ Restorer msgid "E584: :elseif after :else" -msgstr "E584: :elseif ïîñëå :else" +msgstr "E584: Êîìàíäà :elseif óêàçàíà ñðàçó ïîñëå êîìàíäû :else" +# :!~ Restorer msgid "E585: :while/:for nesting too deep" -msgstr "E585: Ñëèøêîì ãëóáîêîå âëîæåíèå :while èëè :for" +msgstr "E585: Ïðåâûøåíî êîëè÷åñòâî âëîæåíèé êîìàíä :while èëè :for" +# :!~ Restorer msgid "E586: :continue without :while or :for" -msgstr "E586: :continue áåç :while èëè :for" +msgstr "E586: Êîìàíäà :continue óêàçàíà âíå öèêëà :while èëè :for" +# :!~ Restorer msgid "E587: :break without :while or :for" -msgstr "E587: :break áåç :while èëè :for" +msgstr "E587: Êîìàíäà :break óêàçàíà âíå öèêëà :while èëè :for" +# :!~ Restorer msgid "E588: :endwhile without :while" -msgstr "E588: :endwhile áåç :while" +msgstr "E588: Äëÿ êîìàíäû :endwhile íåò êîìàíäû :while" +# :!~ Restorer msgid "E588: :endfor without :for" -msgstr "E588: :endfor áåç :for" +msgstr "E588: Äëÿ êîìàíäû :endfor íåò êîìàíäû :for" +# :!~ Restorer msgid "E589: 'backupext' and 'patchmode' are equal" -msgstr "E589: Çíà÷åíèÿ îïöèé 'backupext' è 'patchmode' ðàâíû" +msgstr "E589: Êîíôëèêò çíà÷åíèé ïàðàìåòðîâ 'backupext' è 'patchmode'" +# :!~ Restorer msgid "E590: A preview window already exists" -msgstr "E590: Îêíî ïðåäïðîñìîòðà óæå åñòü" +msgstr "E590: Îáíàðóæåíî ñóùåñòâóþùåå îêíî ïðîñìîòðà. Îòìåíà êîìàíäû" +# :!~ Restorer msgid "E591: 'winheight' cannot be smaller than 'winminheight'" msgstr "" -"E591: Çíà÷åíèå îïöèè 'winheight' íå ìîæåò áûòü ìåíüøå çíà÷åíèÿ 'winminheight'" +"E591: Çíà÷åíèå ïàðàìåòðà 'winheight' íå äîëæíî áûòü ìåíüøå çíà÷åíèÿ " +"'winminheight'" +# :!~ Restorer msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'" msgstr "" -"E592: Çíà÷åíèå îïöèè 'winwidth' íå ìîæåò áûòü ìåíüøå çíà÷åíèÿ 'winminwidth'" +"E592: Çíà÷åíèå ïàðàìåòðà 'winwidth' íå äîëæíî áûòü ìåíüøå çíà÷åíèÿ " +"'winminwidth'" +# :!~ Restorer #, c-format msgid "E593: Need at least %d lines" -msgstr "E593: Íóæíî õîòÿ áû %d ñòðîê" +msgstr "E593: Ìèíèìàëüíîå çíà÷åíèå êîëè÷åñòâà ñòðîê %d" +# :!~ Restorer #, c-format msgid "E594: Need at least %d columns" -msgstr "E594: Íóæíî õîòÿ áû %d êîëîíîê" +msgstr "E594: Ìèíèìàëüíîå êîëè÷åñòâî êîëîíîê %d" +# :!~ Restorer msgid "E595: 'showbreak' contains unprintable or wide character" -msgstr "E595: 'showbreak' ñîäåðæèò íåïå÷àòíûé èëè øèðîêèé ñèìâîë" +msgstr "" +"E595: Îáíàðóæåí íåïå÷àòàåìûé ñèìâîë èëè ïîëíîøèðèííûé ñèìâîë â 'showbreak'" +# :!~ Restorer msgid "E596: Invalid font(s)" -msgstr "E596: Íåïðàâèëüíûå øðèôòû" +msgstr "E596: Íåäîïóñòèìîå íàèìåíîâàíèå øðèôòà â" +# :!~ Restorer msgid "E597: Can't select fontset" -msgstr "E597: Íåâîçìîæíî âûáðàòü øðèôòîâîé íàáîð" +msgstr "E597: Íå óäàëîñü íàçíà÷èòü øðèôòîâîé íàáîð" +# :!~ Restorer msgid "E598: Invalid fontset" -msgstr "E598: Íåïðàâèëüíûé øðèôòîâîé íàáîð" +msgstr "E598: Íåäîïóñòèìîå íàèìåíîâàíèå øðèôòîâîãî íàáîðà" +# :!~ Restorer msgid "E599: Value of 'imactivatekey' is invalid" -msgstr "E599: Íåïðàâèëüíîå çíà÷åíèå îïöèè 'imactivatekey'" +msgstr "E599: Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà 'imactivatekey'" +# :!~ Restorer msgid "E600: Missing :endtry" -msgstr "E600: Îòñóòñòâóåò êîìàíäà :endtry" +msgstr "E600: Äëÿ êîìàíäû :try íå óêàçàíà êîìàíäà :endtry" +# :!~ Restorer msgid "E601: :try nesting too deep" -msgstr "E601: Ñëèøêîì ãëóáîêî âëîæåííûé :try" +msgstr "E601: Ïðåâûøåíî êîëè÷åñòâî âëîæåíèé êîìàíä :try" +# :!~ Restorer msgid "E602: :endtry without :try" -msgstr "E602: :endtry áåç :try" +msgstr "E602: Äëÿ êîìàíäû :endtry íåò êîìàíäû :try" +# :!~ Restorer msgid "E603: :catch without :try" -msgstr "E603: :catch áåç :try" +msgstr "E603: Äëÿ êîìàíäû :catch íå óêàçàíà êîìàíäà :try" +# :!~ Restorer msgid "E604: :catch after :finally" -msgstr "E604: :catch ïîñëå :finally" +msgstr "E604: Êîìàíäû :catch óêàçàíà ïîñëå êîìàíäû :finally" +# :!~ Restorer #, c-format msgid "E605: Exception not caught: %s" -msgstr "E605: Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ íå îáðàáîòàíà: %s" +msgstr "E605: Íå îáðàáîòàííàÿ èñêëþ÷èòåëüíàÿ ñèòóàöèÿ %s" +# :!~ Restorer msgid "E606: :finally without :try" -msgstr "E606: :finally áåç :try" +msgstr "E606: Äëÿ êîìàíäû :finally íå óêàçàíà êîìàíäà :try" +# :!~ Restorer msgid "E607: Multiple :finally" -msgstr "E607: Îáíàðóæåíî íåñêîëüêî :finally" +msgstr "E607: Íåñêîëüêî ñëåäóþùèõ îäíà çà äðóãîé êîìàíä :finally" +# :!~ Restorer msgid "E608: Cannot :throw exceptions with 'Vim' prefix" msgstr "" -"E608: Íåâîçìîæíî âûïîëíèòü êîìàíäó :throw äëÿ èñêëþ÷åíèé ñ ïðèñòàâêîé 'Vim'" +"E608:  íàçíà÷åííûõ ïîëüçîâàòåëåì èñêëþ÷åíèÿõ çàïðåùåíî óêàçàíèå ïðèñòàâêè VIM" +# :!~ Restorer #, c-format msgid "E609: Cscope error: %s" -msgstr "E609: Îøèáêà cscope: %s" +msgstr "E609: Ïðîãðàììà cscope âåðíóëà îøèáêó %s" +# #Restorer: âûâîäèòñÿ ïî êîìàíäå `:argdelete` +# :!~ Restorer msgid "E610: No argument to delete" -msgstr "E610: Íåò ïàðàìåòðà äëÿ óäàëåíèÿ" +msgstr "E610: Íåò ñîîòâåòñòâóþùèõ ôàéëîâ äëÿ óäàëåíèÿ èç ñïèñêà àðãóìåíòîâ" +# :!~ Restorer msgid "E611: Using a Special as a Number" -msgstr "E611: Èñïîëüçîâàíèå ñïåöèàëüíîãî çíà÷åíèÿ âìåñòî ÷èñëà" +msgstr "E611: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí Special" +# :!~ Restorer msgid "E612: Too many signs defined" -msgstr "E612: Îïðåäåëåíî ñëèøêîì ìíîãî çíà÷êîâ" +msgstr "E612: Ïðåâûøåíî êîëè÷åñòâî íàçíà÷åíèé çíà÷êîâ" +# :!~ Restorer #, c-format msgid "E613: Unknown printer font: %s" -msgstr "E613: Íåèçâåñòíûé øðèôò ïðèíòåðà: %s" +msgstr "E613: Íå ðàñïîçíàí øðèôò â ïàðàìåòðå 'printfont' %s" +# #Restorer: äîëæåí, ïî èäåå, îòîáðàæàòüñÿ òàêæå `ñîîáùåíèå: <óêàçàííûé ïàðàìåòð>` +# :!~ Restorer msgid "E617: Cannot be changed in the GTK GUI" -msgstr "E617: Íå ìîæåò áûòü èçìåíåíî â ãðàôè÷åñêîì èíòåðôåéñå GTK" +msgstr "E617: Íå äîïóñêàåòñÿ èçìåíåíèå â ãðàôè÷åñêîì èíòåðôåéñå GTK ïàðàìåòðà" +# :!~ Restorer #, c-format msgid "E618: File \"%s\" is not a PostScript resource file" -msgstr "E618: Ôàéë \"%s\" íå ÿâëÿåòñÿ ôàéëîì ðåñóðñîâ PostScript" +msgstr "E618: Ôàéë íå ÿâëÿåòñÿ ôàéëîì îïèñàíèé PostScript \"%s\"" +# :!~ Restorer #, c-format msgid "E619: File \"%s\" is not a supported PostScript resource file" -msgstr "E619: Ôàéë \"%s\" íå ÿâëÿåòñÿ äîïóñòèìûì ôàéëîì ðåñóðñîâ PostScript" +msgstr "E619: Ôàéë íå ÿâëÿåòñÿ äîïóñòèìûì ôàéëîì îïèñàíèé PostScript \"%s\"" +# :!~ Restorer #, c-format msgid "E620: Unable to convert to print encoding \"%s\"" -msgstr "E620: Íåâîçìîæíî ïðåîáðàçîâàòü â êîäèðîâêó ïå÷àòè \"%s\"" +msgstr "" +"E620: Ïðè âûâîäå íà ïå÷àòü íå óäàëîñü âûïîëíèòü èçìåíåíèå êîäèðîâêè íà \"%s\"" +# :!~ Restorer #, c-format msgid "E621: \"%s\" resource file has wrong version" -msgstr "E621: Ôàéë ðåñóðñîâ \"%s\" íåèçâåñòíîé âåðñèè" +msgstr "E621: Íå ïîääåðæèâàåìàÿ âåðñèÿ ôàéëà îïèñàíèé PostScript \"%s\"" +# :!~ Restorer msgid "E622: Could not fork for cscope" -msgstr "E622: Íå óäàëîñü âûïîëíèòü fork() äëÿ cscope" +msgstr "" +"E622: Ñèñòåìíàÿ ôóíêöèÿ fork() äëÿ ïðîãðàììû cscope çàâåðøèëàñü ñ îøèáêîé" +# :!~ Restorer msgid "E623: Could not spawn cscope process" -msgstr "E623: Íå óäàëîñü çàïóñòèòü ïðîöåññ cscope" +msgstr "E623: Íå óäàëîñü ñîçäàíèå íîâîãî ïðîöåññà ïðîãðàììû cscope" +# :!~ Restorer #, c-format msgid "E624: Can't open file \"%s\"" -msgstr "E624: Íåâîçìîæíî îòêðûòü ôàéë \"%s\"" +msgstr "E624: Íå óäàëîñü îòêðûòü ôàéë \"%s\"" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer #, c-format msgid "E625: Cannot open cscope database: %s" -msgstr "E625: Íåâîçìîæíî îòêðûòü áàçó äàííûõ cscope: %s" +msgstr "E625: Íå óäàëîñü îòêðûòü áàçó äàííûõ ïðîãðàììû cscope %s" +# #Restorer: îòîáðàæàåòñÿ ïðè óñòàíîâëåííîì ïàðàìåòðå 'cscopeverbose' +# :!~ Restorer msgid "E626: Cannot get cscope database information" -msgstr "E626: Èíôîðìàöèÿ î áàçå äàííûõ cscope íåäîñòóïíà" +msgstr "E626: Íå óäàëîñü ïîëó÷èòü èíôîðìàöèþ î áàçå äàííûõ ïðîãðàììû cscope" +#, c-format +msgid "E627: Missing colon: %s" +msgstr "E627: Îòñóòñòâóåò ñèìâîë äâîåòî÷èå â êîìàíäå %s" + +#, c-format +msgid "E628: Missing ! or / in: %s" +msgstr "E628: Îòñóòñòâóåò ñèìâîë ! èëè / â êîìàíäå %s" + +# :!~ Restorer #, c-format msgid "E630: %s(): Write while not connected" -msgstr "E630: %s(): çàïèñü áåç ñîåäèíåíèÿ" +msgstr "" +"E630: Ïðè îòñóòñòâèè ïîäêëþ÷åíèÿ ïîñòóïèë çàïðîñ íà çàïèñü èç ôóíêöèè %s()" +# :!~ Restorer #, c-format msgid "E631: %s(): Write failed" -msgstr "E631: Îøèáêà çàïèñè â %s()" +msgstr "E631: Îøèáêà ïðè âûïîëíåíèè çàïèñè ôóíêöèåé %s()" +# :!~ Restorer +msgid "E632: Invalid buffer identifier in getLength" +msgstr "E632: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â ôóíêöèè getLength" + +# :!~ Restorer +msgid "E633: Invalid buffer identifier in getText" +msgstr "E633: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â ôóíêöèè getText" + +# :!~ Restorer +msgid "E634: Invalid buffer identifier in remove" +msgstr "E634: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â ôóíêöèè remove" + +# :!~ Restorer +msgid "E635: Invalid buffer identifier in insert" +msgstr "E635: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â ôóíêöèè insert" + +# :!~ Restorer +msgid "E636: Invalid buffer identifier in create" +msgstr "E636: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå create" + +# :!~ Restorer +msgid "E637: Invalid buffer identifier in startDocumentListen" +msgstr "E637: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå startDocumentListen" + +# :!~ Restorer +msgid "E638: Invalid buffer identifier in stopDocumentListen" +msgstr "E638: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå stopDocumentListen" + +# :!~ Restorer +msgid "E639: Invalid buffer identifier in setTitle" +msgstr "E639: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå setTitle" + +# :!~ Restorer +msgid "E640: Invalid buffer identifier in initDone" +msgstr "E640: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå initDone" + +# :!~ Restorer +msgid "E641: Invalid buffer identifier in setBufferNumber" +msgstr "E641: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå setBufferNumber" + +# :!~ Restorer +#, c-format +msgid "E642: File %s not found in setBufferNumber" +msgstr "E642: Íå óäàëîñü íàéòè óêàçàííûé â êîìàíäå setBufferNumber ôàéë %s" + +# :!~ Restorer +msgid "E643: Invalid buffer identifier in setFullName" +msgstr "E643: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå setFullName" + +# :!~ Restorer +msgid "E644: Invalid buffer identifier in editFile" +msgstr "E644: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå editFile" + +# :!~ Restorer +msgid "E645: Invalid buffer identifier in setVisible" +msgstr "E645: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå setVisible" + +# :!~ Restorer +msgid "E646: Invalid buffer identifier in setModified" +msgstr "E646: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå setModified" + +# :!~ Restorer +msgid "E647: Invalid buffer identifier in setDot" +msgstr "E647: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå setDot" + +# :!~ Restorer +msgid "E648: Invalid buffer identifier in close" +msgstr "E648: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå close" + +# :!~ Restorer +msgid "E649: Invalid buffer identifier in close" +msgstr "E649: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå close" + +# :!~ Restorer +msgid "E650: Invalid buffer identifier in defineAnnoType" +msgstr "E650: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå defineAnnoType" + +# :!~ Restorer +msgid "E651: Invalid buffer identifier in addAnno" +msgstr "E651: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â êîìàíäå addAnno" + +# :!~ Restorer +msgid "E652: Invalid buffer identifier in getAnno" +msgstr "E652: Íåäîïóñòèìûé èäåíòèôèêàòîð áóôåðà â ôóíêöèè getAnno" + +# :!~ Restorer #, c-format msgid "E654: Missing delimiter after search pattern: %s" -msgstr "E654: Ïðîïóùåí ðàçäåëèòåëü ïîñëå øàáëîíà ïîèñêà: %s" +msgstr "E654: Íå óêàçàí ðàçäåëèòåëü ïîñëå ïîèñêîâîãî çàïðîñà %s" +# :!~ Restorer msgid "E655: Too many symbolic links (cycle?)" -msgstr "E655: Ñëèøêîì ìíîãî ñèìâîëè÷åñêèõ ññûëîê (öèêë?)" +msgstr "E655: Öèêëè÷åñêèå ïåðåõîäû ïî ñèìâîëè÷åñêèì ññûëêàì" +# #Restorer: îøèáêà E656: +# :!~ Restorer msgid "NetBeans disallows writes of unmodified buffers" -msgstr "NetBeans çàïðåùàåò çàïèñûâàòü íåèçìåí¸ííûå áóôåðà" +msgstr "â ÈÑÐ NetBeans çàïðåùåíà çàïèñü áóôåðîâ, â êîòîðûõ íåò èçìåíåíèé" +# #Restorer: îøèáêà E657: +# :!~ Restorer msgid "Partial writes disallowed for NetBeans buffers" -msgstr "×àñòè÷íàÿ çàïèñü áóôåðîâ NetBeans íå ðàçðåøåíà" +msgstr "íå äîïóñêàåòñÿ ÷àñòè÷íàÿ çàïèñü áóôåðîâ ñðåäû ðàçðàáîòêè NetBeans" +# :!~ Restorer #, c-format msgid "E658: NetBeans connection lost for buffer %d" -msgstr "E658: Ïîòåðÿíî ñîåäèíåíèå ñ NetBeans äëÿ áóôåðà %d" +msgstr "E658: Ïîòåðÿíî ñîåäèíåíèå ñðåäû ðàçðàáîòêè NetBeans ñ áóôåðîì %d" +# :!~ Restorer msgid "E659: Cannot invoke Python recursively" -msgstr "E659: Íåâîçìîæíî âûïîëíèòü ðåêóðñèâíûé âûçîâ Python" +msgstr "" +"E659:  äàííîé âåðñèè ïðîãðàììû íå äîïóñêàåòñÿ ðåêóðñèâíûé âûçîâ êîìàíä Python" +# :!~ Restorer #, c-format msgid "E661: Sorry, no '%s' help for %s" -msgstr "E661: Ê ñîæàëåíèþ, ñïðàâêà '%s' äëÿ %s îòñóòñòâóåò" +msgstr "E661: Äëÿ ÿçûêà '%s' íå íàéäåíà äîêóìåíòàöèÿ ïî %s" +# :!~ Restorer msgid "E662: At start of changelist" -msgstr "E662:  íà÷àëå ñïèñêà èçìåíåíèé" +msgstr "E662: Äîñòèãíóòà ïåðâàÿ çàïèñü æóðíàëà êîððåêòèðîâîê" +# :!~ Restorer msgid "E663: At end of changelist" -msgstr "E663:  êîíöå ñïèñêà èçìåíåíèé" +msgstr "E663: Äîñòèãíóòà ïîñëåäíÿÿ çàïèñü æóðíàëà êîððåêòèðîâîê" +# :!~ Restorer msgid "E664: Changelist is empty" -msgstr "E664: Ñïèñîê èçìåíåíèé ïóñò" +msgstr "E664: Îòñóòñòâóþò çàïèñè â æóðíàëå êîððåêòèðîâîê" +# :!~ Restorer msgid "E665: Cannot start GUI, no valid font found" msgstr "" -"E665: Íåâîçìîæíî ïåðåéòè â ðåæèì ãðàô. èíòåðôåéñà: íåïðàâèëüíî çàäàíû øðèôòû" +"E665: Íå óäàëîñü çàïóñòèòü ãðàôè÷åñêèé èíòåðôåéñ ïðîãðàììû. Îòñóòñòâóåò øðèôò" +# :!~ Restorer #, c-format msgid "E666: Compiler not supported: %s" -msgstr "E666: Êîìïèëÿòîð íå ïîääåðæèâàåòñÿ: %s" +msgstr "E666: Íå ïîääåðæèâàåòñÿ êîìïèëÿòîð %s" +# #Restorer: â UNIX-ïîäîáíûõ ñèñòåìàõ. Ñì. ïàðàìåòð 'fsync' +# :!~ Restorer msgid "E667: Fsync failed" -msgstr "E667: Íå óäàëîñü âûïîëíèòü âûçîâ fsync()" +msgstr "E667: Ïðîèçîøëà îøèáêà ïðè âûçîâå ñèñòåìíîé ôóíêöèè fsync()" +# :!~ Restorer #, c-format msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\"" msgstr "" -"E668: Ôàéë èíôîðìàöèè î ñîåäèíåíèÿõ NetBeans èìååò íåïðàâèëüíûé ðåæèì " -"äîñòóïà: \"%s\"" +"E668: Îòñóòñòâóþò ïðàâà íà ÷òåíèå êîíôèãóðàöèîííîãî ôàéëà ñîåäèíåíèé ñ ÈÑÐ " +"NetBeans \"%s\"" +# :!~ Restorer msgid "E669: Unprintable character in group name" -msgstr "E669: Íåïå÷àòíûé ñèìâîë â èìåíè ãðóïïû" +msgstr "E669: Íå ïå÷àòàåìûé ñèìâîë â íàèìåíîâàíèè ãðóïïû" +# :!~ Restorer #, c-format msgid "E670: Mix of help file encodings within a language: %s" -msgstr "E670: Ôàéëû ñïðàâêè èñïîëüçóþò ðàçíûå êîäèðîâêè äëÿ îäíîãî ÿçûêà: %s" +msgstr "" +"E670: Äëÿ òîé æå ñàìîé ÿçûêîâîé ãðóïïû èñïîëüçóåòñÿ äðóãàÿ êîäèðîâêà â %s" +# :!~ Restorer #, c-format msgid "E671: Cannot find window title \"%s\"" -msgstr "E671: Îêíî ñ çàãîëîâêîì \"%s\" íå îáíàðóæåíî" +msgstr "E671: Íå íàéäåíî îêíî ñ çàãîëîâêîì \"%s\"" +# :!~ Restorer msgid "E672: Unable to open window inside MDI application" -msgstr "E672: Íåâîçìîæíî îòêðûòü îêíî âíóòðè ïðèëîæåíèÿ MDI" +msgstr "" +"E672: Íå óäàëîñü îòêðûòü îêíî ðåäàêòîðà Vim â äðóãîé ìíîãîäîêóìåíòíîé ïðîãðàììå" +# :!~ Restorer msgid "E673: Incompatible multi-byte encoding and character set" -msgstr "E673: Íåñîâìåñòèìûå ìíîãîáàéòîâàÿ êîäèðîâêà è íàáîð ñèìâîëîâ" +msgstr "E673: Íåñîîòâåòñòâèå ìåæäó ìíîãîáàéòîâîé êîäèðîâêîé è íàáîðîì ñèìâîëîâ" +# :!~ Restorer msgid "E674: printmbcharset cannot be empty with multi-byte encoding." -msgstr "E674: printmbcharset íå ìîæåò áûòü ïóñòûì ïðè ìíîãîáàéòîâîé êîäèðîâêå" +msgstr "" +"E674: Íå çàäàíî çíà÷åíèå ïàðàìåòðà 'printmbcharset' äëÿ ìíîãîáàéòîâîé êîäèðîâêè" +# :!~ Restorer msgid "E675: No default font specified for multi-byte printing." -msgstr "E675: Íåò îïðåäåëåíèÿ øðèôòà ïî óìîë÷àíèþ äëÿ ìíîãîáàéòîâîé ïå÷àòè" +msgstr "E675: Íå çàäàí øðèôò ïî óìîë÷àíèþ ïðè ïå÷àòè â ìíîãîáàéòîâîé êîäèðîâêå" -msgid "E676: No matching autocommands for acwrite buffer" -msgstr "E676: Íåò ïîäõîäÿùèõ àâòîêîìàíä äëÿ áóôåðà acwrite" +# :!~ Restorer +#, c-format +msgid "E676: No matching autocommands for buftype=%s buffer" +msgstr "" +"E676: Îòñóòñòâóþò íåîáõîäèìûå àâòîêîìàíäû, ÷òîáû çàïèñàòü áóôåð c òèïîì %s" +# ~!: earlier msgid "E677: Error writing temp file" msgstr "E677: Îøèáêà çàïèñè âî âðåìåííûé ôàéë" +# :!~ Restorer #, c-format msgid "E678: Invalid character after %s%%[dxouU]" -msgstr "E678: Íåäîïóñòèìûé ñèìâîë ïîñëå %s%%[dxouU]" +msgstr "" +"E678: Íåäîïóñòèìûé ñèìâîë â ñîêðàù¸ííîì ñèìâîëüíîì êëàññå öèôð %s%%[dxouU]" +# #Restorer: âûâîäèòñÿ, íàïðèìåð, ïðè çíà÷åíèè ðåêóðñèè >= 5 +# :!~ Restorer msgid "E679: Recursive loop loading syncolor.vim" -msgstr "E679: Ðåêóðñèâíàÿ ïåòëÿ ïðè çàãðóçêå syncolor.vim" +msgstr "E679: Áåñêîíå÷íàÿ ïîâòîðíàÿ çàãðóçêà êîìàíäíîãî ôàéëà syncolor.vim" +# :!~ Restorer #, c-format msgid "E680: : invalid buffer number" -msgstr "E680: <áóôåð=%d>: íåïðàâèëüíûé íîìåð áóôåðà" +msgstr "E680: Íåäîïóñòèìûé íîìåð áóôåðà â " +# :!~ Restorer msgid "E681: Buffer is not loaded" -msgstr "E681: Áóôåð íå çàãðóæåí" +msgstr "E681: Íå çàãðóæåí óêàçàííûé áóôåð" +# :!~ Restorer msgid "E682: Invalid search pattern or delimiter" -msgstr "E682: Íåïðàâèëüíûé øàáëîí ïîèñêà èëè ðàçäåëèòåëü" +msgstr "E682: Íåäîïóñòèìûé ðàçäåëèòåëü ïîèñêîâîãî øàáëîíà èëè ñàì øàáëîí" +# :!~ Restorer msgid "E683: File name missing or invalid pattern" -msgstr "E683: Íåò èìåíè ôàéëà èëè íåïðàâèëüíûé øàáëîí" +msgstr "E683: Íåäîïóñòèìûé øàáëîí ïîèñêà èëè íå óêàçàíî íàèìåíîâàíèå ôàéëà" +# :!~ Restorer #, c-format msgid "E684: List index out of range: %ld" -msgstr "E684: Èíäåêñ ñïèñêà çà ïðåäåëàìè äèàïàçîíà: %ld" +msgstr "E684: Âûõîä çà ãðàíèöû äèàïàçîíà äàííûõ òèï List äëÿ èíäåêñà %ld" +# :!~ Restorer #, c-format msgid "E685: Internal error: %s" -msgstr "E685: Âíóòðåííÿÿ îøèáêà: %s" +msgstr "E685: Âíóòðåííÿÿ îøèáêà. Ôóíêöèÿ %s" +# :!~ Restorer #, c-format msgid "E686: Argument of %s must be a List" -msgstr "E686: Ïàðàìåòð %s äîëæåí áûòü ñïèñêîì" +msgstr "E686:  ôóíêöèè %s òèï àðãóìåíòà äîëæåí áûòü List" +# :!~ Restorer msgid "E687: Less targets than List items" -msgstr "E687: Öåëåé ìåíüøå, ÷åì ýëåìåíòîâ â ñïèñêå" +msgstr "" +"E687: Êîëè÷åñòâî ïåðåìåííûõ ìåíüøå êîëè÷åñòâà ïðèñâàèâàåìûõ çíà÷åíèé âûðàæåíèÿ" +# :!~ Restorer msgid "E688: More targets than List items" -msgstr "E688: Öåëåé áîëüøå, ÷åì ýëåìåíòîâ â ñïèñêå" +msgstr "" +"E688: Êîëè÷åñòâî ïåðåìåííûõ áîëüøå êîëè÷åñòâà ïðèñâàèâàåìûõ çíà÷åíèé âûðàæåíèÿ" +# :!~ Restorer msgid "E689: Can only index a List, Dictionary or Blob" -msgstr "E689: Èíäåêñèðîâàòü ìîæíî òîëüêî ñïèñîê, ñëîâàðü èëè áëîá" +msgstr "E689: Èíäåêñ ðàçðåø¸í òîëüêî äëÿ òèïà äàííûõ List, Dictionary èëè BLOB" +# :!~ Restorer msgid "E690: Missing \"in\" after :for" -msgstr "E690: Ïðîïóùåíî \"in\" ïîñëå :for" +msgstr "E690: Íå óêàçàíî êëþ÷åâîå ñëîâî \"in\" ïîñëå êîìàíäû :for" +# :!~ Restorer msgid "E691: Can only compare List with List" -msgstr "E691: Ñïèñîê ìîæíî ñðàâíèâàòü òîëüêî ñî ñïèñêîì" +msgstr "E691: Îïåðàöèè ñðàâíåíèÿ äëÿ òèïà List äîïóñòèìû òîëüêî ñ òèïîì List" +# :!~ Restorer msgid "E692: Invalid operation for List" -msgstr "E692: Íåäîïóñòèìàÿ îïåðàöèÿ äëÿ ñïèñêà" +msgstr "E692: Íåäîïóñòèìàÿ îïåðàöèÿ ñðàâíåíèÿ äëÿ òèïà äàííûõ List" +# :!~ Restorer msgid "E694: Invalid operation for Funcrefs" -msgstr "E694: Íåäîïóñòèìàÿ îïåðàöèÿ äëÿ ññûëîê íà ôóíêöèè" +msgstr "E694: Íåäîïóñòèìàÿ îïåðàöèÿ ñðàâíåíèÿ äëÿ òèïà äàííûõ Funcref" +# :!~ Restorer msgid "E695: Cannot index a Funcref" -msgstr "E695: Íåëüçÿ èíäåêñèðîâàòü ññûëêó íà ôóíêöèþ" +msgstr "E695: Íå äîïóñêàåòñÿ óêàçàíèå èíäåêñà äëÿ ïåðåìåííûõ ñ òèïîì Funcref" +# :!~ Restorer #, c-format msgid "E696: Missing comma in List: %s" -msgstr "E696: Ïðîïóùåíà çàïÿòàÿ â ñïèñêå: %s" +msgstr "" +"E696:  äàííûõ òèï List íå óêàçàí ñèìâîë çàïÿòîé, êàê ðàçäåëèòåëü ýëåìåíòîâ %s" +# :!~ Restorer #, c-format msgid "E697: Missing end of List ']': %s" -msgstr "E697: Ïðîïóùåíî îêîí÷àíèå ñïèñêà ']': %s" +msgstr "E697: Íå óêàçàíà çàêðûâàþùàÿ êâàäðàòíàÿ ñêîáêà â äàííûõ òèïà List %s" +# :!~ Restorer msgid "E698: Variable nested too deep for making a copy" -msgstr "E698: Ñëèøêîì ãëóáîêî âëîæåííûå ïåðåìåííûå äëÿ êîïèðîâàíèÿ" +msgstr "E698: Íå óäàëîñü âûïîëíèòü êîïèðîâàíèå. Áîëüøàÿ âëîæåííîñòü ïåðåìåííûõ" +# :!~ Restorer msgid "E699: Too many arguments" -msgstr "E699: Ñëèøêîì ìíîãî ïàðàìåòðîâ" +msgstr "E699: Ïðåâûøåíèå êîëè÷åñòâà àðãóìåíòîâ" +# :!~ Restorer #, c-format msgid "E700: Unknown function: %s" -msgstr "E700: Íåèçâåñòíàÿ ôóíêöèÿ: %s" +msgstr "E700: Íå ðàñïîçíàíà ôóíêöèÿ %s" +# :!~ Restorer msgid "E701: Invalid type for len()" -msgstr "E701: Íåïðàâèëüíûé òèï äëÿ ôóíêöèè len()" +msgstr "E701:  ôóíêöèþ len() ïåðåäàí àðãóìåíò ñ íåäîïóñòèìûì òèïîì äàííûõ" +# :!~ Restorer msgid "E702: Sort compare function failed" -msgstr "E702: Íåóäà÷íîå çàâåðøåíèå ôóíêöèè ñðàâíåíèÿ ïðè ñîðòèðîâêå" +msgstr "E702: Îøèáêà ïðè âûïîëíåíèè ñðàâíåíèÿ â ôóíêöèè ñîðòèðîâêè" +# :!~ Restorer msgid "E703: Using a Funcref as a Number" -msgstr "E703: Èñïîëüçîâàíèå ññûëêè íà ôóíêöèþ âìåñòî ÷èñëà" +msgstr "E703: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí Funcref" +# :!~ Restorer #, c-format msgid "E704: Funcref variable name must start with a capital: %s" msgstr "" -"E704: Èìÿ ïåðåìåííîé ññûëêè íà ôóíêöèþ äîëæíî íà÷èíàòüñÿ ñ çàãëàâíîé áóêâû: " -"%s" +"E704: Íàèìåíîâàíèå ïåðåìåííîé ñ òèïîì Funcref äîëæíî áûòü ñ ïðîïèñíîé áóêâû %s" +# :!~ Restorer #, c-format msgid "E705: Variable name conflicts with existing function: %s" -msgstr "E705: Èìÿ ïåðåìåííîé êîíôëèêòóåò ñ ñóùåñòâóþùåé ôóíêöèåé: %s" +msgstr "E705: Íàèìåíîâàíèÿ ïåðåìåííîé è ôóíêöèè ñîâïàäàþò %s" +# :!~ Restorer +#| msgid "E712: Argument of %s must be a List or Dictionary" +msgid "E706: Argument of %s must be a List, String or Dictionary" +msgstr "E706:  ôóíêöèè %s òèï àðãóìåíòà äîëæåí áûòü List, String èëè Dictionary" + +# :!~ Restorer #, c-format msgid "E707: Function name conflicts with variable: %s" -msgstr "E707: Èìÿ ôóíêöèè êîíôëèêòóåò ñ ïåðåìåííîé: %s" +msgstr "E707: Íàèìåíîâàíèÿ ôóíêöèè è ïåðåìåííîé ñîâïàäàþò %s" +# :!~ Restorer msgid "E708: [:] must come last" -msgstr "E708: [:] äîëæíî èäòè ïîñëå ïåðåìåííîé" +msgstr "E708: Äèàïàçîí èíäåêñîâ óêàçûâàåòñÿ ïîñëå íàèìåíîâàíèÿ ïåðåìåííîé" +# :!~ Restorer msgid "E709: [:] requires a List or Blob value" -msgstr "E709: [:] òðåáóåò óêàçàíèÿ ñïèñêà èëè áëîáà" +msgstr "E709: Äèàïàçîí èíäåêñîâ äîïóñòèì äëÿ òèïà äàííûõ List èëè BLOB" +# :!~ Restorer msgid "E710: List value has more items than targets" -msgstr "E710: Ýëåìåíòîâ ñïèñêà-çíà÷åíèÿ áîëüøå, ÷åì â öåëè" +msgstr "E710: Çíà÷åíèé âûðàæåíèÿ áîëüøå, ÷åì óêàçàííûé äèàïàçîí ïåðåìåííîé" +# :!~ Restorer msgid "E711: List value does not have enough items" -msgstr "E711: Ñïèñîê-çíà÷åíèå íå ñîäåðæèò äîñòàòî÷íî ýëåìåíòîâ" +msgstr "E711: Çíà÷åíèé âûðàæåíèÿ ìåíüøå, ÷åì óêàçàííûé äèàïàçîí ïåðåìåííîé" +# :!~ Restorer #, c-format msgid "E712: Argument of %s must be a List or Dictionary" -msgstr "E712: Ïàðàìåòð %s äîëæåí áûòü ñïèñêîì èëè ñëîâàð¸ì" +msgstr "E712:  ôóíêöèè %s òèï àðãóìåíòà äîëæåí áûòü List èëè Dictionary" +# :!~ Restorer msgid "E713: Cannot use empty key for Dictionary" -msgstr "E713: Íåâîçìîæíî èñïîëüçîâàòü ïóñòîé êëþ÷ äëÿ ñëîâàðÿ" +msgstr "E713: Òðåáóåòñÿ óêàçàòü íàèìåíîâàíèå êëþ÷à äëÿ òèïà Dictionary" +# :!~ Restorer msgid "E714: List required" -msgstr "E714: Òðåáóåòñÿ ñïèñîê" +msgstr "E714: Òèï äàííûõ äîëæåí áûòü List" +# :!~ Restorer msgid "E715: Dictionary required" -msgstr "E715: Òðåáóåòñÿ ñëîâàðü" +msgstr "E715: Òèï äàííûõ äîëæåí áûòü Dictionary" +# :!~ Restorer #, c-format msgid "E716: Key not present in Dictionary: \"%s\"" -msgstr "E716: Íåò êëþ÷à â ñëîâàðå: \"%s\"" +msgstr "E716:  òèïå äàííûõ Dictionary îòñóòñòâóåò êëþ÷ \"%s\"" +# :!~ Restorer msgid "E717: Dictionary entry already exists" -msgstr "E717: Çàïèñü óæå ñóùåñòâóåò â ñëîâàðå" +msgstr "E717: Çàïèñü óæå ñóùåñòâóåò â òèïå äàííûõ Dictionary" +# :!~ Restorer msgid "E718: Funcref required" -msgstr "E718: Òðåáóåòñÿ ññûëêà íà ôóíêöèþ" +msgstr "E718: Òèï äàííûõ äîëæåí áûòü Funcref" +# :!~ Restorer msgid "E719: Cannot slice a Dictionary" -msgstr "E719: Íåâîçìîæíî èñïîëüçîâàòü [:] ñî ñëîâàð¸ì" +msgstr "E719: Íå äîïóñêàåòñÿ óêàçàíèå äèàïàçîíà äëÿ òèïà äàííûõ Dictionary" +# :!~ Restorer #, c-format msgid "E720: Missing colon in Dictionary: %s" -msgstr "E720: Ïðîïóùåíî äâîåòî÷èå â ñëîâàðå: %s" +msgstr "" +"E720:  òèïå äàííûõ Dictionary íå óêàçàíî äâîåòî÷èå, êàê ðàçäåëèòåëü êëþ÷à è " +"çíà÷åíèÿ %s" +# :!~ Restorer #, c-format msgid "E721: Duplicate key in Dictionary: \"%s\"" -msgstr "E721: Ïîâòîð êëþ÷à â ñëîâàðå: \"%s\"" +msgstr "E721:  òèïå äàííûõ Dictionary îáíàðóæåí ïîâòîð êëþ÷à \"%s\"" +# :!~ Restorer #, c-format msgid "E722: Missing comma in Dictionary: %s" -msgstr "E722: Ïðîïóùåíà çàïÿòàÿ â ñëîâàðå: %s" +msgstr "" +"E722:  òèïå äàííûõ Dictionary íå óêàçàíà çàïÿòàÿ, êàê ðàçäåëèòåëü çàïèñåé %s" +# :!~ Restorer #, c-format msgid "E723: Missing end of Dictionary '}': %s" -msgstr "E723: Ïðîïóùåíî îêîí÷àíèå ñëîâàðÿ '}': %s" +msgstr "" +"E723: Äëÿ òèïà äàííûõ Dictionary íå óêàçàíà çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà %s" +# :!~ Restorer msgid "E724: Variable nested too deep for displaying" -msgstr "E724: Ñëèøêîì ãëóáîêî âëîæåííûå ïåðåìåííûå äëÿ îòîáðàæåíèÿ" +msgstr "E724: Íå óäàëîñü îòîáðàçèòü ðåçóëüòàò. Áîëüøàÿ âëîæåííîñòü ïåðåìåííûõ" +# :!~ Restorer #, c-format msgid "E725: Calling dict function without Dictionary: %s" -msgstr "E725: Âûçîâ ôóíêöèè dict áåç ñëîâàðÿ: %s" +msgstr "E725: Âûçîâ ôóíêöèè ñ àòðèáóòîì dict âíå òèïà Dictionary %s" +# :!~ Restorer msgid "E726: Stride is zero" -msgstr "E726: Íóëåâîé øàã" +msgstr "E726: Çàäàíî íóëåâîå çíà÷åíèå øàãà ïðèðàùåíèÿ" +# :!~ Restorer msgid "E727: Start past end" -msgstr "E727: Íà÷àëî ïîñëå êîíöà" +msgstr "E727: Íåäîïóñòèìàÿ âåëè÷èíà êîíå÷íîãî çíà÷åíèÿ" +# :!~ Restorer msgid "E728: Using a Dictionary as a Number" -msgstr "E728: Èñïîëüçîâàíèå ñëîâàðÿ âìåñòî ÷èñëà" +msgstr "E728: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí Dictionary" +# :!~ Restorer msgid "E729: Using a Funcref as a String" -msgstr "E729: Èñïîëüçîâàíèå ññûëêè íà ôóíêöèþ âìåñòî ñòðîêè" +msgstr "E729: Îæèäàëñÿ òèï äàííûõ String, à ïîëó÷åí Funcref" +# :!~ Restorer msgid "E730: Using a List as a String" -msgstr "E730: Èñïîëüçîâàíèå ñïèñêà âìåñòî ñòðîêè" +msgstr "E730: Îæèäàëñÿ òèï äàííûõ String, à ïîëó÷åí List" +# :!~ Restorer msgid "E731: Using a Dictionary as a String" -msgstr "E731: Èñïîëüçîâàíèå ñëîâàðÿ âìåñòî ñòðîêè" +msgstr "E731: Îæèäàëñÿ òèï äàííûõ String, à ïîëó÷åí Dictionary" +# :!~ Restorer msgid "E732: Using :endfor with :while" -msgstr "E732: Èñïîëüçîâàíèå :endfor ñ :while" +msgstr "E732: Äëÿ êîìàíäû :while óêàçàíà êîìàíäà :endfor" +# :!~ Restorer msgid "E733: Using :endwhile with :for" -msgstr "E733: Èñïîëüçîâàíèå :endwhile ñ :for" +msgstr "E733: Äëÿ êîìàíäû :for óêàçàíà êîìàíäà :endwhile" +# :!~ Restorer #, c-format msgid "E734: Wrong variable type for %s=" -msgstr "E734: Íåïðàâèëüíûé òèï ïåðåìåííîé äëÿ %s=" +msgstr "E734: Íåäîïóñòèìûé òèï îïåðàíäà äëÿ äàííîé îïåðàöèè %s=" +# :!~ Restorer msgid "E735: Can only compare Dictionary with Dictionary" -msgstr "E735: Ñëîâàðü ìîæíî ñðàâíèâàòü òîëüêî ñî ñëîâàð¸ì" +msgstr "" +"E735: Îïåðàöèè ñðàâíåíèÿ äëÿ òèïà Dictionary äîïóñòèìû òîëüêî ñ Dictionary" +# :!~ Restorer msgid "E736: Invalid operation for Dictionary" -msgstr "E736: Íåäîïóñòèìàÿ îïåðàöèÿ äëÿ ñëîâàðÿ" +msgstr "E736: Íåäîïóñòèìàÿ îïåðàöèÿ ñðàâíåíèÿ äëÿ òèïà äàííûõ Dictionary" +# :!~ Restorer #, c-format msgid "E737: Key already exists: %s" -msgstr "E737: Êëþ÷ %s óæå ñóùåñòâóåò" +msgstr "E737:  îáúåäèíÿåìûõ äàííûõ ïðèñóòñòâóåò îäèí è òîò æå êëþ÷ %s" +# :!~ Restorer #, c-format msgid "E738: Can't list variables for %s" -msgstr "E738: Íåâîçìîæíî îòîáðàçèòü ïåðåìåííûå äëÿ %s" +msgstr "E738: Íå óäàëîñü ïîëó÷èòü çíà÷åíèÿ óêàçàííûõ ïåðåìåííûõ %s" +# :!~ Restorer #, c-format msgid "E739: Cannot create directory: %s" -msgstr "E739: Íåâîçìîæíî ñîçäàòü êàòàëîã: %s" +msgstr "E739: Íå óäàëîñü ñîçäàòü êàòàëîã %s" +# :!~ Restorer #, c-format msgid "E740: Too many arguments for function %s" -msgstr "E740: Ñëèøêîì ìíîãî ïàðàìåòðîâ äëÿ ôóíêöèè %s" +msgstr "E740: Ïðåâûøåíî êîëè÷åñòâî àðãóìåíòîâ â ôóíêöèè %s" +# :!~ Restorer msgid "E741: Value is locked" -msgstr "E741: Çíà÷åíèå çàáëîêèðîâàíî" +msgstr "E741: Îáíàðóæåíà áëîêèðîâêà çíà÷åíèÿ" +# :!~ Restorer #, c-format msgid "E741: Value is locked: %s" -msgstr "E741: Çíà÷åíèå %s çàáëîêèðîâàíî" +msgstr "E741: Îáíàðóæåíà áëîêèðîâêà çíà÷åíèÿ %s" +# :!~ Restorer msgid "E742: Cannot change value" -msgstr "E742: Íåâîçìîæíî èçìåíèòü çíà÷åíèå" +msgstr "E742: Íå äîïóñêàåòñÿ èçìåíåíèå íåèçìåíÿåìîãî çíà÷åíèÿ" +# :!~ Restorer #, c-format msgid "E742: Cannot change value of %s" -msgstr "E742: Íåâîçìîæíî èçìåíèòü çíà÷åíèå %s" +msgstr "E742: Íå äîïóñêàåòñÿ èçìåíåíèå íåèçìåíÿåìîãî çíà÷åíèÿ %s" +# :!~ Restorer msgid "E743: Variable nested too deep for (un)lock" -msgstr "E743: Ñëèøêîì ãëóáîêî âëîæåííûå ïåðåìåííûå äëÿ (ðàç) áëîêèðîâêè" +msgstr "" +"E743: Ñîñòîÿíèå áëîêèðîâêè íå ìîæåò áûòü èçìåíåíî. Áîëüøàÿ âëîæåííîñòü " +"ïåðåìåííûõ" +# :!~ Restorer msgid "E744: NetBeans does not allow changes in read-only files" -msgstr "E744: NetBeans íå ðàçðåøàåò èçìåíåíèÿ â ôàéëàõ òîëüêî äëÿ ÷òåíèÿ" +msgstr "" +"E744:  ÈÑÐ NetBeans íå äîïóñêàåòñÿ èçìåíåíèå ôàéëîâ îòêðûòûõ òîëüêî äëÿ ÷òåíèÿ" +# :!~ Restorer msgid "E745: Using a List as a Number" -msgstr "E745: Èñïîëüçîâàíèå ñïèñêà âìåñòî ÷èñëà" +msgstr "E745: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí List" +# :!~ Restorer #, c-format msgid "E746: Function name does not match script file name: %s" -msgstr "E746: Èìÿ ôóíêöèè íå ñîîòâåòñòâóåò èìåíè ôàéëà ñöåíàðèÿ: %s" +msgstr "" +"E746: Íàèìåíîâàíèå ôàéëà íå ñîâïàäàåò ñ íàèìåíîâàíèåì â îáúÿâëåíèè ôóíêöèè %s" +# :!~ Restorer msgid "E747: Cannot change directory, buffer is modified (add ! to override)" msgstr "" -"E747: Ñìåíà êàòàëîãà íåâîçìîæíà, áóôåð èçìåí¸í (äîáàâüòå !, ÷òîáû îáîéòè " -"ïðîâåðêó)" +"E747:  áóôåðå åñòü ïðàâêè (÷òîáû ñìåíèòü êàòàëîã, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E748: No previously used register" -msgstr "E748: Íåò ïðåäûäóùåãî èñïîëüçîâàííîãî ðåãèñòðà" +msgstr "" +"E748:  òåêóùåì ñåàíñå ðàáîòû íå èñïîëüçîâàëèñü ðåãèñòðû äëÿ ïîâòîðà îïåðàöèé" +# :!~ Restorer msgid "E749: Empty buffer" -msgstr "E749: Áóôåð ïóñò" +msgstr "E749: Áóôåð íå ñîäåðæèò òåêñò" +# :!~ Restorer msgid "E750: First use \":profile start {fname}\"" -msgstr "E750:  ïåðâûé ðàç èñïîëüçóéòå \":profile start {èìÿ-ôàéëà}\"" +msgstr "" +"E750: ×òîáû ïðîâåñòè àíàëèç ðàáîòû, ââåäèòå êîìàíäó \":profile start {ôàéë}\"" +# :!~ Restorer msgid "E751: Output file name must not have region name" -msgstr "E751: Èìÿ âûõîäíîãî ôàéëà íå äîëæíî ñîäåðæàòü íàçâàíèå ðåãèîíà" +msgstr "" +"E751:  íàèìåíîâàíèè ðåçóëüòèðóþùåãî ôàéëà íå äîïóñêàåòñÿ óêàçàíèå ðåãèîíà" +# :!~ Restorer msgid "E752: No previous spell replacement" -msgstr "E752: Íåò ïðåäûäóùåé çàìåíû ïðàâîïèñàíèÿ" +msgstr "" +"E752:  òåêóùåì ñåàíñå ðàáîòû ïîäîáíîå èñïðàâëåíèå íàïèñàíèÿ åù¸ íå âûïîëíÿëàñü" +# :!~ Restorer #, c-format msgid "E753: Not found: %s" -msgstr "E753: Íå íàéäåíî: %s" +msgstr "E753: Íå íàéäåí %s" +# :!~ Restorer #, c-format msgid "E754: Only up to %d regions supported" -msgstr "E754: Ïîääåðæèâàåòñÿ íå áîëåå %d ðåãèîíîâ" +msgstr "E754: Äîëæíî áûòü óêàçàíî íå áîëåå %d ôàéëîâ äëÿ ðàçëè÷íûõ ðåãèîíîâ" +# :!~ Restorer #, c-format msgid "E755: Invalid region in %s" -msgstr "E755: Íåäîïóñòèìûé ðåãèîí â %s" +msgstr "E755: Íåäîïóñòèìîå íàèìåíîâàíèå ðåãèîíà â ôàéëå %s" +# :!~ Restorer msgid "E756: Spell checking is not possible" -msgstr "E756: Ïðîâåðêà ïðàâîïèñàíèÿ íåâîçìîæíà" +msgstr "E756: Ïðîâåðêà ïðàâîïèñàíèÿ íå àêòèâèðîâàíà" +# :!~ Restorer msgid "E757: This does not look like a spell file" -msgstr "E757: Ýòî íå ïîõîæå íà ôàéë ïðàâîïèñàíèÿ" +msgstr "E757: Íåêîððåêòíûé çàãîëîâîê â äàííîì ôàéëå ïðàâèë íàïèñàíèÿ" +# :!~ Restorer msgid "E758: Truncated spell file" -msgstr "E758: Ôàéë ïðàâîïèñàíèÿ îáðåçàí" +msgstr "E758: Ðàçìåð ôàéëà íå ñîîòâåòñòâóåò òðåáóåìîìó. Âîçìîæíî, ôàéë ïîâðåæä¸í" +# :!~ Restorer msgid "E759: Format error in spell file" -msgstr "E759: Îøèáêà ôîðìàòà â ôàéëå ïðàâîïèñàíèÿ" +msgstr "E759: Íåäîïóñòèìûé ôîðìàò ôàéëà ïðàâèë íàïèñàíèÿ" +# :!~ Restorer #, c-format msgid "E760: No word count in %s" -msgstr "E760: Êîëè÷åñòâî ñëîâ íå óêàçàíî â %s" +msgstr "E760: Íå çàäàíî êîëè÷åñòâî ñëîâ â ôàéëå %s" +# :!~ Restorer msgid "E761: Format error in affix file FOL, LOW or UPP" -msgstr "E761: Îøèáêà ôîðìàòà â ôàéëå àôôèêñîâ FOL, LOW èëè UPP" +msgstr "E761:  ôàéëå àôôèêñîâ îòñóòñòâóåò ñòðîêà ñ ïðàâèëîì FOL, LOW èëè UPP" +# :!~ Restorer msgid "E762: Character in FOL, LOW or UPP is out of range" -msgstr "E762: Ñèìâîë â FOL, LOW èëè UPP çà ïðåäåëàìè äèàïàçîíà" +msgstr "E762: Íåñîîòâåòñòâèå êîëè÷åñòâà ñèìâîëîâ â ïðàâèëàõ FOL, LOW èëè UPP" +# :!~ Restorer msgid "E763: Word characters differ between spell files" -msgstr "E763: Ñèìâîëû ñëîâ îòëè÷àþòñÿ â ôàéëàõ ïðàâîïèñàíèÿ" +msgstr "E763: Êîäèðîâêà ñèìâîëîâ ðàçëè÷àåòñÿ â ôàéëàõ ïðàâîïèñàíèÿ" +# :!~ Restorer #, c-format msgid "E764: Option '%s' is not set" -msgstr "E764: Îïöèÿ '%s' íå óñòàíîâëåíà" +msgstr "E764: Íå çàäàíî çíà÷åíèå ïàðàìåòðà '%s'" +# :!~ Restorer #, c-format msgid "E765: 'spellfile' does not have %d entries" -msgstr "E765: 'spellfile' íå ñîäåðæèò %d ýëåìåíòîâ" +msgstr "" +"E765:  ñïèñêå çíà÷åíèé ïàðàìåòðà 'spellfile' îòñóòñòâóåò çàïèñü ïîä íîìåðîì %d" +# :!~ Restorer msgid "E766: Insufficient arguments for printf()" -msgstr "E766: Íåäîñòàòî÷íî ïàðàìåòðîâ äëÿ printf()" +msgstr "E766:  ôóíêöèè printf() íåäîñòàòî÷íîå êîëè÷åñòâî àðãóìåíòîâ" +# :!~ Restorer msgid "E767: Too many arguments for printf()" -msgstr "E767: Ñëèøêîì ìíîãî ïàðàìåòðîâ äëÿ printf()" +msgstr "E767:  ôóíêöèè printf() ïðåâûøåíî êîëè÷åñòâî àðãóìåíòîâ" +# :!~ Restorer #, c-format msgid "E768: Swap file exists: %s (:silent! overrides)" -msgstr "E768: Ñâîï-ôàéë ñóùåñòâóåò: %s (:silent!, ÷òîáû îáîéòè ïðîâåðêó)" +msgstr "" +"E768: Îáíàðóæåí ôàéë ïîäêà÷êè %s (÷òîáû èãíîðèðîâàòü, èñïîëüçóéòå :silent!)" +# :!~ Restorer #, c-format msgid "E769: Missing ] after %s[" -msgstr "E769: Ïðîïóùåíà ] ïîñëå %s[" +msgstr "E769: Íå óêàçàíà çàêðûâàþùàÿ êâàäðàòíàÿ ñêîáêà äëÿ %s[" +# :!~ Restorer msgid "E770: Unsupported section in spell file" -msgstr "E770: Íåïîääåðæèâàåìûé ðàçäåë â ôàéëå ïðàâîïèñàíèÿ" +msgstr "E770: Íåïîääåðæèâàåìûé ôîðìàò ñåêöèè â ôàéëå ïðàâèë íàïèñàíèÿ" +# :!~ Restorer msgid "E771: Old spell file, needs to be updated" -msgstr "E771: Ñòàðûé ôàéë ïðàâîïèñàíèÿ, òðåáóåòñÿ åãî îáíîâëåíèå" +msgstr "E771: Òðåáóåòñÿ îáíîâëåíèå óñòàðåâøåé âåðñèè ôàéëà ïðàâèë íàïèñàíèÿ" +# :!~ Restorer msgid "E772: Spell file is for newer version of Vim" -msgstr "E772: Ôàéë ïðàâîïèñàíèÿ ïðåäíàçíà÷åí äëÿ áîëåå íîâîé âåðñèè Vim" +msgstr "" +"E772: Ôàéë ïðàâèë íàïèñàíèÿ ïðåäíàçíà÷åí äëÿ áîëåå íîâîé âåðñèè ïðîãðàììû Vim" +# :!~ Restorer #, c-format msgid "E773: Symlink loop for \"%s\"" -msgstr "E773: Ïåòëÿ ñèìâîëüíûõ ññûëîê äëÿ \"%s\"" +msgstr "E773: Öèêëè÷åñêèå ñèìâîëüíûå ññûëêè äëÿ \"%s\"" +# :!~ Restorer msgid "E774: 'operatorfunc' is empty" -msgstr "E774: Çíà÷åíèå îïöèè 'operatorfunc' íå çàäàíî" +msgstr "E774: Îòñóòñòâóåò çíà÷åíèå â ïàðàìåòðå 'operatorfunc'" +# :!~ Restorer msgid "E775: Eval feature not available" -msgstr "E775: Îñîáåííîñòü +eval íåäîñòóïíà" +msgstr "E775: Êîìïîíåíò +eval íåäîñòóïåí â ýòîé âåðñèè ïðîãðàììû" +# :!~ Restorer msgid "E776: No location list" -msgstr "E776: Íåò ñïèñêà ðàñïîëîæåíèé" +msgstr "E776: Îòñóòñòâóåò ëîêàëüíûé ñïèñîê ðåçóëüòàòîâ" +# :!~ Restorer msgid "E777: String or List expected" -msgstr "E777: Òðåáóåòñÿ ñòðîêà èëè ñïèñîê" +msgstr "E777: Òèï äàííûõ äîëæåí áûòü String èëè List" +# :!~ Restorer #, c-format msgid "E778: This does not look like a .sug file: %s" -msgstr "E778: Ýòî íå ïîõîæå íà ôàéë .sug: %s" +msgstr "E778: Íåêîððåêòíûé çàãîëîâîê â ôàéëå âàðèàíòîâ íàïèñàíèÿ %s" +# :!~ Restorer #, c-format msgid "E779: Old .sug file, needs to be updated: %s" -msgstr "E779: Ñòàðûé ôàéë .sug, òðåáóåòñÿ åãî îáíîâëåíèå: %s" +msgstr "" +"E779: Òðåáóåòñÿ îáíîâëåíèå óñòàðåâøåé âåðñèè ôàéëà âàðèàíòîâ íàïèñàíèÿ %s" +# :!~ Restorer #, c-format msgid "E780: .sug file is for newer version of Vim: %s" -msgstr "E780: Ôàéë .sug äëÿ áîëåå íîâîé âåðñèè Vim: %s" +msgstr "" +"E780: Òðåáóåòñÿ íîâàÿ âåðñèÿ ïðîãðàììà Vim äëÿ ôàéëà âàðèàíòîâ íàïèñàíèÿ %s" +# :!~ Restorer #, c-format msgid "E781: .sug file doesn't match .spl file: %s" -msgstr "E781: Ôàéë .sug íå ñîîòâåòñòâóåò ôàéëó .spl: %s" +msgstr "" +"E781: Íåñîîòâåòñòâèå ôàéëà ïðàâèë íàïèñàíèÿ è ôàéëà âàðèàíòîâ íàïèñàíèÿ %s" +# :!~ Restorer #, c-format msgid "E782: Error while reading .sug file: %s" -msgstr "E782: Îøèáêà ïðè ÷òåíèè ôàéëà .sug: %s" +msgstr "E782: Îøèáêà ïðè ñ÷èòûâàíèè ôàéëà âàðèàíòîâ íàïèñàíèÿ %s" +# :!~ Restorer msgid "E783: Duplicate char in MAP entry" -msgstr "E783: Ïîâòîðÿþùèéñÿ ñèìâîë â ýëåìåíòå MAP" +msgstr "E783: Îáíàðóæåí ïîâòîð ñèìâîëà â ïðàâèëå MAP" +# :!~ Restorer msgid "E784: Cannot close last tab page" -msgstr "E784: Íåëüçÿ çàêðûòü ïîñëåäíþþ âêëàäêó" +msgstr "" +"E784: Êîìàíäà íå âûïîëíåíà. Äëÿ ðàáîòû ïðîãðàììû òðåáóåòñÿ õîòÿ áû îäíà âêëàäêà" +# :!~ Restorer msgid "E785: complete() can only be used in Insert mode" -msgstr "E785: complete() ìîæåò èñïîëüçîâàòüñÿ òîëüêî â ðåæèìå Âñòàâêè" +msgstr "E785: Ôóíêöèÿ complete() ìîæåò áûòü âûçâàíà òîëüêî äëÿ ðåæèìà âñòàâêè" +# :!~ Restorer msgid "E786: Range not allowed" -msgstr "E786: Äèàïàçîí íå äîïóñêàåòñÿ" +msgstr "E786: Íå äîïóñêàåòñÿ óêàçàíèå äèàïàçîíà â êà÷åñòâå çíà÷åíèÿ àðãóìåíòà" +# :!~ Restorer msgid "E787: Buffer changed unexpectedly" -msgstr "E787: Áóôåð íåîæèäàííî èçìåíèëñÿ" +msgstr "E787: Ñîäåðæèìîå áóôåðà áûëî íåïðåäâèäåííî èçìåíåíî" +# :!~ Restorer msgid "E788: Not allowed to edit another buffer now" -msgstr "E788: Ñåé÷àñ íå äîïóñêàåòñÿ ðåäàêòèðîâàíèå äðóãîãî áóôåðà" +msgstr "" +"E788: Çàïðåùåíà ïðàâêà áóôåðîâ, åñëè åñòü èçìåíåíèÿ â áóôåðå òîëüêî äëÿ ÷òåíèÿ" +# :!~ Restorer #, c-format msgid "E789: Missing ']': %s" -msgstr "E789: Ïðîïóùåíà ']': %s" +msgstr "" +"E789: Íå óêàçàíà çàêðûâàþùàÿ êâàäðàòíàÿ ñêîáêà ïðè çàäàíèè êëþ÷åâîãî ñëîâà %s" +# :!~ Restorer msgid "E790: undojoin is not allowed after undo" -msgstr "E790: Îáúåäèíåíèå îòìåí íå äîïóñêàåòñÿ ïîñëå îòìåíû" +msgstr "E790: Çàïðåùåíî ïðèìåíåíèå êîìàíäû :undojoin ïîñëå îòìåíû èçìåíåíèé" +# :!~ Restorer msgid "E791: Empty keymap entry" -msgstr "E791: Ïóñòàÿ çàïèñü ðàñêëàäêè êëàâèàòóðû" +msgstr "" +"E791:  ôàéëå ñ ðàñêëàäêîé êëàâèàòóðû îòñóòñòâóåò çàïèñü ïðåîáðàçîâàíèÿ ñèìâîëà" +# :!~ Restorer msgid "E792: Empty menu name" -msgstr "E792: Ïóñòîå èìÿ ìåíþ" +msgstr "E792: Íå çàäàíî íàèìåíîâàíèå ïóíêòà ìåíþ" +# :!~ Restorer msgid "E793: No other buffer in diff mode is modifiable" -msgstr "E793: Áîëüøå íåò èçìåíÿåìûõ áóôåðîâ â ðåæèìå îòëè÷èé" +msgstr "" +"E793: Íåò äðóãèõ áóôåðîâ â ðåæèìå ñðàâíåíèÿ è äîñòóïíûõ äëÿ ðåäàêòèðîâàíèÿ" +# :!~ Restorer msgid "E794: Cannot set variable in the sandbox" -msgstr "E794: Íåâîçìîæíî èçìåíèòü ïåðåìåííóþ â ïåñî÷íèöå" +msgstr "E794: Íå äîïóñêàåòñÿ èçìåíåíèå ïåðåìåííîé â èçîëèðîâàííîé ñðåäå" +# :!~ Restorer #, c-format msgid "E794: Cannot set variable in the sandbox: \"%s\"" -msgstr "E794: Íåâîçìîæíî èçìåíèòü ïåðåìåííóþ â ïåñî÷íèöå: \"%s\"" +msgstr "E794: Íå äîïóñêàåòñÿ èçìåíåíèå ïåðåìåííîé â èçîëèðîâàííîé ñðåäå \"%s\"" +# :!~ Restorer msgid "E795: Cannot delete variable" -msgstr "E795: Íåâîçìîæíî óäàëèòü ïåðåìåííóþ" +msgstr "E795: Íå äîïóñêàåòñÿ óäàëåíèå íåèçìåíÿåìîé ïåðåìåííîé" +# :!~ Restorer #, c-format msgid "E795: Cannot delete variable %s" -msgstr "E795: Íåâîçìîæíî óäàëèòü ïåðåìåííóþ %s" +msgstr "E795: Íå äîïóñêàåòñÿ óäàëåíèå íåèçìåíÿåìîé ïåðåìåííîé %s" +# #Restorer: îøèáêà E796: +# :!~ Restorer msgid "writing to device disabled with 'opendevice' option" -msgstr "çàïèñü â óñòðîéñòâî îòêëþ÷åíà îïöèåé 'opendevice'" +msgstr "çàïèñü íà óñòðîéñòâî îòêëþ÷åíà ÷åðåç çíà÷åíèå ïàðàìåòðà 'opendevice'" +# :!~ Restorer msgid "E797: SpellFileMissing autocommand deleted buffer" -msgstr "E797: Áóôåð óäàë¸í ïðè âûïîëíåíèè àâòîêîìàíäû SpellFileMissing" +msgstr "" +"E797: Áóôåð áûë óäàë¸í ïðè èñïîëíåíèè àâòîêîìàíä ïî ñîáûòèþ SpellFileMissing" +# :!~ Restorer #, c-format msgid "E798: ID is reserved for \":match\": %d" -msgstr "E798: Èäåíòèôèêàòîð çàðåçåðâèðîâàí çà \":match\": %d" +msgstr "E798: Èäåíòèôèêàòîð %d çàðåçåðâèðîâàí çà êîìàíäîé \":match\"" +# :!~ Restorer #, c-format msgid "E799: Invalid ID: %d (must be greater than or equal to 1)" -msgstr "E799: Íåâåðíûé èäåíòèôèêàòîð: %d (äîëæåí áûòü áîëüøå èëè ðàâåí 1)" +msgstr "" +"E799: Èäåíòèôèêàòîð äîëæåí áûòü áîëüøå èëè ðàâåí 1. Íåäîïóñòèìûé íîìåð %d" +# :!~ Restorer msgid "E800: Arabic cannot be used: Not enabled at compile time\n" -msgstr "E800: Ïîääåðæêà àðàáñêîãî ÿçûêà âûêëþ÷åíà ïðè êîìïèëÿöèè\n" +msgstr "" +"E800: Ïîääåðæêà àðàáñêîé ïèñüìåííîñòè íå áûëà àêòèâèðîâàíà ïðè êîìïèëÿöèè\n" +# :!~ Restorer #, c-format msgid "E801: ID already taken: %d" -msgstr "E801: Èäåíòèôèêàòîð óæå çàíÿò: %d" +msgstr "E801: Èäåíòèôèêàòîð ñ òàêèì íîìåðîì óæå çàíÿò %d" +# :!~ Restorer #, c-format msgid "E802: Invalid ID: %d (must be greater than or equal to 1)" -msgstr "E802: Íåâåðíûé èäåíòèôèêàòîð: %d (äîëæåí áûòü áîëüøå èëè ðàâåí 1)" +msgstr "" +"E802: Èäåíòèôèêàòîð äîëæåí áûòü áîëüøå èëè ðàâåí 1. Íåäîïóñòèìûé íîìåð %d" +# :!~ Restorer #, c-format msgid "E803: ID not found: %d" -msgstr "E803: Èäåíòèôèêàòîð íå íàéäåí: %d" +msgstr "E803: Íå íàéäåí èäåíòèôèêàöèîííûé íîìåð %d" +# :!~ Restorer #, no-c-format msgid "E804: Cannot use '%' with Float" -msgstr "E804: Íåâîçìîæíî èñïîëüçîâàòü '%' ñ ÷èñëîì ñ ïëàâàþùåé òî÷êîé" +msgstr "E804: Îïåðàöèÿ äåëåíèå ñ îñòàòêîì íå ïðèìåíèìà ê äàííûì òèïà Float" +# :!~ Restorer msgid "E805: Using a Float as a Number" -msgstr "E805: Èñïîëüçîâàíèå ÷èñëà ñ ïëàâàþùåé òî÷êîé âìåñòî öåëîãî" +msgstr "E805: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí Float" +# :!~ Restorer msgid "E806: Using a Float as a String" -msgstr "E806: Èñïîëüçîâàíèå ÷èñëà ñ ïëàâàþùåé òî÷êîé âìåñòî ñòðîêè" +msgstr "E806: Îæèäàëñÿ òèï äàííûõ String, à ïîëó÷åí Float" +# :!~ Restorer msgid "E807: Expected Float argument for printf()" -msgstr "E807: Îæèäàëñÿ ïàðàìåòð òèïà ñ ïëàâàþùåé òî÷êîé äëÿ printf()" +msgstr "E807:  ôóíêöèè printf() îæèäàëñÿ òèï àðãóìåíòà Float" +# :!~ Restorer msgid "E808: Number or Float required" -msgstr "E808: Òðåáóåòñÿ öåëîå ÷èñëî èëè ÷èñëî ñ ïëàâàþùåé òî÷êîé" +msgstr "E808: Òèï äàííûõ äîëæåí áûòü Number èëè Float" +# :!~ Restorer msgid "E809: #< is not available without the +eval feature" -msgstr "E809: #< íå äîñòóïíî áåç îñîáåííîñòè +eval" +msgstr "E809: Ñïåöñèìâîë #< íåäîñòóïåí ïðè îòêëþ÷¸ííîì êîìïîíåíòå +eval" +# :!~ Restorer msgid "E810: Cannot read or write temp files" -msgstr "E810: Íåâîçìîæíî ïðî÷èòàòü èëè çàïèñàòü âðåìåííûå ôàéëû" +msgstr "E810: Íå óäàëîñü âûïîëíèòü ñ÷èòûâàíèå èëè çàïèñü âðåìåííûõ ôàéëîâ" +# :!~ Restorer msgid "E811: Not allowed to change buffer information now" -msgstr "E811: Ñåé÷àñ íå äîïóñêàåòñÿ èçìåíåíèå èíôîðìàöèè î áóôåðå" +msgstr "" +"E811: Áëîêèðîâàíà ïðàâêà èëè óäàëåíèå áóôåðà, à òàêæå ïåðåõîä â äðóãîé áóôåð" +# :!~ Restorer msgid "E812: Autocommands changed buffer or buffer name" -msgstr "E812: Àâòîêîìàíäû èçìåíèëè áóôåð èëè èìÿ áóôåðà" +msgstr "" +"E812: Äåéñòâèÿ àâòîêîìàíä âûçâàëè èçìåíåíèå ñîäåðæèìîãî èëè íàèìåíîâàíèÿ áóôåðà" +# :!~ Restorer msgid "E813: Cannot close autocmd or popup window" -msgstr "E813: Íåëüçÿ çàêðûòü îêíî àâòîêîìàíä èëè âñïëûâàþùåå îêíî" +msgstr "" +"E813: Íå óäàëîñü çàêðûòü âñïëûâàþùåå îêíî èëè îêíî ïðè èñïîëíåíèè àâòîêîìàíä" +# :!~ Restorer msgid "E814: Cannot close window, only autocmd window would remain" -msgstr "E814: Íåëüçÿ çàêðûòü îêíî: îñòàíåòñÿ òîëüêî îêíî àâòîêîìàíä" +msgstr "E814: Íå óäàëîñü çàêðûòü òåêóùåå îêíî. Èñïîëíÿþòñÿ àêòèâíûå àâòîêîìàíäû" +# :!~ Restorer msgid "" "E815: Sorry, this command is disabled, the MzScheme libraries could not be " "loaded." msgstr "" -"E815: Ê ñîæàëåíèþ, ýòà êîìàíäà íå ðàáîòàåò, ïîñêîëüêó íå çàãðóæåíà " -"áèáëèîòåêà MzScheme" +"E815: Íå óäàëîñü ïîäêëþ÷èòü ôàéëû áèáëèîòåê ÿçûêà MzScheme. Êîìàíäà íå " +"âûïîëíåíà" +# :!~ Restorer msgid "E816: Cannot read patch output" -msgstr "E816: Íåâîçìîæíî ïðî÷èòàòü âûâîä patch" +msgstr "E816: Íå óäàëîñü ñîçäàòü ðåçóëüòèðóþùèé ôàéë ïðèìåíåíèÿ èñïðàâëåíèé" +# :!~ Restorer msgid "E817: Blowfish big/little endian use wrong" msgstr "" -"E817: Íåïðàâèëüíîå èñïîëüçîâàíèå îáðàòíîãî/ïðÿìîãî ïîðÿäêà áàéòîâ â Blowfish" +"E817:  àëãîðèòìå Blowfish èñïîëüçîâàí íåäîïóñòèìûé ïîðÿäîê ñëåäîâàíèÿ áàéò" +# :!~ Restorer msgid "E818: sha256 test failed" -msgstr "E818: Íå óäàëîñü âûïîëíèòü òåñò sha256" +msgstr "E818: Ïðè ïðîâåðêå îáíàðóæåíû îøèáêè â ìåõàíèçìå øèôðîâàíèÿ ïî SHA-256" +# :!~ Restorer msgid "E819: Blowfish test failed" -msgstr "E819: Íå óäàëîñü âûïîëíèòü òåñò Blowfish" +msgstr "" +"E819: Ïðè ïðîâåðêå îáíàðóæåíû îøèáêè â ìåõàíèçìå øèôðîâàíèÿ ïî àëãîðèòìó " +"Blowfish" +# :!~ Restorer msgid "E820: sizeof(uint32_t) != 4" -msgstr "E820: sizeof(uint32_t) != 4" +msgstr "" +"E820: Ðàçìåðíîñòü 32-ðàçðÿäíîãî áåççíàêîâîãî öåëîãî íå ðàâíà ÷åòûð¸ì îêòåòàì" +# :!~ Restorer msgid "E821: File is encrypted with unknown method" -msgstr "E821: Ôàéë çàøèôðîâàí íåèçâåñòíûì ìåòîäîì" +msgstr "E821:  ôàéëå èñïîëüçóåòñÿ íåèçâåñòíûé ìåòîä øèôðîâàíèÿ" +# :!~ Restorer #, c-format msgid "E822: Cannot open undo file for reading: %s" -msgstr "E822: Íåâîçìîæíî îòêðûòü ôàéë îòìåí äëÿ ÷òåíèÿ: %s" +msgstr "E822: Íå óäàëîñü îòêðûòü íà ÷òåíèå ôàéë èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E823: Not an undo file: %s" -msgstr "E823: Ýòî íå ôàéë îòìåí: %s" +msgstr "E823: Ôàéë ïîâðåæä¸í èëè íå ÿâëÿåòñÿ ôàéëîì èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E824: Incompatible undo file: %s" -msgstr "E824: Íåñîâìåñòèìûé ôàéë îòìåí: %s" +msgstr "E824: Íå ïîääåðæèâàåìàÿ äàííîé ïðîãðàììîé Vim âåðñèÿ ôàéëà èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E825: Corrupted undo file (%s): %s" -msgstr "E825: Ôàéë îòìåí ïîâðåæä¸í (%s): %s" +msgstr "E825: Îáíàðóæåíî ïîâðåæäåíèå %s â ôàéëå èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E826: Undo file decryption failed: %s" -msgstr "E826: Íå óäàëîñü äåøèôðîâàòü ôàéë îòìåí: %s" +msgstr "E826: Îøèáêà ïðè ðàñøèôðîâêå ôàéëà èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E827: Undo file is encrypted: %s" -msgstr "E827: Ôàéë îòìåí çàøèôðîâàí: %s" +msgstr "" +"E827: Íå ïîääåðæèâàåìûé äàííîé ïðîãðàììîé Vim øèôðîâàííûé ôàéë èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E828: Cannot open undo file for writing: %s" -msgstr "E828: Íåâîçìîæíî îòêðûòü ôàéë îòìåí äëÿ çàïèñè: %s" +msgstr "E828: Íå óäàëîñü îòêðûòü íà çàïèñü ôàéë èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E829: Write error in undo file: %s" -msgstr "E829: Îøèáêà ïðè çàïèñè ôàéëà îòìåí: %s" +msgstr "E829: Îøèáêà ïðè çàïèñè ôàéëà èçìåíåíèé %s" +# :!~ Restorer #, c-format msgid "E830: Undo number %ld not found" -msgstr "E830: Íå íàéäåíà îòìåíà íîìåð %ld" - -msgid "E831: bf_key_init() called with empty password" -msgstr "E831: bf_key_init() âûçâàí ñ ïóñòûì ïàðîëåì" +msgstr "E830: Íå íàéäåíî èçìåíåíèå íîìåð %ld" +# :!~ Restorer #, c-format msgid "E832: Non-encrypted file has encrypted undo file: %s" -msgstr "E832: Íåçàøèôðîâàííûé ôàéë èìååò çàøèôðîâàííûé ôàéë îòìåí: %s" +msgstr "E832: Ðåäàêòèðóåìûé ôàéë íå øèôðîâàí, íî øèôðîâàí åãî ôàéë èçìåíåíèé %s" +# :!~ Restorer #, c-format -msgid "" -"E833: %s is encrypted and this version of Vim does not support encryption" -msgstr "E833: %s çàøèôðîâàí, à ýòà âåðñèÿ Vim íå ïîääåðæèâàåò øèôðîâàíèå" +msgid "E833: %s is encrypted and this version of Vim does not support encryption" +msgstr "" +"E833: Äàííàÿ âåðñèÿ ïðîãðàììû íå ïîääåðæèâàåò øèôðîâàíèå è îáíàðóæåí " +"øèôðîâàííûé ôàéë %s" +# :!~ Restorer msgid "E834: Conflicts with value of 'listchars'" -msgstr "E834: Êîíôëèêòóåò ñî çíà÷åíèåì 'listchars'" +msgstr "E834: Êîíôëèêò çíà÷åíèé ïàðàìåòðîâ 'ambiwidth' è 'listchars'" +# :!~ Restorer msgid "E835: Conflicts with value of 'fillchars'" -msgstr "E835: Êîíôëèêòóåò ñî çíà÷åíèåì 'fillchars'" +msgstr "E835: Êîíôëèêò çíà÷åíèé ïàðàìåòðîâ 'ambiwidth' è 'fillchars'" +# :!~ Restorer msgid "E836: This Vim cannot execute :python after using :py3" -msgstr "E836:  ýòîé âåðñèè Vim íåëüçÿ âûïîëíèòü :python ïîñëå :py3" +msgstr "" +"E836:  äàííîé âåðñèè ïðîãðàììû çàïðåù¸í âûçîâ êîìàíäû :python ïîñëå êîìàíäû :" +"py3" +# :!~ Restorer msgid "E837: This Vim cannot execute :py3 after using :python" -msgstr "E837:  ýòîé âåðñèè Vim íåëüçÿ âûïîëíèòü :py3 ïîñëå :python" +msgstr "" +"E837:  äàííîé âåðñèè ïðîãðàììû çàïðåù¸í âûçîâ êîìàíäû :py3 ïîñëå êîìàíäû :" +"python" +# :!~ Restorer msgid "E838: NetBeans is not supported with this GUI" -msgstr "E838: NetBeans íå ïîääåðæèâàåòñÿ ñ ýòèì ãðàôè÷åñêèì èíòåðôåéñîì" +msgstr "" +"E838: Ñðåäà ðàçðàáîòêè NetBeans íå ïîääåðæèâàåòñÿ ñ ýòèì ãðàôè÷åñêèì " +"èíòåðôåéñîì" +# :!~ Restorer msgid "E840: Completion function deleted text" -msgstr "E840: Ôóíêöèÿ àâòîäîïîëíåíèÿ óäàëèëà òåêñò" +msgstr "" +"E840: Ôóíêöèÿ, çàäàííàÿ ïîëüçîâàòåëåì äëÿ ïîäñòàíîâêè, âûçâàëà óäàëåíèå òåêñòà" +# :!~ Restorer msgid "E841: Reserved name, cannot be used for user defined command" msgstr "" -"E841: Èìÿ çàðåçåðâèðîâàíî è íå ìîæåò èñïîëüçîâàòüñÿ äëÿ êîìàíäû ïîëüçîâàòåëÿ" +"E841: Çàðåçåðâèðîâàííûå ñëîâà çàïðåùåíû â íàèìåíîâàíèÿõ êîìàíä ïîëüçîâàòåëÿ" +# :!~ Restorer msgid "E842: No line number to use for \"\"" -msgstr "E842: Íåò íîìåðà ñòðîêè äëÿ çàìåíû \"\"" +msgstr "" +"E842: Îòñóòñòâóåò íîìåð ñòðîêè äëÿ çàìåùåíèÿ â êîìàíäå :source ñïåöñèìâîëà " +"\"\"" +# :!~ Restorer msgid "E843: Error while updating swap file crypt" -msgstr "E843: Îøèáêà ïðè îáíîâëåíèè øèôðîâàíèÿ ñâîï-ôàéëà" +msgstr "E843: Îøèáêà ïðè îáíîâëåíèè øèôðîâàííîãî ôàéëà ïîäêà÷êè" +# :!~ Restorer msgid "E844: Invalid cchar value" -msgstr "E844: Íåäîïóñòèìîå çíà÷åíèå cchar" +msgstr "E844: Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà cchar" +# ~!: earlier msgid "E845: Insufficient memory, word list will be incomplete" -msgstr "E845: Íåäîñòàòî÷íî îïåðàòèâíîé ïàìÿòè — ñïèñîê ñëîâ áóäåò íåïîëîí" +msgstr "E845: Ñïèñîê ñëîâ çàïîëíåí ÷àñòè÷íî. Íåäîñòàòî÷íî îïåðàòèâíîé ïàìÿòè" +# #Restorer: `E846: Íå óêàçàí êîä êëàâèøè äëÿ ïàðàìåòðà: <óêàçàííûé ïàðàìåòð>` +# :!~ Restorer msgid "E846: Key code not set" -msgstr "E846: Êîä êëàâèøè íå óñòàíîâëåí" +msgstr "E846: Íå óêàçàí êîä êëàâèøè äëÿ ïàðàìåòðà" +# :!~ Restorer msgid "E847: Too many syntax includes" -msgstr "E847: Ñëèøêîì ìíîãî ñèíòàêñè÷åñêèõ âêëþ÷åíèé" +msgstr "" +"E847: Ïðåâûøåíî êîëè÷åñòâî ïîäêëþ÷àåìûõ ôàéëîâ ñ ïðàâèëàìè ïîäñâåòêè ñèíòàêñèñà" +# :!~ Restorer msgid "E848: Too many syntax clusters" -msgstr "E848: Ñëèøêîì ìíîãî ñèíòàêñè÷åñêèõ êëàñòåðîâ" +msgstr "E848: Ïðåâûøåíî êîëè÷åñòâî êîëëåêöèé ãðóïï ñèíòàêñèñà" +# :!~ Restorer msgid "E849: Too many highlight and syntax groups" -msgstr "E849: Ñëèøêîì ìíîãî ãðóïï ïîäñâåòêè è ñèíòàêñèñà" +msgstr "E849: Ïðåâûøåíî êîëè÷åñòâî ãðóïï ïîäñâåòêè è ñèíòàêñèñà" +# :!~ Restorer msgid "E850: Invalid register name" -msgstr "E850: Íåäîïóñòèìîå èìÿ ðåãèñòðà" +msgstr "" +"E850: Íå ïîääåðæèâàåòñÿ ñèñòåìíûé áóôåð îáìåíà. Ðåãèñòðû * è + íåäîïóñòèìû" +# #Restorer: äëÿ UNIX-ïîäîáíûõ ñèñòåì +# :!~ Restorer msgid "E851: Failed to create a new process for the GUI" -msgstr "E851: Íåâîçìîæíî ñîçäàòü íîâûé ïðîöåññ äëÿ ãðàô. èíòåðôåéñà" +msgstr "" +"E851: Ñáîé ïðè ñîçäàíèè íîâîãî ïðîöåññà ïðîãðàììû äëÿ çàïóñêà ãðàôè÷åñêîãî " +"èíòåðôåéñà" +# #Restorer: äëÿ UNIX-ïîäîáíûõ ñèñòåì +# :!~ Restorer msgid "E852: The child process failed to start the GUI" -msgstr "E852: Ïðîöåññó-ïîòîìêó íå óäàëîñü çàïóñòèòü ãðàô. èíòåðôåéñ" +msgstr "" +"E852: Äî÷åðíèì ïðîöåññîì ïðîãðàììû íå âûïîëíåí çàïóñê ãðàôè÷åñêîãî èíòåðôåéñà" +# :!~ Restorer #, c-format msgid "E853: Duplicate argument name: %s" -msgstr "E853: Ïîâòîðÿþùååñÿ èìÿ ïàðàìåòðà: %s" +msgstr "E853: Ïîâòîðíîå óêàçàíèå íàèìåíîâàíèÿ àðãóìåíòà %s" +# :!~ Restorer msgid "E854: Path too long for completion" -msgstr "E854: Ñëèøêîì áîëüøîé ïóòü äëÿ àâòîäîïîëíåíèÿ" +msgstr "E854: Ïðåâûøåíà äëèíà ìàðøðóòà ïðè ïîäñòàíîâêå" +# :!~ Restorer msgid "E855: Autocommands caused command to abort" -msgstr "E855: Âûïîëíåíèå êîìàíäû ïðåðâàíî èç-çà àâòîêîìàíä" +msgstr "E855: Èñïîëíåíèå êîìàíäû ïðåðâàíî ïî ïðè÷èíå äåéñòâèé àâòîêîìàíä" +# :!~ Restorer msgid "" "E856: \"assert_fails()\" second argument must be a string or a list with one " "or two strings" msgstr "" -"E856: Âòîðîé ïàðàìåòð \"assert_fails()\" äîëæåí áûòü ñòðîêîé ëèáî ñïèñêîì èç " -"îäíîé èëè äâóõ ñòðîê" +"E856:  ôóíêöèè assert_fails() àðãóìåíò íîìåð 2 äîëæåí áûòü ñòðîêîé èëè " +"ñïèñêîì èç îäíîé ëèáî äâóõ ñòðîê" +# :!~ Restorer #, c-format msgid "E857: Dictionary key \"%s\" required" -msgstr "E857: Òðåáóåòñÿ êëþ÷ \"%s\" â ñëîâàðå" +msgstr "E857: Äîëæåí áûòü çàäàí ñëîâàðíûé êëþ÷ \"%s\"" +# :!~ Restorer msgid "E858: Eval did not return a valid python object" -msgstr "E858: Eval íå âîçâðàòèë äîïóñòèìîãî îáúåêòà python" +msgstr "E858: Ðåçóëüòàò âûðàæåíèÿ íå ÿâëÿåòñÿ äîïóñòèìûì îáúåêòîì ÿçûêà Python" +# :!~ Restorer msgid "E859: Failed to convert returned python object to a Vim value" msgstr "" -"E859: Íå óäàëîñü ïðåîáðàçîâàòü âîçâðàù¸ííûé îáúåêò python â çíà÷åíèå VIM" +"E859: Îøèáêà ïðåîáðàçîâàíèÿ îáúåêòà ÿçûêà Python â òèï äàííûõ ïðîãðàììû Vim" -msgid "E860: Need 'id' and 'type' with 'both'" -msgstr "E860: Ïðè óêàçàíèè êëþ÷à 'both' íåîáõîäèìû òàêæå 'id' è 'type'" +# :!~ Restorer +msgid "E860: Need 'id' and 'type' or 'types' with 'both'" +msgstr "" +"E860: Åñëè çàäàí êëþ÷ 'both', óêàæèòå çíà÷åíèå êëþ÷åé 'id' è 'type' èëè 'types'" +# :!~ Restorer msgid "E861: Cannot open a second popup with a terminal" -msgstr "E861: Íåëüçÿ îòêðûòü åù¸ îäíî âñïëûâàþùåå îêíî ñ òåðìèíàëîì" +msgstr "" +"E861: Íå äîïóñêàåòñÿ îòêðûòèå åù¸ îäíîãî âñïëûâàþùåãî îêíà ñîäåðæàùåãî òåðìèíàë" +# :!~ Restorer msgid "E862: Cannot use g: here" -msgstr "E862: Çäåñü íåâîçìîæíî èñïîëüçîâàòü g:" +msgstr "E862: Íå äîïóñêàåòñÿ óêàçàíèå â ôóíêöèè ñ àòðèáóòîì dict ïðèñòàâêè g:" +# :!~ Restorer msgid "E863: Not allowed for a terminal in a popup window" -msgstr "E863: Íå ðàçðåøåíî äëÿ òåðìèíàëà âî âñïëûâàþùåì îêíå" +msgstr "" +"E863: Êîìàíäà çàïðåùåíà äëÿ âñïëûâàþùåãî îêíî ñîäåðæàùåìó áóôåð òåðìèíàëà" +# :!~ Restorer #, no-c-format msgid "" "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be " "used" msgstr "" -"E864: ïîñëå \\%#= ìîæåò èäòè òîëüêî 0, 1 èëè 2. Áóäåò ïðèìåí¸í " -"àâòîìàòè÷åñêèé âûáîð ìàøèíû" +"E864: Äëÿ ìåòàñèìâîëà \\%#= äîïóñòèìû 0, 1 èëè 2. Ìåõàíèçì ïîèñêà íàçíà÷àåòñÿ " +"àâòîìàòè÷åñêè" +# :!~ Restorer msgid "E865: (NFA) Regexp end encountered prematurely" -msgstr "E865: (ÍÊÀ) íåîæèäàííûé êîíåö ðåãóëÿðíîãî âûðàæåíèÿ" +msgstr "E865: ÍÊÀ. Îøèáêà ñèíòàêñèñà ðåãóëÿðíîãî âûðàæåíèÿ" +# :!~ Restorer #, c-format msgid "E866: (NFA regexp) Misplaced %c" -msgstr "E866: (ðåã. âûðàæåíèå ÍÊÀ) íåîæèäàííûé %c" +msgstr "E866: ÍÊÀ. Çäåñü íå äîïóñêàåòñÿ ñèìâîë %c" +# :!~ Restorer #, c-format msgid "E867: (NFA regexp) Unknown operator '\\z%c'" -msgstr "E867: (ðåã. âûðàæåíèå ÍÊÀ) íåèçâåñòíûé îïåðàòîð '\\z%c'" +msgstr "E867: ÍÊÀ. Íåäîïóñòèìûé ìåòàñèìâîë \\z%c" +# :!~ Restorer #, c-format msgid "E867: (NFA regexp) Unknown operator '\\%%%c'" -msgstr "E867: (ðåã. âûðàæåíèå ÍÊÀ) íåèçâåñòíûé îïåðàòîð '\\%%%c'" +msgstr "E867: ÍÊÀ. Íåäîïóñòèìûé ìåòàñèìâîë \\%%%c" +# :!~ Restorer msgid "E868: Error building NFA with equivalence class!" -msgstr "E868: Îøèáêà ïðè ñîçäàíèè ÍÊÀ ñ êëàññîì ýêâèâàëåíòíîñòè!" +msgstr "E868: ÍÊÀ. Íå óäàëîñü ñîçäàòü êëàññ ñèìâîëüíûé ýêâèâàëåíò" +# :!~ Restorer #, c-format msgid "E869: (NFA regexp) Unknown operator '\\@%c'" -msgstr "E869: (ðåã. âûðàæåíèå ÍÊÀ) íåèçâåñòíûé îïåðàòîð '\\@%c'" +msgstr "E869: ÍÊÀ. Íå óäàëîñü ðàñïîçíàòü êâàíòèôèêàòîð \\@%c" +# :!~ Restorer msgid "E870: (NFA regexp) Error reading repetition limits" -msgstr "E870: (ðåã. âûðàæåíèå ÍÊÀ) îøèáêà ïðè ÷òåíèè ãðàíèö ïîâòîðåíèÿ" +msgstr "E870: ÍÊÀ. Óêàçàíû íåäîïóñòèìûå çíà÷åíèÿ â èíòåðâàëüíîì êâàíòèôèêàòîðå" +# :!~ Restorer msgid "E871: (NFA regexp) Can't have a multi follow a multi" -msgstr "E871: (ðåã. âûðàæåíèå ÍÊÀ) ìíîæåñòâî íå ìîæåò ñëåäîâàòü çà ìíîæåñòâîì" +msgstr "E871: ÍÊÀ. Íå äîïóñêàåòñÿ óêàçûâàòü êâàíòèôèêàòîðà äëÿ êâàíòèôèêàòîðà" +# :!~ Restorer msgid "E872: (NFA regexp) Too many '('" -msgstr "E872: (ðåã. âûðàæåíèå ÍÊÀ) ñëèøêîì ìíîãî '('" +msgstr "E872: ÍÊÀ. Ïðåâûøåíî êîëè÷åñòâî ïîäâûðàæåíèé âèäà \\(" +# :!~ Restorer msgid "E873: (NFA regexp) proper termination error" -msgstr "E873: (ðåã. âûðàæåíèå ÍÊÀ) îøèáêà êîððåêòíîãî çàâåðøåíèÿ" +msgstr "E873: ÍÊÀ. Îòñóòñòâóåò ïàðíàÿ çàêðûâàþùàÿ êðóãëàÿ ñêîáêà" +# :!~ Restorer msgid "E874: (NFA regexp) Could not pop the stack!" -msgstr "E874: (ðåã. âûðàæåíèå ÍÊÀ) íåâîçìîæíî âçÿòü èç ñòåêà!" +msgstr "E874: ÍÊÀ. Íå óäàëîñü ïîëó÷èòü çàïèñü èç ñòåêà ïîñòôèêñíûõ çàïèñåé" +# :!~ Restorer msgid "" "E875: (NFA regexp) (While converting from postfix to NFA), too many states " "left on stack" -msgstr "" -"E875: (ðåã. âûðàæåíèå ÍÊÀ) â ñòåêå îñòàëîñü ñëèøêîì ìíîãî ñîñòîÿíèé (ïðè " -"ïðåîáðàçîâàíèè èç postfix â ÍÊÀ)" +msgstr "E875: ÍÊÀ. Íå óäàëîñü ïðåîáðàçîâàòü âñå ïîñòôèêñíûå çàïèñè" +# :!~ Restorer msgid "E876: (NFA regexp) Not enough space to store the whole NFA" -msgstr "E876: (ðåã. âûðàæåíèå ÍÊÀ) íåäîñòàòî÷íî ìåñòà äëÿ õðàíåíèÿ âñåãî ÍÊÀ" - -#, c-format -msgid "E877: (NFA regexp) Invalid character class: %d" -msgstr "E877: (ðåã. âûðàæåíèå ÍÊÀ) íåïðàâèëüíûé êëàññ ñèìâîëîâ: %d" +msgstr "E876: ÍÊÀ. Íåäîñòàòî÷íî ïàìÿòè äëÿ ñîõðàíåíèÿ âñåõ ñîñòîÿíèé ìåõàíèçìà" +# :!~ Restorer msgid "E878: (NFA regexp) Could not allocate memory for branch traversal!" -msgstr "" -"E878: (ðåã. âûðàæåíèå ÍÊÀ) íåâîçìîæíî âûäåëèòü ïàìÿòü äëÿ ïðîõîäà âåòâè!" +msgstr "E878: ÍÊÀ. Íå óäàëîñü âûäåëèòü ïàìÿòü äëÿ îáõîäà âåòâè!" +# :!~ Restorer msgid "E879: (NFA regexp) Too many \\z(" -msgstr "E879: (ðåã. âûðàæåíèå ÍÊÀ) ñëèøêîì ìíîãî \\z(" +msgstr "E879: ÍÊÀ. Ïðåâûøåíî êîëè÷åñòâî ïîäâûðàæåíèé âèäà \\z(" +# :!~ Restorer msgid "E880: Can't handle SystemExit of python exception in vim" -msgstr "E880: Íåëüçÿ îáðàáîòàòü èñêëþ÷åíèå python SystemExit â Vim" +msgstr "" +"E880: Èñêëþ÷åíèå SystemExit ÿçûêà Python íå îáðàáàòûâàåòñÿ ïðîãðàììîé Vim" +# :!~ Restorer msgid "E881: Line count changed unexpectedly" -msgstr "E881: Íåîæèäàííî èçìåíèëñÿ ñ÷¸ò÷èê ñòðîê" +msgstr "E881: Íåïðåäâèäåííîå èçìåíåíèå êîëè÷åñòâà ñòðîê" +# :!~ Restorer msgid "E882: Uniq compare function failed" -msgstr "" -"E882: Íåóäà÷íîå çàâåðøåíèå ôóíêöèè ñðàâíåíèÿ ïðè ïðîâåðêå åäèíñòâåííîñòè" +msgstr "E882: Îøèáêà ïðè âûïîëíåíèè ñðàâíåíèÿ â ôóíêöèè ïîèñêà äóáëèêàòîâ" +# :!~ Restorer msgid "" -"E883: Search pattern and expression register may not contain two or more " -"lines" +"E883: Search pattern and expression register may not contain two or more lines" msgstr "" -"E883: Øàáëîí ïîèñêà è ðåãèñòð âûðàæåíèÿ íå ìîãóò ñîäåðæàòü áîëåå îäíîé ñòðîêè" +"E883: Ðåãèñòð ïîèñêà è ðåãèñòð âûðàæåíèÿ íå ìîãóò ñîäåðæàòü áîëåå îäíîé ñòðîêè" +# :!~ Restorer #, c-format msgid "E884: Function name cannot contain a colon: %s" -msgstr "E884: Èìÿ ôóíêöèè íå ìîæåò ñîäåðæàòü äâîåòî÷èå: %s" +msgstr "E884: Íå äîïóñêàåòñÿ óêàçàíèå ñèìâîë äâîåòî÷èÿ â íàèìåíîâàíèè ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E885: Not possible to change sign %s" msgstr "E885: Íåâîçìîæíî èçìåíèòü çíà÷îê %s" +# :!~ Restorer #, c-format msgid "E886: Can't rename viminfo file to %s!" -msgstr "E886: Íåâîçìîæíî ïåðåèìåíîâàòü ôàéë viminfo â %s!" +msgstr "E886: Íå óäàëîñü ïåðåèìåíîâàòü viminfo-ôàéë â %s" +# :!~ Restorer msgid "" "E887: Sorry, this command is disabled, the Python's site module could not be " "loaded." -msgstr "" -"E887: Ê ñîæàëåíèþ, ýòà êîìàíäà íå ðàáîòàåò, ïîñêîëüêó íå çàãðóæåí ìîäóëü " -"Python site" +msgstr "E887: Íå ïîäêëþ÷åí ìîäóëü site.py äëÿ ÿçûêà Python. Êîìàíäà íå âûïîëíåíà" +# :!~ Restorer #, c-format msgid "E888: (NFA regexp) cannot repeat %s" -msgstr "E888: (ðåã. âûðàæåíèå ÍÊÀ) íåâîçìîæíî ïîâòîðèòü %s" +msgstr "E888: ÍÊÀ. Íå äîïóñêàåòñÿ óêàçàíèå êâàíòèôèêàòîðîâ äëÿ ìåòàñèìâîëà %s" +# :!~ Restorer msgid "E889: Number required" -msgstr "E889: Òðåáóåòñÿ ÷èñëî" +msgstr "E889: Òèï äàííûõ äîëæåí áûòü Number" +# :!~ Restorer #, c-format msgid "E890: Trailing char after ']': %s]%s" -msgstr "E890: Ëèøíèå ñèìâîëû ïîñëå ']': %s]%s" +msgstr "E890: Ïîñòîðîííèå ñèìâîëû ïîñëå çàêðûâàþùåé êâàäðàòíîé ñêîáêè %s]%s" +# :!~ Restorer msgid "E891: Using a Funcref as a Float" -msgstr "E891: Èñïîëüçîâàíèå ññûëêè íà ôóíêöèþ âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E891: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí Funcref" +# :!~ Restorer msgid "E892: Using a String as a Float" -msgstr "E892: Èñïîëüçîâàíèå ñòðîêè âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E892: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí String" +# :!~ Restorer msgid "E893: Using a List as a Float" -msgstr "E893: Èñïîëüçîâàíèå ñïèñêà âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E893: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí List" +# :!~ Restorer msgid "E894: Using a Dictionary as a Float" -msgstr "E894: Èñïîëüçîâàíèå ñëîâàðÿ âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E894: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí Dictionary" +# :!~ Restorer msgid "" -"E895: Sorry, this command is disabled, the MzScheme's racket/base module " -"could not be loaded." +"E895: Sorry, this command is disabled, the MzScheme's racket/base module could " +"not be loaded." msgstr "" -"E895: Ê ñîæàëåíèþ, ýòà êîìàíäà íå ðàáîòàåò, ïîñêîëüêó íå çàãðóæåí ìîäóëü " -"racket/base äëÿ MzScheme" +"E895: Íå ïîäêëþ÷åí ìîäóëü racket/base äëÿ ÿçûêà MzScheme. Êîìàíäà íå âûïîëíåíà" +# :!~ Restorer #, c-format msgid "E896: Argument of %s must be a List, Dictionary or Blob" -msgstr "E896: Ïàðàìåòð %s äîëæåí áûòü ñïèñêîì, ñëîâàð¸ì èëè áëîáîì" +msgstr "E896:  ôóíêöèè %s òèï àðãóìåíòà äîëæåí áûòü List, Dictionary èëè BLOB" +# :!~ Restorer msgid "E897: List or Blob required" -msgstr "E897: Òðåáóåòñÿ ñïèñîê èëè áëîá" +msgstr "E897: Òèï äàííûõ äîëæåí áûòü List èëè BLOB" +# :!~ Restorer msgid "E898: socket() in channel_connect()" -msgstr "E898: socket() â channel_connect()" +msgstr "" +"E898: Ôóíêöèÿ socket() íå âåðíóëà äàííûå î ïîäêëþ÷åíèè â ôóíêöèþ " +"channel_connect()" +# :!~ Restorer #, c-format msgid "E899: Argument of %s must be a List or Blob" -msgstr "E899: Ïàðàìåòð %s äîëæåí áûòü ñïèñêîì èëè áëîáîì" +msgstr "E899:  ôóíêöèè %s òèï àðãóìåíòà äîëæåí áûòü List èëè BLOB" +# :!~ Restorer msgid "E900: maxdepth must be non-negative number" -msgstr "E900: Ïàðàìåòð maxdepth äîëæåí áûòü öåëûì íåîòðèöàòåëüíûì ÷èñëîì" +msgstr "" +"E900:  ôóíêöèè flatten() àðãóìåíò íîìåð 2 äîëæíî áûòü ïîëîæèòåëüíûì ÷èñëîì" +# :!~ Restorer #, c-format msgid "E901: getaddrinfo() in channel_open(): %s" -msgstr "E901: getaddrinfo() â channel_open(): %s" +msgstr "E901: Ôóíêöèÿ getaddrinfo() âåðíóëà â ôóíêöèþ channel_open() îøèáêó %s" +# :!~ Restorer msgid "E901: gethostbyname() in channel_open()" -msgstr "E901: gethostbyname() â channel_open()" +msgstr "" +"E901: Ôóíêöèÿ gethostbyname() íå âåðíóëà äàííûå îá óçëå â ôóíêöèþ " +"channel_open()" +# :!~ Restorer msgid "E902: Cannot connect to port" -msgstr "E902: Íåâîçìîæíî ñîåäèíèòüñÿ ñ ïîðòîì" +msgstr "E902: Íå óäàëîñü âûïîëíèòü ïîäêëþ÷åíèå ÷åðåç ïîðò" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>3 +# :!~ Restorer msgid "E903: Received command with non-string argument" -msgstr "E903: Ïîëó÷åíà êîìàíäà ñ íåñòðîêîâûì ïàðàìåòðîì" +msgstr "E903: Àðãóìåíòû ïîëó÷åííîé êîìàíäû íå çàêëþ÷åíû â äâîéíûå êàâû÷êè" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>3 +# :!~ Restorer msgid "E904: Last argument for expr/call must be a number" -msgstr "E904: Ïîñëåäíèé ïàðàìåòð êîìàíäû expr èëè call äîëæåí áûòü ÷èñëîì" +msgstr "" +"E904: Òèï äàííûõ ïîñëåäíåãî ïàðàìåòðà êîìàíäû expr èëè call äîëæåí áûòü Number" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>3 +# :!~ Restorer msgid "E904: Third argument for call must be a list" -msgstr "E904: Òðåòèé ïàðàìåòð êîìàíäû call äîëæåí áûòü ñïèñêîì" +msgstr "E904: Òèï äàííûõ âòîðîãî ïàðàìåòðà êîìàíäû call äîëæåí áûòü List" +# :!~ Restorer #, c-format msgid "E905: Received unknown command: %s" -msgstr "E905: Ïîëó÷åíà íåèçâåñòíàÿ êîìàíäà %s" +msgstr "E905: Íå óäàëîñü ðàñïîçíàòü ïîëó÷åííóþ êîìàíäó %s" +# :!~ Restorer msgid "E906: Not an open channel" -msgstr "E906: Êàíàë íå îòêðûò" +msgstr "E906: Îòñóòñòâóþò îòêðûòûå ñîåäèíåíèÿ" +# :!~ Restorer msgid "E907: Using a special value as a Float" -msgstr "" -"E907: Èñïîëüçîâàíèå ñïåöèàëüíîãî çíà÷åíèÿ âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E907: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí Special" +# :!~ Restorer #, c-format msgid "E908: Using an invalid value as a String: %s" -msgstr "E908: Èñïîëüçîâàíèå íåïðàâèëüíîãî çíà÷åíèÿ âìåñòî ñòðîêè: %s" +msgstr "E908: Îæèäàëñÿ òèï äàííûõ String, à ïîëó÷åíû íåäîïóñòèìûå äàííûå %s" +# :!~ Restorer msgid "E909: Cannot index a special variable" -msgstr "E909: Íåëüçÿ èíäåêñèðîâàòü ñïåöèàëüíóþ ïåðåìåííóþ" +msgstr "E909: Íå äîïóñêàåòñÿ óêàçàíèå èíäåêñà äëÿ ñïåöèàëüíûõ òèïîâ äàííûõ" +# :!~ Restorer msgid "E910: Using a Job as a Number" -msgstr "E910: Èñïîëüçîâàíèå çàäàíèÿ âìåñòî ÷èñëà" +msgstr "E910: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí Job" +# :!~ Restorer msgid "E911: Using a Job as a Float" -msgstr "E911: Èñïîëüçîâàíèå çàäàíèÿ âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E911: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí Job" +# :!~ Restorer msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" msgstr "" -"E912: Íåâîçìîæíî èñïîëüçîâàòü ch_evalexpr() èëè ch_sendexpr() ñ êàíàëîì NL " -"ëèáî RAW" +"E912: Ôóíêöèè ch_evalexpr() è ch_sendexpr() íåïðèìåíèìû ê ñîåäèíåíèþ RAW èëè NL" +# :!~ Restorer msgid "E913: Using a Channel as a Number" -msgstr "E913: Èñïîëüçîâàíèå êàíàëà âìåñòî ÷èñëà" +msgstr "E913: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí Channel" +# :!~ Restorer msgid "E914: Using a Channel as a Float" -msgstr "E914: Èñïîëüçîâàíèå êàíàëà âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E914: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí Channel" +# :!~ Restorer msgid "E915: in_io buffer requires in_buf or in_name to be set" msgstr "" -"E915: Åñëè in_io ðàâíî \"buffer\", òî íóæíî òàêæå óñòàíîâèòü " -"in_buf ëèáî in_name" +"E915: Ïðè óñòàíîâêå êëþ÷ó in_io çíà÷åíèÿ buffer, òðåáóåòñÿ çàäàòü êëþ÷ in_buf " +"èëè in_name" +# :!~ Restorer msgid "E916: Not a valid job" -msgstr "E916: Íåäîïóñòèìîå çàäàíèå" +msgstr "E916: Íåäîïóñòèìîå íàèìåíîâàíèå çàäàíèÿ" +# :!~ Restorer #, c-format msgid "E917: Cannot use a callback with %s()" -msgstr "E917: Íåâîçìîæíî èñïîëüçîâàòü îáðàòíûé âûçîâ ñ %s()" +msgstr "E917: Íå äîïóñêàåòñÿ èñïîëüçîâàíèå âîçâðàòíûõ âûçîâîâ ñ ôóíêöèåé %s()" +# :!~ Restorer #, c-format msgid "E918: Buffer must be loaded: %s" -msgstr "E918: Áóôåð äîëæåí áûòü çàãðóæåí: %s" +msgstr "E918: Ïåðåä âûçîâîì çàäàíèÿ óæå äîëæåí áûòü çàãðóæåí áóôåð %s" +# :!~ Restorer #, c-format msgid "E919: Directory not found in '%s': \"%s\"" -msgstr "E919: Êàòàëîã íå íàéäåí â '%s': \"%s\"" +msgstr "E919:  êàòàëîãàõ, óêàçàííûõ â ïàðàìåòðå '%s', íå íàéäåíî \"%s\"" +# :!~ Restorer msgid "E920: _io file requires _name to be set" msgstr "" -"E920: Åñëè _io ðàâíî \"file\", òî íóæíî òàêæå óñòàíîâèòü _name" +"E920: Ïðè óñòàíîâêå êëþ÷àì *_io çíà÷åíèÿ file, òðåáóåòñÿ çàäàòü è êëþ÷è *_name" +# :!~ Restorer msgid "E921: Invalid callback argument" -msgstr "E921: Íåäîïóñòèìûé ïàðàìåòð îáðàòíîãî âûçîâà" - -msgid "E922: Expected a dict" -msgstr "E922: Îæèäàëñÿ ñëîâàðü" +msgstr "E921: Íåäîïóñòèìûé òèï îáðàáîò÷èêà ñîîáùåíèé" +# :!~ Restorer msgid "E923: Second argument of function() must be a list or a dict" -msgstr "E923: Âòîðîé ïàðàìåòð function() äîëæåí áûòü ñïèñêîì èëè ñëîâàð¸ì" +msgstr "" +"E923:  ôóíêöèè function() àðãóìåíò íîìåð 2 äîëæåí áûòü ñïèñêîì èëè ñëîâàð¸ì" +# :!~ Restorer msgid "E924: Current window was closed" -msgstr "E924: Òåêóùåå îêíî áûëî çàêðûòî" +msgstr "E924: Çàêðûòèå òåêóùåãî îêíà âûçâàíî èñïîëíåíèåì àâòîêîìàíä" +# :!~ Restorer msgid "E925: Current quickfix list was changed" -msgstr "E925: Òåêóùèé ñïèñîê áûñòðûõ èñïðàâëåíèé áûë èçìåí¸í" +msgstr "E925: Èçìåíåíèå ñïèñêà ðåçóëüòàòîâ âûçâàíî èñïîëíåíèåì àâòîêîìàíä" +# :!~ Restorer msgid "E926: Current location list was changed" -msgstr "E926: Òåêóùèé ñïèñîê ðàñïîëîæåíèé áûë èçìåí¸í" +msgstr "" +"E926: Èçìåíåíèå ëîêàëüíîãî ñïèñêà ðåçóëüòàòîâ âûçâàíî èñïîëíåíèåì àâòîêîìàíä" +# :!~ Restorer #, c-format msgid "E927: Invalid action: '%s'" -msgstr "E927: Íåïðàâèëüíîå äåéñòâèå: '%s'" +msgstr "E927: Ïåðåäàííûé â ôóíêöèþ àðãóìåíò èìååò íåäîïóñòèìîå çíà÷åíèå '%s'" +# :!~ Restorer msgid "E928: String required" -msgstr "E928: Òðåáóåòñÿ ñòðîêà" +msgstr "E928: Òèï äàííûõ äîëæåí áûòü String" +# :!~ Restorer #, c-format msgid "E929: Too many viminfo temp files, like %s!" -msgstr "E929: Ñëèøêîì ìíîãî âðåìåííûõ ôàéëîâ viminfo, òàêèõ êàê %s" +msgstr "E929: Îáíàðóæåíî ìíîæåñòâî âðåìåííûõ viminfo-ôàéëîâ %s" +# :!~ Restorer msgid "E930: Cannot use :redir inside execute()" -msgstr "E930: Íåâîçìîæíî èñïîëüçîâàòü :redir âíóòðè execute()" +msgstr "E930: Íå äîïóñêàåòñÿ óêàçàíèå êîìàíäû :redir â ôóíêöèè execute()" +# :!~ Restorer msgid "E931: Buffer cannot be registered" -msgstr "E931: Íåâîçìîæíî çàðåãèñòðèðîâàòü áóôåð" +msgstr "E931: Íå óäàëîñü çàðåãèñòðèðîâàòü íîìåð áóôåðà â ñïèñêå áóôåðîâ" +# :!~ Restorer #, c-format msgid "E932: Closure function should not be at top level: %s" -msgstr "E932: Ôóíêöèÿ-çàìûêàíèå íå äîëæíà áûòü íà âåðõíåì óðîâíå: %s" +msgstr "E932: Îòñóòñòâóåò âûøåñòîÿùàÿ ôóíêöèÿ äëÿ ôóíêöèè çàìûêàíèÿ %s" +# :!~ Restorer #, c-format msgid "E933: Function was deleted: %s" -msgstr "E933: Ôóíêöèÿ áûëà óäàëåíà: %s" +msgstr "E933: Ýòà ôóíêöèÿ áûëà óäàëåíà %s" +# :!~ Restorer msgid "E934: Cannot jump to a buffer that does not have a name" -msgstr "E934: Íåâîçìîæíî ïåðåéòè ê áóôåðó áåç èìåíè" +msgstr "E934: Íå äîïóñêàåòñÿ ïåðåõîä â áåçûìÿííûé áóôåð" +# :!~ Restorer #, c-format msgid "E935: Invalid submatch number: %d" -msgstr "E935: Íåäîïóñòèìûé íîìåð ïîäñîîòâåòñòâèÿ: %d" +msgstr "E935:  ôóíêöèè submatch() çàäàí íåêîððåêòíûé íîìåð îáðàòíîé ññûëêè %d" +# :!~ Restorer msgid "E936: Cannot delete the current group" -msgstr "E936: Íåâîçìîæíî óäàëèòü òåêóùóþ ãðóïïó" +msgstr "E936: Íå äîïóñêàåòñÿ óäàëåíèå àêòèâíîé ãðóïïû àâòîêîìàíä" +# :!~ Restorer #, c-format msgid "E937: Attempt to delete a buffer that is in use: %s" -msgstr "E937: Ïîïûòêà óäàëèòü èñïîëüçóåìûé áóôåð: %s" +msgstr "E937: Îáíàðóæåíà ïîïûòêà óäàëåíèÿ àêòèâíîãî áóôåðà %s" +# :!~ Restorer #, c-format msgid "E938: Duplicate key in JSON: \"%s\"" -msgstr "E938: Ïîâòîð êëþ÷à â JSON: \"%s\"" +msgstr "E938: Ïðè ðàçáîðå JSON îáíàðóæåí ïîâòîð êëþ÷à \"%s\"" +# :!~ Restorer msgid "E939: Positive count required" -msgstr "E939: Òðåáóåòñÿ ïîëîæèòåëüíûé ñ÷¸ò÷èê" +msgstr "E939: Ïàðàìåòð êîìàíäû äîëæåí áûòü çàäàí ïîëîæèòåëüíûì ÷èñëîì" +# :!~ Restorer #, c-format msgid "E940: Cannot lock or unlock variable %s" -msgstr "E940: Íåâîçìîæíî (ðàç) áëîêèðîâàòü ïåðåìåííóþ %s" +msgstr "E940: Íå óäàëîñü èçìåíèòü ñîñòîÿíèå áëîêèðîâêè äëÿ ïåðåìåííîé %s" +# :!~ Restorer msgid "E941: Already started a server" -msgstr "E941: Ñåðâåð óæå çàïóùåí" +msgstr "E941: Îáíàðóæåíî, ÷òî óêàçàííûé ñåðâåð óæå ðàáîòàåò" +# :!~ Restorer msgid "E942: +clientserver feature not available" -msgstr "E942: Îñîáåííîñòü +clientserver íåäîñòóïíà" - -msgid "E943: Command table needs to be updated, run 'make cmdidxs'" -msgstr "E943: Òàáëèöà êîìàíä äîëæíà áûòü îáíîâëåíà: âûïîëíèòå 'make cmdidxs'" +msgstr "E942: Êîìïîíåíò +clientserver íåäîñòóïåí â ýòîé âåðñèè ïðîãðàììû" +# :!~ Restorer msgid "E944: Reverse range in character class" -msgstr "E944: Îáðàòíûé äèàïàçîí â ñèìâîëüíîì êëàññå" +msgstr "E944: Çàäàí îáðàòíûé ïîðÿäîê çíà÷åíèé â ñèìâîëüíîì êëàññå" +# :!~ Restorer msgid "E945: Range too large in character class" -msgstr "E945: Ñëèøêîì áîëüøîé äèàïàçîí â ñèìâîëüíîì êëàññå" +msgstr "E945: Ïðåâûøåíî ìàêñèìàëüíîå çíà÷åíèå â ñèìâîëüíîì êëàññå" +# :!~ Restorer msgid "E946: Cannot make a terminal with running job modifiable" -msgstr "E946: Òåðìèíàë ñ çàïóùåííûì çàäàíèåì íåëüçÿ ñäåëàòü èçìåíÿåìûì" +msgstr "E946: Íå äîïóñêàåòñÿ ðåäàêòèðîâàíèå áóôåðà ñ ðàáîòàþùèì òåðìèíàëîì" +# :!~ Restorer #, c-format msgid "E947: Job still running in buffer \"%s\"" -msgstr "E947: Çàäàíèå åù¸ âûïîëíÿåòñÿ â áóôåðå \"%s\"" +msgstr "E947: Âûïîëíÿåòñÿ çàäàíèå â áóôåðå \"%s\"" +# :!~ Restorer msgid "E948: Job still running" -msgstr "E948: Çàäàíèå åù¸ âûïîëíÿåòñÿ" +msgstr "E948:  òåêóùåì áóôåðå âûïîëíÿåòñÿ çàäàíèå" +# :!~ Restorer msgid "E948: Job still running (add ! to end the job)" -msgstr "E948: Çàäàíèå åù¸ âûïîëíÿåòñÿ (äîáàâüòå !, ÷òîáû çàâåðøèòü)" +msgstr "" +"E948:  áóôåðå âûïîëíÿåòñÿ çàäàíèå (÷òîáû çàâåðøèòü, óêàæèòå ìîäèôèêàòîð !)" +# :!~ Restorer msgid "E949: File changed while writing" -msgstr "E949: Ôàéë èçìåíèëñÿ âî âðåìÿ çàïèñè" +msgstr "E949:  ïðîöåññå çàïèñè ôàéë áûë èçìåí¸í" +# #Restorer: ïåðâûé %s çàìåíÿåòñÿ íà çíà÷åíèå èç 'tenc', âòîðîé %s èç 'enc' +# :!~ Restorer #, c-format msgid "E950: Cannot convert between %s and %s" -msgstr "E950: Ïðåîáðàçîâàíèå ìåæäó %s è %s íå âîçìîæíî" +msgstr "E950: Íå óäàëîñü âûïîëíèòü èçìåíåíèå êîäèðîâêè %s íà %s" +# :!~ Restorer #, no-c-format msgid "E951: \\% value too large" -msgstr "E951: \\% çíà÷åíèå ñëèøêîì áîëüøîå" +msgstr "E951: Ïðåâûøåíî äîïóñòèìîå çíà÷åíèå ìåòàñèìâîëà \\%" +# :!~ Restorer msgid "E952: Autocommand caused recursive behavior" -msgstr "E952: Àâòîêîìàíäà âûçâàëà áåñêîíå÷íóþ ðåêóðñèþ" +msgstr "E952: Äåéñòâèÿ àâòîêîìàíä âûçâàëè öèêëè÷åñêîå ïîâòîðåíèå îïåðàöèé" +# :!~ Restorer #, c-format msgid "E953: File exists: %s" -msgstr "E953: Ôàéë ñóùåñòâóåò: %s" +msgstr "E953: Îáíàðóæåí ñóùåñòâóþùèé ôàéë %s" +# :!~ Restorer msgid "E954: 24-bit colors are not supported on this environment" -msgstr "E954: 24-áèòíûé öâåò íå ïîääåðæèâàåòñÿ â ýòîì îêðóæåíèè" +msgstr "" +"E954: Íå ïîääåðæèâàåòñÿ 24-ðàçðÿäíîå êîäèðîâàíèå öâåòà â ýòîé êîíôèãóðàöèè" +# :!~ Restorer msgid "E955: Not a terminal buffer" -msgstr "E955: Íå ÿâëÿåòñÿ áóôåðîì òåðìèíàëà" +msgstr "E955: Áóôåð íå ñâÿçàí ñ îêíîì òåðìèíàëà" +# :!~ Restorer msgid "E956: Cannot use pattern recursively" -msgstr "E956: Íåëüçÿ èñïîëüçîâàòü øàáëîí ðåêóðñèâíî" +msgstr "E956: Íå äîïóñêàþòñÿ ðåêóðñèâíûå âûçîâû ïîèñêîâûõ çàïðîñîâ" +# :!~ Restorer msgid "E957: Invalid window number" -msgstr "E957: Íåâåðíûé íîìåð îêíà" +msgstr "E957: Çàäàí íåêîððåêòíûé íîìåð îêíà" +# :!~ Restorer msgid "E958: Job already finished" -msgstr "E958: Çàäàíèå óæå çàâåðøåíî" +msgstr "E958: Çàäàíèå â áóôåðå òåðìèíàëà çàâåðøèëî ðàáîòó" +# :!~ Restorer msgid "E959: Invalid diff format." -msgstr "E959: Íåâåðíûé ôîðìàò diff" +msgstr "E959: Íåäîïóñòèìûé ôîðìàò ðåçóëüòèðóþùåãî ôàéëà ïðîãðàììû ñðàâíåíèÿ" +# #Restorer: åñëè ïðàâèëüíî ïîíÿë, ÷òîáû óâèäåòü ýòî ñîîáùåíèå 'verbose'>0 +# :!~ Restorer msgid "E960: Problem creating the internal diff" -msgstr "E960: Ïðîáëåìà ïðè ñîçäàíèè îòëè÷èé ñ ïîìîùüþ âñòðîåííîãî diff" +msgstr "E960: Îøèáêà ïðè àêòèâàöèè âñòðîåííîãî ìåõàíèçìà ñðàâíåíèÿ" +# :!~ Restorer msgid "E961: No line number to use for \"\"" -msgstr "E961: Íåò íîìåðà ñòðîêè äëÿ çàìåíû \"\"" +msgstr "E961: Îòñóòñòâóåò íîìåð ñòðîêè äëÿ çàìåùåíèÿ ñïåöñèìâîëà \"\"" +# :!~ Restorer #, c-format msgid "E962: Invalid action: '%s'" -msgstr "E962: Íåïðàâèëüíîå äåéñòâèå: '%s'" +msgstr "E962: Ïåðåäàííûé â ôóíêöèþ àðãóìåíò èìååò íåäîïóñòèìîå çíà÷åíèå '%s'" +# :!~ Restorer #, c-format msgid "E963: Setting %s to value with wrong type" -msgstr "E963: Óñòàíîâêà %s â çíà÷åíèå íåâåðíîãî òèïà" +msgstr "E963: Íåäîïóñòèìûé òèï çíà÷åíèÿ äëÿ ïåðåìåííîé %s" +# :!~ Restorer #, c-format msgid "E964: Invalid column number: %ld" -msgstr "E964: Íåïðàâèëüíûé íîìåð ñòîëáöà: %ld" +msgstr "E964: Íåäîïóñòèìûé íîìåð êîëîíêè %ld" +# :!~ Restorer msgid "E965: Missing property type name" -msgstr "E965: Ïðîïóùåíî èìÿ òèïà ñâîéñòâà" +msgstr "E965: Íå óêàçàíû íàèìåíîâàíèÿ òèïîâ ñâîéñòâ òåêñòà" +# :!~ Restorer #, c-format msgid "E966: Invalid line number: %ld" -msgstr "E966: Íåïðàâèëüíûé íîìåð ñòðîêè: %ld" - -msgid "E967: Text property info corrupted" -msgstr "E967: Èíôîðìàöèÿ î òåêñòîâîì ñâîéñòâå ïîâðåæäåíà" +msgstr "E966: Íåäîïóñòèìûé íîìåð ñòðîêè %ld" +# :!~ Restorer msgid "E968: Need at least one of 'id' or 'type'" -msgstr "E968: Íåîáõîäèìî 'id' èëè 'type'" +msgstr "E968: Òðåáóåòñÿ óêàçàòü çíà÷åíèå êëþ÷à 'id' èëè çíà÷åíèå êëþ÷à 'type'" +# :!~ Restorer #, c-format msgid "E969: Property type %s already defined" -msgstr "E969: Òèï ñâîéñòâà %s óæå îïðåäåë¸í" +msgstr "E969: Òèï ñâîéñòâà òåêñòà óæå îïðåäåë¸í %s" +# :!~ Restorer #, c-format msgid "E970: Unknown highlight group name: '%s'" -msgstr "E970: Íåèçâåñòíîå èìÿ ãðóïïû ïîäñâåòêè: %s" +msgstr "E970: Íå ðàñïîçíàíî íàèìåíîâàíèå ãðóïïû ïîäñâåòêè '%s'" +# :!~ Restorer #, c-format msgid "E971: Property type %s does not exist" -msgstr "E971: Òèï ñâîéñòâà %s íå ñóùåñòâóåò" +msgstr "E971: Íå ñóùåñòâóåò òèï ñâîéñòâà òåêñòà ñ íàèìåíîâàíèåì %s" +# :!~ Restorer msgid "E972: Blob value does not have the right number of bytes" -msgstr "E972: Íåâåðíîå êîëè÷åñòâî áàéòîâ â çíà÷åíèè áëîáà" +msgstr "" +"E972: Êîëè÷åñòâî çàìåùàåìûõ áàéò íå ñîîòâåòñòâóåò ðàçìåðó äàííûõ ñ òèïîì BLOB" +# :!~ Restorer msgid "E973: Blob literal should have an even number of hex characters" msgstr "" -"E973: Áëîá-ëèòåðàë äîëæåí èìåòü ÷¸òíîå êîëè÷åñòâî øåñòíàäöàòåðè÷íûõ ðàçðÿäîâ" +"E973: Äàííûå ñ òèïîì BLOB äîëæíû ñîäåðæàòü ÷¸òíîå êîëè÷åñòâî øåñòíàäöàòåðè÷íûõ " +"öèôð" +# :!~ Restorer msgid "E974: Using a Blob as a Number" -msgstr "E974: Èñïîëüçîâàíèå áëîáà âìåñòî ÷èñëà" +msgstr "E974: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí BLOB" +# :!~ Restorer msgid "E975: Using a Blob as a Float" -msgstr "E975: Èñïîëüçîâàíèå áëîáà âìåñòî ÷èñëà ñ ïëàâàþùåé òî÷êîé" +msgstr "E975: Îæèäàëñÿ òèï äàííûõ Float, à ïîëó÷åí BLOB" +# :!~ Restorer msgid "E976: Using a Blob as a String" -msgstr "E976: Èñïîëüçîâàíèå áëîáà âìåñòî ñòðîêè" +msgstr "E976: Îæèäàëñÿ òèï äàííûõ String, à ïîëó÷åí BLOB" +# :!~ Restorer msgid "E977: Can only compare Blob with Blob" -msgstr "E977: Áëîá ìîæíî ñðàâíèâàòü òîëüêî ñ áëîáîì" +msgstr "E977: Îïåðàöèè ñðàâíåíèÿ äëÿ òèïà BLOB äîïóñòèìû òîëüêî ñ òèïîì BLOB" +# :!~ Restorer msgid "E978: Invalid operation for Blob" -msgstr "E978: Íåäîïóñòèìàÿ îïåðàöèÿ äëÿ áëîáà" +msgstr "E978: Íåäîïóñòèìàÿ îïåðàöèÿ äëÿ òèïà äàííûõ BLOB" +# :!~ Restorer #, c-format msgid "E979: Blob index out of range: %ld" -msgstr "E979: Èíäåêñ áëîáà çà ïðåäåëàìè äèàïàçîíà: %ld" +msgstr "E979: Âûõîä çà ãðàíèöû äèàïàçîíà äàííûõ òèï BLOB äëÿ èíäåêñà %ld" +# :!~ Restorer msgid "E980: Lowlevel input not supported" -msgstr "E980: Íèçêîóðîâíåâûé ââîä íå ïîääåðæèâàåòñÿ" +msgstr "E980: Ýìóëÿöèÿ íèçêîóðîâíåâîãî ââîäà íå ïîääåðæèâàåòñÿ" +# :!~ Restorer msgid "E981: Command not allowed in rvim" -msgstr "E981: Êîìàíäà íå ðàçðåøåíà â rvim" +msgstr "E981: Êîìàíäà çàïðåùåíà â âàðèàíòå ïðîãðàììû rvim" +# :!~ Restorer msgid "E982: ConPTY is not available" -msgstr "E982: ConPTY íåäîñòóïåí" +msgstr "E982: Íåäîñòóïåí ïñåâäîòåðìèíàë ConPTY" +# :!~ Restorer #, c-format msgid "E983: Duplicate argument: %s" -msgstr "E983: Ïîâòîðÿþùèéñÿ ïàðàìåòð: %s" +msgstr "E983: Ïîâòîð àðãóìåíòà %s" +# :!~ Restorer msgid "E984: :scriptversion used outside of a sourced file" -msgstr "E984: Êîìàíäà :scriptversion èñïîëüçóåòñÿ âíå ôàéëà ñöåíàðèÿ" +msgstr "E984: Êîìàíäû :scriptversion óêàçàíà âíå êîìàíäíîãî ôàéëà" +# :!~ Restorer msgid "E985: .= is not supported with script version >= 2" -msgstr "E985: .= íå ïîääåðæèâàåòñÿ â ñöåíàðèè âåðñèè 2 èëè âûøå" +msgstr "" +"E985: Îïåðàòîð .= íå ïîääåðæèâàåòñÿ êîìàíäíûìè ôàéëàìè âåðñèè 2 èëè ñòàðøå" +# :!~ Restorer msgid "E986: Cannot modify the tag stack within tagfunc" -msgstr "E986: Íåâîçìîæíî èçìåíèòü ñòåê ìåòîê âíóòðè tagfunc" +msgstr "" +"E986: Íå äîïóñêàåòñÿ èçìåíåíèå ñòåêà èíäåêñîâ â ôóíêöèè, çàäàííîé â ïàðàìåòðå " +"'tagfunc'" +# :!~ Restorer msgid "E987: Invalid return value from tagfunc" -msgstr "E987: Íåïðàâèëüíîå âîçâðàùàåìîå çíà÷åíèå èç tagfunc" +msgstr "" +"E987: Ôóíêöèÿ, çàäàííàÿ â ïàðàìåòðå 'tagfunc', âåðíóëà íåäîïóñòèìûå äàííûå" +# :!~ Restorer msgid "E988: GUI cannot be used. Cannot execute gvim.exe." msgstr "" -"E988: Ãðàôè÷åñêèé èíòåðôåéñ íå ìîæåò áûòü çàäåéñòâîâàí. Ñáîé ïðè çàïóñêå " -"gvim.exe" +"E988: Íå óäàëîñü çàïóñòèòü ãðàôè÷åñêèé èíòåðôåéñ. Ñáîé çàïóñêà ôàéëà gvim.exe" +# :!~ Restorer msgid "E989: Non-default argument follows default argument" -msgstr "E989: Ïàðàìåòð íå ïî óìîë÷àíèþ ñëåäóåò çà ïàðàìåòðîì ïî óìîë÷àíèþ" +msgstr "" +"E989: Îáÿçàòåëüíûå àðãóìåíòû äîëæíû óêàçûâàòüñÿ ïåðåä íåîáÿçàòåëüíûì àðãóìåíòîì" +# :!~ Restorer #, c-format msgid "E990: Missing end marker '%s'" -msgstr "E990: Ïðîïóùåí êîíå÷íûé ìàðêåð '%s'" +msgstr "E990: Íå óêàçàí çàâåðøàþùèé ìàðêåð '%s'" +# :!~ Restorer msgid "E991: Cannot use =<< here" -msgstr "E991: Çäåñü íåâîçìîæíî èñïîëüçîâàòü =<<" +msgstr "E991: Îïåðàòîð =<< íå ìîæåò áûòü ïðèìåí¸í" +# :!~ Restorer msgid "E992: Not allowed in a modeline when 'modelineexpr' is off" -msgstr "E992: Íå äîïóñêàåòñÿ â ðåæèìíîé ñòðîêå ïðè îòêëþ÷¸ííîì 'modelineexpr'" +msgstr "" +"E992: Çàïðåùåíà óñòàíîâêà ïàðàìåòðà â ðåæèìíîé ñòðîêå ïðè òåêóùåì çíà÷åíèè " +"'modelineexpr'" +# :!~ Restorer #, c-format msgid "E993: Window %d is not a popup window" -msgstr "E993: Îêíî %d íå ÿâëÿåòñÿ âñïëûâàþùèì îêíîì" +msgstr "E993: Âñïëûâàþùåå îêíî íå ñâÿçàíî ñ èäåíòèôèêàòîðîì îêíà %d" +# :!~ Restorer msgid "E994: Not allowed in a popup window" -msgstr "E994: Íå äîïóñêàåòñÿ âî âñïëûâàþùåì îêíå" +msgstr "E994: Êîìàíäà çàïðåùåíà âî âñïëûâàþùåì îêíå" +# :!~ Restorer msgid "E995: Cannot modify existing variable" -msgstr "E995: Íåâîçìîæíî èçìåíèòü ñóùåñòâóþùóþ ïåðåìåííóþ" +msgstr "E995: Íå äîïóñêàåòñÿ èçìåíåíèå çíà÷åíèÿ ñóùåñòâóþùåé ïåðåìåííîé" +# :!~ Restorer msgid "E996: Cannot lock a range" -msgstr "E996: Íåâîçìîæíî çàáëîêèðîâàòü äèàïàçîí" +msgstr "E996: Íå äîïóñêàåòñÿ áëîêèðîâêà äëÿ çíà÷åíèé äèàïàçîíà" +# :!~ Restorer msgid "E996: Cannot lock an option" -msgstr "E996: Íåâîçìîæíî çàáëîêèðîâàòü îïöèþ" +msgstr "E996: Íå äîïóñêàåòñÿ áëîêèðîâêà äëÿ çíà÷åíèé ïàðàìåòðîâ" +# :!~ Restorer msgid "E996: Cannot lock a list or dict" -msgstr "E996: Íåâîçìîæíî çàáëîêèðîâàòü ñïèñîê èëè ñëîâàðü" +msgstr "E996: Íå äîïóñêàåòñÿ áëîêèðîâêà äëÿ çíà÷åíèé ñïèñêà èëè ñëîâàðÿ" +# :!~ Restorer msgid "E996: Cannot lock an environment variable" -msgstr "E996: Íåâîçìîæíî çàáëîêèðîâàòü ïåðåìåííóþ îêðóæåíèÿ" +msgstr "E996: Íå äîïóñêàåòñÿ áëîêèðîâêà äëÿ çíà÷åíèé ïåðåìåííûõ îêðóæåíèÿ" +# :!~ Restorer msgid "E996: Cannot lock a register" -msgstr "E996: Íåâîçìîæíî çàáëîêèðîâàòü ðåãèñòð" +msgstr "E996: Íå äîïóñêàåòñÿ áëîêèðîâêà äëÿ äàííûõ ðåãèñòðà" +# :!~ Restorer #, c-format msgid "E997: Tabpage not found: %d" -msgstr "E997: Âêëàäêà íå íàéäåíà: %d" +msgstr "E997: Íå íàéäåíà âêëàäêà ïîä íîìåðîì %d" +# :!~ Restorer #, c-format msgid "E998: Reduce of an empty %s with no initial value" -msgstr "" -"E998: reduce() ïðèìåíÿåòñÿ ê ïóñòîìó ïàðàìåòðó %s áåç çàäàííîãî íà÷àëüíîãî " -"çíà÷åíèÿ" +msgstr "E998: Ôóíêöèÿ reduce() âûçâàíà äëÿ ïóñòîãî %s è íà÷àëüíîãî çíà÷åíèÿ" +# :!~ Restorer #, c-format msgid "E999: scriptversion not supported: %d" -msgstr "E999: scriptversion íå ïîääåðæèâàåòñÿ: %d" +msgstr "E999:  ïðîãðàììå íå ïîääåðæèâàåòñÿ îáðàáîò÷èê êîìàíä âåðñèè %d" +# :!~ Restorer #, c-format msgid "E1001: Variable not found: %s" -msgstr "E1001: Ïåðåìåííàÿ íå íàéäåíà: %s" +msgstr "E1001: Íå íàéäåíà ïåðåìåííàÿ %s" +# :!~ Restorer #, c-format msgid "E1002: Syntax error at %s" msgstr "E1002: Ñèíòàêñè÷åñêàÿ îøèáêà â %s" +# :!~ Restorer msgid "E1003: Missing return value" -msgstr "E1003: Îòñóòñòâóåò âîçâðàùàåìîå çíà÷åíèå" +msgstr "E1003: Íå óêàçàíî âîçâðàùàåìîå çíà÷åíèå" +# :!~ Restorer #, c-format msgid "E1004: White space required before and after '%s' at \"%s\"" -msgstr "E1004: Òðåáóþòñÿ ïðîáåëüíûå ñèìâîëû äî è ïîñëå '%s' â \"%s\"" +msgstr "E1004: Òðåáóåòñÿ ïðîáåëüíûé ñèìâîë ïåðåä è ïîñëå '%s' â \"%s\"" +# :!~ Restorer msgid "E1005: Too many argument types" -msgstr "E1005: Ñëèøêîì ìíîãî òèïîâ ïàðàìåòðîâ" +msgstr "E1005: Ïðåâûøåíî êîëè÷åñòâî òèïîâ" +# :!~ Restorer #, c-format msgid "E1006: %s is used as an argument" -msgstr "E1006: %s èñïîëüçóåòñÿ êàê ïàðàìåòð" +msgstr "E1006: Ïåðåìåííàÿ %s èñïîëüçóåòñÿ êàê àðãóìåíò ôóíêöèè" +# :!~ Restorer msgid "E1007: Mandatory argument after optional argument" -msgstr "E1007: Îáÿçàòåëüíûé ïàðàìåòð ïîñëå íåîáÿçàòåëüíîãî ïàðàìåòðà" +msgstr "" +"E1007: Îáÿçàòåëüíûå àðãóìåíòû óêàçûâàòüñÿ ïåðåä íåîáÿçàòåëüíûì àðãóìåíòîì" -msgid "E1008: Missing " -msgstr "E1008: Îòñóòñòâóåò <òèï>" +# :!~ Restorer +#, c-format +msgid "E1008: Missing after %s" +msgstr "E1008: Íå óêàçàí òèï äàííûõ â óãëîâûõ ñêîáêàõ äëÿ %s" -msgid "E1009: Missing > after type" -msgstr "E1009: Îòñóòñòâóåò > ïîñëå òèïà" +# :!~ Restorer +#, c-format +msgid "E1009: Missing > after type: %s" +msgstr "E1009: Íå óêàçàíà çàêðûâàþùàÿ óãëîâàÿ ñêîáêà ïîñëå òèïà äàííûõ %s" +# :!~ Restorer #, c-format msgid "E1010: Type not recognized: %s" -msgstr "E1010: Òèï íå ðàñïîçíàí: %s" +msgstr "E1010: Íå óäàëîñü ðàñïîçíàòü òèï äàííûõ %s" +# :!~ Restorer #, c-format msgid "E1011: Name too long: %s" -msgstr "E1011: Ñëèøêîì äëèííîå èìÿ: %s" +msgstr "E1011: Ïðåâûøåíà äëèíà íàèìåíîâàíèÿ ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E1012: Type mismatch; expected %s but got %s" -msgstr "E1012: Íåñîîòâåòñòâèå òèïà: îæèäàëñÿ %s, à ïîëó÷åí %s" +msgstr "E1012: Íåñîîòâåòñòâóþùèé òèï äàííûõ. Îæèäàëñÿ %s, à ïîëó÷åí %s" +# :!~ Restorer #, c-format msgid "E1012: Type mismatch; expected %s but got %s in %s" -msgstr "E1012: Íåñîîòâåòñòâèå òèïà: îæèäàëñÿ %s, à ïîëó÷åí %s â %s" +msgstr "E1012: Íåñîîòâåòñòâóþùèé òèï äàííûõ. Îæèäàëñÿ %s, à ïîëó÷åí %s â %s" +# :!~ Restorer #, c-format msgid "E1013: Argument %d: type mismatch, expected %s but got %s" -msgstr "E1013: Ïàðàìåòð %d: íåñîîòâåòñòâèå òèïà: îæèäàëñÿ %s, à ïîëó÷åí %s" +msgstr "E1013: Íåñîîòâåòñòâóþùèé òèï àðãóìåíòà %d. Îæèäàëñÿ %s, à ïîëó÷åí %s" +# :!~ Restorer #, c-format msgid "E1013: Argument %d: type mismatch, expected %s but got %s in %s" msgstr "" -"E1013: Ïàðàìåòð %d: íåñîîòâåòñòâèå òèïà: îæèäàëñÿ %s, à ïîëó÷åí %s â %s" +"E1013: Íåñîîòâåòñòâóþùèé òèï àðãóìåíòà %d. Îæèäàëñÿ %s, à ïîëó÷åí %s â %s" +# :!~ Restorer #, c-format msgid "E1014: Invalid key: %s" -msgstr "E1014: Íåïðàâèëüíûé êëþ÷: %s" +msgstr "E1014: Íåäîïóñòèìûé êëþ÷ %s" +# :!~ Restorer #, c-format msgid "E1015: Name expected: %s" -msgstr "E1015: Îæèäàëîñü èìÿ ïåðåìåííîé: %s" +msgstr "E1015: Ïðåäïîëàãàëîñü %s" +# :!~ Restorer #, c-format msgid "E1016: Cannot declare a %s variable: %s" -msgstr "E1016: Íåâîçìîæíî îáúÿâèòü ïåðåìåííóþ %s: %s" +msgstr "E1016: Äëÿ îáëàñòè äåéñòâèÿ %s íå äîïóñêàåòñÿ îáúÿâëåíèå ïåðåìåííîé %s" +# :!~ Restorer #, c-format msgid "E1016: Cannot declare an environment variable: %s" -msgstr "E1016: Íåëüçÿ îáúÿâèòü ïåðåìåííóþ îêðóæåíèÿ: %s" +msgstr "E1016: Íå äîïóñêàåòñÿ îáúÿâëåíèå ïåðåìåííîé îêðóæåíèÿ %s" +# :!~ Restorer #, c-format msgid "E1017: Variable already declared: %s" -msgstr "E1017: Ïåðåìåííàÿ óæå îáúÿâëåíà: %s" +msgstr "E1017: Ïåðåìåííàÿ óæå îáúÿâëåíà %s" +# :!~ Restorer #, c-format msgid "E1018: Cannot assign to a constant: %s" -msgstr "E1018: Íåâîçìîæíî íàçíà÷èòü íîâîå çíà÷åíèå êîíñòàíòå: %s" +msgstr "E1018: Íå äîïóñêàåòñÿ ïðèñâîåíèå çíà÷åíèÿ êîíñòàíòíîé ïåðåìåííîé %s" +# :!~ Restorer msgid "E1019: Can only concatenate to string" -msgstr "E1019: Ïðèñîåäèíÿòü ìîæíî òîëüêî ê ñòðîêå" +msgstr "E1019: Êîíêàòåíàöèÿ äîïóñêàåòñÿ òîëüêî äëÿ òèïà äàííûõ String" +# :!~ Restorer #, c-format msgid "E1020: Cannot use an operator on a new variable: %s" -msgstr "E1020: Íåëüçÿ èñïîëüçîâàòü îïåðàòîð ïðè îáúÿâëåíèè ïåðåìåííîé: %s" +msgstr "E1020: Íå äîïóñêàåòñÿ óêàçàíèå îïåðàòîðîâ ïðè îáúÿâëåíèè ïåðåìåííîé %s" +# :!~ Restorer msgid "E1021: Const requires a value" -msgstr "E1021: Ïîñëå :const íóæíî óêàçàòü çíà÷åíèå" +msgstr "E1021: Òðåáóåòñÿ çàäàòü çíà÷åíèå äëÿ êîíñòàíòíîé ïåðåìåííîé" +# :!~ Restorer msgid "E1022: Type or initialization required" -msgstr "E1022: Òðåáóåòñÿ óêàçàòü òèï èëè íà÷àëüíîå çíà÷åíèå" +msgstr "E1022: Òðåáóåòñÿ óêàçàíèå òèïà èëè äàííûõ èíèöèàëèçàöèè" +# :!~ Restorer #, c-format msgid "E1023: Using a Number as a Bool: %lld" -msgstr "E1023: Èñïîëüçîâàíèå ÷èñëà %lld êàê ëîãè÷åñêîãî çíà÷åíèÿ" +msgstr "E1023: Îæèäàëîñü ëîãè÷åñêîå çíà÷åíèå, à ïîëó÷åí Number %lld" +# :!~ Restorer msgid "E1024: Using a Number as a String" -msgstr "E1024: Èñïîëüçîâàíèå ÷èñëà âìåñòî ñòðîêè" +msgstr "E1024: Îæèäàëñÿ òèï äàííûõ String, à ïîëó÷åí Number" +# :!~ Restorer msgid "E1025: Using } outside of a block scope" -msgstr "E1025: Èñïîëüçîâàíèå } âíå áëîêà êîäà" +msgstr "E1025: Çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà óêàçàíà âíå áëîêà èíñòðóêöèé" +# :!~ Restorer msgid "E1026: Missing }" -msgstr "E1026: Ïðîïóùåíà }" +msgstr "E1026: Íå óêàçàíà çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà" +# :!~ Restorer msgid "E1027: Missing return statement" -msgstr "E1027: Ïðîïóùåí îïåðàòîð :return" +msgstr "E1027: Íå óêàçàíà êîìàíäà :return" +# :!~ Restorer msgid "E1028: Compiling :def function failed" -msgstr "E1028: Íå óäàëàñü êîìïèëÿöèÿ ôóíêöèè :def" +msgstr "E1028: Îøèáêà ïðè êîìïèëÿöèè ôóíêöèè, îáúÿâëåííîé êîìàíäîé :def" +# :!~ Restorer #, c-format msgid "E1029: Expected %s but got %s" -msgstr "E1029: Îæèäàëîñü %s, à ïîëó÷åíî %s" +msgstr "E1029: Îæèäàëñÿ òèï äàííûõ %s, à ïîëó÷åí %s" +# :!~ Restorer #, c-format msgid "E1030: Using a String as a Number: \"%s\"" -msgstr "E1030: Èñïîëüçîâàíèå ñòðîêè âìåñòî ÷èñëà: \"%s\"" +msgstr "E1030: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åí String \"%s\"" +# :!~ Restorer msgid "E1031: Cannot use void value" -msgstr "E1031: Ïóñòîå çíà÷åíèå íå ìîæåò áûòü èñïîëüçîâàíî â âûðàæåíèè" +msgstr "E1031: Íå äîïóñêàåòñÿ óêàçàíèå íà íåäåéñòâèòåëüíîå çíà÷åíèå" +# :!~ Restorer msgid "E1032: Missing :catch or :finally" -msgstr "E1032: Ïðîïóùåí :catch ëèáî :finally" +msgstr "E1032: Íå óêàçàíà êîìàíäà :catch èëè :finally" +# :!~ Restorer msgid "E1033: Catch unreachable after catch-all" -msgstr "E1033: Êîìàíäà :catch ïîñëå \"catch-all\" íèêîãäà íå âûïîëíèòñÿ" +msgstr "" +"E1033: Íå äîïóñêàåòñÿ óêàçàíèå êîìàíäû :catch ïîñëå ïåðåõâàò÷èêà âñåõ " +"èñêëþ÷åíèé" +# :!~ Restorer #, c-format msgid "E1034: Cannot use reserved name %s" -msgstr "E1034: Íåëüçÿ èñïîëüçîâàòü çàðåçåðâèðîâàííîå èìÿ %s" +msgstr "E1034: Îáíàðóæåíî èñïîëüçîâàíèå çàðåçåðâèðîâàííîãî ñëîâà â %s" +# :!~ Restorer #, no-c-format msgid "E1035: % requires number arguments" -msgstr "E1035: Äëÿ äåëåíèÿ ïî ìîäóëþ òðåáóþòñÿ öåëûå ÷èñëà" +msgstr "E1035: Äëÿ îïåðàöèè äåëåíèå ñ îñòàòêîì òèï îïåðàíäîâ äîëæåí áûòü Number" +# :!~ Restorer #, c-format msgid "E1036: %c requires number or float arguments" -msgstr "E1036: %c èñïîëüçóåòñÿ òîëüêî ñ ÷èñëîâûìè çíà÷åíèÿìè" +msgstr "" +"E1036: Òðåáóåòñÿ òèï îïåðàíäîâ Number èëè Float äëÿ âûïîëíåíèÿ îïåðàöèè %c" +# :!~ Restorer #, c-format msgid "E1037: Cannot use \"%s\" with %s" -msgstr "E1037: Íåëüçÿ èñïîëüçîâàòü \"%s\" âìåñòå ñ %s" +msgstr "E1037: Îïåðàöèÿ \"%s\" íå ïðèìåíèìà ê òèïó äàííûõ %s" +# :!~ Restorer msgid "E1038: \"vim9script\" can only be used in a script" -msgstr "E1038: \"vim9script\" ìîæåò èñïîëüçîâàòüñÿ òîëüêî â ñöåíàðèè" +msgstr "E1038: Êîìàíäà :vim9script äîëæíà óêàçûâàòüñÿ òîëüêî â êîìàíäíîì ôàéëå" +# :!~ Restorer msgid "E1039: \"vim9script\" must be the first command in a script" -msgstr "E1039: \"vim9script\" äîëæåí áûòü ïåðâîé êîìàíäîé ñöåíàðèÿ" +msgstr "E1039: Êîìàíäà :vim9script óêàçûâàåòñÿ ïåðâîé êîìàíäîé â êîìàíäíîì ôàéëå" +# :!~ Restorer msgid "E1040: Cannot use :scriptversion after :vim9script" -msgstr "E1040: :scriptversion íå èñïîëüçóåòñÿ â Vim9 script" +msgstr "" +"E1040: Íå äîïóñêàåòñÿ óêàçàíèå êîìàíäû :scriptversion ïîñëå êîìàíäû :vim9script" +# :!~ Restorer #, c-format msgid "E1041: Redefining script item: \"%s\"" -msgstr "E1041: Ïåðåîïðåäåëåíèå ýëåìåíòà ñöåíàðèÿ: \"%s\"" +msgstr "E1041: Ïåðåîïðåäåëåíèå êîìïîíåíòà êîìàíäíîãî ôàéëà \"%s\"" +# :!~ Restorer msgid "E1042: Export can only be used in vim9script" -msgstr "E1042: Êîìàíäà :export èñïîëüçóåòñÿ òîëüêî â Vim9 script" +msgstr "E1042: Êîìàíäà :export äîëæíà óêàçûâàòüñÿ òîëüêî â êîìàíäíûõ ôàéëàõ Vim9" +# :!~ Restorer msgid "E1043: Invalid command after :export" -msgstr "E1043: Íåïðàâèëüíàÿ êîìàíäà ïîñëå :export" +msgstr "E1043: Íåäîïóñòèìàÿ êîìàíäà ïîñëå êîìàíäû :export" +# :!~ Restorer msgid "E1044: Export with invalid argument" -msgstr "E1044: Íåïðàâèëüíûé ïàðàìåòð äëÿ :export" +msgstr "E1044: Íåäîïóñòèìûé ïàðàìåòð ïðè âûçîâå êîìàíäû ýêñïîðòà" +# :!~ Restorer #, c-format msgid "E1047: Syntax error in import: %s" -msgstr "E1047: Ñèíòàêñè÷åñêàÿ îøèáêà â êîìàíäå :import: %s" +msgstr "E1047: Îøèáêà ñèíòàêñèñà â âûçîâå êîìàíäû :import %s" +# :!~ Restorer #, c-format msgid "E1048: Item not found in script: %s" -msgstr "E1048: Ýëåìåíò íå íàéäåí â ñöåíàðèè: %s" +msgstr "E1048:  êîìàíäíîì ôàéëå íå íàéäåí êîìïîíåíò %s" +# :!~ Restorer #, c-format msgid "E1049: Item not exported in script: %s" -msgstr "E1049: Ýëåìåíò íå áûë ýêñïîðòèðîâàí èç ñöåíàðèÿ: %s" +msgstr "E1049: Êîìïîíåíò íå ÿâëÿåòñÿ ýêñïîðòèðóåìûì %s" +# :!~ Restorer #, c-format msgid "E1050: Colon required before a range: %s" -msgstr "E1050: Ïåðåä äèàïàçîíîì äîëæíî ñòîÿòü äâîåòî÷èå: %s" +msgstr "E1050: Òðåáóåòñÿ ñèìâîë äâîåòî÷èÿ ïåðåä çíà÷åíèåì äèàïàçîíà %s" +# :!~ Restorer msgid "E1051: Wrong argument type for +" -msgstr "E1051: Íåïðàâèëüíûé òèï ïàðàìåòðà äëÿ îïåðàòîðà +" +msgstr "E1051: Íåäîïóñòèìûé òèï äàííûõ îïåðàíäà äëÿ îïåðàöèè ñëîæåíèÿ" +# :!~ Restorer #, c-format msgid "E1052: Cannot declare an option: %s" -msgstr "E1052: Íåëüçÿ îáúÿâèòü îïöèþ: %s" +msgstr "E1052: Íå äîïóñêàåòñÿ îáúÿâëåíèå ïàðàìåòðà %s" +# :!~ Restorer #, c-format msgid "E1053: Could not import \"%s\"" -msgstr "E1053: Íåâîçìîæíî èìïîðòèðîâàòü \"%s\"" +msgstr "E1053: Íå óäàëîñü èìïîðòèðîâàòü \"%s\"" +# :!~ Restorer #, c-format msgid "E1054: Variable already declared in the script: %s" -msgstr "E1054: Ïåðåìåííàÿ óæå îáúÿâëåíà â ýòîì ñöåíàðèè: %s" +msgstr "E1054: Ýòà ïåðåìåííàÿ óæå îáúÿâëåíà â êîìàíäíîì ôàéëå %s" +# :!~ Restorer msgid "E1055: Missing name after ..." -msgstr "E1055: Ïðîïóùåíî èìÿ ïîñëå ..." +msgstr "" +"E1055: Íå óêàçàíî íàèìåíîâàíèå îñòàòî÷íîãî ïàðàìåòðà ïîñëå ñèìâîëà ìíîãîòî÷èå" +# :!~ Restorer #, c-format msgid "E1056: Expected a type: %s" -msgstr "E1056: Îæèäàëñÿ òèï %s" +msgstr "E1056: Îæèäàëñÿ òèï äàííûõ %s" +# :!~ Restorer msgid "E1057: Missing :enddef" -msgstr "E1057: Îòñóòñòâóåò êîìàíäà :enddef" +msgstr "E1057: Íå óêàçàíà êîìàíäà :enddef äëÿ êîìàíäû :def" +# :!~ Restorer msgid "E1058: Function nesting too deep" -msgstr "E1058: Ñëèøêîì ãëóáîêî âëîæåííàÿ ôóíêöèÿ" +msgstr "E1058: Ïðåâûøåíî êîëè÷åñòâî âëîæåííûõ ôóíêöèé" +# :!~ Restorer #, c-format msgid "E1059: No white space allowed before colon: %s" -msgstr "E1059: Ïðîáåëüíûå ñèìâîëû íå ðàçðåøåíû ïåðåä äâîåòî÷èåì: %s" +msgstr "E1059: Çàïðåù¸í ïðîáåëüíûé ñèìâîë ïåðåä ñèìâîëîì äâîåòî÷èÿ â %s" +# :!~ Restorer #, c-format msgid "E1060: Expected dot after name: %s" -msgstr "E1060: Îæèäàëàñü òî÷êà ïîñëå èìåíè: %s" +msgstr "E1060:  êîìàíäå :import îòñóòñòâóåò ñèìâîë òî÷êè ïîñëå íàèìåíîâàíèÿ %s" +# :!~ Restorer #, c-format msgid "E1061: Cannot find function %s" -msgstr "E1061: Ôóíêöèÿ %s íå íàéäåíà" +msgstr "E1061: Íå íàéäåíà ôóíêöèÿ %s" +# :!~ Restorer msgid "E1062: Cannot index a Number" -msgstr "E1062: Íåâîçìîæíî ïðîèíäåêñèðîâàòü ÷èñëî" +msgstr "E1062: Íå äîïóñêàåòñÿ óêàçàíèå èíäåêñà äëÿ òèïà äàííûõ Number" +# :!~ Restorer msgid "E1063: Type mismatch for v: variable" -msgstr "E1063: Íåñîîòâåòñòâèå òèïà äëÿ ïåðåìåííîé v:" +msgstr "E1063: Íåñîîòâåòñòâóþùèé òèï äàííûõ äëÿ ïåðåìåííîé ñ ïðèñòàâêîé v:" +# :!~ Restorer msgid "E1064: Yank register changed while using it" -msgstr "" -"E1064: Ðåãèñòð, èñïîëüçóþùèéñÿ äëÿ âñòàâêè òåêñòà, áûë íåîæèäàííî èçìåí¸í" +msgstr "E1064: Íåïðåäâèäåííîå èçìåíåíèå ñîäåðæèìîãî ðåãèñòðà" +# :!~ Restorer #, c-format msgid "E1065: Command cannot be shortened: %s" -msgstr "E1065: Èìÿ êîìàíäû íåëüçÿ ñîêðàòèòü: %s" +msgstr "E1065: Íå äîïóñêàåòñÿ ñîêðàù¸ííàÿ çàïèñü êîìàíäû %s" +# :!~ Restorer #, c-format msgid "E1066: Cannot declare a register: %s" -msgstr "E1066: Íåëüçÿ îáúÿâèòü ðåãèñòð: %s" +msgstr "E1066: Íå äîïóñêàåòñÿ îáúÿâëåíèå ðåãèñòðà %s" +# :!~ Restorer #, c-format msgid "E1067: Separator mismatch: %s" -msgstr "E1067: Íåñîîòâåòñòâèå ðàçäåëèòåëÿ: %s" +msgstr "E1067: Óêàçàííûé ðàçäåëèòåëü íå ñîâïàäàåò ñ %s" +# :!~ Restorer #, c-format msgid "E1068: No white space allowed before '%s': %s" -msgstr "E1068: Ïðîáåëüíûå ñèìâîëû íå ðàçðåøåíû ïåðåä '%s': %s" +msgstr "E1068: Çàïðåù¸í ïðîáåëüíûé ñèìâîë ïåðåä '%s' â %s" +# :!~ Restorer #, c-format msgid "E1069: White space required after '%s': %s" -msgstr "E1069: Ïðîáåëüíûå ñèìâîëû íåîáõîäèìû ïîñëå '%s': %s" +msgstr "E1069: Òðåáóåòñÿ ïðîáåëüíûé ñèìâîë ïîñëå '%s' â %s" +# :!~ Restorer #, c-format msgid "E1071: Invalid string for :import: %s" -msgstr "E1071: Íåïðàâèëüíàÿ ñòðîêà äëÿ êîìàíäû :import: %s" +msgstr "E1071: Íåäîïóñòèìàÿ ñòðîêà â âûçîâå êîìàíäû :import %s" +# :!~ Restorer #, c-format msgid "E1072: Cannot compare %s with %s" -msgstr "E1072: Íåëüçÿ ñðàâíèâàòü %s è %s" +msgstr "E1072: Íå äîïóñêàåòñÿ îïåðàöèÿ ñðàâíåíèÿ òèïà äàííûõ %s ñ òèïîì %s" +# :!~ Restorer #, c-format msgid "E1073: Name already defined: %s" -msgstr "E1073: Èìÿ óæå îïðåäåëåíî: %s" +msgstr "E1073: Íàèìåíîâàíèå ôóíêöèè óæå îïðåäåëåíî %s" +# :!~ Restorer msgid "E1074: No white space allowed after dot" -msgstr "E1074: Ïðîáåëüíûå ñèìâîëû ïîñëå òî÷êè íå ðàçðåøåíû" +msgstr "E1074: Çàïðåù¸í ïðîáåëüíûé ñèìâîë ïîñëå ñèìâîëà òî÷êè â êîìàíäå :import" +# :!~ Restorer #, c-format msgid "E1075: Namespace not supported: %s" -msgstr "E1075: Ïðîñòðàíñòâî èì¸í íå ïîääåðæèâàåòñÿ: %s" - -msgid "E1076: This Vim is not compiled with float support" -msgstr "" -"E1076: Ýòà âåðñèÿ Vim áûëà ñîáðàíà áåç ïîääåðæêè âû÷èñëåíèé " -"ñ ïëàâàþùåé òî÷êîé" +msgstr "E1075: Ïðîñòðàíñòâî èì¸í íå ïîääåðæèâàåòñÿ %s" +# :!~ Restorer #, c-format msgid "E1077: Missing argument type for %s" -msgstr "E1077: Ïðîïóùåí òèï ïàðàìåòðà äëÿ %s" +msgstr "E1077: Íå óêàçàí òèï äàííûõ àðãóìåíòà %s" +# :!~ Restorer msgid "E1078: Invalid command \"nested\", did you mean \"++nested\"?" -msgstr "" -"E1078: Íåïðàâèëüíàÿ êîìàíäà \"nested\". Ìîæåò áûòü, âû èìåëè â âèäó " -"\"++nested\"?" +msgstr "E1078: Íåäîïóñòèìûé ïàðàìåòð \"nested\". Èñïîëüçóéòå \"++nested\"" +# :!~ Restorer msgid "E1079: Cannot declare a variable on the command line" -msgstr "E1079: Ïåðåìåííóþ íåëüçÿ îáúÿâèòü â êîìàíäíîé ñòðîêå" +msgstr "E1079: Íå äîïóñêàåòñÿ îáúÿâëåíèå ïåðåìåííîé â êîìàíäíîé ñòðîêå" +# :!~ Restorer msgid "E1080: Invalid assignment" -msgstr "E1080: Íåïðàâèëüíûé îïåðàòîð ïðèñâàèâàíèÿ" +msgstr "E1080: Íåäîïóñòèìîå ïðèñâàèâàíèå" +# :!~ Restorer #, c-format msgid "E1081: Cannot unlet %s" -msgstr "E1081: Íå ìîãó óáðàòü ïåðåìåííóþ %s" +msgstr "E1081: Íå äîïóñêàåòñÿ óäàëåíèå ïåðåìåííîé %s" +# :!~ Restorer msgid "E1082: Command modifier without command" -msgstr "E1082: Èñïîëüçîâàíèå ìîäèôèêàòîðà êîìàíäû áåç ñàìîé êîìàíäû" +msgstr "E1082: Çàäàí ìîäèôèêàòîð êîìàíäû áåç óêàçàíèÿ ñàìîé êîìàíäû" +# :!~ Restorer msgid "E1083: Missing backtick" -msgstr "E1083: Ïðîïóùåí îáðàòíûé àïîñòðîô" +msgstr "E1083: Íå óêàçàí ñèìâîë ìàøèíîïèñíîãî îáðàòíîãî àïîñòðîôà" +# :!~ Restorer #, c-format msgid "E1084: Cannot delete Vim9 script function %s" -msgstr "E1084: Íåâîçìîæíî óäàëèòü ôóíêöèþ Vim9 script %s" +msgstr "E1084: Íå äîïóñêàåòñÿ óäàëåíèå ôóíêöèé Vim9 %s" +# :!~ Restorer #, c-format msgid "E1085: Not a callable type: %s" -msgstr "E1085: Òèï íå ãîäèòñÿ äëÿ âûçîâà: %s" +msgstr "E1085: Ïåðåìåííàÿ íå ìîæåò áûòü âûçâàíà êàê ôóíêöèÿ %s" +# :!~ Restorer msgid "E1087: Cannot use an index when declaring a variable" -msgstr "E1087: Íåëüçÿ èíäåêñèðîâàòü îáúÿâëÿåìóþ ïåðåìåííóþ" +msgstr "E1087: Íå äîïóñêàåòñÿ óêàçàíèå èíäåêñà ïðè îáúÿâëåíèè ïåðåìåííûõ" +# :!~ Restorer msgid "E1088: Script cannot import itself" -msgstr "E1088: Ñöåíàðèé íå ìîæåò èìïîðòèðîâàòü ñàì ñåáÿ" +msgstr "E1088: Íå äîïóñêàåòñÿ èìïîðòèðîâàíèå êîìàíäíûì ôàéëîì ñàìîãî ñåáÿ" +# :!~ Restorer #, c-format msgid "E1089: Unknown variable: %s" -msgstr "E1089: Íåèçâåñòíàÿ ïåðåìåííàÿ %s" +msgstr "E1089: Íå ðàñïîçíàíà ïåðåìåííàÿ %s" +# :!~ Restorer #, c-format msgid "E1090: Cannot assign to argument %s" -msgstr "E1090: Íåëüçÿ íè÷åãî ïðèñâàèâàòü ïàðàìåòðó %s" +msgstr "E1090: Íå äîïóñêàåòñÿ ïðèñâîåíèå çíà÷åíèÿ àðãóìåíòó %s" +# :!~ Restorer #, c-format msgid "E1091: Function is not compiled: %s" -msgstr "E1091: Ôóíêöèÿ íå ñêîìïèëèðîâàíà: %s" +msgstr "E1091: Íåêîìïèëèðîâàííàÿ ôóíêöèÿ %s" +# :!~ Restorer msgid "E1092: Cannot nest :redir" -msgstr "E1092: Âëîæåííûé :redir íå äîïóñêàåòñÿ" +msgstr "E1092: Íå äîïóñêàþòñÿ âëîæåííûå êîìàíäû :redir" +# :!~ Restorer #, c-format msgid "E1093: Expected %d items but got %d" -msgstr "E1093: Îæèäàëîñü %d ýëåìåíòîâ, à ïîëó÷åíî %d" +msgstr "E1093: Êîëè÷åñòâî ýëåìåíòîâ äîëæíî áûòü %d, à ïîëó÷åíî %d" +# :!~ Restorer msgid "E1094: Import can only be used in a script" -msgstr "E1094: Êîìàíäà :import èñïîëüçóåòñÿ òîëüêî â ñöåíàðèè" +msgstr "E1094: Êîìàíäà :import äîëæíà óêàçûâàòüñÿ òîëüêî â êîìàíäíîì ôàéëå" -msgid "E1095: Unreachable code after :return" -msgstr "E1095: Êîìàíäû ïîñëå :return íèêîãäà íå âûïîëíÿòñÿ" +# :!~ Restorer +#, c-format +msgid "E1095: Unreachable code after :%s" +msgstr "E1095: Íå îáðàáîòàíî âûðàæåíèå ïîñëå êîìàíäû :%s" +# :!~ Restorer msgid "E1096: Returning a value in a function without a return type" -msgstr "E1096: Âîçâðàò çíà÷åíèÿ èç ôóíêöèè, êîòîðàÿ íè÷åãî íå âîçâðàùàåò" +msgstr "E1096: Âîçâðàùàåìîå ôóíêöèåé çíà÷åíèå çàäàíî áåç óêàçàíèÿ òèïà" +# :!~ Restorer msgid "E1097: Line incomplete" -msgstr "E1097: Ñòðîêà íå çàâåðøåíà" +msgstr "E1097: Îòñóòñòâóåò ñèìâîë çàâåðøåíèÿ ñòðîêè" +# :!~ Restorer msgid "E1098: String, List or Blob required" -msgstr "E1098: Òðåáóåòñÿ ñòðîêà, ñïèñîê èëè áëîá" +msgstr "E1098: Òèï äàííûõ äîëæåí áûòü String, List èëè BLOB" +# :!~ Restorer #, c-format msgid "E1099: Unknown error while executing %s" -msgstr "E1099: Íåèçâåñòíàÿ îøèáêà âî âðåìÿ âûïîëíåíèÿ %s" +msgstr "E1099: Íåðàñïîçíàííàÿ îøèáêà ïðè èñïîëíåíèè %s" +# :!~ Restorer #, c-format msgid "E1100: Command not supported in Vim9 script (missing :var?): %s" msgstr "" -"E1100: Êîìàíäà íå ïîääåðæèâàåòñÿ ÿçûêîì Vim9 script (ïðîïóùåí :var?): %s" +"E1100:  ÿçûêå Vim9 íå ïîääåðæèâàåòñÿ êîìàíäà %s. Âîçìîæíî, íå óêàçàíà " +"êîìàíäà :var" +# :!~ Restorer #, c-format msgid "E1101: Cannot declare a script variable in a function: %s" -msgstr "E1101: Íåëüçÿ îáúÿâèòü ïåðåìåííóþ ñöåíàðèÿ âíóòðè ôóíêöèè: %s" +msgstr "" +"E1101: Íå äîïóñêàåòñÿ îáúÿâëåíèå ïåðåìåííîé êîìàíäíîãî ôàéëà â ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E1102: Lambda function not found: %s" -msgstr "E1102: Ëÿìáäà-ôóíêöèÿ íå íàéäåíà: %s" +msgstr "E1102: Íå íàéäåíà ëÿìáäà-ôóíêöèÿ %s" +# :!~ Restorer msgid "E1103: Dictionary not set" -msgstr "E1103: Ñëîâàðü íå óñòàíîâëåí" +msgstr "E1103: Ïóñòîé ñëîâàðü" +# :!~ Restorer msgid "E1104: Missing >" -msgstr "E1104: Ïðîïóùåíî >" +msgstr "E1104: Íå óêàçàíà çàêðûâàþùàÿ óãëîâàÿ ñêîáêà" +# :!~ Restorer #, c-format msgid "E1105: Cannot convert %s to string" -msgstr "E1105: Íåâîçìîæíî ïðåîáðàçîâàòü %s â ñòðîêó" +msgstr "E1105: Íå äîïóñêàåòñÿ ïðåîáðàçîâàíèå ê ñòðîêîâîìó òèïó äëÿ %s" -#, no-c-format +# :!~ Restorer +#, c-format msgid "E1106: One argument too many" msgid_plural "E1106: %d arguments too many" -msgstr[0] "E1106: Îäèí ëèøíèé ïàðàìåòð" -msgstr[1] "E1106: %d ëèøíèõ ïàðàìåòðà" -msgstr[2] "E1106: %d ëèøíèõ ïàðàìåòðîâ" +msgstr[0] "E1106:  ôóíêöèþ ïåðåäàíî íà îäèí àðãóìåíò áîëüøå" +msgstr[1] "E1106:  ôóíêöèþ ïåðåäàíî íà %d àðãóìåíòà áîëüøå" +msgstr[2] "E1106:  ôóíêöèþ ïåðåäàíî íà %d àðãóìåíòîâ áîëüøå" +# :!~ Restorer msgid "E1107: String, List, Dict or Blob required" -msgstr "E1107: Òðåáóåòñÿ ñòðîêà, ñïèñîê, ñëîâàðü èëè áëîá" - -#, c-format -msgid "E1108: Item not found: %s" -msgstr "E1108: Ýëåìåíò íå íàéäåí: %s" +msgstr "E1107: Òèï äàííûõ äîëæåí áûòü String, List, Dictionary èëè BLOB" +# :!~ Restorer #, c-format msgid "E1109: List item %d is not a List" -msgstr "E1109: Ýëåìåíò %d â ñïèñêå íå ÿâëÿåòñÿ ñïèñêîì" +msgstr "E1109: Òèï %d ýëåìåíòà ñïèñêà íå ÿâëÿåòñÿ List" +# :!~ Restorer #, c-format msgid "E1110: List item %d does not contain 3 numbers" -msgstr "E1110: Ýëåìåíò %d â ñïèñêå íå ñîäåðæèò òðè ÷èñëà" +msgstr "E1110: Òðåáóåòñÿ çàäàòü âñå òðè ýëåìåíòà â %d ñïèñêå" +# :!~ Restorer #, c-format msgid "E1111: List item %d range invalid" -msgstr "E1111: Ýëåìåíò %d â ñïèñêå çàäà¸ò íåïðàâèëüíûé äèàïàçîí" +msgstr "E1111: Íåäîïóñòèìûé äèàïàçîí â %d ñïèñêå" +# :!~ Restorer #, c-format msgid "E1112: List item %d cell width invalid" -msgstr "E1112: Ýëåìåíò %d â ñïèñêå çàäà¸ò íåïðàâèëüíóþ øèðèíó ÿ÷åéêè" +msgstr "E1112: Íåäîïóñòèìàÿ øèðèíà ÿ÷åéêè â %d ñïèñêå" +# :!~ Restorer #, c-format msgid "E1113: Overlapping ranges for 0x%lx" -msgstr "E1113: Ïåðåêðûâàþùèåñÿ äèàïàçîíû äëÿ 0x%lx" +msgstr "E1113: Ïåðåêðûòèå äèàïàçîíîâ äëÿ çíà÷åíèÿ 0x%lx" +# :!~ Restorer msgid "E1114: Only values of 0x80 and higher supported" -msgstr "E1114: Ïîääåðæèâàþòñÿ òîëüêî çíà÷åíèÿ îò 0x80 è âûøå" +msgstr "" +"E1114:  ôóíêöèè setcellwidths() äîïóñòèìû ñèìâîëû èç äèàïàçîíà 0x80 è âûøå" +# :!~ Restorer msgid "E1115: \"assert_fails()\" fourth argument must be a number" msgstr "" -"E1115: ×åòâ¸ðòûé ïàðàìåòð ôóíêöèè \"assert_fails()\" äîëæåí áûòü ÷èñëîì" +"E1115:  ôóíêöèè assert_fails() çíà÷åíèåì àðãóìåíòà íîìåð 4 äîëæíî áûòü ÷èñëî" +# :!~ Restorer msgid "E1116: \"assert_fails()\" fifth argument must be a string" -msgstr "E1116: Ïÿòûé ïàðàìåòð ôóíêöèè \"assert_fails()\" äîëæåí áûòü ñòðîêîé" +msgstr "" +"E1116:  ôóíêöèè assert_fails() çíà÷åíèåì àðãóìåíòà íîìåð 5 äîëæíà áûòü ñòðîêà" +# :!~ Restorer msgid "E1117: Cannot use ! with nested :def" -msgstr "E1117: Íåëüçÿ èñïîëüçîâàòü ! äëÿ âëîæåííîãî :def" +msgstr "E1117: Íå äîïóñêàåòñÿ óêàçàíèå ìîäèôèêàòîðà ! äëÿ âëîæåííûõ êîìàíä :def" +# :!~ Restorer msgid "E1118: Cannot change locked list" -msgstr "E1118: Íåëüçÿ èçìåíèòü çàáëîêèðîâàííûé ñïèñîê" +msgstr "E1118: Èçìåíåíèå ñïèñêà íå âûïîëíåíî. Óñòàíîâëåíà áëîêèðîâêà ñïèñêà" +# :!~ Restorer msgid "E1119: Cannot change locked list item" -msgstr "E1119: Íåëüçÿ èçìåíèòü çàáëîêèðîâàííûé ýëåìåíò ñïèñêà" +msgstr "" +"E1119: Èçìåíåíèå ýëåìåíòà ñïèñêà íå âûïîëíåíî. Óñòàíîâëåíà áëîêèðîâêà ýëåìåíòà" +# :!~ Restorer msgid "E1120: Cannot change dict" -msgstr "E1120: Íåëüçÿ èçìåíèòü çàáëîêèðîâàííûé ñëîâàðü" +msgstr "E1120: Èçìåíåíèå ñëîâàðÿ íå âûïîëíåíî. Óñòàíîâëåíà áëîêèðîâêà ñëîâàðÿ" +# :!~ Restorer msgid "E1121: Cannot change dict item" -msgstr "E1121: Íåëüçÿ èçìåíèòü çàáëîêèðîâàííûé ýëåìåíò ñëîâàðÿ" +msgstr "" +"E1121: Èçìåíåíèå çàïèñè ñëîâàðÿ íå âûïîëíåíî. Óñòàíîâëåíà áëîêèðîâêà çàïèñè" +# :!~ Restorer #, c-format msgid "E1122: Variable is locked: %s" -msgstr "E1122: Ïåðåìåííàÿ çàáëîêèðîâàíà: %s" +msgstr "E1122: Îáíàðóæåíà áëîêèðîâêà ïåðåìåííîé %s" +# :!~ Restorer #, c-format msgid "E1123: Missing comma before argument: %s" -msgstr "E1123: Ïðîïóùåíà çàïÿòàÿ ïåðåä ïàðàìåòðîì: %s" +msgstr "E1123: Íå óêàçàí ñèìâîë çàïÿòîé ïåðåä àðãóìåíòîì %s" +# :!~ Restorer #, c-format msgid "E1124: \"%s\" cannot be used in legacy Vim script" -msgstr "E1124: \"%s\" íå èñïîëüçóåòñÿ â ïðåæíåé âåðñèè ÿçûêà Vim script" +msgstr "E1124: Êîìàíäà \"%s\" äîïóñêàåòñÿ òîëüêî â êîìàíäíîì ôàéëå Vim9" +# :!~ Restorer msgid "E1125: Final requires a value" -msgstr "E1125: Ïîñëå :final íóæíî óêàçàòü çíà÷åíèå" +msgstr "E1125: Òðåáóåòñÿ óêàçàòü çíà÷åíèå äëÿ êîìàíäû :final" +# :!~ Restorer msgid "E1126: Cannot use :let in Vim9 script" -msgstr "E1126: :let íå èñïîëüçóåòñÿ â Vim9 script" +msgstr "E1126: Íå äîïóñêàåòñÿ óêàçàíèå êîìàíäà :let â êîìàíäíîì ôàéëå Vim9" +# :!~ Restorer msgid "E1127: Missing name after dot" -msgstr "E1127: Ïðîïóùåíî èìÿ ïîñëå òî÷êè" +msgstr "E1127: Íå óêàçàíî íàèìåíîâàíèå êëþ÷à ïîñëå çíàêà òî÷êè" +# :!~ Restorer msgid "E1128: } without {" -msgstr "E1128: } áåç {" +msgstr "" +"E1128: Çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà áåç ïàðíîé îòêðûâàþùåé ôèãóðíîé ñêîáêè" +# :!~ Restorer msgid "E1129: Throw with empty string" -msgstr "E1129: Êîìàíäà :throw ñ ïóñòîé ñòðîêîé íå ðàçðåøåíà" +msgstr "E1129: Ïîñëå êîìàíäû :throw îòñóòñòâóåò âûðàæåíèå" +# :!~ Restorer msgid "E1130: Cannot add to null list" -msgstr "E1130: Íåëüçÿ äîáàâèòü â null-ñïèñîê" +msgstr "" +"E1130: Äàííûå ñ òèïîì List îòñóòñòâóþò. Äîáàâëåíèå ýëåìåíòîâ íå âûïîëíåíî" +# :!~ Restorer msgid "E1131: Cannot add to null blob" -msgstr "E1131: Íåëüçÿ äîáàâèòü â null-áëîá" +msgstr "E1131: Äàííûå ñ òèïîì BLOB îòñóòñòâóþò. Äîáàâëåíèå öèôð íå âûïîëíåíî" +# :!~ Restorer msgid "E1132: Missing function argument" -msgstr "E1132: Ïðîïóùåí ïàðàìåòð ôóíêöèè" +msgstr "E1132: Íå óêàçàí àðãóìåíò ôóíêöèè" +# :!~ Restorer msgid "E1133: Cannot extend a null dict" -msgstr "E1133: Íåëüçÿ ðàñøèðèòü null-ñëîâàðü" +msgstr "" +"E1133: Äàííûå ñ òèïîì Dictionary îòñóòñòâóþò. Ïðèñîåäèíåíèå çàïèñåé íå " +"âûïîëíåíî" +# :!~ Restorer msgid "E1134: Cannot extend a null list" -msgstr "E1134: Íåëüçÿ ðàñøèðèòü null-ñïèñîê" +msgstr "" +"E1134: Äàííûå ñ òèïîì List îòñóòñòâóþò. Ïðèñîåäèíåíèå ýëåìåíòîâ íå âûïîëíåíî" +# :!~ Restorer #, c-format msgid "E1135: Using a String as a Bool: \"%s\"" -msgstr "E1135: Èñïîëüçîâàíèå ñòðîêè âìåñòî ëîãè÷åñêîãî çíà÷åíèÿ: \"%s\"" +msgstr "E1135: Îæèäàëîñü ëîãè÷åñêîå çíà÷åíèå, à ïîëó÷åí String \"%s\"" +# :!~ Restorer msgid "E1136: mapping must end with before second " -msgstr "E1136: Ïðèâÿçêà ñ äîëæíà îêàí÷èâàòüñÿ íà äî âòîðîãî " - -#, c-format -msgid "E1137: mapping must not include %s key" -msgstr "E1137: Ïðèâÿçêà ñ íå äîëæíà ñîäåðæàòü êëàâèøó %s" +msgstr "" +"E1136: Íàçíà÷àåìàÿ ÷åðåç êîìàíäà íå çàâåðøàåòñÿ ïåðåä ñëåäóþùåé " +"" +# :!~ Restorer msgid "E1138: Using a Bool as a Number" -msgstr "E1138: Èñïîëüçîâàíèå ëîãè÷åñêîãî çíà÷åíèÿ âìåñòî ÷èñëà" +msgstr "E1138: Îæèäàëñÿ òèï äàííûõ Number, à ïîëó÷åíî ëîãè÷åñêîå çíà÷åíèå" +# :!~ Restorer msgid "E1139: Missing matching bracket after dict key" -msgstr "E1139: Ïðîïóùåíà çàêðûâàþùàÿ ñêîáêà ïîñëå êëþ÷à â ñëîâàðå" +msgstr "E1139: Íå óêàçàíà çàêðûâàþùàÿ ïðÿìîóãîëüíàÿ ñêîáêà ïîñëå êëþ÷à ñëîâàðÿ" +# :!~ Restorer msgid "E1140: :for argument must be a sequence of lists" -msgstr "E1140: Ïàðàìåòð :for äîëæåí áûòü ñïèñêîì ñïèñêîâ" +msgstr "E1140: Ïàðàìåòð êîìàíäû :for äîëæåí áûòü â âèäå âëîæåííîãî ñïèñêà" +# :!~ Restorer msgid "E1141: Indexable type required" -msgstr "E1141: Òðåáóåòñÿ èíäåêñèðóåìûé òèï" +msgstr "E1141: Òðåáóåòñÿ òèï äàííûõ äîïóñêàþùèõ èíäåêñàöèþ" +# :!~ Restorer msgid "E1142: Calling test_garbagecollect_now() while v:testing is not set" msgstr "" -"E1142: Âûçîâ test_garbagecollect_now() áåç óñòàíîâëåííîãî ôëàãà v:testing" +"E1142: Ïðè âûçîâå ôóíêöèè test_garbagecollect_now() íå çàäàíà ïåðåìåííàÿ v:" +"testing" +# :!~ Restorer #, c-format msgid "E1143: Empty expression: \"%s\"" -msgstr "E1143: Ïóñòîå âûðàæåíèå: \"%s\"" +msgstr "E1143: Îòñóòñòâóåò âûðàæåíèå â \"%s\"" +# :!~ Restorer #, c-format msgid "E1144: Command \"%s\" is not followed by white space: %s" -msgstr "E1144: Ïîñëå êîìàíäû \"%s\" äîëæíû èäòè ïðîáåëüíûå ñèìâîëû: %s" +msgstr "E1144: Òðåáóåòñÿ ïðîáåëüíûé ñèìâîë ïîñëå êîìàíäû \"%s\" â %s" +# :!~ Restorer #, c-format msgid "E1145: Missing heredoc end marker: %s" -msgstr "E1145: Ïðîïóùåí êîíå÷íûé ìàðêåð \"heredoc\": %s" +msgstr "E1145: Íå óêàçàí çàâåðøàþùèé ìàðêåð %s" +# :!~ Restorer #, c-format msgid "E1146: Command not recognized: %s" -msgstr "E1146: Êîìàíäà íå ðàñïîçíàíà: %s" +msgstr "E1146: Íå óäàëîñü ðàñïîçíàòü êîìàíäó %s" +# :!~ Restorer msgid "E1147: List not set" -msgstr "E1147: Ñïèñîê íå óñòàíîâëåí" +msgstr "E1147: Ïóñòîé ñïèñîê" +# :!~ Restorer #, c-format msgid "E1148: Cannot index a %s" -msgstr "E1148: Íåâîçìîæíî ïðîèíäåêñèðîâàòü %s" +msgstr "E1148: Íå äîïóñêàåòñÿ óêàçàíèå èíäåêñà äëÿ %s" +# :!~ Restorer #, c-format msgid "E1149: Script variable is invalid after reload in function %s" -msgstr "" -"E1149:  ôóíêöèè %s ïîñëå ïåðåçàãðóçêè ïåðåìåííàÿ ñöåíàðèÿ íåäåéñòâèòåëüíà" +msgstr "E1149: Íåäîïóñòèìîå çíà÷åíèå ïåðåìåííîé ïîñëå ïåðåãðóçêè ôóíêöèè %s" +# :!~ Restorer msgid "E1150: Script variable type changed" -msgstr "E1150: Òèï ïåðåìåííîé ñöåíàðèÿ èçìåíèëñÿ" +msgstr "E1150: Èçìåí¸í òèï ïåðåìåííîé" +# :!~ Restorer msgid "E1151: Mismatched endfunction" -msgstr "E1151: Íåïàðíàÿ êîìàíäà :endfunction" +msgstr "E1151: Îáíàðóæåíà íåñîîòâåòñòâóþùàÿ êîìàíäà :endfunction" +# :!~ Restorer msgid "E1152: Mismatched enddef" -msgstr "E1152: Íåïàðíàÿ êîìàíäà :enddef" +msgstr "E1152: Îáíàðóæåíà íåñîîòâåòñòâóþùàÿ êîìàíäà :enddef" +# :!~ Restorer #, c-format msgid "E1153: Invalid operation for %s" msgstr "E1153: Íåäîïóñòèìàÿ îïåðàöèÿ äëÿ %s" +# :!~ Restorer msgid "E1154: Divide by zero" -msgstr "E1154: Äåëåíèå íà íîëü" +msgstr "E1154: Îáíàðóæåíà ïîïûòêà äåëåíèÿ íà íîëü" +# :!~ Restorer msgid "E1155: Cannot define autocommands for ALL events" -msgstr "E1155: Íåëüçÿ çàäàòü àâòîêîìàíäû äëÿ ÂÑÅÕ ñîáûòèé ñðàçó" +msgstr "E1155: Íå äîïóñêàåòñÿ îäíîâðåìåííî çàäàâàòü àâòîêîìàíäû äëÿ âñåõ ñîáûòèé" +# :!~ Restorer msgid "E1156: Cannot change the argument list recursively" -msgstr "E1156: Ðåêóðñèâíîå èçìåíåíèå ñïèñêà àðãóìåíòîâ íå äîïóñêàåòñÿ" +msgstr "E1156: Íå äîïóñêàåòñÿ ðåêóðñèâíîå èçìåíåíèå ïåðå÷íÿ ôàéëîâ" +# :!~ Restorer msgid "E1157: Missing return type" -msgstr "E1157: Îòñóòñòâóåò òèï âîçâðàùàåìîãî çíà÷åíèÿ" +msgstr "E1157: Íå óêàçàí òèï âîçâðàùàåìûõ äàííûõ" +# :!~ Restorer msgid "E1158: Cannot use flatten() in Vim9 script, use flattennew()" msgstr "" -"E1158:  Vim9 script íåâîçìîæíî èñïîëüçîâàòü ôóíêöèþ flatten(), çàìåíèòå å¸ " -"íà flattennew()" +"E1158: Ôóíêöèÿ flatten() íåïðèìåíèìà â êîìàíäíîì ôàéëå Vim9. Èñïîëüçóéòå " +"ôóíêöèþ flattennew()" +# :!~ Restorer msgid "E1159: Cannot split a window when closing the buffer" -msgstr "E1159: Íåâîçìîæíî ðàçäåëèòü îêíî ïðè çàêðûòèè áóôåðà" +msgstr "E1159: Íå äîïóñêàåòñÿ ðàçáèåíèå îêíà îäíîâðåìåííî ñ çàêðûòèåì áóôåðà" +# :!~ Restorer msgid "E1160: Cannot use a default for variable arguments" msgstr "" -"E1160: Íåâîçìîæíî èñïîëüçîâàòü çíà÷åíèå ïî óìîë÷àíèþ äëÿ ïåðåìåííîãî " -"êîëè÷åñòâà àðãóìåíòîâ" +"E1160: Íå äîïóñêàåòñÿ óêàçàíèå çíà÷åíèÿ ïî óìîë÷àíèþ äëÿ îñòàòî÷íûõ ïàðàìåòðîâ" +# :!~ Restorer #, c-format msgid "E1161: Cannot json encode a %s" -msgstr "E1161: Íå ìîãó çàêîäèðîâàòü %s â JSON" +msgstr "E1161: Íå óäàëîñü êîäèðîâàòü %s â JSON" +# :!~ Restorer #, c-format msgid "E1162: Register name must be one character: %s" -msgstr "E1162: Èìÿ ðåãèñòðà äîëæíî ñîñòîÿòü èç îäíîãî ñèìâîëà: %s" +msgstr "E1162: Íàèìåíîâàíèå ðåãèñòðà äîëæíî ñîñòîÿòü èç îäíîãî ñèìâîëà %s" +# :!~ Restorer #, c-format msgid "E1163: Variable %d: type mismatch, expected %s but got %s" -msgstr "E1163: Íåñîîòâåòñòâèå òèïà ïåðåìåííîé %d: îæèäàëñÿ %s, à ïîëó÷åí %s" +msgstr "" +"E1163: Íåñîîòâåòñòâóþùèé òèï äàííûõ ïåðåìåííîé %d. Îæèäàëñÿ %s, à ïîëó÷åí %s" +# :!~ Restorer #, c-format msgid "E1163: Variable %d: type mismatch, expected %s but got %s in %s" msgstr "" -"E1163: Íåñîîòâåòñòâèå òèïà ïåðåìåííîé %d: îæèäàëñÿ %s, à ïîëó÷åí %s â %s" +"E1163: Íåñîîòâåòñòâóþùèé òèï äàííûõ ïåðåìåííîé %d. Îæèäàëñÿ %s, à ïîëó÷åí %s â " +"%s" +# :!~ Restorer msgid "E1164: vim9cmd must be followed by a command" -msgstr "E1164: Ïîñëå :vim9cmd äîëæíà èäòè êîìàíäà" +msgstr "E1164: Ïîñëå êîìàíäû :vim9cmd äîëæíà áûòü óêàçàíà ïîñëåäóþùàÿ êîìàíäà" +# :!~ Restorer #, c-format msgid "E1165: Cannot use a range with an assignment: %s" -msgstr "E1165: Íåëüçÿ èñïîëüçîâàòü äèàïàçîí âìåñòå ñ ïðèñâàèâàíèåì: %s" +msgstr "E1165: Íå äîïóñêàåòñÿ óêàçàíèå äèàïàçîíà ñ îïåðàöèåé ïðèñâàèâàíèÿ %s" +# :!~ Restorer msgid "E1166: Cannot use a range with a dictionary" -msgstr "E1166: Íåëüçÿ èñïîëüçîâàòü äèàïàçîí âìåñòå ñî ñëîâàð¸ì" +msgstr "E1166: Íå äîïóñêàåòñÿ óêàçàíèå äèàïàçîíà äëÿ äàííûõ òèïà Dictionary" +# :!~ Restorer #, c-format msgid "E1167: Argument name shadows existing variable: %s" -msgstr "E1167: Èìÿ ïàðàìåòðà ïîäìåíÿåò óæå ñóùåñòâóþùóþ ïåðåìåííóþ: %s" +msgstr "E1167: Íàèìåíîâàíèå àðãóìåíòà êîíôëèêòóåò ñ ñóùåñòâóþùåé ïåðåìåííîé %s" +# :!~ Restorer #, c-format msgid "E1168: Argument already declared in the script: %s" -msgstr "E1168: Ïàðàìåòð óæå áûë îáúÿâëåí â ýòîì ñöåíàðèè: %s" +msgstr "E1168: Ýòîò àðãóìåíò óæå îáúÿâëåí â êîìàíäíîì ôàéëå %s" +# :!~ Restorer #, c-format msgid "E1169: Expression too recursive: %s" -msgstr "E1169: Ñëèøêîì ðåêóðñèâíîå âûðàæåíèå: %s" +msgstr "E1169: Âûðàæåíèå ñëèøêîì ðåêóðñèâíî %s" +# :!~ Restorer msgid "E1170: Cannot use #{ to start a comment" -msgstr "E1170: Êîììåíòàðèé íå ìîæåò íà÷èíàòüñÿ ñ #{" +msgstr "E1170: Íå äîïóñêàåòñÿ èñïîëüçîâàíèå ñèìâîëîâ #{ êàê íà÷àëî êîììåíòàðèÿ" +# :!~ Restorer msgid "E1171: Missing } after inline function" -msgstr "E1171: Ïðîïóùåíà } ïîñëå inline-ôóíêöèè" +msgstr "E1171: Íå óêàçàíà çàêðûâàþùàÿ ôèãóðíàÿ ñêîáêà âî âñòðàèâàåìîé ôóíêöèè" +# :!~ Restorer msgid "E1172: Cannot use default values in a lambda" -msgstr "E1172: Íåâîçìîæíî óêàçàòü çíà÷åíèÿ ïî óìîë÷àíèþ äëÿ ëÿìáäà-ôóíêöèè" +msgstr "" +"E1172: Íå äîïóñêàåòñÿ èñïîëüçîâàíèå çíà÷åíèÿ ïî óìîë÷àíèþ â ëÿìáäà-ôóíêöèè" +# #Restorer: âûâîäèòñÿ ïðè 'verbose'>0 +# :!~ Restorer #, c-format msgid "E1173: Text found after %s: %s" -msgstr "E1173: Òåêñò ïîñëå %s: %s" +msgstr "E1173: Ïîñòîðîííèé òåêñò ïîñëå êîìàíäû %s %s" +# :!~ Restorer #, c-format msgid "E1174: String required for argument %d" -msgstr "E1174: Äëÿ îïðåäåëåíèÿ ïàðàìåòðà %d íóæíà ñòðîêà" +msgstr "E1174: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String" +# :!~ Restorer #, c-format msgid "E1175: Non-empty string required for argument %d" -msgstr "E1175: Äëÿ îïðåäåëåíèÿ ïàðàìåòðà %d íóæíà íåïóñòàÿ ñòðîêà" +msgstr "E1175: Çíà÷åíèåì àðãóìåíòà íîìåð %d íå ìîæåò áûòü ïóñòàÿ ñòðîêà" +# :!~ Restorer msgid "E1176: Misplaced command modifier" -msgstr "E1176: Íåîæèäàííûé ìîäèôèêàòîð êîìàíäû" +msgstr "E1176: Íåäîïóñòèìûé ìîäèôèêàòîð êîìàíäû" +# :!~ Restorer #, c-format msgid "E1177: For loop on %s not supported" -msgstr "E1177: Öèêë :for äëÿ %s íå ïîääåðæèâàåòñÿ" +msgstr "E1177: Íå ïîääåðæèâàåòñÿ öèêë äëÿ %s" +# :!~ Restorer msgid "E1178: Cannot lock or unlock a local variable" -msgstr "E1178: Íåâîçìîæíî (ðàç) áëîêèðîâàòü ëîêàëüíóþ ïåðåìåííóþ" +msgstr "" +"E1178: Ñîñòîÿíèå áëîêèðîâêè íå ìîæåò áûòü èçìåíåíî äëÿ ëîêàëüíîé ïåðåìåííîé" +# :!~ Restorer #, c-format msgid "" -"E1179: Failed to extract PWD from %s, check your shell's config related to " -"OSC 7" +"E1179: Failed to extract PWD from %s, check your shell's config related to OSC " +"7" msgstr "" -"E1179: Íå óäàëîñü èçâëå÷ü PWD èç %s — ïðîâåðüòå, ÷òî âàøà îáîëî÷êà íàñòðîåíà " -"â ñîîòâåòñòâèè ñ OSC 7" +"Íå óäàëîñü èçâëå÷ü çíà÷åíèå òåêóùåãî ðàáî÷åãî êàòàëîãà èç %s. Ïðîâåðüòå " +"íàñòðîéêè êîìàíäíîé îáîëî÷êè OSC 7" +# :!~ Restorer #, c-format msgid "E1180: Variable arguments type must be a list: %s" -msgstr "" -"E1180: Äëÿ ïåðåìåííîãî êîëè÷åñòâà àðãóìåíòîâ äîïóñòèì òîëüêî òèï ñïèñîê: %s" +msgstr "E1180: Äîïóñòèì òîëüêî òèï äàííûõ List äëÿ îñòàòî÷íîãî ïàðàìåòðà %s" +# :!~ Restorer msgid "E1181: Cannot use an underscore here" -msgstr "E1181: Çäåñü íåëüçÿ èñïîëüçîâàòü ïîä÷¸ðêèâàíèå" +msgstr "" +"E1181: Çäåñü ñèìâîë ïîä÷¸ðêèâàíèÿ íåäîïóñòèì äëÿ ïðîïóñêà àðãóìåíòà ôóíêöèè" +# :!~ Restorer #, c-format msgid "E1182: Cannot define a dict function in Vim9 script: %s" -msgstr "E1182: Íåâîçìîæíî ñîçäàòü ôóíêöèþ dict â Vim9 script: %s" +msgstr "" +"E1182: Íå äîïóñêàåòñÿ îïðåäåëåíèå ôóíêöèè ñëîâàðÿ â êîìàíäíîì ôàéëå Vim9 %s" +# :!~ Restorer #, c-format msgid "E1183: Cannot use a range with an assignment operator: %s" -msgstr "" -"E1183: Íåâîçìîæíî èñïîëüçîâàòü äèàïàçîí âìåñòå ñ îïåðàòîðîì ïðèñâàèâàíèÿ: %s" +msgstr "E1183: Íå äîïóñêàåòñÿ óêàçàíèå äèàïàçîíà â îïåðàòîðå ïðèñâàèâàíèÿ %s" +# :!~ Restorer msgid "E1184: Blob not set" -msgstr "E1184: Áëîá íå óñòàíîâëåí" +msgstr "E1184: Ïóñòîé BLOB" +# :!~ Restorer msgid "E1185: Missing :redir END" -msgstr "E1185: Îòñóòñòâóåò êîìàíäà :redir END" +msgstr "E1185: Íå óêàçàíà êîìàíäà :redir END" +# :!~ Restorer #, c-format msgid "E1186: Expression does not result in a value: %s" -msgstr "E1186: Ðåçóëüòàò âûðàæåíèÿ íå ÿâëÿåòñÿ äîïóñòèìûì çíà÷åíèåì: %s" +msgstr "E1186: Âûðàæåíèå íå âîçâðàùàåò çíà÷åíèå %s" +# :!~ Restorer msgid "E1187: Failed to source defaults.vim" -msgstr "E1187: Íå óäàëîñü ñ÷èòàòü ôàéë defaults.vim" +msgstr "E1187: Îøèáêà ïðè îáðàáîòêå ôàéëà defaults.vim" +# :!~ Restorer msgid "E1188: Cannot open a terminal from the command line window" -msgstr "E1188: Íåâîçìîæíî îòêðûòü òåðìèíàë èç îêíà êîìàíäíîé ñòðîêè" +msgstr "E1188: Íå äîïóñêàåòñÿ ïåðåõîä â îêíî òåðìèíàëà èç îêíà êîìàíäíîé ñòðîêè" +# :!~ Restorer #, c-format msgid "E1189: Cannot use :legacy with this command: %s" -msgstr "E1189: Íåâîçìîæíî èñïîëüçîâàòü :legacy âìåñòå ñ êîìàíäîé %s" +msgstr "E1189: Íå äîïóñêàåòñÿ óêàçàíèå ïîñëå êîìàíäû :legacy êîìàíäû %s" -#, no-c-format +# :!~ Restorer +#, c-format msgid "E1190: One argument too few" msgid_plural "E1190: %d arguments too few" -msgstr[0] "E1190: Îäèí ïàðàìåòð ïðîïóùåí" -msgstr[1] "E1190: %d ïàðàìåòðà ïðîïóùåíî" -msgstr[2] "E1190: %d ïàðàìåòðîâ ïðîïóùåíî" +msgstr[0] "E1190:  ôóíêöèþ ïåðåäàíî íà îäèí àðãóìåíò ìåíüøå" +msgstr[1] "E1190:  ôóíêöèþ ïåðåäàíî íà %d àðãóìåíòà ìåíüøå" +msgstr[2] "E1190:  ôóíêöèþ ïåðåäàíî íà %d àðãóìåíòîâ ìåíüøå" +# :!~ Restorer #, c-format msgid "E1191: Call to function that failed to compile: %s" -msgstr "E1191: Ïîïûòêà âûçâàòü ôóíêöèþ, êîòîðàÿ íå áûëà ñêîìïèëèðîâàíà: %s" +msgstr "E1191: Îøèáêà êîìïèëÿöèè ïðè îáðàùåíèè ê ôóíêöèè %s" +# :!~ Restorer msgid "E1192: Empty function name" -msgstr "E1192: Ïóñòîå èìÿ ôóíêöèè" +msgstr "E1192: Îòñóòñòâóåò íàèìåíîâàíèå ôóíêöèè" +# :!~ Restorer msgid "E1193: cryptmethod xchacha20 not built into this Vim" -msgstr "E1193: Àëãîðèòì øèôðîâàíèÿ xchacha20 íåäîñòóïåí â ýòîé âåðñèè Vim" +msgstr "" +"E1193: Àëãîðèòì øèôðîâàíèÿ «XChaCha20» íå ïîääåðæèâàåòñÿ â äàííîé ïðîãðàììå Vim" +# :!~ Restorer msgid "E1194: Cannot encrypt header, not enough space" -msgstr "E1194: Íåâîçìîæíî çàøèôðîâàòü çàãîëîâîê èç-çà íåõâàòêè ïàìÿòè" +msgstr "E1194: Íå óäàëîñü çàøèôðîâàòü çàãîëîâîê. Íåäîñòàòî÷íî ïàìÿòè" +# :!~ Restorer msgid "E1195: Cannot encrypt buffer, not enough space" -msgstr "E1195: Íåâîçìîæíî çàøèôðîâàòü áóôåð èç-çà íåõâàòêè ïàìÿòè" +msgstr "E1195: Íå óäàëîñü çàøèôðîâàòü ôàéë. Íåäîñòàòî÷íî ïàìÿòè" +# :!~ Restorer msgid "E1196: Cannot decrypt header, not enough space" -msgstr "E1196: Íåâîçìîæíî äåøèôðîâàòü çàãîëîâîê èç-çà íåõâàòêè ïàìÿòè" +msgstr "E1196: Íå óäàëîñü ðàñøèôðîâàòü çàãîëîâîê. Íåäîñòàòî÷íî ïàìÿòè" +# :!~ Restorer msgid "E1197: Cannot allocate_buffer for encryption" -msgstr "E1197: Íåâîçìîæíî âûäåëèòü ïàìÿòü äëÿ áóôåðà øèôðîâàíèÿ" +msgstr "E1197: Íå óäàëîñü ðàñøèôðîâàòü ôàéë. Íå âûäåëåíà íåîáõîäèìàÿ ïàìÿòü" +# :!~ Restorer msgid "E1198: Decryption failed: Header incomplete!" -msgstr "E1198: Äåøèôðîâàíèå íå óäàëîñü: çàãîëîâîê íå çàâåðø¸í!" +msgstr "E1198: Îøèáêà ðàñøèôðîâêè. Íåäîïóñòèìûé çàãîëîâîê" +# :!~ Restorer msgid "E1199: Cannot decrypt buffer, not enough space" -msgstr "E1199: Íåâîçìîæíî äåøèôðîâàòü áóôåð èç-çà íåõâàòêè ïàìÿòè" +msgstr "E1199: Íå óäàëîñü ðàñøèôðîâàòü ôàéë. Íåäîñòàòî÷íî ïàìÿòè" +# :!~ Restorer msgid "E1200: Decryption failed!" -msgstr "E1200: Äåøèôðîâàíèå íå óäàëîñü!" +msgstr "E1200: Îøèáêà ðàñøèôðîâêè!" +# :!~ Restorer msgid "E1201: Decryption failed: pre-mature end of file!" -msgstr "E1201: Äåøèôðîâàíèå íå óäàëîñü: ïðåæäåâðåìåííûé êîíåö ôàéëà!" +msgstr "E1201: Îøèáêà ðàñøèôðîâêè. Ïðåæäåâðåìåííîå îêîí÷àíèå ôàéëà" +# :!~ Restorer #, c-format msgid "E1202: No white space allowed after '%s': %s" -msgstr "E1202: Ïðîáåëüíûå ñèìâîëû íå ðàçðåøåíû ïîñëå '%s': %s" +msgstr "E1202: Çàïðåù¸í ïðîáåëüíûé ñèìâîë ïîñëå '%s' â %s" +# :!~ Restorer #, c-format msgid "E1203: Dot can only be used on a dictionary: %s" -msgstr "E1203: Òî÷êà ìîæåò èñïîëüçîâàòüñÿ òîëüêî ñî ñëîâàð¸ì: %s" +msgstr "E1203: Ñèìâîë òî÷êà èñïîëüçóåòñÿ òîëüêî â òèïå äàííûõ Dictionary %s" +# :!~ Restorer #, c-format msgid "E1204: No Number allowed after .: '\\%%%c'" -msgstr "E1204: Ïîñëå òî÷êè ÷èñëî íå äîïóñêàåòñÿ: '\\%%%c'" +msgstr "E1204: Çàïðåùåíî óêàçàíèå ÷èñëà ïîñëå ñèìâîëà òî÷êè â '\\%%%c'" +# :!~ Restorer msgid "E1205: No white space allowed between option and" -msgstr "E1205: Ïðîáåëüíûå ñèìâîëû íå ðàçðåøåíû ìåæäó èìåíåì îïöèè è" +msgstr "E1205: Çàïðåù¸í ïðîáåëüíûé ñèìâîë ïîñëå íàèìåíîâàíèÿ ïàðàìåòðà è ïåðåä" +# :!~ Restorer #, c-format msgid "E1206: Dictionary required for argument %d" -msgstr "E1206: Ïàðàìåòð %d äîëæåí áûòü ñëîâàð¸ì" +msgstr "E1206: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü Dictionary" +# :!~ Restorer #, c-format msgid "E1207: Expression without an effect: %s" -msgstr "E1207: Âûðàæåíèå íå èìååò ïîáî÷íûõ ýôôåêòîâ: %s" +msgstr "E1207: Âûðàæåíèå íåïðèìåíèìî %s" +# :!~ Restorer msgid "E1208: -complete used without allowing arguments" -msgstr "E1208: -complete áåç óêàçàíèÿ íåîáõîäèìûõ ïàðàìåòðîâ" +msgstr "E1208: Íå çàäàí òðåáóåìûé ïàðàìåòð ïðè óêàçàíèè àòðèáóòà -complete" +# :!~ Restorer #, c-format msgid "E1209: Invalid value for a line number: \"%s\"" -msgstr "E1209: Íåïðàâèëüíîå çíà÷åíèå íîìåðà ñòðîêè: \"%s\"" +msgstr "E1209: Íåäîïóñòèìîå çíà÷åíèå íîìåðà ñòðîêè â \"%s\"" +# :!~ Restorer #, c-format msgid "E1210: Number required for argument %d" -msgstr "E1210: Ïàðàìåòð %d äîëæåí áûòü ÷èñëîì" +msgstr "E1210: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü Number" +# :!~ Restorer #, c-format msgid "E1211: List required for argument %d" -msgstr "E1211: Ïàðàìåòð %d äîëæåí áûòü ñïèñêîì" +msgstr "E1211: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü List" +# :!~ Restorer #, c-format msgid "E1212: Bool required for argument %d" -msgstr "E1212: Ïàðàìåòð %d äîëæåí áûòü ëîãè÷åñêèì çíà÷åíèåì" +msgstr "E1212: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü ëîãè÷åñêèì çíà÷åíèåì" +# :!~ Restorer #, c-format msgid "E1213: Redefining imported item \"%s\"" -msgstr "E1213: Ïåðåîïðåäåëåíèå èìïîðòèðîâàííîãî ýëåìåíòà \"%s\"" +msgstr "E1213: Ïåðåîïðåäåëåíèå èìïîðòèðîâàííîãî êîìïîíåíòà \"%s\"" +# :!~ Restorer #, c-format msgid "E1214: Digraph must be just two characters: %s" -msgstr "E1214: Äèãðàô äîëæåí ñîñòîÿòü ðîâíî èç äâóõ ñèìâîëîâ: %s" +msgstr "E1214: Äëÿ äèãðàôà äîëæíî áûòü óêàçàíî äâà ñèìâîëà, à çàäàíî %s" +# :!~ Restorer #, c-format msgid "E1215: Digraph must be one character: %s" -msgstr "E1215: Äèãðàô äîëæåí áûòü îäíèì ñèìâîëîì: %s" +msgstr "E1215: Ñàì äèãðàô äîëæåí áûòü çàäàí êàê îäèí ñèìâîë, à íå %s" -msgid "" -"E1216: digraph_setlist() argument must be a list of lists with two items" +# :!~ Restorer +msgid "E1216: digraph_setlist() argument must be a list of lists with two items" msgstr "" -"E1216: Ïàðàìåòð ôóíêöèè digraph_setlist() äîëæåí áûòü ñïèñêîì ñïèñêîâ ïî äâà " -"ýëåìåíòà â êàæäîì" +"E1216:  ôóíêöèè digraph_setlist() òèï àðãóìåíòà äîëæåí áûòü List, ãäå " +"âëîæåííûå òèïû List ñîäåðæàò äâà ýëåìåíòà" +# :!~ Restorer #, c-format msgid "E1217: Channel or Job required for argument %d" -msgstr "E1217: Ïàðàìåòð %d äîëæåí áûòü êàíàëîì èëè çàäàíèåì" +msgstr "E1217: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü Channel èëè Job" +# :!~ Restorer #, c-format msgid "E1218: Job required for argument %d" -msgstr "E1218: Ïàðàìåòð %d äîëæåí áûòü çàäàíèåì" +msgstr "E1218: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü Job" +# :!~ Restorer #, c-format msgid "E1219: Float or Number required for argument %d" -msgstr "" -"E1219: Ïàðàìåòð %d äîëæåí áûòü öåëûì ÷èñëîì ëèáî ÷èñëîì ñ ïëàâàþùåé òî÷êîé" +msgstr "E1219: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü Number èëè Float" +# :!~ Restorer #, c-format msgid "E1220: String or Number required for argument %d" -msgstr "E1220: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé èëè ÷èñëîì" +msgstr "E1220: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü Number èëè String" +# :!~ Restorer #, c-format msgid "E1221: String or Blob required for argument %d" -msgstr "E1221: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé èëè áëîáîì" +msgstr "E1221: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String èëè BLOB" +# :!~ Restorer #, c-format msgid "E1222: String or List required for argument %d" -msgstr "E1222: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé èëè ñïèñêîì" +msgstr "E1222: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String èëè List" +# :!~ Restorer #, c-format msgid "E1223: String or Dictionary required for argument %d" -msgstr "E1223: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé èëè ñëîâàð¸ì" +msgstr "E1223: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String èëè Dictionary" +# :!~ Restorer #, c-format msgid "E1224: String, Number or List required for argument %d" -msgstr "E1224: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé, ÷èñëîì èëè ñïèñêîì" +msgstr "E1224: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String, Number èëè List" +# :!~ Restorer #, c-format msgid "E1225: String, List or Dictionary required for argument %d" -msgstr "E1225: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé, ñïèñêîì èëè ñëîâàð¸ì" +msgstr "" +"E1225: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String, List èëè Dictionary" +# :!~ Restorer #, c-format msgid "E1226: List or Blob required for argument %d" -msgstr "E1226: Ïàðàìåòð %d äîëæåí áûòü ñïèñêîì èëè áëîáîì" +msgstr "E1226: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü List èëè BLOB" +# :!~ Restorer #, c-format msgid "E1227: List or Dictionary required for argument %d" -msgstr "E1227: Ïàðàìåòð %d äîëæåí áûòü ñïèñêîì èëè ñëîâàð¸ì" +msgstr "E1227: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü List èëè Dictionary" +# :!~ Restorer #, c-format msgid "E1228: List, Dictionary or Blob required for argument %d" -msgstr "E1228: Ïàðàìåòð %d äîëæåí áûòü ñïèñêîì, ñëîâàð¸ì èëè áëîáîì" +msgstr "" +"E1228: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü List, Dictionary èëè BLOB" +# :!~ Restorer #, c-format msgid "E1229: Expected dictionary for using key \"%s\", but got %s" -msgstr "E1229: Ïðè èñïîëüçîâàíèè êëþ÷à \"%s\" îæèäàëñÿ ñëîâàðü, à îáíàðóæåí %s" +msgstr "E1229: Îæèäàëñÿ òèï Dictionary äëÿ îáðàáîòêè êëþ÷à \"%s\", à ïîëó÷åí %s" +# :!~ Restorer msgid "E1230: Encryption: sodium_mlock() failed" -msgstr "E1230: Øèôðîâàíèå: sodium_mlock() âîçâðàòèë îøèáêó" +msgstr "" +"E1230: Îøèáêà øèôðîâàíèÿ. Ïðîèçîø¸ë ñáîé â áèáëèîòå÷íîé ôóíêöèè sodium_mlock()" +# :!~ Restorer #, c-format msgid "E1231: Cannot use a bar to separate commands here: %s" -msgstr "E1231: Çäåñü íåëüçÿ èñïîëüçîâàòü '|' äëÿ ðàçäåëåíèÿ êîìàíä: %s" +msgstr "E1231: Íå äîïóñêàåòñÿ óêàçàíèå íåñêîëüêèõ êîìàíä ÷åðåç ñèìâîë '|' â %s" +# :!~ Restorer msgid "E1232: Argument of exists_compiled() must be a literal string" msgstr "" -"E1232: Ïàðàìåòð ôóíêöèè exists_compiled() äîëæåí áûòü ñòðîêîé ëèòåðàëîâ" +"E1232: Àðãóìåíò ôóíêöèè exists_compiled() äîëæåí çàêëþ÷àòüñÿ â îäèíàðíûå " +"êàâû÷êè" +# :!~ Restorer msgid "E1233: exists_compiled() can only be used in a :def function" msgstr "" -"E1233: Ôóíêöèÿ exists_compiled() ìîæåò áûòü âûçâàíà òîëüêî èç :def ôóíêöèè" +"E1233: Ôóíêöèÿ exists_compiled() ïðèìåíÿåòñÿ òîëüêî ê ôóíêöèÿì îïðåäåë¸ííûìè " +"êîìàíäîé :def" +# :!~ Restorer msgid "E1234: legacy must be followed by a command" -msgstr "E1234: Ïîñëå :legacy äîëæíà èäòè êîìàíäà" +msgstr "E1234: Ïîñëå êîìàíäû :legacy äîëæíà áûòü óêàçàíà ïîñëåäóþùàÿ êîìàíäà" +# :!~ Restorer #, c-format msgid "E1236: Cannot use %s itself, it is imported" -msgstr "E1236: Íåëüçÿ èñïîëüçîâàòü èìÿ %s ñàìî ïî ñåáå: ýòî çàïèñü îá èìïîðòå" +msgstr "E1236: Íå äîïóñêàåòñÿ îáðàùåíèå ê %s. Ýòî èìïîðòèðîâàííûé êîìïîíåíò" +# :!~ Restorer #, c-format msgid "E1237: No such user-defined command in current buffer: %s" -msgstr "E1237: Òàêîé êîìàíäû ïîëüçîâàòåëÿ â òåêóùåì áóôåðå íåò: %s" +msgstr "E1237: Äëÿ òåêóùåãî áóôåðà íå îáíàðóæåíà êîìàíäà ïîëüçîâàòåëÿ %s" +# :!~ Restorer #, c-format msgid "E1238: Blob required for argument %d" -msgstr "E1238: Ïàðàìåòð %d äîëæåí áûòü áëîáîì" +msgstr "E1238: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü BLOB" +# :!~ Restorer #, c-format msgid "E1239: Invalid value for blob: %d" -msgstr "E1239: Íåïîäõîäÿùåå çíà÷åíèå äëÿ áëîáà: %d" +msgstr "E1239: Íåäîïóñòèìîå çíà÷åíèå äëÿ òèïà äàííûõ BLOB %d" +# :!~ Restorer msgid "E1240: Resulting text too long" -msgstr "E1240: Ñëèøêîì äëèííûé èòîãîâûé òåêñò" +msgstr "E1240: Ïðåâûøåíà äëèíà ñòðîêè" +# :!~ Restorer #, c-format msgid "E1241: Separator not supported: %s" -msgstr "E1241: Ðàçäåëèòåëü íå ïîääåðæèâàåòñÿ: %s" +msgstr "E1241:  êîìàíäå óêàçàí íåäîïóñòèìûé ðàçäåëèòåëü ïàðàìåòðîâ %s" +# :!~ Restorer #, c-format msgid "E1242: No white space allowed before separator: %s" -msgstr "E1242: Ïðîáåëüíûå ñèìâîëû íå ðàçðåøåíû ïåðåä ðàçäåëèòåëåì: %s" +msgstr "E1242: Çàïðåù¸í ïðîáåë ïåðåä ðàçäåëèòåëåì ïàðàìåòðîâ â êîìàíäå %s" +# :!~ Restorer msgid "E1243: ASCII code not in 32-127 range" -msgstr "E1243: ASCII êîä âíå äèàïàçîíà 32-127" +msgstr "E1243: Êîä ñèìâîëà âíå äèàïàçîíà çíà÷åíèé 32—127 êîäèðîâêè ASCII" +# :!~ Restorer #, c-format msgid "E1244: Bad color string: %s" -msgstr "E1244: Íåïðàâèëüíàÿ ñòðîêà çàäàíèÿ öâåòà: %s" +msgstr "E1244: Íåäîïóñòèìîå îáîçíà÷åíèå öâåòà %s" +# :!~ Restorer msgid "E1245: Cannot expand in a Vim9 function" -msgstr "E1245: Íåâîçìîæíî âûïîëíèòü çàìåíó â ôóíêöèè Vim9 script" +msgstr "E1245: Íå äîïóñêàåòñÿ çàìåíà ñïåöñèìâîëà â ôóíêöèè ÿçûêà Vim9" +# :!~ Restorer #, c-format msgid "E1246: Cannot find variable to (un)lock: %s" -msgstr "E1246: Íåâîçìîæíî íàéòè ïåðåìåííóþ äëÿ (ðàç) áëîêèðîâêè: %s" +msgstr "E1246: Íå íàéäåíà ïåðåìåííàÿ äëÿ èçìåíåíèÿ ñîñòîÿíèÿ áëîêèðîâêè %s" +# :!~ Restorer msgid "E1247: Line number out of range" -msgstr "E1247: Íîìåð ñòðîêè çà ïðåäåëàìè äèàïàçîíà" +msgstr "E1247: Íîìåð ñòðîêè âûõîäèò çà ïðåäåëû äîïóñòèìûõ çíà÷åíèé" +# :!~ Restorer msgid "E1248: Closure called from invalid context" -msgstr "E1248: Ôóíêöèÿ-çàìûêàíèå âûçâàíà èç íåïðàâèëüíîãî êîíòåêñòà" +msgstr "E1248: Âëîæåííàÿ ôóíêöèÿ âûçâàíà èç íåäîïóñòèìîãî îêðóæåíèÿ" +# :!~ Restorer msgid "E1249: Highlight group name too long" -msgstr "E1249: Ñëèøêîì äëèííîå èìÿ ãðóïïû ïîäñâåòêè ñèíòàêñèñà" +msgstr "E1249: Íàèìåíîâàíèå ãðóïïû ïîäñâåòêè ïðåâûøàåò äîïóñòèìóþ äëèíó" +# :!~ Restorer #, c-format msgid "E1250: Argument of %s must be a List, String, Dictionary or Blob" -msgstr "" -"E1250: Ïàðàìåòð ôóíêöèè %s äîëæåí áûòü ñïèñêîì, ñòðîêîé, ñëîâàð¸ì èëè áëîáîì" +msgstr "E1250:  ôóíêöèè %s òèï àðãóìåíòà äîëæåí áûòü List, String èëè BLOB" +# :!~ Restorer #, c-format msgid "E1251: List, Dictionary, Blob or String required for argument %d" -msgstr "E1251: Ïàðàìåòð %d äîëæåí áûòü ñïèñêîì, ñëîâàð¸ì, áëîáîì èëè ñòðîêîé" +msgstr "" +"E1251: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü List, Dictionary, BLOB èëè " +"String" +# :!~ Restorer #, c-format msgid "E1252: String, List or Blob required for argument %d" -msgstr "E1252: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé, ñïèñêîì èëè áëîáîì" - -#, c-format -msgid "E1253: String expected for argument %d" -msgstr "E1253: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé" +msgstr "E1252: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String, List èëè BLOB" +# :!~ Restorer msgid "E1254: Cannot use script variable in for loop" -msgstr "E1254: Íåëüçÿ èñïîëüçîâàòü ïåðåìåííóþ ñöåíàðèÿ â öèêëå :for" +msgstr "E1254: Íå äîïóñêàåòñÿ óêàçàíèå ëîêàëüíûõ ïåðåìåííûõ â êîìàíäå öèêëà :for" +# :!~ Restorer msgid "E1255: mapping must end with " -msgstr "E1255: Ïðèâÿçêà ñ äîëæíà îêàí÷èâàòüñÿ íà " +msgstr "E1255: Íàçíà÷åííàÿ ÷åðåç êîìàíäà äîëæíà çàâåðøàòüñÿ ñèìâîëàìè " +# :!~ Restorer #, c-format msgid "E1256: String or function required for argument %d" -msgstr "E1256: Ïàðàìåòð %d äîëæåí áûòü ñòðîêîé èëè ôóíêöèåé" +msgstr "E1256: Òèï äàííûõ àðãóìåíòà íîìåð %d äîëæåí áûòü String èëè Function" +# :!~ Restorer #, c-format msgid "E1257: Imported script must use \"as\" or end in .vim: %s" -msgstr "" -"E1257: Èìÿ èìïîðòèðóåìîãî ñöåíàðèÿ äîëæíî îêàí÷èâàòüñÿ íà .vim, ëèáî " -"íåîáõîäèìî èñïîëüçîâàòü \"as\": %s" +msgstr "E1257: Íå óêàçàíî êëþ÷åâîå ñëîâî \"as\" èëè ðàñøèðåíèå ôàéëà .vim äëÿ %s" +# :!~ Restorer #, c-format msgid "E1258: No '.' after imported name: %s" -msgstr "E1258: Íåò òî÷êè ïîñëå èìïîðòèðîâàííîãî èìåíè: %s" +msgstr "" +"E1258: Íå óêàçàí ñèìâîë òî÷êè ïîñëå íàèìåíîâàíèÿ èìïîðòèðóåìîãî êîìïîíåíòà %s" +# :!~ Restorer #, c-format msgid "E1259: Missing name after imported name: %s" -msgstr "E1259: Ïðîïóùåíî èìÿ ïîñëå èìïîðòèðîâàííîãî èìåíè: %s" +msgstr "E1259: Íå óêàçàíî íàèìåíîâàíèå ïîñëå èìïîðòèðóåìîãî êîìïîíåíòà %s" +# :!~ Restorer #, c-format msgid "E1260: Cannot unlet an imported item: %s" -msgstr "E1260: Íå ìîãó óáðàòü èìïîðòèðîâàííûé ýëåìåíò: %s" +msgstr "E1260: Íå äîïóñêàåòñÿ óäàëåíèå êîìïîíåíò â èìïîðòèðîâàííûõ äàííûõ %s" +# :!~ Restorer msgid "E1261: Cannot import .vim without using \"as\"" -msgstr "E1261: Íåâîçìîæíî èìïîðòèðîâàòü .vim áåç èñïîëüçîâàíèÿ \"as\"" +msgstr "" +"E1261: Èìïîðòèðîâàíèå êîìàíäíîãî ôàéëà áåç óêàçàíèÿ êëþ÷åâîãî ñëîâà \"as\"" +# :!~ Restorer #, c-format msgid "E1262: Cannot import the same script twice: %s" -msgstr "E1262: Íåâîçìîæíî èìïîðòèðîâàòü îäèí è òîò æå ñöåíàðèé äâàæäû: %s" +msgstr "E1262: Íå äîïóñêàåòñÿ ïîâòîðíîå èìïîðòèðîâàíèå êîìàíäíîãî ôàéëà %s" +# :!~ Restorer msgid "E1263: Cannot use name with # in Vim9 script, use export instead" msgstr "" -"E1263:  Vim9 script íåëüçÿ èñïîëüçîâàòü èìåíà ñîäåðæàùèå # — âìåñòî ýòîãî " -"èñïîëüçóéòå êîìàíäó :export" +"E1263: Íå äîïóñêàþòñÿ íàèìåíîâàíèÿ ñ ñèìâîëîì #.  êîìàíäíûõ ôàéëàõ Vim9 " +"èñïîëüçóåòñÿ ýêñïîðò" +# :!~ Restorer #, c-format msgid "E1264: Autoload import cannot use absolute or relative path: %s" msgstr "" -"E1264: Àâòîçàãðóæàåìûé èìïîðò íå ñìîã èñïîëüçîâàòü àáñîëþòíûé èëè " -"îòíîñèòåëüíûé ïóòü: %s" +"E1264: Óêàçàí àáñîëþòíûé èëè îòíîñèòåëüíûé ìàðøðóò ïðè èìïîðòå " +"àâòîçàãðóæàåìîãî ôàéëà %s" +# #Restorer: âûâîäèòñÿ òîëüêî ïðè óñòàíîâëåííîì ïàðàìåòðå 'verbose' +# :!~ Restorer msgid "E1265: Cannot use a partial here" -msgstr "E1265: Çäåñü íåâîçìîæíî èñïîëüçîâàòü ÷àñòè÷íóþ ôóíêöèþ" +msgstr "E1265: Íå äîïóñêàåòñÿ óêàçàíèå ÷àñòè÷íîé ôóíêöèè" +# :!~ Restorer msgid "" "E1266: Critical error in python3 initialization, check your python3 " "installation" msgstr "" -"E1266: Êðèòè÷åñêàÿ îøèáêà ïðè èíèöèàëèçàöèè python3, ïðîâåðüòå ïðàâèëüíîñòü " -"óñòàíîâêè python3" +"E1266: Êðèòè÷åñêàÿ îøèáêà ïðè èíèöèàëèçàöèè ÿçûêà Python3. Ïðîâåðüòå " +"êîððåêòíîñòü óñòàíîâêè ìîäóëåé ÿçûêà Python3" +# :!~ Restorer #, c-format msgid "E1267: Function name must start with a capital: %s" -msgstr "E1267: Èìÿ ôóíêöèè äîëæíî íà÷èíàòüñÿ ñ çàãëàâíîé áóêâû: %s" +msgstr "E1267: Íàèìåíîâàíèå ôóíêöèè äîëæíî íà÷èíàòüñÿ ñ ïðîïèñíîé áóêâû %s" +# :!~ Restorer #, c-format msgid "E1268: Cannot use s: in Vim9 script: %s" -msgstr "E1268: Íåëüçÿ èñïîëüçîâàòü s: â Vim9 script: %s" +msgstr "E1268: Íå äîïóñêàåòñÿ óêàçûâàòü ïðèñòàâêó s: â êîìàíäíîì ôàéëå Vim9 %s" +# :!~ Restorer #, c-format msgid "E1269: Cannot create a Vim9 script variable in a function: %s" -msgstr "E1269: Íåâîçìîæíî ñîçäàòü ïåðåìåííóþ Vim9 script â ôóíêöèè: %s" +msgstr "E1269: Íå äîïóñêàåòñÿ ñîçäàíèå ëîêàëüíîé ïåðåìåííîé â ôóíêöèè Vim9 %s" +# :!~ Restorer msgid "E1270: Cannot use :s\\/sub/ in Vim9 script" -msgstr "E1270: Íåëüçÿ èñïîëüçîâàòü :s\\/sub/ â Vim9 script" +msgstr "E1270: Íå äîïóñêàåòñÿ êîìàíäà âèäà :s\\/sub/ â êîìàíäíîì ôàéëå Vim9" +# :!~ Restorer #, c-format msgid "E1271: Compiling closure without context: %s" -msgstr "E1271: Êîìïèëÿöèÿ ôóíêöèè-çàìûêàíèÿ áåç êîíòåêñòà: %s" +msgstr "E1271: Êîìïèëÿöèÿ âëîæåííîé ôóíêöèè âíå êîíòåêñòà âûøåñòîÿùåé ôóíêöèè %s" +# :!~ Restorer #, c-format msgid "E1272: Using type not in a script context: %s" -msgstr "E1272: Óêàçàíèå òèïà ïåðåìåííîé âíå êîíòåêñòà ñöåíàðèÿ: %s" +msgstr "E1272: Íåñîîòâåòñòâóþùèé êîíòåêñò äëÿ òèïà äàííûõ %s" +# :!~ Restorer #, c-format msgid "E1273: (NFA regexp) missing value in '\\%%%c'" -msgstr "E1273: (ðåã. âûðàæåíèå ÍÊÀ) ïðîïóùåíî çíà÷åíèå â '\\%%%c'" +msgstr "E1273: ÍÊÀ. Íå óêàçàíî çíà÷åíèå â \\%%%c" +# :!~ Restorer msgid "E1274: No script file name to substitute for \"