# HG changeset patch # User vimboss # Date 1109062573 0 # Node ID 0e902b8f511f0442ee2b28314d6e085e3e00798e # Parent 4d9eabb1396e3c94692e5afe77f2a2713e5c53dc updated for version 7.0051 diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 7.0aa. Last change: 2005 Jan 26 +*syntax.txt* For Vim version 7.0aa. Last change: 2005 Feb 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -184,6 +184,11 @@ 4. Write that file in the "after/syntax" That's it. The next time you edit a C file the Comment color will be different. You don't even have to restart Vim. +If you have multiple files, you can use the filetype as the directory name. +All the "*.vim" files in this directory will be used, for example: + ~/.vim/after/syntax/c/one.vim + ~/.vim/after/syntax/c/two.vim + REPLACING AN EXISTING SYNTAX FILE *mysyntaxfile-replace* @@ -2577,7 +2582,7 @@ DEFINING KEYWORDS *:syn-keyword* :syntax keyword Type contained int long char :syntax keyword Type int long contained char :syntax keyword Type int long char contained -< +< *E747* When you have a keyword with an optional tail, like Ex commands in Vim, you can put the optional characters inside [], to define all the variations at once: > @@ -3504,6 +3509,7 @@ faster.] Without a "groupthere" argument. Define a region or match that is skipped while searching for a sync point. + *syn-sync-linecont* :syntax sync linecont {pattern} When {pattern} matches in a line, it is considered to continue in diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt --- a/runtime/doc/tagsrch.txt +++ b/runtime/doc/tagsrch.txt @@ -1,4 +1,4 @@ -*tagsrch.txt* For Vim version 7.0aa. Last change: 2005 Jan 02 +*tagsrch.txt* For Vim version 7.0aa. Last change: 2005 Feb 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -744,11 +744,13 @@ CTRL-W i Open a new window, with the cu ]D like "[D", but start at the current cursor position. {not in Vi} - *:dl* *:dlist* + *:dli* *:dlist* :[range]dl[ist][!] [/]string[/] Like "[D" and "]D", but search in [range] lines (default: whole file). See |:search-args| for [/] and [!]. {not in Vi} + Note that ":dl" works like ":delete" with the "l" + flag. *[_CTRL-D* [ CTRL-D Jump to the first macro definition that contains the diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.0aa. Last change: 2005 Feb 12 +*todo.txt* For Vim version 7.0aa. Last change: 2005 Feb 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -30,52 +30,37 @@ be worked on, but only if you sponsor Vi *known-bugs* -------------------- Known bugs and current work ----------------------- -"norm! gQ" hangs. Fixes in ex_getln.c and ex_docmd.c also in Vim 6.3? +Mac unicode patch (Da Woon Jung): +- default font is ugly +- typing doesn't work +- selecting proportional font breaks display autoload: -- Rename directory to from "autoload" to "library"? -- Also autoload when reading a variable with a long:name that doesn't exist. -- Example using short script with user command that triggers loading script - with functionality. -- Remark about one script depending on another, recursively. -- Catch recursive autoloading. -- Add note in docs about HelpExtractor wrapper script. Think about a good way - that the user doesn't need to run ":helptags" manually. - -POSIX compliance: -- vi test 310 fails; exit code non-zero when any error occurred? -- vi test 33 fails for unknown reasons -- ex test 24 fails because test is wrong? -- ex test 29 fails because exit value is always 0. -- ex tests 47, 48, 49 fail because .exrc file isn't read in silent mode and - $EXINIT isn't used. -- ex test 57 fails, need to look into this. -- check ex test output -- report use of $LINES and $COLUMNS to austin maillist. - -Make list of user functions a hashtable. - -Docs for using "syntax/{filetype}/*.vim" syntax files. - -Include Mac unicode patch (Da Woon Jung). - -New Motif toolbar button from Marcin Dalecki: -- When the mouse pointer is over an Agide button the red becomes black. - Something with the way colors are specified in the .xpm file. -- The pixmap is two pixels smaller than it should be. The gap is filled - with grey instead of the current toolbar background color. +- Add docs in user manual: one for using one script and FuncUndefined and one + for using autoload with two scripts. +- Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of + script names and a help file and produces a script that can be sourced to + install the scripts in the user's directories. + Use findfile(), so that only file names need to be given: + script plugin/myscript.vim + script autoload/mylib.vim + script autoload/yourlib.vim + helpfile doc/myscript.txt + For the "helpfile" item ":helptags" is run. Awaiting response: - Patch for mch_FullName() also in Vim 6.3? os_mswin.c - Win32: tearoff menu window should have a scrollbar when it's taller than the screen. -Patch from Yegappan Lakshmanan for redirecting of Ex commands (Feb 9 10:58): -Look into how lval struct is kept for a long time. - :redir => variable - :redir =>> variable (append) +Improvements for Python indent script: Peter Wilson. -Improvements for Python indent script: Peter Wilson. +Win32: when 'encoding' is "utf-8" getenv() should convert from the active +codepage to utf-8, putenv() the other way around. Or use _wgetenv() (but that +duplicates the environment). + +Russian helpfile doesn't show up correctly when 'encoding' is koi8-r. +(Vassily Ragosin 2005 Feb 16) PLANNED FOR VERSION 7.0: @@ -165,6 +150,7 @@ 7 Support WINDOW TABS. Works like sev - Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye, assisted by Mikolaj Machowski. Should work like an IDE. Try to keep it generic. Also found here: http://skawina.eu.org/mikolaj/vimgdb + And the idevim plugin/script. To be able to start the debugger from inside Vim: For GUI run a program with a netbeans connection; for console: start a program that splits the terminal, runs the debugger in one window and reconnect Vim I/O to the @@ -248,6 +234,10 @@ Also place vimtutor.bat in %windir%? Add gui_mch_browsedir() for Motif, KDE and Mac OS/X. +7 Add a ":cstring" command. Works like ":cfile" but reads from a string + variable. Also accept a list variable? Patch from Yegappan Lakshmanan. + 2005 Feb 17 Now it's ":cexpr". + HTML indenting can be slow, find out why. Any way to do some kind of profiling for Vim script? At least add a function to get the current time in usec. reltime([start, [end]]) @@ -370,7 +360,6 @@ quote. (Nieko Maatjes, 2005 Jan 4) Vi incompatibility: 9 In Ex mode, "u" undoes all changes, not just the last one. (John Cowan) 8 In Ex mode, an empty file doesn't have a first line, "1p" should fail. -8 In Ex mode, "1,3" should print three lines. 8 With undo/redo only marks in the changed lines should be changed. Other marks should be kept. Vi keeps each mark at the same text, even when it is deleted or restored. (Webb) @@ -554,6 +543,11 @@ 8 When gui_init_font() is called with Athena and Motif: +6 New Motif toolbar button from Marcin Dalecki: + - When the mouse pointer is over an Agide button the red becomes black. + Something with the way colors are specified in the .xpm file. + - The pixmap is two pixels smaller than it should be. The gap is filled + with grey instead of the current toolbar background color. 9 Can configure be changed to disable netbeans if the Xpm library is required and it's missing? 8 When using the resource "Vim*borderwidth 2" the widgets are positioned @@ -632,6 +626,14 @@ 8 Add dialog for search/replace to oth use that code? Or use console dialog. 8 When selecting a font with the font dialog and the font is invalid, the error message disappears too quick. +7 More features in the find/replace dialog: + - regexp on/off + - search in selection/buffer/all buffers/directory + when all buffers/directory is used: + - filter for file name + when directory is used: + - subdirectory on/off + - top directory browser 8 gui_check_colors() is not called at the right moment. Do it much later, to avoid problems. 8 gui_update_cursor() is called for a cursor shape change, even when there @@ -1594,7 +1596,6 @@ 8 Add functions: Return a list instead. sprintf(format, arg, ..) How to prevent a crash??? attributes() return file protection flags "drwxrwxrwx" - mkdir(dir) Create directory copy(from, to) Copy a file perl(cmd) call Perl and return string shorten(fname) shorten a file name, like home_replace() @@ -2238,13 +2239,10 @@ 8 When completing command names, eithe them with the optional part inside []. 7 Completion of ":map x ": fill in the current mapping, so that it can be edited. (Sven Guckes) -7 Add completion for when entering an expression after CTRL-R= and "=. - (Servatius Brandt) - For 'wildmenu': Simplify "../bar" when possible. - When using in wildmenu mode for a submenu, should go back to the current menu, not the first one. E.g., ":emenu File.Save". 8 For ":find" and ":sfind" expand files found in 'path'. -8 Add cmdline completion for the ":debug" command. 8 When using backtick expansion, the external command may write a greeting message. Add an option or commands to remove lines that match a regexp? 7 When listing matches of files, display the common path separately from the @@ -2260,7 +2258,6 @@ 7 Add command line completion with CTR - Add 'wildlongest' option: Key to use to find longest common match for command line completion (default CTRL-L), like 'wildchar'. (Cregut) Also: when there are several matches, show them line a CTRL-D. -- Add completion for Environment variables: ":echo $SH" -> "$SHELL". Command line history: @@ -2441,6 +2438,10 @@ Text objects: 8 Add test script for text object commands "aw", "iW", etc. 8 Add text object for part of a CamelHumedWord and under_scored_word. (Scott Graham) "ac" and "au"? +8 Add a text object for any kind of quoting, also with multi-byte + characters. Option to specify what quotes are recognized (default: all) + use "aq" and "iq". +8 Add text object for any kind of parens, also multi-byte ones. 7 Add text object for current search pattern: "a/" and "i/". Makes it possible to turn text highlighted for 'hlsearch' into a Visual area. 8 Add "gp" and "gP" commands: insert text and make sure there is a single @@ -3092,8 +3093,6 @@ 8 Add ":rename" command: rename the fi Govindachar) 6 In the quickfix window statusline add the command used to get the list of errors, e.g. ":make foo", ":grep something *.c". -7 Add a ":cstring" command. Works like ":cfile" but reads from a string - variable. Also accept a list variable? 6 Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5) 7 Support using ":vert" with User commands. Add expandable items . Do the same for ":browse" and ":confirm"? @@ -3230,6 +3229,7 @@ 8 Allow using a trailing space to sign regexp which triggers auto-formatting (for one line). ":set autoformat=\\s$". - Be able to redefine where a sentence stops. Use a regexp pattern? +- Support multi-byte characters for sentences. Example from Ben Peterson. 7 Add command "g)" to go to the end of a sentence, "g(" to go back to the end of a sentence. (Servatius Brandt) - Be able to redefine where a paragraph starts. For "[[" where the '{' is @@ -3241,7 +3241,6 @@ 7 Should ":cd" for MS-DOS go to $HOME, 8 findmatchlimit() should be able to skip comments. Solves problem of matching the '{' in /* if (foo) { */ (Fiveash) - Add more redirecting of Ex commands: - :redir @r> register (append) :redir #> bufname :redir #>> bufname (append) - Give error message when starting :redir: twice or using END when no @@ -3402,8 +3401,6 @@ 7 Tighter integration with xxd to edit - Implement 'redraw' option. - Add special code to 'sections' option to define something else but '{' or '}' as the start of a section (e.g. one shiftwidth to the right). -- Use pipes for filtering on Unix. Requires using fork() to be able to read - and write at the same time, or some select() mechanism. 7 Allow using Vim in a pipe: "ls | vim -u xxx.vim - | yyy". Only needs implementing ":w" to stdout in the buffer that was read from stdin. 8 Allow opening an unnamed buffer with ":e !cmd" and ":sp !cmd". Vile can diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -1,4 +1,4 @@ -*various.txt* For Vim version 7.0aa. Last change: 2005 Feb 11 +*various.txt* For Vim version 7.0aa. Last change: 2005 Feb 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -66,33 +66,39 @@ g8 Print the hex values of the bytes u {not in Vi} *:p* *:pr* *:print* -:[range]p[rint] Print [range] lines (default current line). +:[range]p[rint] [flags] + Print [range] lines (default current line). Note: If you are looking for a way to print your text - file, you need an external program for that. In the - GUI you can use the File.Print menu entry. - (For printing on paper see |:hardcopy|) + on paper see |:hardcopy|. In the GUI you can use the + File.Print menu entry. + See |ex-flags| for [flags]. -:[range]p[rint] {count} +:[range]p[rint] {count} [flags] Print {count} lines, starting with [range] (default current line |cmdline-ranges|). + See |ex-flags| for [flags]. *:P* *:Print* -:[range]P[rint] [count] +:[range]P[rint] [count] [flags] Just as ":print". Was apparently added to Vi for people that keep the shift key pressed too long... + See |ex-flags| for [flags]. *:l* *:list* -:[range]l[ist] [count] +:[range]l[ist] [count] [flags] Same as :print, but display unprintable characters - with '^'. + with '^' and put $ after the line. + See |ex-flags| for [flags]. *:nu* *:number* -:[range]nu[mber] [count] +:[range]nu[mber] [count] [flags] Same as :print, but precede each line with its line number. (See also 'highlight' option). + See |ex-flags| for [flags]. *:#* -:[range]# [count] synonym for :number. +:[range]# [count] [flags] + synonym for :number. *:z* *E144* :{range}z[+-^.=]{count} Display several lines of text surrounding the line @@ -123,11 +129,13 @@ g8 Print the hex values of the bytes u {not in all versions of Vi, not with these arguments} *:=* -:= Print the last line number. +:= [flags] Print the last line number. + See |ex-flags| for [flags]. -:{range}= Prints the last line number in {range}. For example, +:{range}= [flags] Prints the last line number in {range}. For example, this prints the current line number: > :.= +< See |ex-flags| for [flags]. :norm[al][!] {commands} *:norm* *:normal* Execute Normal mode commands {commands}. This makes @@ -397,6 +405,17 @@ N *+X11* Unix only: can restore window :redi[r] @" Redirect messages to the unnamed register. {not in Vi} :redi[r] @"> Append messages to the unnamed register. {not in Vi} +:redi[r] => {var} Redirect messages to a variable. If the variable + doesn't exist, then it is created. If the variable + exists, then it is initialized to an empty string. + Only string variables can be used. After the + redirection starts, if the variable is removed or + locked or the variable type is changed, then further + command output messages will cause errors. {not in Vi} + +:redi[r] =>> {var} Append messages to an existing variable. Only string + variables can be used. {not in Vi} + :redi[r] END End redirecting messages. {not in Vi} *:sil* *:silent* diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 7.0aa. Last change: 2005 Feb 11 +*version7.txt* For Vim version 7.0aa. Last change: 2005 Feb 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -184,7 +184,28 @@ Items that were fixed for both Vi and PO - Allow "-c{command}" argument, no space between "-c" and {command}. - When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in 'cpoptions'. - +- Allow 'l' and '#' flags for ":list", ":print" and ":number". +- Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified. +- In Ex mode with an empty buffer ":read file" doesn't keep an empty line + above or below the new lines. +- Remove a backslash before a NL for the ":global" command. +- When ":append", ":insert" or ":change" is used with ":global", get the + inserted lines from the command. Can use backslash-NL to separate lines. +- Can use ":global /pat/ visual" to execute Normal mode commands at each + matched line. Use "Q" to continue and go to the next line. +- The |:open| command has been partially implemented. It stops Ex mode, but + redraws the whole screen, not just one line as open mode is supposed to do. +- Support using a pipe to read the output from and write input to an external + command. Added the 'shelltemp' option and has("filterpipe"). +- In ex silent mode the ":set" command output is displayed. +- The ":@@" and ":**" give an error message when no register was used before. +- The search pattern "[]-`]" matches ']', '^', '_' and '`'. +- Autoindent for ":insert" is using the line below the insert. +- Autoindent for ":change" is using the first changed line. +- Editing Ex command lines is not done in cooked mode, because CTRL-D and + CTRL-T cannot be handled then. +- In Ex mode, "1,3" prints three lines. +- Implemented the 'prompt' option. Various new items *new-items-7* @@ -273,6 +294,7 @@ New functions: ~ |matchlist()| list with match and submatches of a pattern in a string |max()| maximum value in a List or Dictionary |min()| minimum value in a List or Dictionary +|mkdir()| create a directory |readfile()| read a file into a list of lines |remove()| remove one or more items from a List or Dictionary |repeat()| Repeat "expr" "count" times. (Christophe Poucet) @@ -312,6 +334,13 @@ New items in search patterns: ~ |/\%U| \%U1234abcd search for character with 8 pos. hex number |/\]| [\U1234abcd] idem, in a colletion (The above partly by Ciaran McCreesh) +|/[=| [[=a=]] an equivalence class (only for latin1 characters) +|/[.| [[.a.]] a collation element (only works with single char) + +Nesting |/multi| items no longer is an error when an empty match is possible. + +It is now possible to use \{0}, it matches the preceding atom zero times. Not +useful, just for compatibility. New Syntax/Indent/FTplugin files: ~ @@ -336,6 +365,8 @@ New message translations: ~ The Ukranian messages are now also available in cp1251. +Irish message translations. (Kevin Patrick Scannell) + Others: ~ @@ -346,6 +377,8 @@ Also fixes the problem that setting 'cli Mac: GUI font selector. (Peter "Rain Dog" Cucka) +Mac: support for multi-byte characters. (Da Woon Jung) + GUI font selector for Motif. (Marcin Dalecki) Nicer toolbar buttons for Motif. (Marcin Dalecki) @@ -462,7 +495,10 @@ When a register is empty it is not store Removed the tcltags script, it's obsolete. ":redir @*>" and ":redir @+>" append to the clipboard. Better check for -invalid characters after the register name. +invalid characters after the register name. |:redir| + +":redir => variable" and ":redir =>> variable" write or append to a variable. +(Yegappan Lakshmanan) |:redir| ":let g:" lists global variables. ":let b:" lists buffer-local variables. @@ -475,6 +511,15 @@ searching. (Yegappan Lakshmanan) g CTRL-G also shows the number of characters if it differs from the number of bytes. +Completion for ":debug" and entering an expression for the '=' register. Skip +":" between range and command name. (Peter winters) + +CTRL-Q in Insert mode now works like CTRL-V by default. Previously it was +ignored. + +When "beep" is included in 'debug' a function or script that causes a beep +will result in a message with the source of the error. + ============================================================================== COMPILE TIME CHANGES *compile-changes-7* @@ -489,6 +534,9 @@ Mac: Made it possible to compile with Mo still being able to use the MacRoman conversion. Added the os_mac_conv.c file. +When running the tests and one of them fails to produce "test.out" the +following tests are still executed. This helps when running out of memory. + ============================================================================== BUG FIXES *bug-fixes-7* @@ -813,4 +861,11 @@ When reading commands from a file and st request the xterm version. Vim can't read it, thus the output went to the shell and caused trouble there. +When redirecting to a register with an invalid name the redirection would +still be done (after an error message). Now reset "redir_reg". (Yegappan +Lakshmanan) + +It was not possible to use a NL after a backslash in Ex mode. This is +sometimes used to feed multiple lines to a shell command. + vim:tw=78:ts=8:ft=help:norl: diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -148,17 +148,17 @@ typedef struct ufunc ufunc_T; struct ufunc { - ufunc_T *next; /* next function in list */ - char_u *name; /* name of function; can start with 123_ - ( is K_SPECIAL KS_EXTRA KE_SNR) */ - int varargs; /* variable nr of arguments */ - int flags; - int calls; /* nr of active calls */ - garray_T args; /* arguments */ - garray_T lines; /* function lines */ - scid_T script_ID; /* ID of script where function was defined, + int uf_varargs; /* variable nr of arguments */ + int uf_flags; + int uf_calls; /* nr of active calls */ + garray_T uf_args; /* arguments */ + garray_T uf_lines; /* function lines */ + scid_T uf_script_ID; /* ID of script where function was defined, used for s: variables */ - int refcount; /* for numbered function: reference count */ + int uf_refcount; /* for numbered function: reference count */ + char_u uf_name[1]; /* name of function (actually longer); can + start with 123_ ( is K_SPECIAL + KS_EXTRA KE_SNR) */ }; /* function flags */ @@ -167,13 +167,18 @@ struct ufunc #define FC_DICT 4 /* Dict function, uses "self" */ /* - * All user-defined functions are found in the forward-linked function list. - * The first function is pointed at by firstfunc. - */ -ufunc_T *firstfunc = NULL; - -#define FUNCARG(fp, j) ((char_u **)(fp->args.ga_data))[j] -#define FUNCLINE(fp, j) ((char_u **)(fp->lines.ga_data))[j] + * All user-defined functions are found in this hash table. + */ +hashtab_T func_hashtab; + +/* From user function to hashitem and back. */ +static ufunc_T dumuf; +#define UF2HIKEY(fp) ((fp)->uf_name) +#define HIKEY2UF(p) ((ufunc_T *)(p - (dumuf.uf_name - (char_u *)&dumuf))) +#define HI2UF(hi) HIKEY2UF((hi)->hi_key) + +#define FUNCARG(fp, j) ((char_u **)(fp->uf_args.ga_data))[j] +#define FUNCLINE(fp, j) ((char_u **)(fp->uf_lines.ga_data))[j] #define MAX_FUNC_ARGS 20 /* maximum number of function arguments */ #define VAR_SHORT_LEN 20 /* short variable name length */ @@ -475,6 +480,9 @@ static void f_matchlist __ARGS((typval_T static void f_matchstr __ARGS((typval_T *argvars, typval_T *rettv)); static void f_max __ARGS((typval_T *argvars, typval_T *rettv)); static void f_min __ARGS((typval_T *argvars, typval_T *rettv)); +#ifdef vim_mkdir +static void f_mkdir __ARGS((typval_T *argvars, typval_T *rettv)); +#endif static void f_mode __ARGS((typval_T *argvars, typval_T *rettv)); static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv)); static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv)); @@ -554,7 +562,7 @@ static linenr_T get_tv_lnum __ARGS((typv static char_u *get_tv_string __ARGS((typval_T *varp)); static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf)); static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp)); -static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, char_u *varname)); +static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, char_u *varname, int writing)); static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); @@ -574,7 +582,8 @@ static void cat_func_name __ARGS((char_u static ufunc_T *find_func __ARGS((char_u *name)); static int function_exists __ARGS((char_u *name)); static int builtin_function __ARGS((char_u *name)); -static int func_autoload __ARGS((char_u *name)); +static int script_autoload __ARGS((char_u *name)); +static char_u *autoload_name __ARGS((char_u *name)); static void func_free __ARGS((ufunc_T *fp)); static void func_unref __ARGS((char_u *name)); static void func_ref __ARGS((char_u *name)); @@ -605,6 +614,7 @@ static void ex_unletlock __ARGS((exarg_T static int do_unlet_var __ARGS((lval_T *lp, char_u *name_end, int forceit)); static int do_lock_var __ARGS((lval_T *lp, char_u *name_end, int deep, int lock)); static void item_lock __ARGS((typval_T *tv, int deep, int lock)); +static int tv_islocked __ARGS((typval_T *tv)); /* * Initialize the global and v: variables. @@ -618,6 +628,7 @@ eval_init() init_var_dict(&globvardict, &globvars_var); init_var_dict(&vimvardict, &vimvars_var); hash_init(&compat_hashtab); + hash_init(&func_hashtab); for (i = 0; i < VV_LEN; ++i) { @@ -646,7 +657,7 @@ eval_init() func_name(cookie) void *cookie; { - return ((funccall_T *)cookie)->func->name; + return ((funccall_T *)cookie)->func->uf_name; } /* @@ -716,6 +727,136 @@ set_internal_string_var(name, value) } } +static lval_T *redir_lval = NULL; +static char_u *redir_endp = NULL; +static char_u *redir_varname = NULL; + +/* + * Start recording command output to a variable + * Returns OK if successfully completed the setup. FAIL otherwise. + */ + int +var_redir_start(name, append) + char_u *name; + int append; /* append to an existing variable */ +{ + int save_emsg; + int err; + typval_T tv; + + /* Make sure a valid variable name is specified */ + if (!eval_isnamec(*name) || VIM_ISDIGIT(*name)) + { + EMSG(_(e_invarg)); + return FAIL; + } + + redir_varname = vim_strsave(name); + if (redir_varname == NULL) + return FAIL; + + redir_lval = (lval_T *)alloc_clear((unsigned)sizeof(lval_T)); + if (redir_lval == NULL) + { + var_redir_stop(); + return FAIL; + } + + /* Parse the variable name (can be a dict or list entry). */ + redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, FALSE); + if (redir_endp == NULL || redir_lval->ll_name == NULL || *redir_endp != NUL) + { + if (redir_endp != NULL && *redir_endp != NUL) + /* Trailing characters are present after the variable name */ + EMSG(_(e_trailing)); + else + EMSG(_(e_invarg)); + var_redir_stop(); + return FAIL; + } + + /* check if we can write to the variable: set it to or append an empty + * string */ + save_emsg = did_emsg; + did_emsg = FALSE; + tv.v_type = VAR_STRING; + tv.vval.v_string = (char_u *)""; + if (append) + set_var_lval(redir_lval, redir_endp, &tv, TRUE, (char_u *)"."); + else + set_var_lval(redir_lval, redir_endp, &tv, TRUE, (char_u *)"="); + err = did_emsg; + did_emsg += save_emsg; + if (err) + { + var_redir_stop(); + return FAIL; + } + if (redir_lval->ll_newkey != NULL) + { + /* Dictionary item was created, don't do it again. */ + vim_free(redir_lval->ll_newkey); + redir_lval->ll_newkey = NULL; + } + + return OK; +} + +/* + * Append "value[len]" to the variable set by var_redir_start(). + */ + void +var_redir_str(value, len) + char_u *value; + int len; +{ + char_u *val; + typval_T tv; + int save_emsg; + int err; + + if (redir_lval == NULL) + return; + + if (len == -1) + /* Append the entire string */ + val = vim_strsave(value); + else + /* Append only the specified number of characters */ + val = vim_strnsave(value, len); + if (val == NULL) + return; + + tv.v_type = VAR_STRING; + tv.vval.v_string = val; + + save_emsg = did_emsg; + did_emsg = FALSE; + set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); + err = did_emsg; + did_emsg += save_emsg; + if (err) + var_redir_stop(); + + vim_free(tv.vval.v_string); +} + +/* + * Stop redirecting command output to a variable. + */ + void +var_redir_stop() +{ + if (redir_lval != NULL) + { + clear_lval(redir_lval); + vim_free(redir_lval); + redir_lval = NULL; + } + vim_free(redir_varname); + redir_varname = NULL; +} + # if defined(FEAT_MBYTE) || defined(PROTO) int eval_charconvert(enc_from, enc_to, fname_from, fname_to) @@ -5866,12 +6007,15 @@ static struct fst {"matchstr", 2, 4, f_matchstr}, {"max", 1, 1, f_max}, {"min", 1, 1, f_min}, +#ifdef vim_mkdir + {"mkdir", 1, 3, f_mkdir}, +#endif {"mode", 0, 0, f_mode}, {"nextnonblank", 1, 1, f_nextnonblank}, {"nr2char", 1, 1, f_nr2char}, {"prevnonblank", 1, 1, f_prevnonblank}, {"range", 1, 3, f_range}, - {"readfile", 1, 2, f_readfile}, + {"readfile", 1, 3, f_readfile}, {"remote_expr", 2, 3, f_remote_expr}, {"remote_foreground", 1, 1, f_remote_foreground}, {"remote_peek", 1, 2, f_remote_peek}, @@ -6218,7 +6362,7 @@ call_func(name, len, rettv, argcount, ar } #endif /* Try loading a package. */ - if (fp == NULL && func_autoload(fname) && !aborting()) + if (fp == NULL && script_autoload(fname) && !aborting()) { /* loaded a package, search for the function again */ fp = find_func(fname); @@ -6226,13 +6370,13 @@ call_func(name, len, rettv, argcount, ar if (fp != NULL) { - if (fp->flags & FC_RANGE) + if (fp->uf_flags & FC_RANGE) *doesrange = TRUE; - if (argcount < fp->args.ga_len) + if (argcount < fp->uf_args.ga_len) error = ERROR_TOOFEW; - else if (!fp->varargs && argcount > fp->args.ga_len) + else if (!fp->uf_varargs && argcount > fp->uf_args.ga_len) error = ERROR_TOOMANY; - else if ((fp->flags & FC_DICT) && selfdict == NULL) + else if ((fp->uf_flags & FC_DICT) && selfdict == NULL) error = ERROR_DICT; else { @@ -6243,12 +6387,12 @@ call_func(name, len, rettv, argcount, ar */ save_search_patterns(); saveRedobuff(); - ++fp->calls; + ++fp->uf_calls; call_user_func(fp, argcount, argvars, rettv, firstline, lastline, - (fp->flags & FC_DICT) ? selfdict : NULL); - if (--fp->calls <= 0 && isdigit(*fp->name) - && fp->refcount <= 0) + (fp->uf_flags & FC_DICT) ? selfdict : NULL); + if (--fp->uf_calls <= 0 && isdigit(*fp->uf_name) + && fp->uf_refcount <= 0) /* Function was unreferenced while being used, free it * now. */ func_free(fp); @@ -8198,7 +8342,7 @@ f_getbufvar(argvars, rettv) else { /* look up the variable */ - v = find_var_in_ht(&buf->b_vars.dv_hashtab, varname); + v = find_var_in_ht(&buf->b_vars.dv_hashtab, varname, FALSE); if (v != NULL) copy_tv(&v->di_tv, rettv); } @@ -8723,7 +8867,7 @@ f_getwinvar(argvars, rettv) else { /* look up the variable */ - v = find_var_in_ht(&win->w_vars.dv_hashtab, varname); + v = find_var_in_ht(&win->w_vars.dv_hashtab, varname, FALSE); if (v != NULL) copy_tv(&v->di_tv, rettv); } @@ -8909,6 +9053,9 @@ f_has(argvars, rettv) #ifdef FEAT_SEARCHPATH "file_in_path", #endif +#if defined(UNIX) && !defined(USE_SYSTEM) + "filterpipe", +#endif #ifdef FEAT_FIND_ID "find_in_path", #endif @@ -9772,8 +9919,6 @@ f_isdirectory(argvars, rettv) rettv->vval.v_number = mch_isdir(get_tv_string(&argvars[0])); } -static int tv_islocked __ARGS((typval_T *tv)); - /* * Return TRUE if typeval "tv" is locked: Either tha value is locked itself or * it refers to a List or Dictionary that is locked. @@ -10569,6 +10714,68 @@ f_min(argvars, rettv) max_min(argvars, rettv, FALSE); } +static int mkdir_recurse __ARGS((char_u *dir, int prot)); + +/* + * Create the directory in which "dir" is located, and higher levels when + * needed. + */ + static int +mkdir_recurse(dir, prot) + char_u *dir; + int prot; +{ + char_u *p; + char_u *updir; + int r = FAIL; + + /* Get end of directory name in "dir". + * We're done when it's "/" or "c:/". */ + p = gettail_sep(dir); + if (p <= get_past_head(dir)) + return OK; + + /* If the directory exists we're done. Otherwise: create it.*/ + updir = vim_strnsave(dir, (int)(p - dir)); + if (updir == NULL) + return FAIL; + if (mch_isdir(updir)) + r = OK; + else if (mkdir_recurse(updir, prot) == OK) + r = vim_mkdir_emsg(updir, prot); + vim_free(updir); + return r; +} + +#ifdef vim_mkdir +/* + * "mkdir()" function + */ + static void +f_mkdir(argvars, rettv) + typval_T *argvars; + typval_T *rettv; +{ + char_u *dir; + char_u buf[NUMBUFLEN]; + int prot = 0755; + + rettv->vval.v_number = FAIL; + if (check_restricted() || check_secure()) + return; + + dir = get_tv_string_buf(&argvars[0], buf); + if (argvars[1].v_type != VAR_UNKNOWN) + { + if (argvars[2].v_type != VAR_UNKNOWN) + prot = get_tv_number(&argvars[2]); + if (STRCMP(get_tv_string(&argvars[1]), "p") == 0) + mkdir_recurse(dir, prot); + } + rettv->vval.v_number = vim_mkdir_emsg(dir, prot); +} +#endif + /* * "mode()" function */ @@ -10754,10 +10961,16 @@ f_readfile(argvars, rettv) int prevlen = 0; /* length of "prev" if not NULL */ char_u *s; int len; - - if (argvars[1].v_type != VAR_UNKNOWN - && STRCMP(get_tv_string(&argvars[1]), "b") == 0) - binary = TRUE; + long maxline = MAXLNUM; + long cnt = 0; + + if (argvars[1].v_type != VAR_UNKNOWN) + { + if (STRCMP(get_tv_string(&argvars[1]), "b") == 0) + binary = TRUE; + if (argvars[2].v_type != VAR_UNKNOWN) + maxline = get_tv_number(&argvars[2]); + } l = list_alloc(); if (l == NULL) @@ -10776,7 +10989,7 @@ f_readfile(argvars, rettv) } filtd = 0; - for (;;) + while (cnt < maxline) { readlen = fread(buf + filtd, 1, FREAD_SIZE - filtd, fd); buflen = filtd + readlen; @@ -10825,6 +11038,8 @@ f_readfile(argvars, rettv) li->li_tv.vval.v_string = s; list_append(l, li); + if (++cnt >= maxline) + break; if (readlen <= 0) break; } @@ -10863,6 +11078,7 @@ f_readfile(argvars, rettv) } } + vim_free(prev); fclose(fd); } @@ -14132,7 +14348,7 @@ find_var(name, htp) *htp = ht; if (ht == NULL) return NULL; - return find_var_in_ht(ht, varname); + return find_var_in_ht(ht, varname, htp != NULL); } /* @@ -14140,9 +14356,10 @@ find_var(name, htp) * Returns NULL if not found. */ static dictitem_T * -find_var_in_ht(ht, varname) +find_var_in_ht(ht, varname, writing) hashtab_T *ht; char_u *varname; + int writing; { hashitem_T *hi; @@ -14164,7 +14381,15 @@ find_var_in_ht(ht, varname) hi = hash_find(ht, varname); if (HASHITEM_EMPTY(hi)) - return NULL; + { + /* For global variables we may try auto-loading the script. If it + * worked find the variable again. */ + if (ht == &globvarht && !writing + && script_autoload(varname) && !aborting()) + hi = hash_find(ht, varname); + if (HASHITEM_EMPTY(hi)) + return NULL; + } return HI2DI(hi); } @@ -14179,8 +14404,8 @@ find_var_ht(name, varname) { if (name[1] != ':') { - /* If not "x:name" there must not be any ":" in the name. */ - if (vim_strchr(name, ':') != NULL) + /* The name must not start with a colon. */ + if (name[0] == ':') return NULL; *varname = name; @@ -14193,12 +14418,15 @@ find_var_ht(name, varname) return ¤t_funccal->l_vars.dv_hashtab; /* l: variable */ } *varname = name + 2; + if (*name == 'g') /* global variable */ + return &globvarht; + /* There must be no ':' in the rest of the name, unless g: is used */ + if (vim_strchr(name + 2, ':') != NULL) + return NULL; if (*name == 'b') /* buffer variable */ return &curbuf->b_vars.dv_hashtab; if (*name == 'w') /* window variable */ return &curwin->w_vars.dv_hashtab; - if (*name == 'g') /* global variable */ - return &globvarht; if (*name == 'v') /* v: variable */ return &vimvarht; if (*name == 'a' && current_funccal != NULL) /* function argument */ @@ -14435,7 +14663,7 @@ set_var(name, tv, copy) return; } - v = find_var_in_ht(ht, varname); + v = find_var_in_ht(ht, varname, TRUE); if (v != NULL) { /* existing variable, need to clear the value */ @@ -14932,6 +15160,9 @@ ex_function(eap) funcdict_T fudi; static int func_nr = 0; /* number for nameless function */ int paren; + hashtab_T *ht; + int todo; + hashitem_T *hi; /* * ":function" without argument: list functions. @@ -14939,9 +15170,19 @@ ex_function(eap) if (ends_excmd(*eap->arg)) { if (!eap->skip) - for (fp = firstfunc; fp != NULL && !got_int; fp = fp->next) - if (!isdigit(*fp->name)) - list_func_head(fp, FALSE); + { + todo = globvarht.ht_used; + for (hi = globvarht.ht_array; todo > 0 && !got_int; ++hi) + { + if (!HASHITEM_EMPTY(hi)) + { + --todo; + fp = HI2UF(hi); + if (!isdigit(*fp->uf_name)) + list_func_head(fp, FALSE); + } + } + } eap->nextcmd = check_nextcmd(eap->arg); return; } @@ -15004,7 +15245,7 @@ ex_function(eap) if (fp != NULL) { list_func_head(fp, TRUE); - for (j = 0; j < fp->lines.ga_len && !got_int; ++j) + for (j = 0; j < fp->uf_lines.ga_len && !got_int; ++j) { msg_putchar('\n'); msg_outnum((long)(j + 1)); @@ -15012,7 +15253,7 @@ ex_function(eap) msg_putchar(' '); if (j < 99) msg_putchar(' '); - msg_prt_line(FUNCLINE(fp, j)); + msg_prt_line(FUNCLINE(fp, j), FALSE); out_flush(); /* show a line at a time */ ui_breakcheck(); } @@ -15260,7 +15501,7 @@ ex_function(eap) */ if (fudi.fd_dict == NULL) { - v = find_var(name, NULL); + v = find_var(name, &ht); if (v != NULL && v->di_tv.v_type == VAR_FUNC) { emsg_funcname("E707: Function name conflicts with variable: %s", @@ -15276,15 +15517,15 @@ ex_function(eap) emsg_funcname(e_funcexts, name); goto erret; } - if (fp->calls > 0) + if (fp->uf_calls > 0) { emsg_funcname("E127: Cannot redefine function %s: It is in use", name); goto erret; } /* redefine existing function */ - ga_clear_strings(&(fp->args)); - ga_clear_strings(&(fp->lines)); + ga_clear_strings(&(fp->uf_args)); + ga_clear_strings(&(fp->uf_lines)); vim_free(name); name = NULL; } @@ -15320,7 +15561,35 @@ ex_function(eap) if (fp == NULL) { - fp = (ufunc_T *)alloc((unsigned)sizeof(ufunc_T)); + if (fudi.fd_dict == NULL && vim_strchr(name, ':') != NULL) + { + int slen, plen; + char_u *scriptname; + + /* Check that the autoload name matches the script name. */ + j = FAIL; + if (sourcing_name != NULL) + { + scriptname = autoload_name(name); + if (scriptname != NULL) + { + p = vim_strchr(scriptname, '/'); + plen = STRLEN(p); + slen = STRLEN(sourcing_name); + if (slen > plen && fnamecmp(p, + sourcing_name + slen - plen) == 0) + j = OK; + vim_free(scriptname); + } + } + if (j == FAIL) + { + EMSG2(_("E746: Function name does not match script file name: %s"), name); + goto erret; + } + } + + fp = (ufunc_T *)alloc((unsigned)(sizeof(ufunc_T) + STRLEN(name))); if (fp == NULL) goto erret; @@ -15347,21 +15616,19 @@ ex_function(eap) fudi.fd_di->di_tv.v_type = VAR_FUNC; fudi.fd_di->di_tv.v_lock = 0; fudi.fd_di->di_tv.vval.v_string = vim_strsave(name); - fp->refcount = 1; + fp->uf_refcount = 1; } /* insert the new function in the function list */ - fp->name = name; - name = NULL; - fp->next = firstfunc; - firstfunc = fp; - } - fp->args = newargs; - fp->lines = newlines; - fp->varargs = varargs; - fp->flags = flags; - fp->calls = 0; - fp->script_ID = current_SID; + STRCPY(fp->uf_name, name); + hash_add(&func_hashtab, UF2HIKEY(fp)); + } + fp->uf_args = newargs; + fp->uf_lines = newlines; + fp->uf_varargs = varargs; + fp->uf_flags = flags; + fp->uf_calls = 0; + fp->uf_script_ID = current_SID; goto ret_free; erret: @@ -15573,21 +15840,21 @@ list_func_head(fp, indent) if (indent) MSG_PUTS(" "); MSG_PUTS("function "); - if (fp->name[0] == K_SPECIAL) + if (fp->uf_name[0] == K_SPECIAL) { MSG_PUTS_ATTR("", hl_attr(HLF_8)); - msg_puts(fp->name + 3); - } - else - msg_puts(fp->name); + msg_puts(fp->uf_name + 3); + } + else + msg_puts(fp->uf_name); msg_putchar('('); - for (j = 0; j < fp->args.ga_len; ++j) + for (j = 0; j < fp->uf_args.ga_len; ++j) { if (j) MSG_PUTS(", "); msg_puts(FUNCARG(fp, j)); } - if (fp->varargs) + if (fp->uf_varargs) { if (j) MSG_PUTS(", "); @@ -15604,12 +15871,12 @@ list_func_head(fp, indent) find_func(name) char_u *name; { - ufunc_T *fp; - - for (fp = firstfunc; fp != NULL; fp = fp->next) - if (STRCMP(name, fp->name) == 0) - break; - return fp; + hashitem_T *hi; + + hi = hash_find(&func_hashtab, name); + if (!HASHITEM_EMPTY(hi)) + return HI2UF(hi); + return NULL; } /* @@ -15646,11 +15913,11 @@ builtin_function(name) } /* - * If "name" has a package name try autoloading the script. + * If "name" has a package name try autoloading the script for it. * Return TRUE if a package was loaded. */ static int -func_autoload(name) +script_autoload(name) char_u *name; { char_u *p; @@ -15662,6 +15929,26 @@ func_autoload(name) if (p == NULL || p <= name + 2) return FALSE; + /* Try loading the package from $VIMRUNTIME/autoload/.vim */ + scriptname = autoload_name(name); + if (cmd_runtime(scriptname, FALSE) == OK) + ret = TRUE; + + vim_free(scriptname); + return ret; +} + +/* + * Return the autoload script name for a function or variable name. + * Returns NULL when out of memory. + */ + static char_u * +autoload_name(name) + char_u *name; +{ + char_u *p; + char_u *scriptname; + /* Get the script file name: replace ':' with '/', append ".vim". */ scriptname = alloc((unsigned)(STRLEN(name) + 14)); if (scriptname == NULL) @@ -15672,13 +15959,7 @@ func_autoload(name) STRCAT(scriptname, ".vim"); while ((p = vim_strchr(scriptname, ':')) != NULL) *p = '/'; - - /* Try loading the package from $VIMRUNTIME/autoload/.vim */ - if (cmd_runtime(scriptname, FALSE) == OK) - ret = TRUE; - - vim_free(scriptname); - return ret; + return scriptname; } #if defined(FEAT_CMDL_COMPL) || defined(PROTO) @@ -15692,24 +15973,33 @@ get_user_func_name(xp, idx) expand_T *xp; int idx; { - static ufunc_T *fp = NULL; + static long_u done; + static hashitem_T *hi; + ufunc_T *fp; if (idx == 0) - fp = firstfunc; - if (fp != NULL) - { - if (STRLEN(fp->name) + 4 >= IOSIZE) - return fp->name; /* prevents overflow */ + { + done = 0; + hi = func_hashtab.ht_array; + } + if (done < func_hashtab.ht_used) + { + if (done++ > 0) + ++hi; + while (HASHITEM_EMPTY(hi)) + ++hi; + fp = HI2UF(hi); + + if (STRLEN(fp->uf_name) + 4 >= IOSIZE) + return fp->uf_name; /* prevents overflow */ cat_func_name(IObuff, fp); if (xp->xp_context != EXPAND_USER_FUNC) { STRCAT(IObuff, "("); - if (!fp->varargs && fp->args.ga_len == 0) + if (!fp->uf_varargs && fp->uf_args.ga_len == 0) STRCAT(IObuff, ")"); } - - fp = fp->next; return IObuff; } return NULL; @@ -15727,13 +16017,13 @@ cat_func_name(buf, fp) char_u *buf; ufunc_T *fp; { - if (fp->name[0] == K_SPECIAL) + if (fp->uf_name[0] == K_SPECIAL) { STRCPY(buf, ""); - STRCAT(buf, fp->name + 3); - } - else - STRCPY(buf, fp->name); + STRCAT(buf, fp->uf_name + 3); + } + else + STRCPY(buf, fp->uf_name); } /* @@ -15778,7 +16068,7 @@ ex_delfunction(eap) EMSG2(_("E130: Undefined function: %s"), eap->arg); return; } - if (fp->calls > 0) + if (fp->uf_calls > 0) { EMSG2(_("E131: Cannot delete function %s: It is in use"), eap->arg); return; @@ -15802,25 +16092,19 @@ ex_delfunction(eap) func_free(fp) ufunc_T *fp; { - ufunc_T *pfp; + hashitem_T *hi; /* clear this function */ - vim_free(fp->name); - ga_clear_strings(&(fp->args)); - ga_clear_strings(&(fp->lines)); - - /* remove the function from the function list */ - if (firstfunc == fp) - firstfunc = fp->next; - else - { - for (pfp = firstfunc; pfp != NULL; pfp = pfp->next) - if (pfp->next == fp) - { - pfp->next = fp->next; - break; - } - } + ga_clear_strings(&(fp->uf_args)); + ga_clear_strings(&(fp->uf_lines)); + + /* remove the function from the function hashtable */ + hi = hash_find(&func_hashtab, UF2HIKEY(fp)); + if (HASHITEM_EMPTY(hi)) + EMSG2(_(e_intern2), "func_free()"); + else + hash_remove(&func_hashtab, hi); + vim_free(fp); } @@ -15839,11 +16123,11 @@ func_unref(name) fp = find_func(name); if (fp == NULL) EMSG2(_(e_intern2), "func_unref()"); - else if (--fp->refcount <= 0) + else if (--fp->uf_refcount <= 0) { /* Only delete it when it's not being used. Otherwise it's done - * when "calls" becomes zero. */ - if (fp->calls == 0) + * when "uf_calls" becomes zero. */ + if (fp->uf_calls == 0) func_free(fp); } } @@ -15864,7 +16148,7 @@ func_ref(name) if (fp == NULL) EMSG2(_(e_intern2), "func_ref()"); else - ++fp->refcount; + ++fp->uf_refcount; } } @@ -15915,7 +16199,7 @@ call_user_func(fp, argcount, argvars, re fc.returned = FALSE; fc.level = ex_nesting_level; /* Check if this function has a breakpoint. */ - fc.breakpoint = dbg_find_breakpoint(FALSE, fp->name, (linenr_T)0); + fc.breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name, (linenr_T)0); fc.dbg_tick = debug_tick; /* @@ -15947,7 +16231,7 @@ call_user_func(fp, argcount, argvars, re */ init_var_dict(&fc.l_avars, &fc.l_avars_var); add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0", - (varnumber_T)(argcount - fp->args.ga_len)); + (varnumber_T)(argcount - fp->uf_args.ga_len)); v = &fc.fixvar[fixvar_idx++].var; STRCPY(v->di_key, "000"); v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; @@ -15969,7 +16253,7 @@ call_user_func(fp, argcount, argvars, re (varnumber_T)lastline); for (i = 0; i < argcount; ++i) { - ai = i - fp->args.ga_len; + ai = i - fp->uf_args.ga_len; if (ai < 0) /* named argument a:name */ name = FUNCARG(fp, i); @@ -16014,7 +16298,7 @@ call_user_func(fp, argcount, argvars, re save_sourcing_lnum = sourcing_lnum; sourcing_lnum = 1; sourcing_name = alloc((unsigned)((save_sourcing_name == NULL ? 0 - : STRLEN(save_sourcing_name)) + STRLEN(fp->name) + 13)); + : STRLEN(save_sourcing_name)) + STRLEN(fp->uf_name) + 13)); if (sourcing_name != NULL) { if (save_sourcing_name != NULL @@ -16058,7 +16342,7 @@ call_user_func(fp, argcount, argvars, re } } save_current_SID = current_SID; - current_SID = fp->script_ID; + current_SID = fp->uf_script_ID; save_did_emsg = did_emsg; did_emsg = FALSE; @@ -16069,7 +16353,7 @@ call_user_func(fp, argcount, argvars, re --RedrawingDisabled; /* when the function was aborted because of an error, return -1 */ - if ((did_emsg && (fp->flags & FC_ABORT)) || rettv->v_type == VAR_UNKNOWN) + if ((did_emsg && (fp->uf_flags & FC_ABORT)) || rettv->v_type == VAR_UNKNOWN) { clear_tv(rettv); rettv->v_type = VAR_NUMBER; @@ -16346,13 +16630,13 @@ get_func_line(c, cookie, indent) /* If breakpoints have been added/deleted need to check for it. */ if (fcp->dbg_tick != debug_tick) { - fcp->breakpoint = dbg_find_breakpoint(FALSE, fcp->func->name, + fcp->breakpoint = dbg_find_breakpoint(FALSE, fcp->func->uf_name, sourcing_lnum); fcp->dbg_tick = debug_tick; } - gap = &fcp->func->lines; - if ((fcp->func->flags & FC_ABORT) && did_emsg && !aborted_in_try()) + gap = &fcp->func->uf_lines; + if ((fcp->func->uf_flags & FC_ABORT) && did_emsg && !aborted_in_try()) retval = NULL; else if (fcp->returned || fcp->linenr >= gap->ga_len) retval = NULL; @@ -16365,9 +16649,9 @@ get_func_line(c, cookie, indent) /* Did we encounter a breakpoint? */ if (fcp->breakpoint != 0 && fcp->breakpoint <= sourcing_lnum) { - dbg_breakpoint(fcp->func->name, sourcing_lnum); + dbg_breakpoint(fcp->func->uf_name, sourcing_lnum); /* Find next breakpoint. */ - fcp->breakpoint = dbg_find_breakpoint(FALSE, fcp->func->name, + fcp->breakpoint = dbg_find_breakpoint(FALSE, fcp->func->uf_name, sourcing_lnum); fcp->dbg_tick = debug_tick; } @@ -16387,7 +16671,7 @@ func_has_ended(cookie) /* Ignore the "abort" flag if the abortion behavior has been changed due to * an error inside a try conditional. */ - return (((fcp->func->flags & FC_ABORT) && did_emsg && !aborted_in_try()) + return (((fcp->func->uf_flags & FC_ABORT) && did_emsg && !aborted_in_try()) || fcp->returned); } @@ -16398,7 +16682,7 @@ func_has_ended(cookie) func_has_abort(cookie) void *cookie; { - return ((funccall_T *)cookie)->func->flags & FC_ABORT; + return ((funccall_T *)cookie)->func->uf_flags & FC_ABORT; } #if defined(FEAT_VIMINFO) || defined(FEAT_SESSION) diff --git a/src/ex_cmds.c b/src/ex_cmds.c --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -726,13 +726,15 @@ do_bang(addr_count, eap, forceit, do_in, /* * do_filter: filter lines through a command given by the user * - * We use temp files and the call_shell() routine here. This would normally - * be done using pipes on a UNIX machine, but this is more portable to - * non-unix machines. The call_shell() routine needs to be able + * We mostly use temp files and the call_shell() routine here. This would + * normally be done using pipes on a UNIX machine, but this is more portable + * to non-unix machines. The call_shell() routine needs to be able * to deal with redirection somehow, and should handle things like looking * at the PATH env. variable, and adding reasonable extensions to the * command name given by the user. All reasonable versions of call_shell() * do this. + * Alternatively, if on Unix and redirecting input or output, but not both, + * and the 'shelltemp' option isn't set, use pipes. * We use input redirection if do_in is TRUE. * We use output redirection if do_out is TRUE. */ @@ -752,6 +754,7 @@ do_filter(line1, line2, eap, cmd, do_in, #ifdef FEAT_AUTOCMD buf_T *old_curbuf = curbuf; #endif + int shell_flags = 0; if (*cmd == NUL) /* no filter command */ return; @@ -772,27 +775,59 @@ do_filter(line1, line2, eap, cmd, do_in, invalidate_botline(); /* - * 1. Form temp file names - * 2. Write the lines to a temp file - * 3. Run the filter command on the temp file - * 4. Read the output of the command into the buffer - * 5. Delete the original lines to be filtered - * 6. Remove the temp files + * When using temp files: + * 1. * Form temp file names + * 2. * Write the lines to a temp file + * 3. Run the filter command on the temp file + * 4. * Read the output of the command into the buffer + * 5. * Delete the original lines to be filtered + * 6. * Remove the temp files + * + * When writing the input with a pipe or when catching the output with a + * pipe only need to do 3. */ - if ((do_in && (itmp = vim_tempname('i')) == NULL) - || (do_out && (otmp = vim_tempname('o')) == NULL)) + if (do_out) + shell_flags |= SHELL_DOOUT; + +#if !defined(USE_SYSTEM) && defined(UNIX) + if (!do_in && do_out && !p_stmp) + { + /* Use a pipe to fetch stdout of the command, do not use a temp file. */ + shell_flags |= SHELL_READ; + curwin->w_cursor.lnum = line2; + } + else if (do_in && !do_out && !p_stmp) { - EMSG(_(e_notmp)); - goto filterend; + /* Use a pipe to write stdin of the command, do not use a temp file. */ + shell_flags |= SHELL_WRITE; + curbuf->b_op_start.lnum = line1; + curbuf->b_op_end.lnum = line2; } + else if (do_in && do_out && !p_stmp) + { + /* Use a pipe to write stdin and fetch stdout of the command, do not + * use a temp file. */ + shell_flags |= SHELL_READ|SHELL_WRITE; + curbuf->b_op_start.lnum = line1; + curbuf->b_op_end.lnum = line2; + curwin->w_cursor.lnum = line2; + } + else +#endif + if ((do_in && (itmp = vim_tempname('i')) == NULL) + || (do_out && (otmp = vim_tempname('o')) == NULL)) + { + EMSG(_(e_notmp)); + goto filterend; + } /* * The writing and reading of temp files will not be shown. * Vi also doesn't do this and the messages are not very informative. */ ++no_wait_return; /* don't call wait_return() while busy */ - if (do_in && buf_write(curbuf, itmp, NULL, line1, line2, eap, + if (itmp != NULL && buf_write(curbuf, itmp, NULL, line1, line2, eap, FALSE, FALSE, FALSE, TRUE) == FAIL) { msg_putchar('\n'); /* keep message from buf_write() */ @@ -828,6 +863,14 @@ do_filter(line1, line2, eap, cmd, do_in, if (!do_out || STRCMP(p_srr, ">") == 0 || !do_in) redraw_later_clear(); + if (do_out) + { + if (u_save((linenr_T)(line2), (linenr_T)(line2 + 1)) == FAIL) + goto error; + redraw_curbuf_later(VALID); + } + read_linecount = curbuf->b_ml.ml_line_count; + /* * When call_shell() fails wait_return() is called to give the user a * chance to read the error messages. Otherwise errors are ignored, so you @@ -837,8 +880,7 @@ do_filter(line1, line2, eap, cmd, do_in, * like ":r !cat" hangs. * Pass on the SHELL_DOOUT flag when the output is being redirected. */ - if (call_shell(cmd_buf, SHELL_FILTER | SHELL_COOKED - | (do_out ? SHELL_DOOUT : 0))) + if (call_shell(cmd_buf, SHELL_FILTER | SHELL_COOKED | shell_flags)) { redraw_later_clear(); wait_return(FALSE); @@ -856,32 +898,39 @@ do_filter(line1, line2, eap, cmd, do_in, if (do_out) { - if (u_save((linenr_T)(line2), (linenr_T)(line2 + 1)) == FAIL) - goto error; - redraw_curbuf_later(VALID); - read_linecount = curbuf->b_ml.ml_line_count; - if (readfile(otmp, NULL, line2, (linenr_T)0, (linenr_T)MAXLNUM, eap, - READ_FILTER) == FAIL) + if (otmp != NULL) { + if (readfile(otmp, NULL, line2, (linenr_T)0, (linenr_T)MAXLNUM, + eap, READ_FILTER) == FAIL) + { #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) - if (!aborting()) -#endif - { - msg_putchar('\n'); - EMSG2(_(e_notread), otmp); + if (!aborting()) +#endif + { + msg_putchar('\n'); + EMSG2(_(e_notread), otmp); + } + goto error; } - goto error; +#ifdef FEAT_AUTOCMD + if (curbuf != old_curbuf) + goto filterend; +#endif } -#ifdef FEAT_AUTOCMD - if (curbuf != old_curbuf) - goto filterend; -#endif + + read_linecount = curbuf->b_ml.ml_line_count - read_linecount; + + if (shell_flags & SHELL_READ) + { + curbuf->b_op_start.lnum = line2 + 1; + curbuf->b_op_end.lnum = curwin->w_cursor.lnum; + appended_lines_mark(line2, read_linecount); + } if (do_in) { if (cmdmod.keepmarks || vim_strchr(p_cpo, CPO_REMMARK) == NULL) { - read_linecount = curbuf->b_ml.ml_line_count - read_linecount; if (read_linecount >= linecount) /* move all marks from old lines to new lines */ mark_adjust(line1, line2, linecount, 0L); @@ -914,8 +963,8 @@ do_filter(line1, line2, eap, cmd, do_in, /* * Put cursor on last new line for ":r !cmd". */ + linecount = curbuf->b_op_end.lnum - curbuf->b_op_start.lnum + 1; curwin->w_cursor.lnum = curbuf->b_op_end.lnum; - linecount = curbuf->b_op_end.lnum - curbuf->b_op_start.lnum + 1; } beginline(BL_WHITE | BL_FIX); /* cursor on first non-blank */ @@ -1167,9 +1216,13 @@ make_filter_cmd(cmd, itmp, otmp) #if (defined(UNIX) && !defined(ARCHIE)) || defined(OS2) /* - * put braces around the command (for concatenated commands) + * Put braces around the command (for concatenated commands) when + * redirecting input and/or output. */ - sprintf((char *)buf, "(%s)", (char *)cmd); + if (itmp != NULL || otmp != NULL) + sprintf((char *)buf, "(%s)", (char *)cmd); + else + STRCPY(buf, cmd); if (itmp != NULL) { STRCAT(buf, " < "); @@ -1958,9 +2011,10 @@ do_fixdel(eap) } void -print_line_no_prefix(lnum, use_number) +print_line_no_prefix(lnum, use_number, list) linenr_T lnum; int use_number; + int list; { char_u numbuf[30]; @@ -1969,28 +2023,31 @@ print_line_no_prefix(lnum, use_number) sprintf((char *)numbuf, "%*ld ", number_width(curwin), (long)lnum); msg_puts_attr(numbuf, hl_attr(HLF_N)); /* Highlight line nrs */ } - msg_prt_line(ml_get(lnum)); + msg_prt_line(ml_get(lnum), list); } /* * Print a text line. Also in silent mode ("ex -s"). */ void -print_line(lnum, use_number) +print_line(lnum, use_number, list) linenr_T lnum; int use_number; + int list; { int save_silent = silent_mode; + msg_start(); silent_mode = FALSE; - msg_start(); - print_line_no_prefix(lnum, use_number); + info_message = TRUE; /* use mch_msg(), not mch_errmsg() */ + print_line_no_prefix(lnum, use_number, list); if (save_silent) { msg_putchar('\n'); cursor_on(); /* msg_start() switches it off */ out_flush(); silent_mode = save_silent; + info_message = FALSE; } } @@ -3240,6 +3297,8 @@ delbuf_msg(name) } #endif +static int append_indent = 0; /* autoindent for first line */ + /* * ":insert" and ":append", also used by ":change" */ @@ -3255,6 +3314,14 @@ ex_append(eap) int vcol; int empty = (curbuf->b_ml.ml_flags & ML_EMPTY); + /* the ! flag toggles autoindent */ + if (eap->forceit) + curbuf->b_p_ai = !curbuf->b_p_ai; + + /* First autoindent comes from the line we start on */ + if (eap->cmdidx != CMD_change && curbuf->b_p_ai && lnum > 0) + append_indent = get_indent_lnum(lnum); + if (eap->cmdidx != CMD_append) --lnum; @@ -3270,14 +3337,31 @@ ex_append(eap) { msg_scroll = TRUE; need_wait_return = FALSE; - if (curbuf->b_p_ai && lnum > 0) - indent = get_indent_lnum(lnum); + if (curbuf->b_p_ai) + { + if (append_indent >= 0) + { + indent = append_indent; + append_indent = -1; + } + else if (lnum > 0) + indent = get_indent_lnum(lnum); + } + ex_keep_indent = FALSE; if (eap->getline == NULL) - theline = getcmdline( -#ifdef FEAT_EVAL - eap->cstack->cs_looplevel > 0 ? -1 : -#endif - NUL, 0L, indent); + { + /* No getline() function, use the lines that follow. This ends + * when there is no more. */ + if (eap->nextcmd == NULL || *eap->nextcmd == NUL) + break; + p = vim_strchr(eap->nextcmd, NL); + if (p == NULL) + p = eap->nextcmd + STRLEN(eap->nextcmd); + theline = vim_strnsave(eap->nextcmd, (int)(p - eap->nextcmd)); + if (*p != NUL) + ++p; + eap->nextcmd = p; + } else theline = eap->getline( #ifdef FEAT_EVAL @@ -3288,6 +3372,10 @@ ex_append(eap) if (theline == NULL) break; + /* Using ^ CTRL-D in getexmodeline() makes us repeat the indent. */ + if (ex_keep_indent) + append_indent = indent; + /* Look for the "." after automatic indent. */ vcol = 0; for (p = theline; indent > vcol; ++p) @@ -3306,13 +3394,16 @@ ex_append(eap) break; } + /* don't use autoindent if nothing was typed. */ + if (p[0] == NUL) + theline[0] = NUL; + did_undo = TRUE; ml_append(lnum, theline, (colnr_T)0, FALSE); appended_lines_mark(lnum, 1L); vim_free(theline); ++lnum; - msg_didout = TRUE; /* also scroll for empty line */ if (empty) { @@ -3322,6 +3413,9 @@ ex_append(eap) } State = NORMAL; + if (eap->forceit) + curbuf->b_p_ai = !curbuf->b_p_ai; + /* "start" is set to eap->line2+1 unless that position is invalid (when * eap->line2 pointed to the end of the buffer and nothig was appended) * "end" is set to lnum when something has been appended, otherwise @@ -3354,6 +3448,10 @@ ex_change(eap) && u_save(eap->line1 - 1, eap->line2 + 1) == FAIL) return; + /* the ! flag toggles autoindent */ + if (eap->forceit ? !curbuf->b_p_ai : curbuf->b_p_ai) + append_indent = get_indent_lnum(eap->line1); + for (lnum = eap->line2; lnum >= eap->line1; --lnum) { if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to delete */ @@ -3374,7 +3472,6 @@ ex_z(eap) char_u *x; int bigness; char_u *kind; - int numbered = FALSE; int minus = 0; linenr_T start, end, curs, i; int j; @@ -3392,12 +3489,6 @@ ex_z(eap) bigness = 1; x = eap->arg; - if (*x == '#') - { - numbered = TRUE; - ++x; - } - kind = x; if (*kind == '-' || *kind == '+' || *kind == '=' || *kind == '^' || *kind == '.') @@ -3416,6 +3507,8 @@ ex_z(eap) { bigness = atoi((char *)x); p_window = bigness; + if (*kind == '=') + bigness += 2; } } @@ -3454,8 +3547,10 @@ ex_z(eap) default: /* '+' */ start = lnum; if (*kind == '+') - start += bigness * (x - kind - 1); - end = start + bigness; + start += bigness * (x - kind - 1) + 1; + else if (eap->addr_count == 0) + ++start; + end = start + bigness - 1; curs = end; break; } @@ -3479,7 +3574,7 @@ ex_z(eap) msg_putchar('-'); } - print_line(i, numbered); + print_line(i, eap->flags & EXFLAG_NR, eap->flags & EXFLAG_LIST); if (minus && i == lnum) { @@ -3568,6 +3663,8 @@ do_sub(eap) static int do_ask = FALSE; /* ask for confirmation */ static int do_error = TRUE; /* if false, ignore errors */ static int do_print = FALSE; /* print last line with subs. */ + static int do_list = FALSE; /* list last line with subs. */ + static int do_number = FALSE; /* list last line with line nr*/ static int do_ic = 0; /* ignore case flag */ char_u *pat = NULL, *sub = NULL; /* init for GCC */ int delimiter; @@ -3663,8 +3760,22 @@ do_sub(eap) if (!eap->skip) { - vim_free(old_sub); - old_sub = vim_strsave(sub); + /* In POSIX vi ":s/pat/%/" uses the previous subst. string. */ + if (STRCMP(sub, "%") == 0 + && vim_strchr(p_cpo, CPO_SUBPERCENT) != NULL) + { + if (old_sub == NULL) /* there is no previous command */ + { + EMSG(_(e_nopresub)); + return; + } + sub = old_sub; + } + else + { + vim_free(old_sub); + old_sub = vim_strsave(sub); + } } } else if (!eap->skip) /* use previous pattern and substitution */ @@ -3717,6 +3828,16 @@ do_sub(eap) which_pat = RE_LAST; else if (*cmd == 'p') do_print = TRUE; + else if (*cmd == '#') + { + do_print = TRUE; + do_number = TRUE; + } + else if (*cmd == 'l') + { + do_print = TRUE; + do_list = TRUE; + } else if (*cmd == 'i') /* ignore case */ do_ic = 'i'; else if (*cmd == 'I') /* don't ignore case */ @@ -3932,58 +4053,86 @@ do_sub(eap) */ while (do_ask) { + if (exmode_active) + { + char_u *resp; + colnr_T sc, ec; + + print_line_no_prefix(lnum, FALSE, FALSE); + + getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL); + curwin->w_cursor.col = regmatch.endpos[0].col - 1; + getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec); + msg_start(); + for (i = 0; i < sc; ++i) + msg_putchar(' '); + for ( ; i <= ec; ++i) + msg_putchar('^'); + + resp = getexmodeline('?', NULL, 0); + if (resp != NULL) + { + i = *resp; + vim_free(resp); + } + } + else + { #ifdef FEAT_FOLDING - int save_p_fen = curwin->w_p_fen; - - curwin->w_p_fen = FALSE; -#endif - /* Invert the matched string. - * Remove the inversion afterwards. */ - temp = RedrawingDisabled; - RedrawingDisabled = 0; - - search_match_lines = regmatch.endpos[0].lnum; - search_match_endcol = regmatch.endpos[0].col; - highlight_match = TRUE; - - update_topline(); - validate_cursor(); - update_screen(NOT_VALID); - highlight_match = FALSE; - redraw_later(NOT_VALID); + int save_p_fen = curwin->w_p_fen; + + curwin->w_p_fen = FALSE; +#endif + /* Invert the matched string. + * Remove the inversion afterwards. */ + temp = RedrawingDisabled; + RedrawingDisabled = 0; + + search_match_lines = regmatch.endpos[0].lnum; + search_match_endcol = regmatch.endpos[0].col; + highlight_match = TRUE; + + update_topline(); + validate_cursor(); + update_screen(NOT_VALID); + highlight_match = FALSE; + redraw_later(NOT_VALID); #ifdef FEAT_FOLDING - curwin->w_p_fen = save_p_fen; -#endif - if (msg_row == Rows - 1) - msg_didout = FALSE; /* avoid a scroll-up */ - msg_starthere(); - i = msg_scroll; - msg_scroll = 0; /* truncate msg when needed */ - msg_no_more = TRUE; - /* write message same highlighting as for wait_return */ - smsg_attr(hl_attr(HLF_R), - (char_u *)_("replace with %s (y/n/a/q/l/^E/^Y)?"), - sub); - msg_no_more = FALSE; - msg_scroll = i; - showruler(TRUE); - windgoto(msg_row, msg_col); - RedrawingDisabled = temp; + curwin->w_p_fen = save_p_fen; +#endif + if (msg_row == Rows - 1) + msg_didout = FALSE; /* avoid a scroll-up */ + msg_starthere(); + i = msg_scroll; + msg_scroll = 0; /* truncate msg when + needed */ + msg_no_more = TRUE; + /* write message same highlighting as for + * wait_return */ + smsg_attr(hl_attr(HLF_R), + (char_u *)_("replace with %s (y/n/a/q/l/^E/^Y)?"), sub); + msg_no_more = FALSE; + msg_scroll = i; + showruler(TRUE); + windgoto(msg_row, msg_col); + RedrawingDisabled = temp; #ifdef USE_ON_FLY_SCROLL - dont_scroll = FALSE; /* allow scrolling here */ -#endif - ++no_mapping; /* don't map this key */ - ++allow_keys; /* allow special keys */ - i = safe_vgetc(); - --allow_keys; - --no_mapping; - - /* clear the question */ - msg_didout = FALSE; /* don't scroll up */ - msg_col = 0; - gotocmdline(TRUE); + dont_scroll = FALSE; /* allow scrolling here */ +#endif + ++no_mapping; /* don't map this key */ + ++allow_keys; /* allow special keys */ + i = safe_vgetc(); + --allow_keys; + --no_mapping; + + /* clear the question */ + msg_didout = FALSE; /* don't scroll up */ + msg_col = 0; + gotocmdline(TRUE); + } + need_wait_return = FALSE; /* no hit-return prompt */ if (i == 'q' || i == ESC || i == Ctrl_C #ifdef UNIX @@ -4328,7 +4477,7 @@ outofmem: else global_need_beginline = TRUE; if (do_print) - print_line(curwin->w_cursor.lnum, FALSE); + print_line(curwin->w_cursor.lnum, do_number, do_list); } else if (!global_busy) { diff --git a/src/ex_cmds.h b/src/ex_cmds.h --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -53,6 +53,7 @@ #define SBOXOK 0x80000L /* allowed in the sandbox */ #define CMDWIN 0x100000L /* allowed in cmdline window */ #define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */ +#define EXFLAGS 0x400000L /* allow flags after count in argument */ #define FILES (XFILE | EXTRA) /* multiple extra files allowed */ #define WORD1 (EXTRA | NOSPC) /* one extra word allowed */ #define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */ @@ -197,7 +198,7 @@ EX(CMD_cc, "cc", ex_cc, EX(CMD_cclose, "cclose", ex_cclose, RANGE|NOTADR|COUNT|TRLBAR), EX(CMD_cd, "cd", ex_cd, - FILE1|TRLBAR|CMDWIN), + BANG|FILE1|TRLBAR|CMDWIN), EX(CMD_center, "center", ex_align, TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), EX(CMD_cfile, "cfile", ex_cfile, @@ -207,7 +208,7 @@ EX(CMD_cfirst, "cfirst", ex_cc, EX(CMD_cgetfile, "cgetfile", ex_cfile, TRLBAR|FILE1|BANG), EX(CMD_chdir, "chdir", ex_cd, - FILE1|TRLBAR|CMDWIN), + BANG|FILE1|TRLBAR|CMDWIN), EX(CMD_changes, "changes", ex_changes, TRLBAR|CMDWIN), EX(CMD_checkpath, "checkpath", ex_checkpath, @@ -453,7 +454,7 @@ EX(CMD_iunabbrev, "iunabbrev", ex_abbrev EX(CMD_iunmenu, "iunmenu", ex_menu, EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), EX(CMD_join, "join", ex_join, - BANG|RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|MODIFY), + BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), EX(CMD_jumps, "jumps", ex_jumps, TRLBAR|CMDWIN), EX(CMD_k, "k", ex_mark, @@ -465,15 +466,15 @@ EX(CMD_keepjumps, "keepjumps", ex_wrongm EX(CMD_keepalt, "keepalt", ex_wrongmodifier, NEEDARG|EXTRA|NOTRLCOM), EX(CMD_list, "list", ex_print, - RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN), + RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), EX(CMD_last, "last", ex_last, EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), EX(CMD_language, "language", ex_language, EXTRA|TRLBAR|CMDWIN), EX(CMD_lcd, "lcd", ex_cd, - FILE1|TRLBAR|CMDWIN), + BANG|FILE1|TRLBAR|CMDWIN), EX(CMD_lchdir, "lchdir", ex_cd, - FILE1|TRLBAR|CMDWIN), + BANG|FILE1|TRLBAR|CMDWIN), EX(CMD_left, "left", ex_align, TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), EX(CMD_leftabove, "leftabove", ex_wrongmodifier, @@ -559,13 +560,13 @@ EX(CMD_noremenu, "noremenu", ex_menu, EX(CMD_normal, "normal", ex_normal, RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN), EX(CMD_number, "number", ex_print, - RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN), + RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), EX(CMD_nunmap, "nunmap", ex_unmap, EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), EX(CMD_nunmenu, "nunmenu", ex_menu, EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), -EX(CMD_open, "open", ex_ni, - TRLBAR), /* not supported */ +EX(CMD_open, "open", ex_open, + RANGE|EXTRA), EX(CMD_omap, "omap", ex_map, EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), EX(CMD_omapclear, "omapclear", ex_mapclear, @@ -585,7 +586,7 @@ EX(CMD_ounmap, "ounmap", ex_unmap, EX(CMD_ounmenu, "ounmenu", ex_menu, EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), EX(CMD_print, "print", ex_print, - RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|SBOXOK), + RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK), EX(CMD_pclose, "pclose", ex_pclose, BANG|TRLBAR), EX(CMD_perl, "perl", ex_perl, @@ -907,29 +908,29 @@ EX(CMD_xall, "xall", do_wqall, EX(CMD_yank, "yank", ex_operators, RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN), EX(CMD_z, "z", ex_z, - RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN), + RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN), /* commands that don't start with a lowercase letter */ EX(CMD_bang, "!", ex_bang, RANGE|WHOLEFOLD|BANG|FILES|CMDWIN), EX(CMD_pound, "#", ex_print, - RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN), + RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), EX(CMD_and, "&", do_sub, RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), EX(CMD_star, "*", ex_at, RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN), EX(CMD_lshift, "<", ex_operators, - RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|MODIFY), + RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), EX(CMD_equal, "=", ex_equal, - RANGE|TRLBAR|DFLALL|CMDWIN), + RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN), EX(CMD_rshift, ">", ex_operators, - RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN|MODIFY), + RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), EX(CMD_at, "@", ex_at, RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN), EX(CMD_Next, "Next", ex_previous, EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), EX(CMD_Print, "Print", ex_print, - RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN), + RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), EX(CMD_X, "X", ex_X, TRLBAR), EX(CMD_tilde, "~", do_sub, @@ -967,6 +968,7 @@ struct exarg int addr_count; /* the number of addresses given */ linenr_T line1; /* the first line number */ linenr_T line2; /* the second line number or count */ + int flags; /* extra flags after count: EXFLAG_ */ char_u *do_ecmd_cmd; /* +command arg to be used in edited file */ linenr_T do_ecmd_lnum; /* the line number in an edited file */ int append; /* TRUE with ":w >>file" command */ @@ -992,4 +994,9 @@ struct exarg #define FORCE_BIN 1 /* ":edit ++bin file" */ #define FORCE_NOBIN 2 /* ":edit ++nobin file" */ +/* Values for "flags" */ +#define EXFLAG_LIST 0x01 /* 'l': list */ +#define EXFLAG_NR 0x02 /* '#': number */ +#define EXFLAG_PRINT 0x04 /* 'p': print */ + #endif diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -1185,10 +1185,8 @@ scripterror: } #endif - if (GARGCOUNT > 1) - printf(_("%d files to edit\n"), GARGCOUNT); #ifdef MSWIN - else if (GARGCOUNT == 1 && full_path) + if (GARGCOUNT == 1 && full_path) { /* * If there is one filename, fully qualified, we have very probably @@ -1310,7 +1308,12 @@ scripterror: TIME_MSG("Warning delay"); } - if (want_full_screen) + /* This message comes before term inits, but after setting "silent_mode" + * when the input is not a tty. */ + if (GARGCOUNT > 1 && !silent_mode) + printf(_("%d files to edit\n"), GARGCOUNT); + + if (want_full_screen && !silent_mode) { termcapinit(term); /* set terminal name and get terminal capabilities (will set full_screen) */ @@ -2067,7 +2070,7 @@ scripterror: /* * Call the main command loop. This never returns. */ - main_loop(FALSE); + main_loop(FALSE, FALSE); return 0; } @@ -2077,10 +2080,13 @@ scripterror: * Main loop: Execute Normal mode commands until exiting Vim. * Also used to handle commands in the command-line window, until the window * is closed. + * Also used to handle ":visual" command after ":global": execute Normal mode + * commands, return when entering Ex mode. "noexmode" is TRUE then. */ void -main_loop(cmdwin) - int cmdwin; /* TRUE when working in the command-line window */ +main_loop(cmdwin, noexmode) + int cmdwin; /* TRUE when working in the command-line window */ + int noexmode; /* TRUE when return on entering Ex mode */ { oparg_T oa; /* operator arguments */ @@ -2089,7 +2095,7 @@ main_loop(cmdwin) * it, restore the state and continue. This might not always work * properly, but at least we don't exit unexpectedly when the X server * exists while Vim is running in a console. */ - if (!cmdwin && SETJMP(x_jump_env)) + if (!cmdwin && !noexmode && SETJMP(x_jump_env)) { State = NORMAL; # ifdef FEAT_VISUAL @@ -2247,7 +2253,11 @@ main_loop(cmdwin) * Otherwise, get and execute a normal mode command. */ if (exmode_active) + { + if (noexmode) /* End of ":global/path/visual" commands */ + return; do_exmode(exmode_active == EXMODE_VIM); + } else normal_cmd(&oa, TRUE); } @@ -2289,6 +2299,12 @@ getout(exitval) exiting = TRUE; + /* When running in Ex mode an error causes us to exit with a non-zero exit + * code. POSIX requires this, although it's not 100% clear from the + * standard. */ + if (exmode_active) + exitval += ex_exitval; + /* Position the cursor on the last screen line, below all the text */ #ifdef FEAT_GUI if (!gui.in_use) diff --git a/src/memline.c b/src/memline.c --- a/src/memline.c +++ b/src/memline.c @@ -4385,14 +4385,14 @@ ml_updatechunk(buf, line, len, updtype) /* * Find offset for line or line with offset. - * Find line with offset if line is 0; return remaining offset in offp - * Find offset of line if line > 0 + * Find line with offset if "lnum" is 0; return remaining offset in offp + * Find offset of line if "lnum" > 0 * return -1 if information is not available */ long -ml_find_line_or_offset(buf, line, offp) +ml_find_line_or_offset(buf, lnum, offp) buf_T *buf; - linenr_T line; + linenr_T lnum; long *offp; { linenr_T curline; @@ -4409,16 +4409,19 @@ ml_find_line_or_offset(buf, line, offp) int ffdos = (get_fileformat(buf) == EOL_DOS); int extra = 0; + /* take care of cached line first */ + ml_flush_line(curbuf); + if (buf->b_ml.ml_usedchunks == -1 || buf->b_ml.ml_chunksize == NULL - || line < 0) + || lnum < 0) return -1; if (offp == NULL) offset = 0; else offset = *offp; - if (line == 0 && offset <= 0) + if (lnum == 0 && offset <= 0) return 1; /* Not a "find offset" and offset 0 _must_ be in line 1 */ /* * Find the last chunk before the one containing our line. Last chunk is @@ -4427,8 +4430,8 @@ ml_find_line_or_offset(buf, line, offp) curline = 1; curix = size = 0; while (curix < buf->b_ml.ml_usedchunks - 1 - && ((line != 0 - && line >= curline + buf->b_ml.ml_chunksize[curix].mlcs_numlines) + && ((lnum != 0 + && lnum >= curline + buf->b_ml.ml_chunksize[curix].mlcs_numlines) || (offset != 0 && offset > size + buf->b_ml.ml_chunksize[curix].mlcs_totalsize + ffdos * buf->b_ml.ml_chunksize[curix].mlcs_numlines))) @@ -4440,7 +4443,7 @@ ml_find_line_or_offset(buf, line, offp) curix++; } - while ((line != 0 && curline < line) || (offset != 0 && size < offset)) + while ((lnum != 0 && curline < lnum) || (offset != 0 && size < offset)) { if (curline > buf->b_ml.ml_line_count || (hp = ml_find_line(buf, curline, ML_FIND)) == NULL) @@ -4454,10 +4457,10 @@ ml_find_line_or_offset(buf, line, offp) else text_end = ((dp->db_index[idx - 1]) & DB_INDEX_MASK); /* Compute index of last line to use in this MEMLINE */ - if (line != 0) + if (lnum != 0) { - if (curline + (count - idx) >= line) - idx += line - curline - 1; + if (curline + (count - idx) >= lnum) + idx += lnum - curline - 1; else idx = count - 1; } @@ -4497,11 +4500,11 @@ ml_find_line_or_offset(buf, line, offp) curline = buf->b_ml.ml_locked_high + 1; } - if (line != 0) + if (lnum != 0) { /* Count extra CR characters. */ if (ffdos) - size += line - 1; + size += lnum - 1; /* Don't count the last line break if 'bin' and 'noeol'. */ if (buf->b_p_bin && !buf->b_p_eol) diff --git a/src/misc1.c b/src/misc1.c --- a/src/misc1.c +++ b/src/misc1.c @@ -3182,6 +3182,14 @@ vim_beep() out_char(BELL); #endif } + + /* When 'verbose' is set and we are sourcing a script or executing a + * function give the user a hint where the beep comes from. */ + if (vim_strchr(p_debug, 'e') != NULL) + { + msg_source(hl_attr(HLF_W)); + msg_attr((char_u *)_("Beep!"), hl_attr(HLF_W)); + } } } diff --git a/src/po/ga.po b/src/po/ga.po new file mode 100644 --- /dev/null +++ b/src/po/ga.po @@ -0,0 +1,7170 @@ +# Irish translations for vim. +# This file is distributed under the same license as the vim package. +# Kevin Patrick Scannell , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: vim 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-02-13 21:51-0600\n" +"PO-Revision-Date: 2005-02-14 10:35-0600\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: buffer.c:102 +msgid "E82: Cannot allocate any buffer, exiting..." +msgstr "E82: Ní féidir maolán a riar, ag scor..." + +#: buffer.c:105 +msgid "E83: Cannot allocate buffer, using other one..." +msgstr "E83: Ní féidir maolán a riar, ag úsáid cinn eile..." + +#: buffer.c:857 +#, c-format +msgid "E515: No buffers were unloaded" +msgstr "E515: Ní raibh aon mhaolán díluchtaithe" + +#: buffer.c:859 +#, c-format +msgid "E516: No buffers were deleted" +msgstr "E516: Ní raibh aon mhaolán scriosta" + +#: buffer.c:861 +#, c-format +msgid "E517: No buffers were wiped out" +msgstr "E517: Ní raibh aon mhaolán bánaithe" + +#: buffer.c:869 +msgid "1 buffer unloaded" +msgstr "Bhí 1 maolán díluchtaithe" + +#: buffer.c:871 +#, c-format +msgid "%d buffers unloaded" +msgstr "%d maolán folmhaithe" + +#: buffer.c:876 +msgid "1 buffer deleted" +msgstr "Bhí 1 maolán scriosta" + +#: buffer.c:878 +#, c-format +msgid "%d buffers deleted" +msgstr "%d maolán scriosta" + +#: buffer.c:883 +msgid "1 buffer wiped out" +msgstr "Bhí 1 maolán bánaithe" + +#: buffer.c:885 +#, c-format +msgid "%d buffers wiped out" +msgstr "%d maolán bánaithe" + +#: buffer.c:946 +msgid "E84: No modified buffer found" +msgstr "E84: Níor aimsíodh maolán athraithe" + +#. back where we started, didn't find anything. +#: buffer.c:985 +msgid "E85: There is no listed buffer" +msgstr "E85: Níl aon mhaolán liostaithe ann" + +#: buffer.c:997 +#, c-format +msgid "E86: Buffer %ld does not exist" +msgstr "E86: Níl a leithéid de mhaolán %ld" + +#: buffer.c:1000 +msgid "E87: Cannot go beyond last buffer" +msgstr "E87: Ní féidir a dhul thar an maolán deireanach" + +#: buffer.c:1002 +msgid "E88: Cannot go before first buffer" +msgstr "E88: Ní féidir a dhul roimh an chéad mhaolán" + +#: buffer.c:1044 +#, c-format +msgid "E89: No write since last change for buffer %ld (add ! to override)" +msgstr "" +"E89: Tá maolán %ld athraithe ach nach bhfuil sábháilte ó shin (cuir ! leis " +"an ordú chun sárú)" + +#: buffer.c:1061 +msgid "E90: Cannot unload last buffer" +msgstr "E90: Ní féidir an maolán deireanach a dhíluchtú" + +#: buffer.c:1611 +msgid "W14: Warning: List of file names overflow" +msgstr "W14: Rabhadh: Róshreabhadh liosta ainmneacha comhaid" + +#: buffer.c:1795 +#, c-format +msgid "E92: Buffer %ld not found" +msgstr "E92: Maolán %ld gan aimsiú" + +#: buffer.c:2058 +#, c-format +msgid "E93: More than one match for %s" +msgstr "E93: Níos mó ná teaghrán amháin comhoiriúnaithe le %s" + +#: buffer.c:2060 +#, c-format +msgid "E94: No matching buffer for %s" +msgstr "E94: Níl aon mhaolán comhoiriúnaithe le %s" + +#: buffer.c:2455 +#, c-format +msgid "line %ld" +msgstr "líne %ld:" + +#: buffer.c:2543 +msgid "E95: Buffer with this name already exists" +msgstr "E95: Tá maolán ann leis an ainm seo cheana" + +#: buffer.c:2860 +msgid " [Modified]" +msgstr " [Athraithe]" + +#: buffer.c:2865 +msgid "[Not edited]" +msgstr "[Gan eagrú]" + +#: buffer.c:2870 +msgid "[New file]" +msgstr "[Comhad nua]" + +#: buffer.c:2871 +msgid "[Read errors]" +msgstr "[Earráidí léimh]" + +#: buffer.c:2873 fileio.c:2099 netbeans.c:3416 +msgid "[readonly]" +msgstr "[léamh amháin]" + +#: buffer.c:2894 +#, c-format +msgid "1 line --%d%%--" +msgstr "1 líne --%d%%--" + +#: buffer.c:2896 +#, c-format +msgid "%ld lines --%d%%--" +msgstr "%ld líne --%d%%--" + +#: buffer.c:2903 +#, c-format +msgid "line %ld of %ld --%d%%-- col " +msgstr "líne %ld de %ld --%d%%-- col " + +#: buffer.c:3011 buffer.c:4732 memline.c:1657 +msgid "[No Name]" +msgstr "[Gan Ainm]" + +#. must be a help buffer +#: buffer.c:3050 +msgid "help" +msgstr "cabhair" + +#: buffer.c:3601 screen.c:5071 +msgid "[help]" +msgstr "[cabhair]" + +#: buffer.c:3633 screen.c:5077 +msgid "[Preview]" +msgstr "[Réamhamharc]" + +#: buffer.c:3913 +msgid "All" +msgstr "Uile" + +#: buffer.c:3913 +msgid "Bot" +msgstr "Bun" + +#: buffer.c:3915 +msgid "Top" +msgstr "Barr" + +#: buffer.c:4684 +#, c-format +msgid "" +"\n" +"# Buffer list:\n" +msgstr "" +"\n" +"# Liosta maoláin:\n" + +#: buffer.c:4719 +msgid "[Error List]" +msgstr "[Liosta Earráidí]" + +#: buffer.c:5045 +msgid "" +"\n" +"--- Signs ---" +msgstr "" +"\n" +"--- Comharthaí ---" + +#: buffer.c:5064 +#, c-format +msgid "Signs for %s:" +msgstr "Comharthaí do %s:" + +#: buffer.c:5070 +#, c-format +msgid " line=%ld id=%d name=%s" +msgstr " líne=%ld id=%d ainm=%s" + +#: diff.c:163 +#, c-format +msgid "E96: Can not diff more than %ld buffers" +msgstr "E96: Ní féidir diff a dhéanamh ar níos mó ná %ld maolán" + +#: diff.c:737 +msgid "E97: Cannot create diffs" +msgstr "E97: Ní féidir diffeanna a chruthú" + +#: diff.c:843 +msgid "Patch file" +msgstr "Comhad paiste" + +#: diff.c:1146 +msgid "E98: Cannot read diff output" +msgstr "E98: Ní féidir an t-aschur diff a léamh" + +#: diff.c:1896 +msgid "E99: Current buffer is not in diff mode" +msgstr "E99: Níl an maolán reatha sa mhód diff" + +#: diff.c:1908 +msgid "E100: No other buffer in diff mode" +msgstr "E100: Níl aon mhaolán eile sa mhód diff" + +#: diff.c:1916 +msgid "E101: More than two buffers in diff mode, don't know which one to use" +msgstr "" +"E101: Tá níos mó ná dhá mhaolán sa mhód diff, níl fhios agam cé acu ba chóir " +"a úsáid" + +#: diff.c:1939 +#, c-format +msgid "E102: Can't find buffer \"%s\"" +msgstr "E102: Tá maolán \"%s\" gan aimsiú" + +#: diff.c:1945 +#, c-format +msgid "E103: Buffer \"%s\" is not in diff mode" +msgstr "E103: Níl maolán \"%s\" i mód diff" + +#: digraph.c:2200 +msgid "E104: Escape not allowed in digraph" +msgstr "E104: Ní cheadaítear carachtair éalúcháin i ndéghraf" + +#: digraph.c:2384 +msgid "E544: Keymap file not found" +msgstr "E544: Comhad eochairmhapála gan aimsiú" + +#: digraph.c:2411 +msgid "E105: Using :loadkeymap not in a sourced file" +msgstr "E105: Ag úsáid :loadkeymap ach ní comhad foinsithe é seo" + +#: edit.c:41 +msgid " Keyword completion (^N^P)" +msgstr " Comhlánú d'eochairfhocail (^N^P)" + +#. ctrl_x_mode == 0, ^P/^N compl. +#: edit.c:42 +msgid " ^X mode (^E^Y^L^]^F^I^K^D^U^V^N^P)" +msgstr " mód ^X (^E^Y^L^]^F^I^K^D^U^V^N^P)" + +#. Scroll has it's own msgs, in it's place there is the msg for local +#. * ctrl_x_mode = 0 (eg continue_status & CONT_LOCAL) -- Acevedo +#: edit.c:45 +msgid " Keyword Local completion (^N^P)" +msgstr " Comhlánú eochairfhocail logánta (^N^P)" + +#: edit.c:46 +msgid " Whole line completion (^L^N^P)" +msgstr " Comhlánú Línte Ina Iomlán (^L^N^P)" + +#: edit.c:47 +msgid " File name completion (^F^N^P)" +msgstr " Comhlánú de na hainmneacha comhaid (^F^N^P)" + +#: edit.c:48 +msgid " Tag completion (^]^N^P)" +msgstr " Comhlánú clibeanna (^]/^N/^P)" + +#: edit.c:49 +msgid " Path pattern completion (^N^P)" +msgstr " Comhlánú Conaire (^N^P)" + +#: edit.c:50 +msgid " Definition completion (^D^N^P)" +msgstr " Comhlánú de na sainmhínithe (^D^N^P)" + +#: edit.c:52 +msgid " Dictionary completion (^K^N^P)" +msgstr " Comhlánú foclóra (^K^N^P)" + +#: edit.c:53 +msgid " Thesaurus completion (^T^N^P)" +msgstr " Comhlánú teasárais (^T^N^P)" + +#: edit.c:54 +msgid " Command-line completion (^V^N^P)" +msgstr " Comhlánú den líne ordaithe (^V^N^P)" + +#: edit.c:55 +msgid " User defined completion (^U^N^P)" +msgstr " Comhlánú saincheaptha (^U^N^P)" + +#: edit.c:58 +msgid "Hit end of paragraph" +msgstr "Sroicheadh críoch an pharagraif" + +#: edit.c:994 +msgid "'thesaurus' option is empty" +msgstr "tá an rogha 'thesaurus' folamh" + +#: edit.c:1204 +msgid "'dictionary' option is empty" +msgstr "tá an rogha 'dictionary' folamh" + +#: edit.c:2204 +#, c-format +msgid "Scanning dictionary: %s" +msgstr "Foclóir á scanadh: %s" + +#: edit.c:2410 +msgid " (insert) Scroll (^E/^Y)" +msgstr " (ionsáigh) Scrollaigh (^E/^Y)" + +#: edit.c:2412 +msgid " (replace) Scroll (^E/^Y)" +msgstr " (ionadaigh) Scrollaigh (^E/^Y)" + +#: edit.c:2813 +#, c-format +msgid "Scanning: %s" +msgstr "%s á scanadh" + +#: edit.c:2848 +#, c-format +msgid "Scanning tags." +msgstr "Clibeanna á scanadh." + +#: edit.c:3549 +msgid " Adding" +msgstr " Méadú" + +#. showmode might reset the internal line pointers, so it must +#. * be called before line = ml_get(), or when this address is no +#. * longer needed. -- Acevedo. +#: edit.c:3598 +msgid "-- Searching..." +msgstr "-- Ag Cuardach..." + +#: edit.c:3654 +msgid "Back at original" +msgstr "Ar ais ag an mbunáit" + +#: edit.c:3659 +msgid "Word from other line" +msgstr "Focal as líne eile" + +#: edit.c:3664 +msgid "The only match" +msgstr "An t-aon teaghrán amháin comhoiriúnaithe" + +#: edit.c:3723 +#, c-format +msgid "match %d of %d" +msgstr "comhoiriúnú %d as %d" + +#: edit.c:3726 +#, c-format +msgid "match %d" +msgstr "comhoiriúnú %d" + +#: eval.c:93 +msgid "E18: Unexpected characters in :let" +msgstr "E18: Carachtair gan choinne i :let" + +#: eval.c:94 +#, c-format +msgid "E684: list index out of range: %ld" +msgstr "E684: innéacs liosta as raon: %ld" + +#: eval.c:95 +#, c-format +msgid "E121: Undefined variable: %s" +msgstr "E121: Athróg gan sainmhíniú: %s" + +#: eval.c:96 +msgid "E111: Missing ']'" +msgstr "E111: `]' ar iarraidh" + +#: eval.c:97 +#, c-format +msgid "E686: Argument of %s must be a List" +msgstr "E686: Ní foláir argóint de %s a bheith Liosta" + +#: eval.c:98 +#, c-format +msgid "E712: Argument of %s must be a List or Dictionaary" +msgstr "E712: Ní foláir argóint de %s a bheith Liosta nó Foclóir" + +#: eval.c:99 +msgid "E713: Cannot use empty key for Dictionary" +msgstr "E713: Ní féidir eochair fholamh a úsáid le Foclóir" + +#: eval.c:100 +msgid "E714: List required" +msgstr "E714: Tá gá le liosta" + +#: eval.c:101 +msgid "E715: Dictionary required" +msgstr "E715: Tá gá le foclóir" + +#: eval.c:102 +#, c-format +msgid "E118: Too many arguments for function: %s" +msgstr "E118: An iomarca argóintí d'fheidhm %s" + +#: eval.c:103 +#, c-format +msgid "E716: Key not present in Dictionary: %s" +msgstr "E716: Níl an eochair seo san Fhoclóir: %s" + +#: eval.c:104 +#, c-format +msgid "E122: Function %s already exists, add ! to replace it" +msgstr "E122: Tá feidhm %s ann cheana, cuir ! leis an ordú chun é a asáitiú" + +#: eval.c:105 +msgid "E717: Dictionary entry already exists" +msgstr "E717: Tá an iontráil foclóra seo ann cheana" + +#: eval.c:106 +msgid "E718: Funcref required" +msgstr "E718: Tá gá le Funcref" + +#: eval.c:107 +msgid "E719: Cannot use [:] with a Dictionary" +msgstr "E719: Ní féidir [:] a úsáid le foclóir" + +#: eval.c:108 +#, c-format +msgid "E734: Wrong variable type for %s=" +msgstr "E734: Cineál mícheart athróige le haghaidh %s=" + +#: eval.c:1209 +msgid "E687: Less targets than List items" +msgstr "E687: Níos lú spriocanna ná míreanna Liosta" + +#: eval.c:1214 +msgid "E688: More targets than List items" +msgstr "E688: Níos mó spriocanna ná míreanna Liosta" + +#: eval.c:1300 +msgid "Double ; in list of variables" +msgstr "; dúblach i liosta na n-athróg" + +#: eval.c:1466 +#, c-format +msgid "E738: Can't list variables for %s" +msgstr "E738: Ní féidir athróga do %s a thaispeáint" + +#: eval.c:1801 +msgid "E689: Can only index a List or Dictionary" +msgstr "E689: Is féidir Liosta nó Foclóir amháin a innéacsú" + +#: eval.c:1807 +msgid "E708: [:] must come last" +msgstr "E708: caithfidh [:] a bheith ar deireadh" + +#: eval.c:1853 +msgid "E709: [:] requires a List value" +msgstr "E709: ní foláir Liosta a thabhairt le [:]" + +#: eval.c:2089 +msgid "E710: List value has more items than target" +msgstr "E710: Tá níos mó míreanna ag an Liosta ná an sprioc" + +#: eval.c:2093 +msgid "E711: List value has not enough items" +msgstr "E711: Níl go leor míreanna ag an Liosta" + +#: eval.c:2287 +msgid "E690: Missing \"in\" after :for" +msgstr "E690: \"in\" ar iarraidh i ndiaidh :for" + +#: eval.c:2502 +#, c-format +msgid "E107: Missing braces: %s" +msgstr "E107: Lúibíní slabhracha ar iarraidh: %s" + +#: eval.c:2728 +#, c-format +msgid "E108: No such variable: \"%s\"" +msgstr "E108: Níl a leithéid d'athróg: \"%s\"" + +#: eval.c:2815 +msgid "E743: variable nested too deep for (un)lock" +msgstr "E743: athróg neadaithe ródhomhain chun í a (dí)ghlasáil" + +#: eval.c:3117 +msgid "E109: Missing ':' after '?'" +msgstr "E109: ':' ar iarraidh i ndiaidh '?'" + +#: eval.c:3409 +msgid "E691: Can only compare List with List" +msgstr "E691: Is féidir Liosta a chur i gcomparáid le Liosta eile amháin" + +#: eval.c:3411 +msgid "E692: Invalid operation for Lists" +msgstr "E692: Oibríocht neamhbhailí ar Liostaí" + +#: eval.c:3438 +msgid "E735: Can only compare Dictionary with Dictionary" +msgstr "E735: Is féidir Foclóir a chur i gcomparáid le Foclóir eile amháin" + +#: eval.c:3440 +msgid "E736: Invalid operation for Dictionary" +msgstr "E736: Oibríocht neamhbhailí ar Fhoclóir" + +#: eval.c:3460 +msgid "E693: Can only compare Funcref with Funcref" +msgstr "E693: Is féidir Funcref a chur i gcomparáid le Funcref eile amháin" + +#: eval.c:3462 +msgid "E694: Invalid operation for Funcrefs" +msgstr "E694: Oibríocht neamhbhailí ar Funcref" + +#: eval.c:3867 +msgid "E110: Missing ')'" +msgstr "E110: ')' ar iarraidh" + +#: eval.c:3974 +msgid "E695: Cannot index a Funcref" +msgstr "E695: Ní féidir Funcref a innéacsú" + +#: eval.c:4213 +#, c-format +msgid "E112: Option name missing: %s" +msgstr "E112: Ainm rogha ar iarraidh: %s" + +#: eval.c:4231 +#, c-format +msgid "E113: Unknown option: %s" +msgstr "E113: Rogha anaithnid: %s" + +#: eval.c:4297 +#, c-format +msgid "E114: Missing quote: %s" +msgstr "E114: Comhartha athfhriotail ar iarraidh: %s" + +#: eval.c:4433 +#, c-format +msgid "E115: Missing quote: %s" +msgstr "E115: Comhartha athfhriotail ar iarraidh: %s" + +#: eval.c:4512 +#, c-format +msgid "E696: Missing comma in List: %s" +msgstr "E696: Camóg ar iarraidh i Liosta: %s" + +#: eval.c:4520 +#, c-format +msgid "E697: Missing end of List ']': %s" +msgstr "E697: ']' ar iarraidh ag deireadh liosta: %s" + +#: eval.c:5492 +#, c-format +msgid "E720: Missing colon in Dictionary: %s" +msgstr "E720: Idirstad ar iarraidh i bhFoclóir: %s" + +#: eval.c:5515 +msgid "E721: Duplicate key in Dictionary" +msgstr "E721: Eochair dhúblach i bhFoclóir" + +#: eval.c:5535 +#, c-format +msgid "E722: Missing comma in Dictionary: %s" +msgstr "E722: Camóg ar iarraidh i bhFoclóir: %s" + +#: eval.c:5543 +#, c-format +msgid "E723: Missing end of Dictionary '}': %s" +msgstr "E723: '}' ar iarraidh ag deireadh foclóra: %s" + +#: eval.c:5579 +msgid "E724: variable nested too deep for displaying" +msgstr "E724: athróg neadaithe ródhomhain chun í a thaispeáint" + +#: eval.c:6811 +msgid "E699: Too many arguments" +msgstr "E699: An iomarca argóintí" + +#. * Yes this is ugly, I don't particularly like it either. But doing it +#. * this way has the compelling advantage that translations need not to +#. * be touched at all. See below what 'ok' and 'ync' are used for. +#: eval.c:6966 gui.c:4390 gui_gtk.c:2137 os_mswin.c:602 +msgid "&Ok" +msgstr "&Ok" + +#: eval.c:7542 +#, c-format +msgid "E737: Key already exists: %s" +msgstr "E737: Tá eochair ann cheana: %s" + +#: eval.c:8022 +#, c-format +msgid "+-%s%3ld lines: " +msgstr "+-%s%3ld líne: " + +#: eval.c:8111 +#, c-format +msgid "E700: Unknown function: %s" +msgstr "E700: Feidhm anaithnid: %s" + +#: eval.c:9643 +msgid "" +"&OK\n" +"&Cancel" +msgstr "" +"&OK\n" +"&Cealaigh" + +#: eval.c:9682 +msgid "called inputrestore() more often than inputsave()" +msgstr "Glaodh inputrestore() níos minice ná inputsave()" + +#: eval.c:9834 +msgid "E745: Range not allowed" +msgstr "E745: Ní cheadaítear raon" + +#: eval.c:10037 +msgid "E701: Invalid type for len()" +msgstr "E701: Cineál neamhbhailí le haghaidh len()" + +#: eval.c:10707 +msgid "E726: Stride is zero" +msgstr "E726: Is nialas í an chéim" + +#: eval.c:10709 +msgid "E727: Start past end" +msgstr "E727: Tosach thar dheireadh" + +#: eval.c:10774 eval.c:13278 +msgid "" +msgstr "" + +#: eval.c:10895 +msgid "E240: No connection to Vim server" +msgstr "E240: Níl aon nasc le freastalaí Vim" + +#: eval.c:10941 +#, c-format +msgid "E241: Unable to send to %s" +msgstr "E241: Ní féidir aon rud a sheoladh chuig %s" + +#: eval.c:11073 +msgid "E277: Unable to read a server reply" +msgstr "E277: Ní féidir freagra ón fhreastalaí a léamh" + +#: eval.c:11328 +msgid "E655: Too many symbolic links (cycle?)" +msgstr "E655: An iomarca naisc shiombalacha (timthriall?)" + +#: eval.c:11752 +msgid "E258: Unable to send to client" +msgstr "E258: Ní féidir aon rud a sheoladh chuig an chliant" + +#: eval.c:12159 +msgid "E702: Sort compare function failed" +msgstr "E702: Theip ar fheidhm chomparáide le linn sórtála" + +#: eval.c:12278 +msgid "(Invalid)" +msgstr "(Neamhbhailí)" + +#: eval.c:12694 +msgid "E677: Error writing temp file" +msgstr "E677: Earráid agus comhad sealadach á scríobh" + +#: eval.c:14027 +msgid "E703: Using a Funcref as a number" +msgstr "E703: Funcref á úsáid mar uimhir" + +#: eval.c:14035 +msgid "E745: Using a List as a number" +msgstr "E745: Liosta á úsáid mar uimhir" + +#: eval.c:14038 +msgid "E728: Using a Dictionary as a number" +msgstr "E728: Foclóir á úsáid mar uimhir" + +#: eval.c:14096 +msgid "E729: using Funcref as a String" +msgstr "E729: Funcref á úsáid mar Theaghrán" + +#: eval.c:14099 +msgid "E730: using List as a String" +msgstr "E730: Liosta á úsáid mar Theaghrán" + +#: eval.c:14102 +msgid "E731: using Dictionary as a String" +msgstr "E731: Foclóir á úsáid mar Theaghrán" + +#: eval.c:14420 +#, c-format +msgid "E704: Funcref variable name must start with a capital: %s" +msgstr "E704: Ní foláir ceannlitir a bheith ar dtús ainm Funcref: %s" + +#: eval.c:14425 +#, c-format +msgid "705: Variable name conflicts with existing function: %s" +msgstr "705: Tagann ainm athróige salach ar fheidhm atá ann cheana: %s" + +#: eval.c:14434 +#, c-format +msgid "E461: Illegal variable name: %s" +msgstr "E461: Ainm athróige neamhcheadaithe: %s" + +#: eval.c:14451 +#, c-format +msgid "E706: Variable type mismatch for: %s" +msgstr "E706: Mímheaitseáil idir cineálacha athróige: %s" + +#: eval.c:14540 +#, c-format +msgid "E741: Value is locked: %s" +msgstr "E741: Tá an luach faoi ghlas: %s" + +#: eval.c:14541 eval.c:14547 os_mswin.c:2187 +msgid "Unknown" +msgstr "Anaithnid" + +#: eval.c:14546 +#, c-format +msgid "E742: Cannot change value of %s" +msgstr "E742: Ní féidir an luach de %s a athrú" + +#: eval.c:14624 +msgid "E698: variable nested too deep for making a copy" +msgstr "E698: athróg neadaithe ródhomhain chun í a chóipeáil" + +#: eval.c:15039 +#, c-format +msgid "E124: Missing '(': %s" +msgstr "E124: '(' ar iarraidh: %s" + +#: eval.c:15072 +#, c-format +msgid "E125: Illegal argument: %s" +msgstr "E125: Argóint neamhcheadaithe: %s" + +#: eval.c:15160 +msgid "E126: Missing :endfunction" +msgstr "E126: :endfunction ar iarraidh" + +#: eval.c:15425 +msgid "E129: Function name required" +msgstr "E129: Tá ainm feidhme riachtanach" + +#: eval.c:15510 +#, c-format +msgid "E128: Function name must start with a capital or contain a colon: %s" +msgstr "" +"E128: Ní foláir ceannlitir a bheith ar dtús ainm feidhme, nó idirstad a " +"bheith ann: %s" + +#: eval.c:15778 +#, c-format +msgid "E130: Undefined function: %s" +msgstr "E130: Feidhm gan sainmhíniú: %s" + +#: eval.c:15783 +#, c-format +msgid "E131: Cannot delete function %s: It is in use" +msgstr "E131: Ní féidir feidhm %s a scriosadh: Tá sé in úsáid faoi láthair" + +#: eval.c:15901 +msgid "E132: Function call depth is higher than 'maxfuncdepth'" +msgstr "E132: Doimhneacht na nglaonna níos mó ná 'maxfuncdepth'" + +#. always scroll up, don't overwrite +#: eval.c:16031 +#, c-format +msgid "calling %s" +msgstr "%s á glao" + +#: eval.c:16093 +#, c-format +msgid "%s aborted" +msgstr "%s tobscortha" + +#: eval.c:16095 +#, c-format +msgid "%s returning #%ld" +msgstr "%s ag aisfhilleadh #%ld" + +#: eval.c:16105 +#, c-format +msgid "%s returning %s" +msgstr "%s ag aisfhilleadh %s" + +#. always scroll up, don't overwrite +#: eval.c:16122 ex_cmds2.c:2407 +#, c-format +msgid "continuing in %s" +msgstr "ag leanúint i %s" + +#: eval.c:16170 +msgid "E133: :return not inside a function" +msgstr "E133: Ní foláir do :return a bheith isteach i bhfeidhm" + +#: eval.c:16496 +#, c-format +msgid "" +"\n" +"# global variables:\n" +msgstr "" +"\n" +"# athróga comhchoiteanna:\n" + +#: ex_cmds2.c:92 +msgid "Entering Debug mode. Type \"cont\" to continue." +msgstr "Mód dífhabhtaithe á thosú. Clóscríobh \"cont\" chun leanúint." + +#: ex_cmds2.c:96 ex_docmd.c:1019 +#, c-format +msgid "line %ld: %s" +msgstr "líne %ld: %s" + +#: ex_cmds2.c:98 +#, c-format +msgid "cmd: %s" +msgstr "ordú: %s" + +#: ex_cmds2.c:290 +#, c-format +msgid "Breakpoint in \"%s%s\" line %ld" +msgstr "Brisphointe i \"%s%s\" líne %ld" + +#: ex_cmds2.c:560 +#, c-format +msgid "E161: Breakpoint not found: %s" +msgstr "E161: Brisphointe gan aimsiú: %s" + +#: ex_cmds2.c:585 +msgid "No breakpoints defined" +msgstr "Níl aon bhrisphointe socraithe" + +#: ex_cmds2.c:590 +#, c-format +msgid "%3d %s %s line %ld" +msgstr "%3d %s %s líne %ld" + +#: ex_cmds2.c:780 ex_cmds.c:2119 +msgid "Save As" +msgstr "Sábháil Mar" + +#: ex_cmds2.c:805 +#, c-format +msgid "Save changes to \"%.*s\"?" +msgstr "Sábháil athruithe ar \"%.*s\"?" + +#: ex_cmds2.c:807 ex_docmd.c:9652 +msgid "Untitled" +msgstr "Gan Teideal" + +#: ex_cmds2.c:934 +#, c-format +msgid "E162: No write since last change for buffer \"%s\"" +msgstr "E162: Tá maolán \"%s\" athraithe ach nach bhfuil sábháilte ó shin" + +#: ex_cmds2.c:1005 +msgid "Warning: Entered other buffer unexpectedly (check autocommands)" +msgstr "Rabhadh: Chuathas i maolán eile go tobann (seiceáil na huathorduithe)" + +#: ex_cmds2.c:1424 +msgid "E163: There is only one file to edit" +msgstr "E163: Níl ach aon chomhad amháin le cur in eagar" + +#: ex_cmds2.c:1426 +msgid "E164: Cannot go before first file" +msgstr "E164: Ní féidir a dhul roimh an chéad chomhad" + +#: ex_cmds2.c:1428 +msgid "E165: Cannot go beyond last file" +msgstr "E165: Ní féidir a dhul thar an gcomhad deireanach" + +#: ex_cmds2.c:1841 +#, c-format +msgid "E666: compiler not supported: %s" +msgstr "E666: ní ghlactar leis an tiomsaitheoir: %s" + +#: ex_cmds2.c:1938 +#, c-format +msgid "Searching for \"%s\" in \"%s\"" +msgstr "Ag déanamh cuardach ar \"%s\" i \"%s\"" + +#: ex_cmds2.c:1960 +#, c-format +msgid "Searching for \"%s\"" +msgstr "Ag déanamh cuardach ar \"%s\"" + +#: ex_cmds2.c:1982 +#, c-format +msgid "not found in 'runtimepath': \"%s\"" +msgstr "gan aimsiú i 'runtimepath': \"%s\"" + +#: ex_cmds2.c:2016 +msgid "Source Vim script" +msgstr "Foinsigh script Vim" + +#: ex_cmds2.c:2206 +#, c-format +msgid "Cannot source a directory: \"%s\"" +msgstr "Ní féidir an chomhadlann \"%s\" a léamh" + +#: ex_cmds2.c:2244 +#, c-format +msgid "could not source \"%s\"" +msgstr "níorbh fhéidir \"%s\" a léamh" + +#: ex_cmds2.c:2246 +#, c-format +msgid "line %ld: could not source \"%s\"" +msgstr "líne %ld: níorbh fhéidir \"%s\" a fhoinsiú" + +#: ex_cmds2.c:2260 +#, c-format +msgid "sourcing \"%s\"" +msgstr "\"%s\" á fhoinsiú" + +#: ex_cmds2.c:2262 +#, c-format +msgid "line %ld: sourcing \"%s\"" +msgstr "líne %ld: \"%s\" á fhoinsiú" + +#: ex_cmds2.c:2405 +#, c-format +msgid "finished sourcing %s" +msgstr "deireadh ag foinsiú %s" + +#: ex_cmds2.c:2751 +msgid "W15: Warning: Wrong line separator, ^M may be missing" +msgstr "" +"W15: Rabhadh: Deighilteoir línte mícheart, is féidir go bhfuil ^M ar iarraidh" + +#: ex_cmds2.c:2801 +msgid "E167: :scriptencoding used outside of a sourced file" +msgstr "E167: ní úsáidtear :scriptencoding ach i gcomhad foinsithe" + +#: ex_cmds2.c:2834 +msgid "E168: :finish used outside of a sourced file" +msgstr "E168: ní úsáidtear :finish ach i gcomhaid foinsithe" + +#: ex_cmds2.c:3283 +#, c-format +msgid "Page %d" +msgstr "Leathanach %d" + +#: ex_cmds2.c:3439 +msgid "No text to be printed" +msgstr "Níl aon téacs le priontáil" + +#: ex_cmds2.c:3517 +#, c-format +msgid "Printing page %d (%d%%)" +msgstr "Leathanach %d (%d%%) á phriontáil" + +#: ex_cmds2.c:3529 +#, c-format +msgid " Copy %d of %d" +msgstr " Cóip %d de %d" + +#: ex_cmds2.c:3587 +#, c-format +msgid "Printed: %s" +msgstr "Priontáilte: %s" + +#: ex_cmds2.c:3594 +#, c-format +msgid "Printing aborted" +msgstr "Priontáil tobscortha" + +#: ex_cmds2.c:4248 +msgid "E455: Error writing to PostScript output file" +msgstr "E455: Earráid le linn scríobh chuig aschomhad PostScript" + +#: ex_cmds2.c:4708 +#, c-format +msgid "E624: Can't open file \"%s\"" +msgstr "E624: Ní féidir an comhad \"%s\" a oscailt" + +#: ex_cmds2.c:4718 ex_cmds2.c:5592 +#, c-format +msgid "E457: Can't read PostScript resource file \"%s\"" +msgstr "E457: Ní féidir comhad acmhainne PostScript \"%s\" a léamh" + +#: ex_cmds2.c:4734 +#, c-format +msgid "E618: file \"%s\" is not a PostScript resource file" +msgstr "E618: Níl comhad \"%s\" ina chomhad acmhainne PostScript" + +#: ex_cmds2.c:4752 ex_cmds2.c:4771 ex_cmds2.c:4816 +#, c-format +msgid "E619: file \"%s\" is not a supported PostScript resource file" +msgstr "E619: Tá \"%s\" ina chomhad acmhainne PostScript gan tacú" + +#: ex_cmds2.c:4835 +#, c-format +msgid "E621: \"%s\" resource file has wrong version" +msgstr "E621: Tá an leagan mícheart ar an gcomhad acmhainne \"%s\"" + +#: ex_cmds2.c:5313 +msgid "E673: Incompatible multi-byte encoding and character set." +msgstr "E673: Ionchódú agus tacar carachtar ilbhirt neamh-chomhoiriúnach." + +#: ex_cmds2.c:5330 +msgid "E674: printmbcharset cannot be empty with multi-byte encoding." +msgstr "" +"E674: ní cheadaítear printmbcharset a bheith folamh le hionchódú ilbhirt." + +#: ex_cmds2.c:5348 +msgid "E675: No default font specfifed for multi-byte printing." +msgstr "E675: Níor réamhshocraíodh cló le haghaidh priontála ilbhirt." + +#: ex_cmds2.c:5541 +msgid "E324: Can't open PostScript output file" +msgstr "E324: Ní féidir aschomhad PostScript a oscailt" + +#: ex_cmds2.c:5578 +#, c-format +msgid "E456: Can't open file \"%s\"" +msgstr "E456: Ní féidir an comhad \"%s\" a oscailt" + +#: ex_cmds2.c:5709 +msgid "E456: Can't find PostScript resource file \"prolog.ps\"" +msgstr "E456: Comhad acmhainne PostScript \"prolog.ps\" gan aimsiú" + +#: ex_cmds2.c:5722 +msgid "E456: Can't find PostScript resource file \"cidfont.ps\"" +msgstr "E456: Comhad acmhainne PostScript \"cidfont.ps\" gan aimsiú" + +#: ex_cmds2.c:5760 ex_cmds2.c:5782 ex_cmds2.c:5811 +#, c-format +msgid "E456: Can't find PostScript resource file \"%s.ps\"" +msgstr "E456: Comhad acmhainne PostScript \"%s.ps\" gan aimsiú" + +#: ex_cmds2.c:5798 +#, c-format +msgid "E620: Unable to convert to print encoding \"%s\"" +msgstr "E620: Ní féidir an t-ionchódú priontála \"%s\" a thiontú" + +#: ex_cmds2.c:6052 +msgid "Sending to printer..." +msgstr "Ag seoladh chuig an phrintéir..." + +#: ex_cmds2.c:6056 +msgid "E365: Failed to print PostScript file" +msgstr "E365: Theip ar phriontáil comhaid PostScript" + +#: ex_cmds2.c:6058 +msgid "Print job sent." +msgstr "Seoladh jab priontála." + +#: ex_cmds2.c:6665 +#, c-format +msgid "Current %slanguage: \"%s\"" +msgstr "%sTeanga faoi láthair: \"%s\"" + +#: ex_cmds2.c:6676 +#, c-format +msgid "E197: Cannot set language to \"%s\"" +msgstr "E197: Ní féidir an teanga a shocrú mar \"%s\"" + +#: ex_cmds.c:92 +#, c-format +msgid "<%s>%s%s %d, Hex %02x, Octal %03o" +msgstr "<%s>%s%s %d, Heics %02x, Ocht %03o" + +#: ex_cmds.c:118 +#, c-format +msgid "> %d, Hex %04x, Octal %o" +msgstr "> %d, Heics %04x, Ocht %o" + +#: ex_cmds.c:119 +#, c-format +msgid "> %d, Hex %08x, Octal %o" +msgstr "> %d, Heics %08x, Ocht %o" + +#: ex_cmds.c:430 +msgid "E134: Move lines into themselves" +msgstr "E134: Bog línte isteach iontu féin" + +#: ex_cmds.c:499 +msgid "1 line moved" +msgstr "Bogadh 1 líne" + +#: ex_cmds.c:501 +#, c-format +msgid "%ld lines moved" +msgstr "Bogadh %ld líne" + +#: ex_cmds.c:928 +#, c-format +msgid "%ld lines filtered" +msgstr "Scagadh %ld líne" + +#: ex_cmds.c:956 +msgid "E135: *Filter* Autocommands must not change current buffer" +msgstr "" +"E135: Ní cheadaítear uathorduithe scagaire chun an maolán reatha a athrú" + +#: ex_cmds.c:1041 +msgid "[No write since last change]\n" +msgstr "[Athraithe agus nach sábháilte ó shin]\n" + +#: ex_cmds.c:1287 +#, c-format +msgid "%sviminfo: %s in line: " +msgstr "%sviminfo: %s i líne: " + +#: ex_cmds.c:1294 +msgid "E136: viminfo: Too many errors, skipping rest of file" +msgstr "" +"E136: viminfo: An iomarca earráidí, ag scipeáil an chuid eile den chomhad" + +#: ex_cmds.c:1329 +#, c-format +msgid "Reading viminfo file \"%s\"%s%s%s" +msgstr "Comhad viminfo \"%s\"%s%s%s á léamh" + +#: ex_cmds.c:1330 +msgid " info" +msgstr " eolas" + +#: ex_cmds.c:1331 +msgid " marks" +msgstr " marcanna" + +#: ex_cmds.c:1332 +msgid " FAILED" +msgstr " TEIPTHE" + +#: ex_cmds.c:1424 +#, c-format +msgid "E137: Viminfo file is not writable: %s" +msgstr "E137: Níl an comhad Viminfo inscríofa: %s" + +#: ex_cmds.c:1549 +#, c-format +msgid "E138: Can't write viminfo file %s!" +msgstr "E138: Ní féidir comhad viminfo %s a scríobh!" + +#: ex_cmds.c:1557 +#, c-format +msgid "Writing viminfo file \"%s\"" +msgstr "Comhad viminfo \"%s\" á scríobh" + +#. Write the info: +#: ex_cmds.c:1655 +#, c-format +msgid "# This viminfo file was generated by Vim %s.\n" +msgstr "# Chruthaigh Vim an comhad viminfo seo %s.\n" + +#: ex_cmds.c:1657 +#, c-format +msgid "" +"# You may edit it if you're careful!\n" +"\n" +msgstr "" +"# Is féidir leat an comhad seo a chur in eagar ach bí cúramach!\n" +"\n" + +#: ex_cmds.c:1659 +#, c-format +msgid "# Value of 'encoding' when this file was written\n" +msgstr "# Luach 'encoding' agus an comhad seo á scríobh\n" + +#: ex_cmds.c:1758 +msgid "Illegal starting char" +msgstr "Carachtar neamhcheadaithe tosaigh" + +#. Overwriting a file that is loaded in another buffer is not a +#. * good idea. +#: ex_cmds.c:2162 +msgid "E139: File is loaded in another buffer" +msgstr "E139: Tá an comhad luchtaithe i maolán eile" + +#: ex_cmds.c:2196 +msgid "Write partial file?" +msgstr "Scríobh comhad neamhiomlán?" + +#: ex_cmds.c:2203 +msgid "E140: Use ! to write partial buffer" +msgstr "E140: Bain úsáid as ! chun maolán neamhiomlán a scríobh" + +#: ex_cmds.c:2320 +#, c-format +msgid "Overwrite existing file \"%.*s\"?" +msgstr "Forscríobh comhad \"%.*s\" atá ann cheana?" + +#: ex_cmds.c:2391 +#, c-format +msgid "E141: No file name for buffer %ld" +msgstr "E141: Níl aon ainm ar mhaolán %ld" + +#: ex_cmds.c:2430 +msgid "E142: File not written: Writing is disabled by 'write' option" +msgstr "E142: Níor scríobhadh an comhad: díchumasaithe leis an rogha 'write'" + +#: ex_cmds.c:2450 +#, c-format +msgid "" +"'readonly' option is set for \"%.*s\".\n" +"Do you wish to write anyway?" +msgstr "" +"tá an rogha 'readonly' socraithe do \"%.*s\".\n" +"Ar mhaith leat é a scríobh mar sin féin?" + +#: ex_cmds.c:2623 +msgid "Edit File" +msgstr "Cuir Comhad in Eagar" + +#: ex_cmds.c:3236 +#, c-format +msgid "E143: Autocommands unexpectedly deleted new buffer %s" +msgstr "E143: Scrios na huathorduithe maolán nua %s go tobann" + +#: ex_cmds.c:3412 +msgid "E144: non-numeric argument to :z" +msgstr "E144: argóint neamhuimhriúil chun :z" + +#: ex_cmds.c:3507 +msgid "E145: Shell commands not allowed in rvim" +msgstr "E145: Ní cheadaítear orduithe blaoisce i rvim" + +#: ex_cmds.c:3615 +msgid "E146: Regular expressions can't be delimited by letters" +msgstr "" +"E146: Ní cheadaítear litreacha mar theormharcóirí ar shloinn ionadaíochta" + +#: ex_cmds.c:3966 +#, c-format +msgid "replace with %s (y/n/a/q/l/^E/^Y)?" +msgstr "cuir %s ina ionad (y/n/a/q/l/^E/^Y)?" + +#: ex_cmds.c:4365 +msgid "(Interrupted) " +msgstr "(Idirbhriste) " + +#: ex_cmds.c:4369 +msgid "1 substitution" +msgstr "1 ionadaíocht" + +#: ex_cmds.c:4371 +#, c-format +msgid "%ld substitutions" +msgstr "%ld ionadaíocht" + +#: ex_cmds.c:4374 +msgid " on 1 line" +msgstr " ar 1 líne" + +#: ex_cmds.c:4376 +#, c-format +msgid " on %ld lines" +msgstr " ar %ld líne" + +#: ex_cmds.c:4427 +msgid "E147: Cannot do :global recursive" +msgstr "E147: Ní cheadaítear :global go hathchúrsach" + +#: ex_cmds.c:4462 +msgid "E148: Regular expression missing from global" +msgstr "E148: Slonn ionadaíochta ar iarraidh ón domhain" + +#: ex_cmds.c:4511 +#, c-format +msgid "Pattern found in every line: %s" +msgstr "Aimsíodh an patrún i ngach líne: %s" + +#: ex_cmds.c:4596 +#, c-format +msgid "" +"\n" +"# Last Substitute String:\n" +"$" +msgstr "" +"\n" +"# Teaghrán Ionadach Is Déanaí:\n" +"$" + +#: ex_cmds.c:4697 +msgid "E478: Don't panic!" +msgstr "E478: Ná téigh i scaoll!" + +#: ex_cmds.c:4743 +#, c-format +msgid "E661: Sorry, no '%s' help for %s" +msgstr "E661: Tá brón orm, ní aon chabhair '%s' do %s" + +#: ex_cmds.c:4746 +#, c-format +msgid "E149: Sorry, no help for %s" +msgstr "E149: Tá brón orm, níl aon chabhair do %s" + +#: ex_cmds.c:4780 +#, c-format +msgid "Sorry, help file \"%s\" not found" +msgstr "Tá brón orm, comhad cabhrach \"%s\" gan aimsiú" + +#: ex_cmds.c:5330 +#, c-format +msgid "E150: Not a directory: %s" +msgstr "E150: Ní comhadlann é: %s" + +#: ex_cmds.c:5470 +#, c-format +msgid "E152: Cannot open %s for writing" +msgstr "E152: Ní féidir %s a oscailt chun scríobh ann" + +#: ex_cmds.c:5505 +#, c-format +msgid "E153: Unable to open %s for reading" +msgstr "E153: Ní féidir %s a oscailt chun é a léamh" + +#: ex_cmds.c:5541 +#, c-format +msgid "E670: Mix of help file encodings within a language: %s" +msgstr "E670: Ionchóduithe éagsúla do chomhaid chabhracha i dteanga aonair: %s" + +#: ex_cmds.c:5619 +#, c-format +msgid "E154: Duplicate tag \"%s\" in file %s/%s" +msgstr "E154: Clib dhúblach \"%s\" i gcomhad %s/%s" + +#: ex_cmds.c:5735 +#, c-format +msgid "E160: Unknown sign command: %s" +msgstr "E160: Ordú anaithnid comhartha: %s" + +#: ex_cmds.c:5755 +msgid "E156: Missing sign name" +msgstr "E156: Ainm comhartha ar iarraidh" + +#: ex_cmds.c:5801 +msgid "E612: Too many signs defined" +msgstr "E612: An iomarca comharthaí sainmhínithe" + +#: ex_cmds.c:5869 +#, c-format +msgid "E239: Invalid sign text: %s" +msgstr "E239: Téacs neamhbhailí comhartha: %s" + +#: ex_cmds.c:5900 ex_cmds.c:6091 +#, c-format +msgid "E155: Unknown sign: %s" +msgstr "E155: Comhartha anaithnid: %s" + +#: ex_cmds.c:5949 +msgid "E159: Missing sign number" +msgstr "E159: Uimhir chomhartha ar iarraidh" + +#: ex_cmds.c:6031 +#, c-format +msgid "E158: Invalid buffer name: %s" +msgstr "E158: Ainm maoláin neamhbhailí: %s" + +#: ex_cmds.c:6070 +#, c-format +msgid "E157: Invalid sign ID: %ld" +msgstr "E157: ID neamhbhailí comhartha: %ld" + +#: ex_cmds.c:6140 +msgid " (NOT FOUND)" +msgstr " (AR IARRAIDH)" + +#: ex_cmds.c:6142 +msgid " (not supported)" +msgstr " (níl an rogha seo ar fáil)" + +#: ex_cmds.c:6241 +msgid "[Deleted]" +msgstr "[Scriosta]" + +#: ex_docmd.c:594 +msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." +msgstr "Mód Ex á thosú. Clóscríobh \"visual\" le haghaidh an ghnáthmhód." + +# in FARF -KPS +#. must be at EOF +#: ex_docmd.c:638 +msgid "E501: At end-of-file" +msgstr "E501: Ag an chomhadchríoch" + +#: ex_docmd.c:737 +msgid "E169: Command too recursive" +msgstr "E169: Ordú ró-athchúrsach" + +#: ex_docmd.c:1296 +#, c-format +msgid "E605: Exception not caught: %s" +msgstr "E605: Eisceacht gan láimhseáil: %s" + +#: ex_docmd.c:1384 +msgid "End of sourced file" +msgstr "Críoch chomhaid foinsithe" + +#: ex_docmd.c:1385 +msgid "End of function" +msgstr "Críoch fheidhme" + +#: ex_docmd.c:1974 +msgid "E464: Ambiguous use of user-defined command" +msgstr "E464: Úsáid athbhríoch d'ordú saincheaptha" + +#: ex_docmd.c:1988 +msgid "E492: Not an editor command" +msgstr "E492: Níl ina ordú eagarthóra" + +#: ex_docmd.c:2095 +msgid "E493: Backwards range given" +msgstr "E493: Raon droim ar ais" + +#: ex_docmd.c:2104 +msgid "Backwards range given, OK to swap" +msgstr "Raon droim ar ais, babhtáil" + +#: ex_docmd.c:2229 +msgid "E494: Use w or w>>" +msgstr "E494: Bain úsáid as w nó w>>" + +#: ex_docmd.c:3866 +msgid "E319: Sorry, the command is not available in this version" +msgstr "E319: Tá brón orm, níl an t-ordú ar fáil sa leagan seo" + +#: ex_docmd.c:4123 +msgid "E172: Only one file name allowed" +msgstr "E172: Ní cheadaítear ach aon ainm comhaid amháin" + +#: ex_docmd.c:4711 +msgid "1 more file to edit. Quit anyway?" +msgstr "1 comhad le cur in eagar fós. Scoir mar sin féin?" + +#: ex_docmd.c:4714 +#, c-format +msgid "%d more files to edit. Quit anyway?" +msgstr "%d comhad le cur in eagar fós. Scoir mar sin féin?" + +#: ex_docmd.c:4721 +msgid "E173: 1 more file to edit" +msgstr "E173: 1 comhad le heagrú" + +#: ex_docmd.c:4723 +#, c-format +msgid "E173: %ld more files to edit" +msgstr "E173: %ld comhad le cur in eagar" + +#: ex_docmd.c:4818 +msgid "E174: Command already exists: add ! to replace it" +msgstr "E174: Tá an t-ordú ann cheana: cuir ! leis chun sárú" + +#: ex_docmd.c:4928 +msgid "" +"\n" +" Name Args Range Complete Definition" +msgstr "" +"\n" +" Ainm Arg Raon Iomlán Sainmhíniú" + +#: ex_docmd.c:5017 +msgid "No user-defined commands found" +msgstr "Níl aon ordú aimsithe atá sainithe ag an úsáideoir" + +#: ex_docmd.c:5049 +msgid "E175: No attribute specified" +msgstr "E175: Níl aon aitreabúid sainithe" + +#: ex_docmd.c:5101 +msgid "E176: Invalid number of arguments" +msgstr "E176: Tá líon na n-argóintí mícheart" + +#: ex_docmd.c:5116 +msgid "E177: Count cannot be specified twice" +msgstr "E177: Ní cheadaítear an t-áireamh a bheith tugtha faoi dhó" + +#: ex_docmd.c:5126 +msgid "E178: Invalid default value for count" +msgstr "E178: Luach réamhshocraithe neamhbhailí ar áireamh" + +#: ex_docmd.c:5157 +msgid "E179: argument required for complete" +msgstr "E179: ní foláir argóint le haghaidh comhlánaithe" + +#: ex_docmd.c:5189 +#, c-format +msgid "E180: Invalid complete value: %s" +msgstr "E180: Luach iomlán neamhbhailí: %s" + +#: ex_docmd.c:5198 +msgid "E468: Completion argument only allowed for custom completion" +msgstr "" +"E468: Ní cheadaítear argóint chomhlánaithe ach le comhlánú saincheaptha" + +#: ex_docmd.c:5204 +msgid "E467: Custom completion requires a function argument" +msgstr "E467: Tá gá le hargóint fheidhme le comhlánú saincheaptha" + +#: ex_docmd.c:5215 +#, c-format +msgid "E181: Invalid attribute: %s" +msgstr "E181: Aitreabúid neamhbhailí: %s" + +#: ex_docmd.c:5258 +msgid "E182: Invalid command name" +msgstr "E182: Ainm neamhbhailí ordaithe" + +#: ex_docmd.c:5273 +msgid "E183: User defined commands must start with an uppercase letter" +msgstr "" +"E183: Ní foláir ceannlitir a bheith ar dtús orduithe atá sainithe ag an " +"úsáideoir" + +#: ex_docmd.c:5344 +#, c-format +msgid "E184: No such user-defined command: %s" +msgstr "E184: Níl a leithéid d'ordú saincheaptha: %s" + +#: ex_docmd.c:5804 +#, c-format +msgid "E185: Cannot find color scheme %s" +msgstr "E185: Scéim dathanna %s gan aimsiú" + +#: ex_docmd.c:5812 +msgid "Greetings, Vim user!" +msgstr "Dia duit, a úsáideoir Vim!" + +#: ex_docmd.c:6558 +msgid "Edit File in new window" +msgstr "Cuir comhad in eagar i bhfuinneog nua" + +#: ex_docmd.c:6874 +msgid "No swap file" +msgstr "Níl aon chomhad babhtála ann" + +#: ex_docmd.c:6978 +msgid "Append File" +msgstr "Cuir Comhad i nDeireadh" + +#: ex_docmd.c:7042 +msgid "E186: No previous directory" +msgstr "E186: Níl aon chomhadlann roimhe seo" + +#: ex_docmd.c:7124 +msgid "E187: Unknown" +msgstr "E187: Anaithnid" + +#: ex_docmd.c:7209 +msgid "E465: :winsize requires two number arguments" +msgstr "E465: ní foláir dhá argóint uimhriúil le :winsize" + +#: ex_docmd.c:7269 +#, c-format +msgid "Window position: X %d, Y %d" +msgstr "Suíomh fuinneoige: X %d, Y %d" + +#: ex_docmd.c:7274 +msgid "E188: Obtaining window position not implemented for this platform" +msgstr "E188: Ní féidir suíomh fuinneoige a fháil amach ar an chóras seo" + +#: ex_docmd.c:7284 +msgid "E466: :winpos requires two number arguments" +msgstr "E466: ní foláir dhá argóint uimhriúil le :winpos" + +#: ex_docmd.c:7568 +msgid "Save Redirection" +msgstr "Sábháil Atreorú" + +#: ex_docmd.c:7762 +msgid "Save View" +msgstr "Sábháil an tAmharc" + +#: ex_docmd.c:7763 +msgid "Save Session" +msgstr "Sábháil an Seisiún" + +#: ex_docmd.c:7765 +msgid "Save Setup" +msgstr "Sábháil an Socrú" + +#: ex_docmd.c:7778 +#, c-format +msgid "E739: Cannot create directory: %s" +msgstr "E739: Ní féidir comhadlann a chruthú: %s" + +#: ex_docmd.c:7918 +#, c-format +msgid "E189: \"%s\" exists (add ! to override)" +msgstr "E189: Tá \"%s\" ann cheana (cuir ! leis an ordú chun sárú)" + +#: ex_docmd.c:7923 +#, c-format +msgid "E190: Cannot open \"%s\" for writing" +msgstr "E190: Ní féidir \"%s\" a oscailt chun léamh" + +#. set mark +#: ex_docmd.c:7947 +msgid "E191: Argument must be a letter or forward/backward quote" +msgstr "E191: Caithfidh an argóint a bheith litir nó comhartha athfhriotal" + +#: ex_docmd.c:7988 +msgid "E192: Recursive use of :normal too deep" +msgstr "E192: athchúrsáil :normal ródhomhain" + +#: ex_docmd.c:8537 +msgid "E194: No alternate file name to substitute for '#'" +msgstr "E194: Níl aon ainm comhaid a chur in ionad '#'" + +#: ex_docmd.c:8568 +msgid "E495: no autocommand file name to substitute for \"\"" +msgstr "E495: níl aon ainm comhaid uathordaithe le cur in ionad \"\"" + +#: ex_docmd.c:8576 +msgid "E496: no autocommand buffer number to substitute for \"\"" +msgstr "E496: níl aon uimhir mhaolán uathordaithe le cur in ionad \"\"" + +#: ex_docmd.c:8587 +msgid "E497: no autocommand match name to substitute for \"\"" +msgstr "" +"E497: níl aon ainm meaitseála uathordaithe le cur in ionad \"\"" + +#: ex_docmd.c:8597 +msgid "E498: no :source file name to substitute for \"\"" +msgstr "E498: níl aon ainm comhaid :source le cur in ionad \"\"" + +#: ex_docmd.c:8638 +#, no-c-format +msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" +msgstr "" +"E499: Ainm comhaid folamh le haghaidh '%' nó '#', oibreoidh sé le \":p:h\" " +"amháin" + +#: ex_docmd.c:8640 +msgid "E500: Evaluates to an empty string" +msgstr "E500: Meastar é seo mar theaghrán folamh" + +#: ex_docmd.c:9634 +msgid "E195: Cannot open viminfo file for reading" +msgstr "E195: Ní féidir an comhad viminfo a oscailt chun léamh" + +#: ex_docmd.c:9807 +msgid "E196: No digraphs in this version" +msgstr "E196: Ní cheadaítear déghraif sa leagan seo" + +#: ex_eval.c:439 +msgid "E608: Cannot :throw exceptions with 'Vim' prefix" +msgstr "E608: Ní féidir eisceachtaí a :throw le réimír 'Vim'" + +#. always scroll up, don't overwrite +#: ex_eval.c:528 +#, c-format +msgid "Exception thrown: %s" +msgstr "Eisceacht ginte: %s" + +#: ex_eval.c:575 +#, c-format +msgid "Exception finished: %s" +msgstr "Eisceacht curtha i gcrích: %s" + +#: ex_eval.c:576 +#, c-format +msgid "Exception discarded: %s" +msgstr "Eisceacht curtha i leataobh: %s" + +#: ex_eval.c:619 ex_eval.c:663 +#, c-format +msgid "%s, line %ld" +msgstr "%s, líne %ld" + +#. always scroll up, don't overwrite +#: ex_eval.c:637 +#, c-format +msgid "Exception caught: %s" +msgstr "Láimhseáladh eisceacht: %s" + +#: ex_eval.c:712 +#, c-format +msgid "%s made pending" +msgstr "%s ar feitheamh anois" + +#: ex_eval.c:715 +#, c-format +msgid "%s resumed" +msgstr "atosaíodh %s" + +#: ex_eval.c:719 +#, c-format +msgid "%s discarded" +msgstr "%s curtha i leataobh" + +#: ex_eval.c:745 +msgid "Exception" +msgstr "Eisceacht" + +#: ex_eval.c:751 +msgid "Error and interrupt" +msgstr "Earráid agus idirbhriseadh" + +#: ex_eval.c:753 gui.c:4389 gui_xmdlg.c:687 gui_xmdlg.c:809 os_mswin.c:601 +msgid "Error" +msgstr "Earráid" + +#. if (pending & CSTP_INTERRUPT) +#: ex_eval.c:755 +msgid "Interrupt" +msgstr "Idirbhriseadh" + +#: ex_eval.c:829 +msgid "E579: :if nesting too deep" +msgstr "E579: :if neadaithe ródhomhain" + +#: ex_eval.c:866 +msgid "E580: :endif without :if" +msgstr "E580: :endif gan :if" + +#: ex_eval.c:911 +msgid "E581: :else without :if" +msgstr "E581: :else gan :if" + +#: ex_eval.c:914 +msgid "E582: :elseif without :if" +msgstr "E582: :elseif gan :if" + +#: ex_eval.c:921 +msgid "E583: multiple :else" +msgstr "E583: :else iomadúla" + +#: ex_eval.c:924 +msgid "E584: :elseif after :else" +msgstr "E584: :elseif i ndiaidh :else" + +#: ex_eval.c:991 +msgid "E585: :while/:for nesting too deep" +msgstr "E585: :while/:for neadaithe ródhomhain" + +#: ex_eval.c:1089 +msgid "E586: :continue without :while or :for" +msgstr "E586: :continue gan :while ná :for" + +#: ex_eval.c:1128 +msgid "E587: :break without :while or :for" +msgstr "E587: :break gan :while ná :for" + +#: ex_eval.c:1178 +msgid "E732: Using :endfor with :while" +msgstr "E732: :endfor á úsáid le :while" + +#: ex_eval.c:1180 +msgid "E733: Using :endwhile with :for" +msgstr "E733: :endwhile á úsáid le :for" + +#: ex_eval.c:1351 +msgid "E601: :try nesting too deep" +msgstr "E601: :try neadaithe ródhomhain" + +#: ex_eval.c:1431 +msgid "E603: :catch without :try" +msgstr "E603: :catch gan :try" + +#. Give up for a ":catch" after ":finally" and ignore it. +#. * Just parse. +#: ex_eval.c:1450 +msgid "E604: :catch after :finally" +msgstr "E604: :catch i ndiaidh :finally" + +#: ex_eval.c:1584 +msgid "E606: :finally without :try" +msgstr "E606: :finally gan :try" + +#. Give up for a multiple ":finally" and ignore it. +#: ex_eval.c:1604 +msgid "E607: multiple :finally" +msgstr "E607: :finally iomadúla" + +#: ex_eval.c:1714 +msgid "E602: :endtry without :try" +msgstr "E602: :endtry gan :try" + +#: ex_eval.c:2218 +msgid "E193: :endfunction not inside a function" +msgstr "E193: Ní foláir do :endfunction a bheith isteach i bhfeidhm" + +#: ex_getln.c:3512 +msgid "tagname" +msgstr "clibainm" + +#: ex_getln.c:3515 +msgid " kind file\n" +msgstr " cineál comhaid\n" + +#: ex_getln.c:5006 +msgid "'history' option is zero" +msgstr "tá an rogha 'history' nialas" + +#: ex_getln.c:5277 +#, c-format +msgid "" +"\n" +"# %s History (newest to oldest):\n" +msgstr "" +"\n" +"# %s Stair (is nuaí go dtí is sine):\n" + +#: ex_getln.c:5278 +msgid "Command Line" +msgstr "Ainm Orduithe" + +#: ex_getln.c:5279 +msgid "Search String" +msgstr "Teaghrán Cuardaigh" + +#: ex_getln.c:5280 +msgid "Expression" +msgstr "Slonn" + +#: ex_getln.c:5281 +msgid "Input Line" +msgstr "Líne an Ionchuir" + +#: ex_getln.c:5319 +msgid "E198: cmd_pchar beyond the command length" +msgstr "E198: cmd_pchar os cionn fad an ordaithe" + +#: ex_getln.c:5500 +msgid "E199: Active window or buffer deleted" +msgstr "E199: Scriosadh an fhuinneog reatha nó an maolán reatha" + +#: fileio.c:376 +msgid "Illegal file name" +msgstr "Ainm comhaid neamhcheadaithe" + +#: fileio.c:401 fileio.c:541 fileio.c:2929 fileio.c:2970 +msgid "is a directory" +msgstr "is comhadlann é" + +#: fileio.c:403 +msgid "is not a file" +msgstr "ní comhad é" + +#: fileio.c:563 fileio.c:4161 +msgid "[New File]" +msgstr "[Comhad Nua]" + +#: fileio.c:596 +msgid "[Permission Denied]" +msgstr "[Cead Diúltaithe]" + +#: fileio.c:707 +msgid "E200: *ReadPre autocommands made the file unreadable" +msgstr "E200: Rinne uathorduithe *ReadPre praiseach as an chomhad" + +#: fileio.c:709 +msgid "E201: *ReadPre autocommands must not change current buffer" +msgstr "" +"E201: Ní cheadaítear uathorduithe *ReadPre chun an maolán reatha a athrú" + +#: fileio.c:730 +msgid "Vim: Reading from stdin...\n" +msgstr "Vim: Ag léamh ón ionchur caighdeánach...\n" + +#: fileio.c:736 +msgid "Reading from stdin..." +msgstr "Ag léamh ón ionchur caighdeánach..." + +#. Re-opening the original file failed! +#: fileio.c:1013 +msgid "E202: Conversion made file unreadable!" +msgstr "E202: Comhad doléite i ndiaidh an tiontaithe!" + +#: fileio.c:2077 +msgid "[fifo/socket]" +msgstr "[fifo/soicéad]" + +# `TITA' ?! -KPS +#: fileio.c:2084 +msgid "[fifo]" +msgstr "[fifo]" + +#: fileio.c:2091 +msgid "[socket]" +msgstr "[soicéad]" + +#: fileio.c:2099 netbeans.c:3416 +msgid "[RO]" +msgstr "[L-A]" + +#: fileio.c:2109 +msgid "[CR missing]" +msgstr "[CR ar iarraidh]" + +#: fileio.c:2114 +msgid "[NL found]" +msgstr "[NL aimsithe]" + +#: fileio.c:2119 +msgid "[long lines split]" +msgstr "[línte fada deighilte]" + +#: fileio.c:2125 fileio.c:4145 +msgid "[NOT converted]" +msgstr "[NÍ tiontaithe]" + +#: fileio.c:2130 fileio.c:4150 +msgid "[converted]" +msgstr "[tiontaithe]" + +#: fileio.c:2137 fileio.c:4175 +msgid "[crypted]" +msgstr "[criptithe]" + +#: fileio.c:2144 +msgid "[CONVERSION ERROR]" +msgstr "[EARRÁID TIONTAITHE]" + +#: fileio.c:2150 +#, c-format +msgid "[ILLEGAL BYTE in line %ld]" +msgstr "[BEART NEAMHCHEADAITHE i líne %ld]" + +#: fileio.c:2157 +msgid "[READ ERRORS]" +msgstr "[EARRÁIDÍ LÉIMH]" + +#: fileio.c:2373 +msgid "Can't find temp file for conversion" +msgstr "Ní féidir comhad sealadach a aimsiú le haghaidh tiontaithe" + +#: fileio.c:2380 +msgid "Conversion with 'charconvert' failed" +msgstr "Theip ar thiontú le 'charconvert'" + +#: fileio.c:2383 +msgid "can't read output of 'charconvert'" +msgstr "ní féidir an t-aschur ó 'charconvert' a léamh" + +#: fileio.c:2782 +msgid "E676: No matching autocommands for acwrite buffer" +msgstr "E676: Níl aon uathordú comhoiriúnaithe le haghaidh maoláin acwrite" + +#: fileio.c:2810 +msgid "E203: Autocommands deleted or unloaded buffer to be written" +msgstr "E203: Scrios nó dhíluchtaigh uathorduithe an maolán le scríobh" + +#: fileio.c:2833 +msgid "E204: Autocommand changed number of lines in unexpected way" +msgstr "E204: D'athraigh uathordú líon na línte gan choinne" + +#: fileio.c:2873 +msgid "NetBeans dissallows writes of unmodified buffers" +msgstr "Ní cheadaíonn NetBeans maoláin gan athrú a bheith scríofa" + +#: fileio.c:2881 +msgid "Partial writes disallowed for NetBeans buffers" +msgstr "Ní cheadaítear maoláin NetBeans a bheith scríofa go neamhiomlán" + +#: fileio.c:2935 fileio.c:2953 +msgid "is not a file or writable device" +msgstr "ní comhad ná gléas inscríofa á" + +#: fileio.c:3005 netbeans.c:3479 +msgid "is read-only (add ! to override)" +msgstr "is léimh-amháin é (cuir ! leis an ordú chun sárú)" + +#: fileio.c:3351 +msgid "E506: Can't write to backup file (add ! to override)" +msgstr "" +"E506: Ní féidir scríobh a dhéanamh sa chomhad cúltaca (úsáid ! chun sárú)" + +#: fileio.c:3363 +msgid "E507: Close error for backup file (add ! to override)" +msgstr "" +"E507: Earráid agus comhad cúltaca á dhúnadh (cuir ! leis an ordú chun sárú)" + +#: fileio.c:3365 +msgid "E508: Can't read file for backup (add ! to override)" +msgstr "" +"E508: Ní féidir an comhad cúltaca a léamh (cuir ! leis an ordú chun sárú)" + +#: fileio.c:3381 +msgid "E509: Cannot create backup file (add ! to override)" +msgstr "" +"E509: Ní féidir comhad cúltaca a chruthú (cuir ! leis an ordú chun sárú)" + +#: fileio.c:3484 +msgid "E510: Can't make backup file (add ! to override)" +msgstr "" +"E510: Ní féidir comhad cúltaca a chruthú (cuir ! leis an ordú chun sárú)" + +#: fileio.c:3546 +msgid "E460: The resource fork would be lost (add ! to override)" +msgstr "E460: Chaillfí an forc acmhainne (cuir ! leis an ordú chun sárú)" + +#: fileio.c:3656 +msgid "E214: Can't find temp file for writing" +msgstr "E214: Ní féidir comhad sealadach a aimsiú chun scríobh ann" + +#: fileio.c:3674 +msgid "E213: Cannot convert (add ! to write without conversion)" +msgstr "E213: Ní féidir tiontú (cuir ! leis an ordú chun scríobh gan tiontú)" + +#: fileio.c:3709 +msgid "E166: Can't open linked file for writing" +msgstr "E166: Ní féidir comhad nasctha a oscailt chun scríobh ann" + +#: fileio.c:3713 +msgid "E212: Can't open file for writing" +msgstr "E212: Ní féidir comhad a oscailt chun scríobh ann" + +#: fileio.c:3989 +msgid "E667: Fsync failed" +msgstr "E667: Theip ar fsync" + +#: fileio.c:3996 +msgid "E512: Close failed" +msgstr "E512: Theip ar dúnadh" + +#: fileio.c:4067 +msgid "E513: write error, conversion failed (make 'fenc' empty to override)" +msgstr "" +"E513: earráid le linn scríobh, theip ar thiontú (úsáid 'fenc' folamh chun " +"sárú)" + +#: fileio.c:4073 +msgid "E514: write error (file system full?)" +msgstr "E514: earráid le linn scríofa (an bhfuil an córas comhaid lán?)" + +#: fileio.c:4140 +msgid " CONVERSION ERROR" +msgstr " EARRÁID TIONTAITHE" + +#: fileio.c:4156 +msgid "[Device]" +msgstr "[Gléas]" + +#: fileio.c:4161 +msgid "[New]" +msgstr "[Nua]" + +#: fileio.c:4183 +msgid " [a]" +msgstr " [a]" + +#: fileio.c:4183 +msgid " appended" +msgstr " curtha leis" + +#: fileio.c:4185 +msgid " [w]" +msgstr " [w]" + +#: fileio.c:4185 +msgid " written" +msgstr " scríofa" + +#: fileio.c:4238 +msgid "E205: Patchmode: can't save original file" +msgstr "E205: Patchmode: ní féidir an comhad bunúsach a shábháil" + +#: fileio.c:4260 +msgid "E206: patchmode: can't touch empty original file" +msgstr "E206: patchmode: ní féidir an comhad bunúsach folamh a theagmháil" + +#: fileio.c:4275 +msgid "E207: Can't delete backup file" +msgstr "E207: Ní féidir an comhad cúltaca a scriosadh" + +#: fileio.c:4339 +msgid "" +"\n" +"WARNING: Original file may be lost or damaged\n" +msgstr "" +"\n" +"RABHADH: Is féidir gur caillte nó loite an comhad bunúsach\n" + +#: fileio.c:4341 +msgid "don't quit the editor until the file is successfully written!" +msgstr "ná scoir go dtí go scríobhfaí an comhad!" + +#: fileio.c:4430 +msgid "[dos]" +msgstr "[dos]" + +#: fileio.c:4430 +msgid "[dos format]" +msgstr "[formáid dos]" + +#: fileio.c:4437 +msgid "[mac]" +msgstr "[mac]" + +#: fileio.c:4437 +msgid "[mac format]" +msgstr "[formáid mac]" + +#: fileio.c:4444 +msgid "[unix]" +msgstr "[unix]" + +#: fileio.c:4444 +msgid "[unix format]" +msgstr "[formáid unix]" + +#: fileio.c:4471 +msgid "1 line, " +msgstr "1 líne, " + +#: fileio.c:4473 +#, c-format +msgid "%ld lines, " +msgstr "%ld líne, " + +#: fileio.c:4476 +msgid "1 character" +msgstr "1 carachtar" + +#: fileio.c:4478 +#, c-format +msgid "%ld characters" +msgstr "%ld carachtar" + +#: fileio.c:4488 netbeans.c:3421 +msgid "[noeol]" +msgstr "[ganEOL]" + +#: fileio.c:4488 netbeans.c:3421 +msgid "[Incomplete last line]" +msgstr "[Is neamhiomlán an líne dheireanach]" + +#. don't overwrite messages here +#. must give this prompt +#. don't use emsg() here, don't want to flush the buffers +#: fileio.c:4507 +msgid "WARNING: The file has been changed since reading it!!!" +msgstr "RABHADH: Athraíodh an comhad ó léadh é!!!" + +#: fileio.c:4509 +msgid "Do you really want to write to it" +msgstr "An bhfuil tú cinnte gur mhaith leat é a scríobh" + +#: fileio.c:5735 +#, c-format +msgid "E208: Error writing to \"%s\"" +msgstr "E208: Earráid agus \"%s\" á scríobh" + +#: fileio.c:5742 +#, c-format +msgid "E209: Error closing \"%s\"" +msgstr "E209: Earráid agus \"%s\" á dhúnadh" + +#: fileio.c:5745 +#, c-format +msgid "E210: Error reading \"%s\"" +msgstr "E210: Earráid agus \"%s\" á léamh" + +#: fileio.c:5982 +msgid "E246: FileChangedShell autocommand deleted buffer" +msgstr "E246: Scrios uathordú FileChangedShell an maolán" + +#: fileio.c:5989 +#, c-format +msgid "E211: Warning: File \"%s\" no longer available" +msgstr "E211: Rabhadh: Níl comhad \"%s\" ar fáil feasta" + +#: fileio.c:6003 +#, c-format +msgid "" +"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as " +"well" +msgstr "" +"W12: Rabhadh: Athraíodh comhad \"%s\" agus athraíodh an maolán i Vim fosta" + +#: fileio.c:6006 +#, c-format +msgid "W11: Warning: File \"%s\" has changed since editing started" +msgstr "W11: Rabhadh: Athraíodh comhad \"%s\" ó tosaíodh é a chur in eagar" + +#: fileio.c:6008 +#, c-format +msgid "W16: Warning: Mode of file \"%s\" has changed since editing started" +msgstr "" +"W16: Rabhadh: Athraíodh mód an chomhaid \"%s\" ó tosaíodh é a chur in eagar" + +#: fileio.c:6018 +#, c-format +msgid "W13: Warning: File \"%s\" has been created after editing started" +msgstr "W13: Rabhadh: Cruthaíodh comhad \"%s\" ó tosaíodh é a chur in eagar" + +#: fileio.c:6031 +msgid "See \":help W11\" for more info." +msgstr "Bain triail as \":help W11\" chun tuilleadh eolais a fháil." + +#: fileio.c:6045 +msgid "Warning" +msgstr "Rabhadh" + +#: fileio.c:6046 +msgid "" +"&OK\n" +"&Load File" +msgstr "" +"&OK\n" +"&Luchtaigh Comhad" + +#: fileio.c:6148 +#, c-format +msgid "E462: Could not prepare for reloading \"%s\"" +msgstr "E462: Ní féidir \"%s\" a ullmhú le haghaidh athluchtaithe" + +#: fileio.c:6167 +#, c-format +msgid "E321: Could not reload \"%s\"" +msgstr "E321: Ní féidir \"%s\" a athluchtú" + +#: fileio.c:6762 +msgid "--Deleted--" +msgstr "--Scriosta--" + +#: fileio.c:6909 +#, c-format +msgid "auto-removing autocommand: %s " +msgstr "ag baint uathordú go huathoibríoch: %s " + +#. the group doesn't exist +#: fileio.c:6953 +#, c-format +msgid "E367: No such group: \"%s\"" +msgstr "E367: Níl a leithéid de ghrúpa: \"%s\"" + +#: fileio.c:7079 +#, c-format +msgid "E215: Illegal character after *: %s" +msgstr "E215: Carachtar neamhcheadaithe i ndiaidh *: %s" + +#: fileio.c:7091 +#, c-format +msgid "E216: No such event: %s" +msgstr "E216: Níl a leithéid de theagmhas: %s" + +#: fileio.c:7093 +#, c-format +msgid "E216: No such group or event: %s" +msgstr "E216: Níl a leithéid de ghrúpa nó theagmhas: %s" + +#. Highlight title +#: fileio.c:7291 +msgid "" +"\n" +"--- Auto-Commands ---" +msgstr "" +"\n" +"--- Uathorduithe ---" + +#: fileio.c:7527 +#, c-format +msgid "E680: : invalid buffer number " +msgstr "E680: : uimhir neamhbhailí mhaoláin " + +#: fileio.c:7624 +msgid "E217: Can't execute autocommands for ALL events" +msgstr "E217: Ní féidir uathorduithe a rith i gcomhair teagmhas UILE" + +#: fileio.c:7647 +msgid "No matching autocommands" +msgstr "Níl aon uathordú comhoiriúnaithe" + +#: fileio.c:7968 +msgid "E218: autocommand nesting too deep" +msgstr "E218: uathordú neadaithe ródhomhain" + +#: fileio.c:8267 +#, c-format +msgid "%s Auto commands for \"%s\"" +msgstr "%s Uathorduithe do \"%s\"" + +#: fileio.c:8275 +#, c-format +msgid "Executing %s" +msgstr "%s á rith" + +#. always scroll up, don't overwrite +#: fileio.c:8343 +#, c-format +msgid "autocommand %s" +msgstr "uathordú %s" + +#: fileio.c:8938 +msgid "E219: Missing {." +msgstr "E219: { ar iarraidh." + +#: fileio.c:8940 +msgid "E220: Missing }." +msgstr "E220: } ar iarraidh." + +#: fold.c:68 +msgid "E490: No fold found" +msgstr "E490: Níor aimsíodh aon fhilleadh" + +#: fold.c:593 +msgid "E350: Cannot create fold with current 'foldmethod'" +msgstr "E350: Ní féidir filleadh a chruthú leis an 'foldmethod' reatha" + +#: fold.c:595 +msgid "E351: Cannot delete fold with current 'foldmethod'" +msgstr "E351: Ní féidir filleadh a scriosadh leis an 'foldmethod' reatha" + +#: fold.c:1984 +#, c-format +msgid "+--%3ld lines folded " +msgstr "+--%3ld líne fillte " + +#: getchar.c:249 +msgid "E222: Add to read buffer" +msgstr "E222: Cuir leis an maolán léite" + +#: getchar.c:2234 +msgid "E223: recursive mapping" +msgstr "E223: mapáil athchúrsach" + +#: getchar.c:3114 +#, c-format +msgid "E224: global abbreviation already exists for %s" +msgstr "E224: tá giorrúchán comhchoiteann ann cheana le haghaidh %s" + +#: getchar.c:3117 +#, c-format +msgid "E225: global mapping already exists for %s" +msgstr "E225: tá mapáil chomhchoiteann ann cheana le haghaidh %s" + +#: getchar.c:3249 +#, c-format +msgid "E226: abbreviation already exists for %s" +msgstr "E226: tá giorrúchán ann cheana le haghaidh %s" + +#: getchar.c:3252 +#, c-format +msgid "E227: mapping already exists for %s" +msgstr "E227: tá mapáil ann cheana le haghaidh %s" + +#: getchar.c:3316 +msgid "No abbreviation found" +msgstr "Níor aimsíodh aon ghiorrúchán" + +#: getchar.c:3318 +msgid "No mapping found" +msgstr "Níor aimsíodh aon mhapáil" + +#: getchar.c:4210 +msgid "E228: makemap: Illegal mode" +msgstr "E228: makemap: Mód neamhcheadaithe" + +#: gui_at_fs.c:300 +msgid " " +msgstr " " + +#: gui_at_fs.c:1136 +#, c-format +msgid "E616: vim_SelFile: can't get font %s" +msgstr "E616: vim_SelFile: níl aon fháil ar an chlófhoireann %s" + +#: gui_at_fs.c:2781 +msgid "E614: vim_SelFile: can't return to current directory" +msgstr "E614: vim_SelFile: ní féidir dul ar ais go dtí an chomhadlann reatha" + +#: gui_at_fs.c:2801 +msgid "Pathname:" +msgstr "Conair:" + +#: gui_at_fs.c:2807 +msgid "E615: vim_SelFile: can't get current directory" +msgstr "E615: vim_SelFile: níl an chomhadlann reatha ar fáil" + +#: gui_at_fs.c:2815 gui_xmdlg.c:932 +msgid "OK" +msgstr "OK" + +#: gui_at_fs.c:2815 gui_gtk.c:2809 gui_xmdlg.c:941 +msgid "Cancel" +msgstr "Cealaigh" + +#: gui_athena.c:2175 gui_motif.c:2292 +msgid "Vim dialog" +msgstr "Dialóg Vim" + +#: gui_at_sb.c:486 +msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." +msgstr "" +"Giuirléid Scrollbharra: Ní féidir céimseata an mhapa picteilíní a fháil." + +#: gui_beval.c:101 gui_w32.c:4092 +msgid "E232: Cannot create BalloonEval with both message and callback" +msgstr "" +"E232: Ní féidir BalloonEval a chruthú le teachtaireacht agus aisghlaoch araon" + +#: gui.c:220 +msgid "E229: Cannot start the GUI" +msgstr "E229: Ní féidir an GUI a chur ag obair" + +#: gui.c:355 +#, c-format +msgid "E230: Cannot read from \"%s\"" +msgstr "E230: Ní féidir léamh ó \"%s\"" + +#: gui.c:478 +msgid "E665: Cannot start GUI, no valid font found" +msgstr "" +"E665: Ní féidir an GUI a chur ag obair, níl aon chlófhoireann bhailí ann" + +#: gui.c:483 +msgid "E231: 'guifontwide' invalid" +msgstr "E231: 'guifontwide' neamhbhailí" + +#: gui.c:553 +msgid "E599: Value of 'imactivatekey' is invalid" +msgstr "E599: Luach neamhbhailí ar 'imactivatekey'" + +#: gui.c:4070 +#, c-format +msgid "E254: Cannot allocate color %s" +msgstr "E254: Ní féidir dath %s a riar" + +#: gui.c:4598 +msgid "No match at cursor, finding next" +msgstr "Níl a leithéid ag an chúrsóir, ag cuardach ar an chéad cheann eile" + +#: gui_gtk.c:1687 +msgid "Vim dialog..." +msgstr "Dialóg Vim..." + +#: gui_gtk.c:2138 message.c:3000 +msgid "" +"&Yes\n" +"&No\n" +"&Cancel" +msgstr "" +"&Tá\n" +"&Níl\n" +"&Cealaigh" + +#: gui_gtk.c:2346 +msgid "Input _Methods" +msgstr "_Modhanna ionchuir" + +# in OLT --KPS +#: gui_gtk.c:2612 gui_motif.c:3243 +msgid "VIM - Search and Replace..." +msgstr "VIM - Cuardaigh agus Athchuir..." + +#: gui_gtk.c:2620 gui_motif.c:3245 +msgid "VIM - Search..." +msgstr "VIM - Cuardaigh..." + +#: gui_gtk.c:2652 gui_motif.c:3354 +msgid "Find what:" +msgstr "Aimsigh:" + +#: gui_gtk.c:2670 gui_motif.c:3387 +msgid "Replace with:" +msgstr "Le cur in ionad:" + +#. whole word only button +#: gui_gtk.c:2702 gui_motif.c:3508 +msgid "Match whole word only" +msgstr "Focal iomlán amháin" + +#. match case button +#: gui_gtk.c:2713 gui_motif.c:3520 +msgid "Match case" +msgstr "Meaitseáil an cás" + +#: gui_gtk.c:2723 gui_motif.c:3459 +msgid "Direction" +msgstr "Treo" + +#. 'Up' and 'Down' buttons +#: gui_gtk.c:2735 gui_motif.c:3472 +msgid "Up" +msgstr "Suas" + +#: gui_gtk.c:2739 gui_motif.c:3481 +msgid "Down" +msgstr "Síos" + +#: gui_gtk.c:2761 gui_gtk.c:2763 +msgid "Find Next" +msgstr "An Chéad Cheann Eile" + +#: gui_gtk.c:2780 gui_gtk.c:2782 +msgid "Replace" +msgstr "Ionadaigh" + +#: gui_gtk.c:2793 gui_gtk.c:2795 +msgid "Replace All" +msgstr "Ionadaigh Uile" + +#: gui_gtk_x11.c:2327 +msgid "Vim: Received \"die\" request from session manager\n" +msgstr "Vim: Fuarthas iarratas \"die\" ó bhainisteoir an tseisiúin\n" + +#: gui_gtk_x11.c:3527 +msgid "Vim: Main window unexpectedly destroyed\n" +msgstr "Vim: Milleadh an príomhfhuinneog gan choinne\n" + +#: gui_gtk_x11.c:4147 +msgid "Font Selection" +msgstr "Roghnú Cló" + +#: gui_gtk_x11.c:6104 ui.c:2129 +msgid "Used CUT_BUFFER0 instead of empty selection" +msgstr "Úsáideadh CUT_BUFFER0 in ionad roghnúcháin folaimh" + +#: gui_motif.c:2054 +msgid "&Filter" +msgstr "&Scagaire" + +#: gui_motif.c:2055 gui_motif.c:3322 +msgid "&Cancel" +msgstr "&Cealaigh" + +#: gui_motif.c:2056 +msgid "Directories" +msgstr "Comhadlanna" + +#: gui_motif.c:2057 +msgid "Filter" +msgstr "Scagaire" + +#: gui_motif.c:2058 +msgid "&Help" +msgstr "&Cabhair" + +#: gui_motif.c:2059 +msgid "Files" +msgstr "Comhaid" + +#: gui_motif.c:2060 +msgid "&OK" +msgstr "&OK" + +#: gui_motif.c:2061 +msgid "Selection" +msgstr "Roghnú" + +#: gui_motif.c:3274 +msgid "Find &Next" +msgstr "An Chéad Chea&nn Eile" + +#: gui_motif.c:3289 +msgid "&Replace" +msgstr "&Ionadaigh" + +#: gui_motif.c:3300 +msgid "Replace &All" +msgstr "Ionadaigh &Uile" + +#: gui_motif.c:3311 +msgid "&Undo" +msgstr "&Cealaigh" + +#: gui_riscos.c:952 +#, c-format +msgid "E610: Can't load Zap font '%s'" +msgstr "E610: Ní féidir an chlófhoireann Zap '%s' a luchtú" + +#: gui_riscos.c:1048 +#, c-format +msgid "E611: Can't use font %s" +msgstr "E611: Ní féidir an chlófhoireann %s a úsáid" + +#: gui_riscos.c:3272 +msgid "" +"\n" +"Sending message to terminate child process.\n" +msgstr "" +"\n" +"Ag seoladh teachtaireachta chun an macphróiseas a stopadh.\n" + +#: gui_w32.c:840 +#, c-format +msgid "E671: Cannot find window title \"%s\"" +msgstr "E671: Ní féidir teideal na fuinneoige \"%s\" a aimsiú" + +#: gui_w32.c:848 +#, c-format +msgid "E243: Argument not supported: \"-%s\"; Use the OLE version." +msgstr "E243: Argóint gan tacaíocht: \"-%s\"; Bain úsáid as an leagan OLE." + +#: gui_w32.c:1098 +msgid "E672: Unable to open window inside MDI application" +msgstr "E672: Ní féidir fuinneog a oscailt isteach i bhfeidhmchlár MDI" + +#: gui_w48.c:2213 +msgid "Find string (use '\\\\' to find a '\\')" +msgstr "Aimsigh teaghrán (bain úsáid as '\\\\' chun '\\' a aimsiú)" + +#: gui_w48.c:2238 +msgid "Find & Replace (use '\\\\' to find a '\\')" +msgstr "Aimsigh & Athchuir (úsáid '\\\\' chun '\\' a aimsiú)" + +#. We fake this: Use a filter that doesn't select anything and a default +#. * file name that won't be used. +#: gui_w48.c:3044 +msgid "Not Used" +msgstr "Gan Úsáid" + +#: gui_w48.c:3045 +msgid "Directory\t*.nothing\n" +msgstr "Comhadlann\t*.neamhní\n" + +#: gui_x11.c:1537 +msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect" +msgstr "" +"Vim E458: Ní féidir iontráil dathmhapála a dháileadh, is féidir go mbeidh " +"dathanna míchearta ann" + +#: gui_x11.c:2141 +#, c-format +msgid "E250: Fonts for the following charsets are missing in fontset %s:" +msgstr "" +"E250: Clónna ar iarraidh le haghaidh na dtacar carachtar i dtacar cló %s:" + +#: gui_x11.c:2184 +#, c-format +msgid "E252: Fontset name: %s" +msgstr "E252: Ainm an tacar cló: %s" + +#: gui_x11.c:2185 +#, c-format +msgid "Font '%s' is not fixed-width" +msgstr "Ní cló aonleithid é '%s'" + +#: gui_x11.c:2204 +#, c-format +msgid "E253: Fontset name: %s\n" +msgstr "E253: Ainm an tacar cló: %s\n" + +#: gui_x11.c:2205 +#, c-format +msgid "Font0: %s\n" +msgstr "Cló0: %s\n" + +#: gui_x11.c:2206 +#, c-format +msgid "Font1: %s\n" +msgstr "Cló1: %s\n" + +#: gui_x11.c:2207 +#, c-format +msgid "Font%ld width is not twice that of font0\n" +msgstr "Níl Cló%ld níos leithne faoi dhó ná cló0\n" + +#: gui_x11.c:2208 +#, c-format +msgid "Font0 width: %ld\n" +msgstr "Leithead Cló0: %ld\n" + +#: gui_x11.c:2209 +#, c-format +msgid "" +"Font1 width: %ld\n" +"\n" +msgstr "" +"Leithead Cló1: %ld\n" +"\n" + +#: gui_xmdlg.c:688 gui_xmdlg.c:810 +msgid "Invalid font specification" +msgstr "Sonrú neamhbhailí cló" + +#: gui_xmdlg.c:689 gui_xmdlg.c:811 +msgid "&Dismiss" +msgstr "&Ruaig" + +#: gui_xmdlg.c:698 +msgid "no specific match" +msgstr "níl a leithéid ann" + +#: gui_xmdlg.c:910 +msgid "Vim - Font Selector" +msgstr "Vim - Roghnú Cló" + +#: gui_xmdlg.c:979 +msgid "Name:" +msgstr "Ainm:" + +#. create toggle button +#: gui_xmdlg.c:1019 +msgid "Show size in Points" +msgstr "Taispeáin méid (Pointí)" + +#: gui_xmdlg.c:1038 +msgid "Encoding:" +msgstr "Ionchódú:" + +#: gui_xmdlg.c:1084 +msgid "Font:" +msgstr "Cló:" + +#: gui_xmdlg.c:1117 +msgid "Style:" +msgstr "Stíl:" + +#: gui_xmdlg.c:1149 +msgid "Size:" +msgstr "Méid:" + +#: hangulin.c:610 +msgid "E256: Hangul automata ERROR" +msgstr "E256: EARRÁID leis na huathoibreáin Hangul" + +#: if_cscope.c:77 +msgid "Add a new database" +msgstr "Bunachar sonraí nua" + +#: if_cscope.c:79 +msgid "Query for a pattern" +msgstr "Iarratas ar phatrún" + +#: if_cscope.c:81 +msgid "Show this message" +msgstr "Taispeáin an teachtaireacht seo" + +#: if_cscope.c:83 +msgid "Kill a connection" +msgstr "Maraigh nasc" + +#: if_cscope.c:85 +msgid "Reinit all connections" +msgstr "Atúsaigh gach nasc" + +#: if_cscope.c:87 +msgid "Show connections" +msgstr "Taispeáin naisc" + +#: if_cscope.c:95 +#, c-format +msgid "E560: Usage: cs[cope] %s" +msgstr "E560: Úsáid: cs[cope] %s" + +#: if_cscope.c:124 +msgid "This cscope command does not support splitting the window.\n" +msgstr "Ní féidir fuinneoga a scoilteadh leis an ordú seo `cscope'.\n" + +#: if_cscope.c:175 +msgid "E562: Usage: cstag " +msgstr "E562: Úsáid: cstag " + +#: if_cscope.c:231 +msgid "E257: cstag: tag not found" +msgstr "E257: cstag: clib gan aimsiú" + +#: if_cscope.c:409 +#, c-format +msgid "E563: stat(%s) error: %d" +msgstr "E563: earráid stat(%s): %d" + +#: if_cscope.c:419 +msgid "E563: stat error" +msgstr "E563: earráid stat" + +#: if_cscope.c:516 +#, c-format +msgid "E564: %s is not a directory or a valid cscope database" +msgstr "E564: Níl %s ina comhadlann nó bunachar sonraí cscope bailí" + +#: if_cscope.c:534 +#, c-format +msgid "Added cscope database %s" +msgstr "Bunachar sonraí nua cscope: %s" + +#: if_cscope.c:589 +#, c-format +msgid "E262: error reading cscope connection %ld" +msgstr "E262: earráid agus an nasc cscope %ld á léamh" + +#: if_cscope.c:694 +msgid "E561: unknown cscope search type" +msgstr "E561: cineál anaithnid cuardaigh cscope" + +#: if_cscope.c:736 +msgid "E566: Could not create cscope pipes" +msgstr "E566: Níorbh fhéidir píopaí cscope a chruthú" + +#: if_cscope.c:753 +msgid "E622: Could not fork for cscope" +msgstr "E622: Níorbh fhéidir forc a dhéanamh le haghaidh cscope" + +#: if_cscope.c:847 if_cscope.c:897 +msgid "cs_create_connection exec failed" +msgstr "theip ar rith cs_create_connection" + +#: if_cscope.c:898 +msgid "E623: Could not spawn cscope process" +msgstr "E623: Níorbh fhéidir próiseas cscope a sceitheadh" + +#: if_cscope.c:911 +msgid "cs_create_connection: fdopen for to_fp failed" +msgstr "cs_create_connection: theip ar fdopen le haghaidh to_fp" + +#: if_cscope.c:913 +msgid "cs_create_connection: fdopen for fr_fp failed" +msgstr "cs_create_connection: theip ar fdopen le haghaidh fr_fp" + +#: if_cscope.c:951 +msgid "E567: no cscope connections" +msgstr "E567: níl aon nasc cscope ann" + +#: if_cscope.c:1025 +#, c-format +msgid "E259: no matches found for cscope query %s of %s" +msgstr "" +"E259: níor aimsíodh aon rud comhoiriúnach leis an iarratas cscope %s de %s" + +#: if_cscope.c:1082 +#, c-format +msgid "E469: invalid cscopequickfix flag %c for %c" +msgstr "E469: brat neamhbhailí cscopequickfix %c le haghaidh %c" + +#: if_cscope.c:1152 +msgid "cscope commands:\n" +msgstr "Orduithe cscope:\n" + +#: if_cscope.c:1155 +#, c-format +msgid "%-5s: %-30s (Usage: %s)" +msgstr "%-5s: %-30s (Úsáid: %s)" + +#: if_cscope.c:1253 +#, c-format +msgid "E625: cannot open cscope database: %s" +msgstr "E625: ní féidir bunachar sonraí cscope a oscailt: %s" + +#: if_cscope.c:1271 +msgid "E626: cannot get cscope database information" +msgstr "E626: ní féidir eolas a fháil faoin bhunachar sonraí cscope" + +#: if_cscope.c:1296 +msgid "E568: duplicate cscope database not added" +msgstr "E568: níor cuireadh bunachar sonraí dúblach cscope leis" + +#: if_cscope.c:1307 +msgid "E569: maximum number of cscope connections reached" +msgstr "E569: ní cheadaítear níos mó ná uasmhéid na nasc cscope" + +#: if_cscope.c:1424 +#, c-format +msgid "E261: cscope connection %s not found" +msgstr "E261: nasc cscope %s gan aimsiú" + +#: if_cscope.c:1458 +#, c-format +msgid "cscope connection %s closed" +msgstr "Dúnadh nasc cscope %s" + +#. should not reach here +#: if_cscope.c:1598 +msgid "E570: fatal error in cs_manage_matches" +msgstr "E570: earráid mharfach i cs_manage_matches" + +#: if_cscope.c:1848 +#, c-format +msgid "Cscope tag: %s" +msgstr "Clib cscope: %s" + +#: if_cscope.c:1870 +msgid "" +"\n" +" # line" +msgstr "" +"\n" +" # líne" + +#: if_cscope.c:1872 +msgid "filename / context / line\n" +msgstr "ainm comhaid / comhthéacs / líne\n" + +#: if_cscope.c:1990 +#, c-format +msgid "E609: Cscope error: %s" +msgstr "E609: Earráid cscope: %s" + +#: if_cscope.c:2176 +msgid "All cscope databases reset" +msgstr "Athshocraíodh gach bunachar sonraí cscope" + +#: if_cscope.c:2244 +msgid "no cscope connections\n" +msgstr "níl aon nasc cscope\n" + +#: if_cscope.c:2248 +msgid " # pid database name prepend path\n" +msgstr " # pid ainm bunachair conair thosaigh\n" + +#: if_mzsch.c:785 +msgid "" +"???: Sorry, this command is disabled, the MzScheme library could not be " +"loaded." +msgstr "" +"???: Tá brón orm, níl an t-ordú seo le fáil, níorbh fhéidir an leabharlann " +"MzScheme a luchtú." + +#: if_mzsch.c:1222 if_python.c:1084 if_tcl.c:1406 +msgid "invalid expression" +msgstr "slonn neamhbhailí" + +#: if_mzsch.c:1230 if_python.c:1098 if_tcl.c:1411 +msgid "expressions disabled at compile time" +msgstr "díchumasaíodh sloinn ag am an tiomsaithe" + +#: if_mzsch.c:1317 +msgid "hidden option" +msgstr "rogha fholaithe" + +#: if_mzsch.c:1319 if_tcl.c:505 +msgid "unknown option" +msgstr "rogha anaithnid" + +#: if_mzsch.c:1468 +msgid "window index is out of range" +msgstr "innéacs fuinneoige as raon" + +#: if_mzsch.c:1623 +msgid "couldn't open buffer" +msgstr "ní féidir maolán a oscailt" + +#: if_mzsch.c:1888 if_mzsch.c:1914 if_mzsch.c:1989 if_mzsch.c:2038 +#: if_mzsch.c:2147 if_mzsch.c:2190 if_python.c:2311 if_python.c:2345 +#: if_python.c:2400 if_python.c:2468 if_python.c:2590 if_python.c:2642 +#: if_tcl.c:688 if_tcl.c:733 if_tcl.c:807 if_tcl.c:877 if_tcl.c:2003 +msgid "cannot save undo information" +msgstr "ní féidir eolas cealaithe a shábháil" + +#: if_mzsch.c:1893 if_mzsch.c:1997 if_mzsch.c:2051 if_python.c:2313 +#: if_python.c:2407 if_python.c:2479 +msgid "cannot delete line" +msgstr "ní féidir an líne a scriosadh" + +#: if_mzsch.c:1919 if_mzsch.c:2065 if_python.c:2350 if_python.c:2495 +#: if_tcl.c:694 if_tcl.c:2025 +msgid "cannot replace line" +msgstr "ní féidir an líne a athchur" + +#: if_mzsch.c:2079 if_mzsch.c:2152 if_mzsch.c:2199 if_python.c:2513 +#: if_python.c:2592 if_python.c:2650 +msgid "cannot insert line" +msgstr "ní féidir líne a ionsá" + +#: if_mzsch.c:2295 if_python.c:2762 +msgid "string cannot contain newlines" +msgstr "ní cheadaítear carachtair líne nua sa teaghrán" + +#: if_mzsch.c:2378 +msgid "Vim error: ~a" +msgstr "earráid Vim: ~a" + +#: if_mzsch.c:2387 +msgid "Vim error" +msgstr "earráid Vim" + +#: if_mzsch.c:2443 +msgid "buffer is invalid" +msgstr "maolán neamhbhailí" + +#: if_mzsch.c:2452 +msgid "window is invalid" +msgstr "fuinneog neamhbhailí" + +#: if_mzsch.c:2472 +msgid "linenr out of range" +msgstr "líne-uimhir as raon" + +#: if_python.c:438 +msgid "" +"E263: Sorry, this command is disabled, the Python library could not be " +"loaded." +msgstr "" +"E263: Tá brón orm, níl an t-ordú seo le fáil, níorbh fhéidir an leabharlann " +"Python a luchtú." + +#: if_python.c:504 +msgid "E659: Cannot invoke Python recursively" +msgstr "E659: Ní féidir Python a rith go hathchúrsach" + +#: if_python.c:705 +msgid "can't delete OutputObject attributes" +msgstr "ní féidir tréithe OutputObject a scriosadh" + +#: if_python.c:712 +msgid "softspace must be an integer" +msgstr "ní foláir softspace a bheith ina shlánuimhir" + +#: if_python.c:720 +msgid "invalid attribute" +msgstr "aitreabúid neamhbhailí" + +#: if_python.c:759 if_python.c:773 +msgid "writelines() requires list of strings" +msgstr "liosta teaghrán ag teastáil ó writelines()" + +#: if_python.c:899 +msgid "E264: Python: Error initialising I/O objects" +msgstr "E264: Python: Earráid agus réada I/A á dtúsú" + +#: if_python.c:1111 +msgid "attempt to refer to deleted buffer" +msgstr "rinneadh iarracht ar mhaolán scriosta a rochtain" + +#: if_python.c:1126 if_python.c:1167 if_python.c:1231 if_tcl.c:1218 +msgid "line number out of range" +msgstr "líne-uimhir as raon" + +#: if_python.c:1366 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:1457 if_tcl.c:840 +msgid "invalid mark name" +msgstr "ainm neamhbhailí mairc" + +#: if_python.c:1737 +msgid "no such buffer" +msgstr "níl a leithéid de mhaolán ann" + +#: if_python.c:1825 +msgid "attempt to refer to deleted window" +msgstr "rinneadh iarracht ar fhuinneog scriosta a rochtain" + +#: if_python.c:1870 +msgid "readonly attribute" +msgstr "tréith léimh-amháin" + +#: if_python.c:1883 +msgid "cursor position outside buffer" +msgstr "cúrsóir taobh amuigh den mhaolán" + +#: if_python.c:1960 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:1972 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:1974 +#, c-format +msgid "" +msgstr "" + +#: if_python.c:2050 +msgid "no such window" +msgstr "níl a leithéid d'fhuinneog ann" + +#: if_ruby.c:422 +msgid "" +"E266: Sorry, this command is disabled, the Ruby library could not be loaded." +msgstr "" +"E266: Tá brón orm, níl an t-ordú seo le fáil, níorbh fhéidir an leabharlann " +"Ruby a luchtú." + +#: if_ruby.c:485 +#, c-format +msgid "E273: unknown longjmp status %d" +msgstr "E273: stádas anaithnid longjmp %d" + +#: if_sniff.c:67 +msgid "Toggle implementation/definition" +msgstr "Scoránaigh feidhmiú/sainmhíniú" + +#: if_sniff.c:68 +msgid "Show base class of" +msgstr "Taispeáin an bunaicme de" + +#: if_sniff.c:69 +msgid "Show overridden member function" +msgstr "Taispeáin ballfheidhm sáraithe" + +#: if_sniff.c:70 +msgid "Retrieve from file" +msgstr "Aisghabh ó chomhad" + +#: if_sniff.c:71 +msgid "Retrieve from project" +msgstr "Aisghabh ó thionscadal" + +#: if_sniff.c:73 +msgid "Retrieve from all projects" +msgstr "Aisghabh ó gach tionscadal" + +#: if_sniff.c:74 +msgid "Retrieve" +msgstr "Aisghabh" + +#: if_sniff.c:75 +msgid "Show source of" +msgstr "Taispeáin foinse" + +#: if_sniff.c:76 +msgid "Find symbol" +msgstr "Aimsigh siombail" + +#: if_sniff.c:77 +msgid "Browse class" +msgstr "Brabhsáil aicme" + +#: if_sniff.c:78 +msgid "Show class in hierarchy" +msgstr "Taispeáin an aicme in ordlathas" + +#: if_sniff.c:79 +msgid "Show class in restricted hierarchy" +msgstr "Taispeáin an aicme in ordlathas srianta" + +#: if_sniff.c:80 +msgid "Xref refers to" +msgstr "Tagraíonn Xref do" + +#: if_sniff.c:81 +msgid "Xref referred by" +msgstr "Xref tagartha ag" + +#: if_sniff.c:82 +msgid "Xref has a" +msgstr "Rud atá ag Xref:" + +#: if_sniff.c:83 +msgid "Xref used by" +msgstr "Xref á úsáid ag" + +#: if_sniff.c:84 +msgid "Show docu of" +msgstr "Taispeáin eolas faoi" + +#: if_sniff.c:85 +msgid "Generate docu for" +msgstr "Gin eolas faoi" + +#: if_sniff.c:97 +msgid "" +"Cannot connect to SNiFF+. Check environment (sniffemacs must be found in " +"$PATH).\n" +msgstr "" +"Ní féidir nasc a dhéanamh le SNiFF+. Seiceáil do chuid athróga " +"thimpeallachta (ní foláir sniffemacs a chur i $PATH).\n" + +#: if_sniff.c:425 +msgid "E274: Sniff: Error during read. Disconnected" +msgstr "E274: Sniff: Earráid sa léamh. Dínasctha" + +#: if_sniff.c:553 +msgid "SNiFF+ is currently " +msgstr "SNiFF+ stádas faoi láthair: " + +#: if_sniff.c:555 +msgid "not " +msgstr "ní " + +#: if_sniff.c:556 +msgid "connected" +msgstr "nasctha" + +#: if_sniff.c:592 +#, c-format +msgid "E275: Unknown SNiFF+ request: %s" +msgstr "E275: Iarratas anaithnid SNiFF+: %s" + +#: if_sniff.c:605 +msgid "E276: Error connecting to SNiFF+" +msgstr "E276: Earráid ag nascadh le SNiFF+" + +#: if_sniff.c:1009 +msgid "E278: SNiFF+ not connected" +msgstr "E278: SNiFF+ gan nasc" + +#: if_sniff.c:1018 +msgid "E279: Not a SNiFF+ buffer" +msgstr "E279: Ní maolán SNiFF+ é" + +#: if_sniff.c:1083 +msgid "Sniff: Error during write. Disconnected" +msgstr "Sniff: Earráid sa scríobh. Dínasctha" + +#: if_tcl.c:422 +msgid "invalid buffer number" +msgstr "uimhir mhaoláin neamhbhailí" + +#: if_tcl.c:468 if_tcl.c:935 if_tcl.c:1114 +msgid "not implemented yet" +msgstr "níl ar fáil" + +#. ??? +#: if_tcl.c:778 +msgid "cannot set line(s)" +msgstr "ní féidir lín(t)e a shocrú" + +#: if_tcl.c:849 +msgid "mark not set" +msgstr "marc gan socrú" + +#: if_tcl.c:855 if_tcl.c:1070 +#, c-format +msgid "row %d column %d" +msgstr "líne %d colún %d" + +#: if_tcl.c:885 +msgid "cannot insert/append line" +msgstr "ní féidir líne a chur ann/leis" + +#: if_tcl.c:1272 +msgid "unknown flag: " +msgstr "bratach anaithnid: " + +#: if_tcl.c:1342 +msgid "unknown vimOption" +msgstr "vimOption anaithnid" + +#: if_tcl.c:1427 +msgid "keyboard interrupt" +msgstr "idirbhriseadh méarchláir" + +#: if_tcl.c:1432 +msgid "vim error" +msgstr "earráid vim" + +#: if_tcl.c:1475 +msgid "cannot create buffer/window command: object is being deleted" +msgstr "ní féidir ordú maoláin/fuinneoige a chruthú: réad á scriosadh" + +#: if_tcl.c:1549 +msgid "" +"cannot register callback command: buffer/window is already being deleted" +msgstr "ní féidir ordú aisghlaoch a chlárú: maolán/fuinneog á scriosadh cheana" + +#. This should never happen. Famous last word? +#: if_tcl.c:1566 +msgid "" +"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." +"org" +msgstr "" +"E280: EARRÁID MHARFACH TCL: liosta truaillithe tagartha!? Seol tuairisc " +"fhabht chuig le do thoil" + +#: if_tcl.c:1567 +msgid "cannot register callback command: buffer/window reference not found" +msgstr "" +"ní féidir ordú aisghlaoch a chlárú: tagairt mhaolán/fhuinneoige gan aimsiú" + +#: if_tcl.c:1728 +msgid "" +"E571: Sorry, this command is disabled: the Tcl library could not be loaded." +msgstr "" +"E571: Tá brón orm, níl an t-ordú seo le fáil, níorbh fhéidir an leabharlann " +"Tcl a luchtú." + +#: if_tcl.c:1890 +msgid "" +"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org" +msgstr "" +"E281: EARRÁID TCL: níl an cód scortha ina shlánuimhir!? Seol tuairisc fhabht " +"chuig le do thoil" + +#: if_tcl.c:2011 +msgid "cannot get line" +msgstr "ní féidir an líne a fháil" + +#: if_xcmdsrv.c:233 +msgid "Unable to register a command server name" +msgstr "Ní féidir ainm fhreastalaí ordaithe a chlárú" + +#: if_xcmdsrv.c:489 +msgid "E248: Failed to send command to the destination program" +msgstr "E248: Theip ar sheoladh ordú chuig an sprioc-chlár" + +#: if_xcmdsrv.c:762 +#, c-format +msgid "E573: Invalid server id used: %s" +msgstr "E573: Aitheantas neamhbhailí freastalaí in úsáid: %s" + +#: if_xcmdsrv.c:1132 +msgid "E251: VIM instance registry property is badly formed. Deleted!" +msgstr "E251: Airí míchumtha sa chlárlann áisc VIM. Scriosta!" + +#: main.c:60 +msgid "Unknown option" +msgstr "Rogha anaithnid" + +#: main.c:62 +msgid "Too many edit arguments" +msgstr "An iomarca argóintí eagraithe" + +#: main.c:64 +msgid "Argument missing after" +msgstr "Argóint ar iarraidh i ndiaidh" + +#: main.c:66 +msgid "Garbage after option" +msgstr "Dramhaíl i ndiaidh rogha" + +#: main.c:68 +msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" +msgstr "" +"An iomarca argóintí den chineál \"+ordú\", \"-c ordú\" nó \"--cmd ordú\"" + +#: main.c:70 +msgid "Invalid argument for" +msgstr "Argóint neamhbhailí do" + +#: main.c:481 +msgid "This Vim was not compiled with the diff feature." +msgstr "Níor tiomsaíodh an leagan Vim seo le `diff' ar fáil." + +#: main.c:958 +msgid "Attempt to open script file again: \"" +msgstr "Déan iarracht ar oscailt na scripte arís: \"" + +#: main.c:967 +msgid "Cannot open for reading: \"" +msgstr "Ní féidir é a oscailt chun léamh: \"" + +#: main.c:1021 +msgid "Cannot open for script output: \"" +msgstr "Ní féidir a oscailt le haghaidh an aschuir scripte: \"" + +#: main.c:1189 +#, c-format +msgid "%d files to edit\n" +msgstr "%d comhad le heagrú\n" + +#: main.c:1299 +msgid "Vim: Error: Failure to start gvim from NetBeans\n" +msgstr "Vim: Earráid: Theip ar thosú gvim ó NetBeans\n" + +#: main.c:1304 +msgid "Vim: Warning: Output is not to a terminal\n" +msgstr "Vim: Rabhadh: Níl an t-aschur ag dul chuig teirminéal\n" + +#: main.c:1306 +msgid "Vim: Warning: Input is not from a terminal\n" +msgstr "Vim: Rabhadh: Níl an t-ionchur ag teacht ó theirminéal\n" + +#. just in case.. +#: main.c:1374 +msgid "pre-vimrc command line" +msgstr "líne na n-orduithe pre-vimrc" + +#: main.c:1415 +#, c-format +msgid "E282: Cannot read from \"%s\"" +msgstr "E282: Ní féidir léamh ó \"%s\"" + +#: main.c:2501 +msgid "" +"\n" +"More info with: \"vim -h\"\n" +msgstr "" +"\n" +"Tuilleadh eolais: \"vim -h\"\n" + +#: main.c:2534 +msgid "[file ..] edit specified file(s)" +msgstr "[comhad ..] cuir na comhaid ceaptha in eagar" + +#: main.c:2535 +msgid "- read text from stdin" +msgstr "- scríobh téacs ó stdin" + +#: main.c:2536 +msgid "-t tag edit file where tag is defined" +msgstr "-t tag cuir an comhad ina bhfuil an chlib in eagar" + +#: main.c:2538 +msgid "-q [errorfile] edit file with first error" +msgstr "-q [comhadearr] cuir comhad leis an chéad earráid in eagar" + +#: main.c:2547 +msgid "" +"\n" +"\n" +"usage:" +msgstr "" +"\n" +"\n" +"úsáid:" + +#: main.c:2550 +msgid " vim [arguments] " +msgstr " vim [argóintí] " + +#: main.c:2554 +msgid "" +"\n" +" or:" +msgstr "" +"\n" +" nó:" + +#: main.c:2557 +msgid "where case is ignored prepend / to make flag upper case" +msgstr "" +"nuair nach cásíogair é, cuir / ar tosach brait chun cás uachtair a úsáid" + +#: main.c:2560 +msgid "" +"\n" +"\n" +"Arguments:\n" +msgstr "" +"\n" +"\n" +"Argóintí:\n" + +#: main.c:2561 +msgid "--\t\t\tOnly file names after this" +msgstr "--\t\t\tNí cheadaítear ach ainmneacha comhaid i ndiaidh é seo" + +#: main.c:2563 +msgid "--literal\t\tDon't expand wildcards" +msgstr "--literal\t\tNá leathnaigh saoróga" + +#: main.c:2566 +msgid "-register\t\tRegister this gvim for OLE" +msgstr "-register\t\tCláraigh an gvim seo le haghaidh OLE" + +#: main.c:2567 +msgid "-unregister\t\tUnregister gvim for OLE" +msgstr "-unregister\t\tDíchláraigh an gvim seo le haghaidh OLE" + +#: main.c:2570 +msgid "-g\t\t\tRun using GUI (like \"gvim\")" +msgstr "-g\t\t\tRith agus úsáid an GUI (mar \"gvim\")" + +#: main.c:2571 +msgid "-f or --nofork\tForeground: Don't fork when starting GUI" +msgstr "-f nó --nofork\tTulra: Ná déan forc agus an GUI á thosú" + +#: main.c:2573 +msgid "-v\t\t\tVi mode (like \"vi\")" +msgstr "-v\t\t\tMód Vi (mar \"vi\")" + +#: main.c:2574 +msgid "-e\t\t\tEx mode (like \"ex\")" +msgstr "-e\t\t\tMód Ex (mar \"ex\")" + +#: main.c:2575 +msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")" +msgstr "-s\t\t\tMód ciúin (baiscphróiseála) (do \"ex\" amháin)" + +#: main.c:2577 +msgid "-d\t\t\tDiff mode (like \"vimdiff\")" +msgstr "-d\t\t\tMód diff (mar \"vimdiff\")" + +#: main.c:2579 +msgid "-y\t\t\tEasy mode (like \"evim\", modeless)" +msgstr "-y\t\t\tMód éasca (mar \"evim\", gan mhóid)" + +#: main.c:2580 +msgid "-R\t\t\tReadonly mode (like \"view\")" +msgstr "-R\t\t\tMód léimh amháin (mar \"view\")" + +#: main.c:2581 +msgid "-Z\t\t\tRestricted mode (like \"rvim\")" +msgstr "-Z\t\t\tMód srianta (mar \"rvim\")" + +#: main.c:2582 +msgid "-m\t\t\tModifications (writing files) not allowed" +msgstr "-m\t\t\tNí cheadaítear athruithe (.i. scríobh na gcomhad)" + +#: main.c:2583 +msgid "-M\t\t\tModifications in text not allowed" +msgstr "-M\t\t\tNí cheadaítear athruithe sa téacs" + +#: main.c:2584 +msgid "-b\t\t\tBinary mode" +msgstr "-b\t\t\tMód dénártha" + +#: main.c:2586 +msgid "-l\t\t\tLisp mode" +msgstr "-l\t\t\tMód Lisp" + +#: main.c:2588 +msgid "-C\t\t\tCompatible with Vi: 'compatible'" +msgstr "-C\t\t\tComhoiriúnach le Vi: 'compatible'" + +#: main.c:2589 +msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" +msgstr "-N\t\t\tNí comhoiriúnaithe le Vi go hiomlán: 'nocompatible'" + +#: main.c:2590 +msgid "-V[N]\t\tVerbose level" +msgstr "-V[N]\t\tFoclachas" + +#: main.c:2591 +msgid "-D\t\t\tDebugging mode" +msgstr "-D\t\t\tMód dífhabhtaithe" + +#: main.c:2592 +msgid "-n\t\t\tNo swap file, use memory only" +msgstr "-n\t\t\tNá húsáid comhad babhtála .i. ná húsáid ach an chuimhne" + +#: main.c:2593 +msgid "-r\t\t\tList swap files and exit" +msgstr "-r\t\t\tTaispeáin comhaid bhabhtála agus scoir" + +#: main.c:2594 +msgid "-r (with file name)\tRecover crashed session" +msgstr "-r (le hainm comhaid)\tAthshlánaigh ó chliseadh" + +#: main.c:2595 +msgid "-L\t\t\tSame as -r" +msgstr "-L\t\t\tAr comhbhrí le -r" + +#: main.c:2597 +msgid "-f\t\t\tDon't use newcli to open window" +msgstr "-f\t\t\tNá húsáid newcli chun fuinneog a oscailt" + +#: main.c:2598 +msgid "-dev \t\tUse for I/O" +msgstr "-dev \t\tBain úsáid as do I/A" + +#: main.c:2601 +msgid "-A\t\t\tstart in Arabic mode" +msgstr "-A\t\t\ttosaigh sa mhód Araibise" + +#: main.c:2604 +msgid "-H\t\t\tStart in Hebrew mode" +msgstr "-H\t\t\tTosaigh sa mhód Eabhraise" + +#: main.c:2607 +msgid "-F\t\t\tStart in Farsi mode" +msgstr "-F\t\t\tTosaigh sa mhód Pheirsise" + +#: main.c:2609 +msgid "-T \tSet terminal type to " +msgstr "-T \tSocraigh cineál teirminéal" + +#: main.c:2610 +msgid "-u \t\tUse instead of any .vimrc" +msgstr "-u \t\tÚsáid in ionad aon .vimrc" + +#: main.c:2612 +msgid "-U \t\tUse instead of any .gvimrc" +msgstr "-U \t\tBain úsáid as in ionad aon .gvimrc" + +#: main.c:2614 +msgid "--noplugin\t\tDon't load plugin scripts" +msgstr "--noplugin\t\tNá luchtaigh breiseáin" + +#: main.c:2615 +msgid "-o[N]\t\tOpen N windows (default: one for each file)" +msgstr "-o[N]\t\tOscail N fuinneog (réamhshocrú: ceann do gach comhad)" + +#: main.c:2616 +msgid "-O[N]\t\tLike -o but split vertically" +msgstr "-O[N]\t\tMar -o, ach roinn go hingearach" + +#: main.c:2617 +msgid "+\t\t\tStart at end of file" +msgstr "+\t\t\tTosaigh ag an chomhadchríoch" + +#: main.c:2618 +msgid "+\t\tStart at line " +msgstr "+\t\tTosaigh ar líne " + +#: main.c:2620 +msgid "--cmd \tExecute before loading any vimrc file" +msgstr "--cmd \tRith roimh aon chomhad vimrc a luchtú" + +#: main.c:2622 +msgid "-c \t\tExecute after loading the first file" +msgstr "-c \t\tRith i ndiaidh luchtú an chéad chomhad" + +#: main.c:2623 +msgid "-S \t\tSource file after loading the first file" +msgstr "" +"-S \t\tLéigh comhad i ndiaidh an chéad chomhad á léamh" + +#: main.c:2624 +msgid "-s \tRead Normal mode commands from file " +msgstr "-s