diff --git a/src/buffer.c b/src/buffer.c
index a634062..1eb23a3 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2082,25 +2082,38 @@
     char_u	*p;
     int		attempt;
     regprog_T	*prog;
+    char_u	*patc;
 
     *num_file = 0;		    /* return values in case of FAIL */
     *file = NULL;
 
-    /*
-     * attempt == 1: try match with    '^', match at start
-     * attempt == 2: try match without '^', match anywhere
-     */
-    for (attempt = 1; attempt <= 2; ++attempt)
+    /* Make a copy of "pat" and change "^" to "\(^\|[\/]\)". */
+    if (*pat == '^')
     {
-	if (attempt == 2)
-	{
-	    if (*pat != '^')	    /* there's no '^', no need to try again */
-		break;
-	    ++pat;		    /* skip the '^' */
-	}
-	prog = vim_regcomp(pat, p_magic ? RE_MAGIC : 0);
-	if (prog == NULL)
+	patc = alloc((unsigned)STRLEN(pat) + 11);
+	if (patc == NULL)
 	    return FAIL;
+	STRCPY(patc, "\\(^\\|[\\/]\\)");
+	STRCPY(patc + 11, pat + 1);
+    }
+    else
+	patc = pat;
+
+    /*
+     * attempt == 0: try match with    '\<', match at start of word
+     * attempt == 2: try match without '\<', match anywhere
+     */
+    for (attempt = 0; attempt <= 2; attempt += 2)
+    {
+	if (attempt == 2 && patc == pat)
+	    break;	/* there was no anchor, no need to try again */
+	prog = vim_regcomp(patc + attempt, RE_MAGIC);
+	if (prog == NULL)
+	{
+	    if (patc != pat)
+		vim_free(patc);
+	    return FAIL;
+	}
 
 	/*
 	 * round == 1: Count the matches.
@@ -2136,6 +2149,8 @@
 		if (*file == NULL)
 		{
 		    vim_free(prog);
+		    if (patc != pat)
+			vim_free(patc);
 		    return FAIL;
 		}
 	    }
@@ -2145,6 +2160,9 @@
 	    break;
     }
 
+    if (patc != pat)
+	vim_free(patc);
+
     *num_file = count;
     return (count == 0 ? FAIL : OK);
 }
diff --git a/src/eval.c b/src/eval.c
index 1aa4dc3..1338294 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -106,6 +106,7 @@
 static char *e_funcref = N_("E718: Funcref required");
 static char *e_dictrange = N_("E719: Cannot use [:] with a Dictionary");
 static char *e_letwrong = N_("E734: Wrong variable type for %s=");
+static char *e_nofunc = N_("E130: Unknown function: %s");
 
 /*
  * All user-defined global variables are stored in dictionary "globvardict".
@@ -153,6 +154,24 @@
     int		uf_calls;	/* nr of active calls */
     garray_T	uf_args;	/* arguments */
     garray_T	uf_lines;	/* function lines */
+#ifdef FEAT_PROFILE
+    int		uf_profiling;	/* TRUE when func is being profiled */
+    /* profiling the function as a whole */
+    int		uf_tm_count;	/* nr of calls */
+    proftime_T	uf_tm_total;	/* time spend in function + children */
+    proftime_T	uf_tm_self;	/* time spend in function itself */
+    proftime_T	uf_tm_start;	/* time at function call */
+    proftime_T	uf_tm_children;	/* time spent in children this call */
+    /* profiling the function per line */
+    int		*uf_tml_count;	/* nr of times line was executed */
+    proftime_T	*uf_tml_total;	/* time spend in a line + children */
+    proftime_T	*uf_tml_self;	/* time spend in a line itself */
+    proftime_T	uf_tml_start;	/* start time for current line */
+    proftime_T	uf_tml_children; /* time spent in children for this line */
+    proftime_T	uf_tml_wait;	/* start wait time for current line */
+    int		uf_tml_idx;	/* index of line being timed; -1 if none */
+    int		uf_tml_execed;	/* line being timed was executed */
+#endif
     scid_T	uf_script_ID;	/* ID of script where function was defined,
 				   used for s: variables */
     int		uf_refcount;	/* for numbered function: reference count */
@@ -205,6 +224,9 @@
     linenr_T	breakpoint;	/* next line with breakpoint or zero */
     int		dbg_tick;	/* debug_tick when breakpoint was set */
     int		level;		/* top nesting level of executed function */
+#ifdef FEAT_PROFILE
+    proftime_T	prof_child;	/* time spent in a child */
+#endif
 } funccall_T;
 
 /*
@@ -293,6 +315,7 @@
     {VV_NAME("insertmode",	 VAR_STRING), VV_RO},
     {VV_NAME("val",		 VAR_UNKNOWN), VV_RO},
     {VV_NAME("key",		 VAR_UNKNOWN), VV_RO},
+    {VV_NAME("profiling",	 VAR_NUMBER), VV_RO},
 };
 
 /* shorthand */
@@ -345,7 +368,6 @@
 static char_u *list2string __ARGS((typval_T *tv));
 static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo));
 
-static dict_T *dict_alloc __ARGS((void));
 static void dict_unref __ARGS((dict_T *d));
 static void dict_free __ARGS((dict_T *d));
 static dictitem_T *dictitem_alloc __ARGS((char_u *key));
@@ -399,6 +421,7 @@
 static void f_diff_filler __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_diff_hlID __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_empty __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_errorlist __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_escape __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_eval __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_eventhandler __ARGS((typval_T *argvars, typval_T *rettv));
@@ -582,6 +605,9 @@
 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));
+#ifdef FEAT_PROFILE
+static void func_do_profile __ARGS((ufunc_T *fp));
+#endif
 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));
@@ -1170,20 +1196,60 @@
     void *
 save_funccal()
 {
-    funccall_T *fc;
+    funccall_T *fc = current_funccal;
 
-    fc = current_funccal;
     current_funccal = NULL;
     return (void *)fc;
 }
 
     void
-restore_funccal(fc)
-    void *fc;
+restore_funccal(vfc)
+    void *vfc;
 {
-    current_funccal = (funccall_T *)fc;
+    funccall_T *fc = (funccall_T *)vfc;
+
+    current_funccal = fc;
 }
 
+#if defined(FEAT_PROFILE) || defined(PROTO)
+/*
+ * Prepare profiling for entering a child or something else that is not
+ * counted for the script/function itself.
+ * Should always be called in pair with prof_child_exit().
+ */
+    void
+prof_child_enter(tm)
+    proftime_T *tm;	/* place to store waittime */
+{
+    funccall_T *fc = current_funccal;
+
+    if (fc != NULL && fc->func->uf_profiling)
+	profile_start(&fc->prof_child);
+    script_prof_save(tm);
+}
+
+/*
+ * Take care of time spent in a child.
+ * Should always be called after prof_child_enter().
+ */
+    void
+prof_child_exit(tm)
+    proftime_T *tm;	/* where waittime was stored */
+{
+    funccall_T *fc = current_funccal;
+
+    if (fc != NULL && fc->func->uf_profiling)
+    {
+	profile_end(&fc->prof_child);
+	profile_sub_wait(tm, &fc->prof_child); /* don't count waiting time */
+	profile_add(&fc->func->uf_tm_children, &fc->prof_child);
+	profile_add(&fc->func->uf_tml_children, &fc->prof_child);
+    }
+    script_prof_restore(tm);
+}
+#endif
+
+
 #ifdef FEAT_FOLDING
 /*
  * Evaluate 'foldexpr'.  Returns the foldlevel, and any character preceding
@@ -5020,12 +5086,33 @@
     list_T	*l;
     typval_T	*tv;
 {
-    listitem_T	*ni = listitem_alloc();
+    listitem_T	*li = listitem_alloc();
 
-    if (ni == NULL)
+    if (li == NULL)
 	return FAIL;
-    copy_tv(tv, &ni->li_tv);
-    list_append(l, ni);
+    copy_tv(tv, &li->li_tv);
+    list_append(l, li);
+    return OK;
+}
+
+/*
+ * Add a dictionary to a list.  Used by errorlist().
+ * Return FAIL when out of memory.
+ */
+    int
+list_append_dict(list, dict)
+    list_T	*list;
+    dict_T	*dict;
+{
+    listitem_T	*li = listitem_alloc();
+
+    if (li == NULL)
+	return FAIL;
+    li->li_tv.v_type = VAR_DICT;
+    li->li_tv.v_lock = 0;
+    li->li_tv.vval.v_dict = dict;
+    list_append(list, li);
+    ++dict->dv_refcount;
     return OK;
 }
 
@@ -5266,7 +5353,7 @@
 /*
  * Allocate an empty header for a dictionary.
  */
-    static dict_T *
+    dict_T *
 dict_alloc()
 {
     dict_T *d;
@@ -5470,6 +5557,42 @@
 }
 
 /*
+ * Add a number or string entry to dictionary "d".
+ * When "str" is NULL use number "nr", otherwise use "str".
+ * Returns FAIL when out of memory and when key already exists.
+ */
+    int
+dict_add_nr_str(d, key, nr, str)
+    dict_T	*d;
+    char	*key;
+    long	nr;
+    char_u	*str;
+{
+    dictitem_T	*item;
+
+    item = dictitem_alloc((char_u *)key);
+    if (item == NULL)
+	return FAIL;
+    item->di_tv.v_lock = 0;
+    if (str == NULL)
+    {
+	item->di_tv.v_type = VAR_NUMBER;
+	item->di_tv.vval.v_number = nr;
+    }
+    else
+    {
+	item->di_tv.v_type = VAR_STRING;
+	item->di_tv.vval.v_string = vim_strsave(str);
+    }
+    if (dict_add(d, item) == FAIL)
+    {
+	dictitem_free(item);
+	return FAIL;
+    }
+    return OK;
+}
+
+/*
  * Get the number of items in a Dictionary.
  */
     static long
@@ -5844,6 +5967,7 @@
     int		len;
     int		cc;
     char_u	*name;
+    int		mustfree = FALSE;
 
     ++*arg;
     name = *arg;
@@ -5854,12 +5978,18 @@
 	{
 	    cc = name[len];
 	    name[len] = NUL;
-	    /* first try mch_getenv(), fast for normal environment vars */
-	    string = mch_getenv(name);
+	    /* first try vim_getenv(), fast for normal environment vars */
+	    string = vim_getenv(name, &mustfree);
 	    if (string != NULL && *string != NUL)
-		string = vim_strsave(string);
+	    {
+		if (!mustfree)
+		    string = vim_strsave(string);
+	    }
 	    else
 	    {
+		if (mustfree)
+		    vim_free(string);
+
 		/* next try expanding things like $VIM and ${HOME} */
 		string = expand_env_save(name - 1);
 		if (string != NULL && *string == '$')
@@ -5923,6 +6053,7 @@
     {"diff_filler",	1, 1, f_diff_filler},
     {"diff_hlID",	2, 2, f_diff_hlID},
     {"empty",		1, 1, f_empty},
+    {"errorlist",	0, 0, f_errorlist},
     {"escape",		2, 2, f_escape},
     {"eval",		1, 1, f_eval},
     {"eventhandler",	0, 0, f_eventhandler},
@@ -7421,6 +7552,36 @@
 }
 
 /*
+ * "errorlist()" function
+ */
+/*ARGSUSED*/
+    static void
+f_errorlist(argvars, rettv)
+    typval_T	*argvars;
+    typval_T	*rettv;
+{
+#ifdef FEAT_QUICKFIX
+    list_T	*l;
+#endif
+
+    rettv->vval.v_number = FALSE;
+#ifdef FEAT_QUICKFIX
+    l = list_alloc();
+    if (l != NULL)
+    {
+	if (get_errorlist(l) != FAIL)
+	{
+	    rettv->vval.v_list = l;
+	    rettv->v_type = VAR_LIST;
+	    ++l->lv_refcount;
+	}
+	else
+	    list_free(l);
+    }
+#endif
+}
+
+/*
  * "escape({string}, {chars})" function
  */
     static void
@@ -9212,6 +9373,9 @@
 #ifdef FEAT_PRINTER
 	"printer",
 #endif
+#ifdef FEAT_PROFILE
+	"profile",
+#endif
 #ifdef FEAT_QUICKFIX
 	"quickfix",
 #endif
@@ -12651,25 +12815,27 @@
     needle = get_tv_string(&argvars[1]);
     haystack = get_tv_string_buf(&argvars[0], buf);
     haystack_len = STRLEN(haystack);
+    if (argvars[2].v_type != VAR_UNKNOWN)
+    {
+	/* Third argument: upper limit for index */
+	end_idx = get_tv_number(&argvars[2]);
+	if (end_idx < 0)
+	{
+	    /* can never find a match */
+	    rettv->vval.v_number = -1;
+	    return;
+	}
+    }
+    else
+	end_idx = haystack_len;
+
     if (*needle == NUL)
+    {
 	/* Empty string matches past the end. */
-	lastmatch = haystack + haystack_len;
+	lastmatch = haystack + end_idx;
+    }
     else
     {
-	if (argvars[2].v_type != VAR_UNKNOWN)
-	{
-	    /* Third argument: upper limit for index */
-	    end_idx = get_tv_number(&argvars[2]);
-	    if (end_idx < 0)
-	    {
-		/* can never find a match */
-		rettv->vval.v_number = -1;
-		return;
-	    }
-	}
-	else
-	    end_idx = haystack_len;
-
 	for (rest = haystack; *rest != '\0'; ++rest)
 	{
 	    rest = (char_u *)strstr((char *)rest, (char *)needle);
@@ -15625,6 +15791,14 @@
     }
     fp->uf_args = newargs;
     fp->uf_lines = newlines;
+#ifdef FEAT_PROFILE
+    fp->uf_tml_count = NULL;
+    fp->uf_tml_total = NULL;
+    fp->uf_tml_self = NULL;
+    fp->uf_profiling = FALSE;
+    if (prof_def_func())
+	func_do_profile(fp);
+#endif
     fp->uf_varargs = varargs;
     fp->uf_flags = flags;
     fp->uf_calls = 0;
@@ -15912,6 +16086,92 @@
     return ASCII_ISLOWER(name[0]) && vim_strchr(name, ':') == NULL;
 }
 
+#if defined(FEAT_PROFILE) || defined(PROTO)
+/*
+ * Start profiling function "fp".
+ */
+    static void
+func_do_profile(fp)
+    ufunc_T	*fp;
+{
+    fp->uf_tm_count = 0;
+    profile_zero(&fp->uf_tm_self);
+    profile_zero(&fp->uf_tm_total);
+    if (fp->uf_tml_count == NULL)
+	fp->uf_tml_count = (int *)alloc_clear((unsigned)
+					 (sizeof(int) * fp->uf_lines.ga_len));
+    if (fp->uf_tml_total == NULL)
+	fp->uf_tml_total = (proftime_T *)alloc_clear((unsigned)
+				  (sizeof(proftime_T) * fp->uf_lines.ga_len));
+    if (fp->uf_tml_self == NULL)
+	fp->uf_tml_self = (proftime_T *)alloc_clear((unsigned)
+				  (sizeof(proftime_T) * fp->uf_lines.ga_len));
+    fp->uf_tml_idx = -1;
+    if (fp->uf_tml_count == NULL || fp->uf_tml_total == NULL
+						   || fp->uf_tml_self == NULL)
+	return;	    /* out of memory */
+
+    fp->uf_profiling = TRUE;
+}
+
+/*
+ * Dump the profiling results for all functions in file "fd".
+ */
+    void
+func_dump_profile(fd)
+    FILE    *fd;
+{
+    hashitem_T	*hi;
+    int		todo;
+    ufunc_T	*fp;
+    int		i;
+
+    todo = func_hashtab.ht_used;
+    for (hi = func_hashtab.ht_array; todo > 0; ++hi)
+    {
+	if (!HASHITEM_EMPTY(hi))
+	{
+	    --todo;
+	    fp = HI2UF(hi);
+	    if (fp->uf_profiling)
+	    {
+		if (fp->uf_name[0] == K_SPECIAL)
+		    fprintf(fd, "FUNCTION  <SNR>%s()\n", fp->uf_name + 3);
+		else
+		    fprintf(fd, "FUNCTION  %s()\n", fp->uf_name);
+		if (fp->uf_tm_count == 1)
+		    fprintf(fd, "Called 1 time\n");
+		else
+		    fprintf(fd, "Called %d times\n", fp->uf_tm_count);
+		fprintf(fd, "Total time: %s\n", profile_msg(&fp->uf_tm_total));
+		fprintf(fd, " Self time: %s\n", profile_msg(&fp->uf_tm_self));
+		fprintf(fd, "\n");
+		fprintf(fd, "count  total (s)   self (s)\n");
+
+		for (i = 0; i < fp->uf_lines.ga_len; ++i)
+		{
+		    if (fp->uf_tml_count[i] > 0)
+		    {
+			fprintf(fd, "%5d ", fp->uf_tml_count[i]);
+			if (profile_equal(&fp->uf_tml_total[i],
+							 &fp->uf_tml_self[i]))
+			    fprintf(fd, "           ");
+			else
+			    fprintf(fd, "%s ",
+					   profile_msg(&fp->uf_tml_total[i]));
+			fprintf(fd, "%s ", profile_msg(&fp->uf_tml_self[i]));
+		    }
+		    else
+			fprintf(fd, "                            ");
+		    fprintf(fd, "%s\n", FUNCLINE(fp, i));
+		}
+		fprintf(fd, "\n");
+	    }
+	}
+    }
+}
+#endif
+
 /*
  * If "name" has a package name try autoloading the script for it.
  * Return TRUE if a package was loaded.
@@ -16065,7 +16325,7 @@
     {
 	if (fp == NULL)
 	{
-	    EMSG2(_("E130: Undefined function: %s"), eap->arg);
+	    EMSG2(_(e_nofunc), eap->arg);
 	    return;
 	}
 	if (fp->uf_calls > 0)
@@ -16097,6 +16357,11 @@
     /* clear this function */
     ga_clear_strings(&(fp->uf_args));
     ga_clear_strings(&(fp->uf_lines));
+#ifdef FEAT_PROFILE
+    vim_free(fp->uf_tml_count);
+    vim_free(fp->uf_tml_total);
+    vim_free(fp->uf_tml_self);
+#endif
 
     /* remove the function from the function hashtable */
     hi = hash_find(&func_hashtab, UF2HIKEY(fp));
@@ -16178,6 +16443,9 @@
     int		ai;
     char_u	numbuf[NUMBUFLEN];
     char_u	*name;
+#ifdef FEAT_PROFILE
+    proftime_T	wait_start;
+#endif
 
     /* If depth of calling is getting too high, don't execute the function */
     if (depth >= p_mfd)
@@ -16341,6 +16609,22 @@
 	    --no_wait_return;
 	}
     }
+#ifdef FEAT_PROFILE
+    if (do_profiling)
+    {
+	if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL))
+	    func_do_profile(fp);
+	if (fp->uf_profiling
+		       || (save_fcp != NULL && &save_fcp->func->uf_profiling))
+	{
+	    ++fp->uf_tm_count;
+	    profile_start(&fp->uf_tm_start);
+	    profile_zero(&fp->uf_tm_children);
+	}
+	script_prof_save(&wait_start);
+    }
+#endif
+
     save_current_SID = current_SID;
     current_SID = fp->uf_script_ID;
     save_did_emsg = did_emsg;
@@ -16360,6 +16644,22 @@
 	rettv->vval.v_number = -1;
     }
 
+#ifdef FEAT_PROFILE
+    if (fp->uf_profiling || (save_fcp != NULL && &save_fcp->func->uf_profiling))
+    {
+	profile_end(&fp->uf_tm_start);
+	profile_sub_wait(&wait_start, &fp->uf_tm_start);
+	profile_add(&fp->uf_tm_total, &fp->uf_tm_start);
+	profile_add(&fp->uf_tm_self, &fp->uf_tm_start);
+	profile_sub(&fp->uf_tm_self, &fp->uf_tm_children);
+	if (save_fcp != NULL && &save_fcp->func->uf_profiling)
+	{
+	    profile_add(&save_fcp->func->uf_tm_children, &fp->uf_tm_start);
+	    profile_add(&save_fcp->func->uf_tml_children, &fp->uf_tm_start);
+	}
+    }
+#endif
+
     /* when being verbose, mention the return value */
     if (p_verbose >= 12)
     {
@@ -16398,6 +16698,10 @@
     sourcing_name = save_sourcing_name;
     sourcing_lnum = save_sourcing_lnum;
     current_SID = save_current_SID;
+#ifdef FEAT_PROFILE
+    if (do_profiling)
+	script_prof_restore(&wait_start);
+#endif
 
     if (p_verbose >= 12 && sourcing_name != NULL)
     {
@@ -16624,19 +16928,24 @@
     int	    indent;	    /* not used */
 {
     funccall_T	*fcp = (funccall_T *)cookie;
-    char_u		*retval;
-    garray_T		*gap;  /* growarray with function lines */
+    ufunc_T	*fp = fcp->func;
+    char_u	*retval;
+    garray_T	*gap;  /* growarray with function lines */
 
     /* 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->uf_name,
+	fcp->breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name,
 							       sourcing_lnum);
 	fcp->dbg_tick = debug_tick;
     }
+#ifdef FEAT_PROFILE
+    if (do_profiling)
+	func_line_end(cookie);
+#endif
 
-    gap = &fcp->func->uf_lines;
-    if ((fcp->func->uf_flags & FC_ABORT) && did_emsg && !aborted_in_try())
+    gap = &fp->uf_lines;
+    if ((fp->uf_flags & FC_ABORT) && did_emsg && !aborted_in_try())
 	retval = NULL;
     else if (fcp->returned || fcp->linenr >= gap->ga_len)
 	retval = NULL;
@@ -16644,14 +16953,18 @@
     {
 	retval = vim_strsave(((char_u **)(gap->ga_data))[fcp->linenr++]);
 	sourcing_lnum = fcp->linenr;
+#ifdef FEAT_PROFILE
+	if (do_profiling)
+	    func_line_start(cookie);
+#endif
     }
 
     /* Did we encounter a breakpoint? */
     if (fcp->breakpoint != 0 && fcp->breakpoint <= sourcing_lnum)
     {
-	dbg_breakpoint(fcp->func->uf_name, sourcing_lnum);
+	dbg_breakpoint(fp->uf_name, sourcing_lnum);
 	/* Find next breakpoint. */
-	fcp->breakpoint = dbg_find_breakpoint(FALSE, fcp->func->uf_name,
+	fcp->breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name,
 							       sourcing_lnum);
 	fcp->dbg_tick = debug_tick;
     }
@@ -16659,6 +16972,71 @@
     return retval;
 }
 
+#if defined(FEAT_PROFILE) || defined(PROTO)
+/*
+ * Called when starting to read a function line.
+ * "sourcing_lnum" must be correct!
+ * When skipping lines it may not actually be executed, but we won't find out
+ * until later and we need to store the time now.
+ */
+    void
+func_line_start(cookie)
+    void    *cookie;
+{
+    funccall_T	*fcp = (funccall_T *)cookie;
+    ufunc_T	*fp = fcp->func;
+
+    if (fp->uf_profiling && sourcing_lnum >= 1
+				      && sourcing_lnum <= fp->uf_lines.ga_len)
+    {
+	fp->uf_tml_idx = sourcing_lnum - 1;
+	fp->uf_tml_execed = FALSE;
+	profile_start(&fp->uf_tml_start);
+	profile_zero(&fp->uf_tml_children);
+	profile_get_wait(&fp->uf_tml_wait);
+    }
+}
+
+/*
+ * Called when actually executing a function line.
+ */
+    void
+func_line_exec(cookie)
+    void    *cookie;
+{
+    funccall_T	*fcp = (funccall_T *)cookie;
+    ufunc_T	*fp = fcp->func;
+
+    if (fp->uf_profiling && fp->uf_tml_idx >= 0)
+	fp->uf_tml_execed = TRUE;
+}
+
+/*
+ * Called when done with a function line.
+ */
+    void
+func_line_end(cookie)
+    void    *cookie;
+{
+    funccall_T	*fcp = (funccall_T *)cookie;
+    ufunc_T	*fp = fcp->func;
+
+    if (fp->uf_profiling && fp->uf_tml_idx >= 0)
+    {
+	if (fp->uf_tml_execed)
+	{
+	    ++fp->uf_tml_count[fp->uf_tml_idx];
+	    profile_end(&fp->uf_tml_start);
+	    profile_sub_wait(&fp->uf_tml_wait, &fp->uf_tml_start);
+	    profile_add(&fp->uf_tml_self[fp->uf_tml_idx], &fp->uf_tml_start);
+	    profile_add(&fp->uf_tml_total[fp->uf_tml_idx], &fp->uf_tml_start);
+	    profile_sub(&fp->uf_tml_self[fp->uf_tml_idx], &fp->uf_tml_children);
+	}
+	fp->uf_tml_idx = -1;
+    }
+}
+#endif
+
 /*
  * Return TRUE if the currently active function should be ended, because a
  * return was encountered or an error occured.  Used inside a ":while".
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 9ebf39c..419c198 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -30,7 +30,7 @@
 #ifdef FEAT_AUTOCMD
 static void delbuf_msg __ARGS((char_u *name));
 #endif
-static int do_sub_msg __ARGS((void));
+static int do_sub_msg __ARGS((int count_only));
 static int
 #ifdef __BORLANDC__
     _RTLENTRYF
@@ -3661,6 +3661,7 @@
     regmmatch_T regmatch;
     static int	do_all = FALSE;		/* do multiple substitutions per line */
     static int	do_ask = FALSE;		/* ask for confirmation */
+    static int	do_count = FALSE;	/* count only */
     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. */
@@ -3684,6 +3685,7 @@
     linenr_T	sub_firstlnum;		/* nr of first sub line */
     char_u	*sub_firstline;		/* allocated copy of first sub line */
     int		endcolumn = FALSE;	/* cursor in last column when done */
+    pos_T	old_cursor = curwin->w_cursor;
 
     cmd = eap->arg;
     if (!global_busy)
@@ -3822,6 +3824,8 @@
 	    do_all = !do_all;
 	else if (*cmd == 'c')
 	    do_ask = !do_ask;
+	else if (*cmd == 'n')
+	    do_count = TRUE;
 	else if (*cmd == 'e')
 	    do_error = !do_error;
 	else if (*cmd == 'r')	    /* use last used regexp */
@@ -3846,6 +3850,8 @@
 	    break;
 	++cmd;
     }
+    if (do_count)
+	do_ask = FALSE;
 
     /*
      * check for a trailing count
@@ -4030,8 +4036,25 @@
 		prev_matchcol = matchcol;
 
 		/*
-		 * 2. If do_ask is set, ask for confirmation.
+		 * 2. If do_count is set only increase the counter.
+		 *    If do_ask is set, ask for confirmation.
 		 */
+		if (do_count)
+		{
+		    /* For a multi-line match, put matchcol at the NUL at
+		     * the end of the line and set nmatch to one, so that
+		     * we continue looking for a match on the next line.
+		     * Avoids that ":s/\nB\@=//gc" get stuck. */
+		    if (nmatch > 1)
+		    {
+			matchcol = STRLEN(sub_firstline);
+			nmatch = 1;
+		    }
+		    sub_nsubs++;
+		    did_sub = TRUE;
+		    goto skip;
+		}
+
 		if (do_ask)
 		{
 		    /* change State to CONFIRM, so that the mouse works
@@ -4064,9 +4087,9 @@
 			    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)
+			    for (i = 0; i < (long)sc; ++i)
 				msg_putchar(' ');
-			    for ( ; i <= ec; ++i)
+			    for ( ; i <= (long)ec; ++i)
 				msg_putchar('^');
 
 			    resp = getexmodeline('?', NULL, 0);
@@ -4458,6 +4481,11 @@
 
 outofmem:
     vim_free(sub_firstline); /* may have to free allocated copy of the line */
+
+    /* ":s/pat//n" doesn't move the cursor */
+    if (do_count)
+	curwin->w_cursor = old_cursor;
+
     if (sub_nsubs)
     {
 	/* Set the '[ and '] marks. */
@@ -4471,7 +4499,7 @@
 		coladvance((colnr_T)MAXCOL);
 	    else
 		beginline(BL_WHITE | BL_FIX);
-	    if (!do_sub_msg() && do_ask)
+	    if (!do_sub_msg(do_count) && do_ask)
 		MSG("");
 	}
 	else
@@ -4498,7 +4526,8 @@
  * Return TRUE if a message was given.
  */
     static int
-do_sub_msg()
+do_sub_msg(count_only)
+    int	    count_only;		/* used 'n' flag for ":s" */
 {
     /*
      * Only report substitutions when:
@@ -4506,8 +4535,8 @@
      * - command was typed by user, or number of changed lines > 'report'
      * - giving messages is not disabled by 'lazyredraw'
      */
-    if (sub_nsubs > p_report
-	    && (KeyTyped || sub_nlines > 1 || p_report < 1)
+    if (((sub_nsubs > p_report && (KeyTyped || sub_nlines > 1 || p_report < 1))
+		|| count_only)
 	    && messaging())
     {
 	if (got_int)
@@ -4515,9 +4544,10 @@
 	else
 	    msg_buf[0] = NUL;
 	if (sub_nsubs == 1)
-	    STRCAT(msg_buf, _("1 substitution"));
+	    STRCAT(msg_buf, count_only ? _("1 match") : _("1 substitution"));
 	else
-	    sprintf((char *)msg_buf + STRLEN(msg_buf), _("%ld substitutions"),
+	    sprintf((char *)msg_buf + STRLEN(msg_buf),
+		    count_only ? _("%ld matches") : _("%ld substitutions"),
 								   sub_nsubs);
 	if (sub_nlines == 1)
 	    STRCAT(msg_buf, _(" on 1 line"));
@@ -4561,7 +4591,7 @@
     exarg_T	*eap;
 {
     linenr_T	lnum;		/* line number according to old situation */
-    int		ndone;
+    int		ndone = 0;
     int		type;		/* first char of cmd: 'v' or 'g' */
     char_u	*cmd;		/* command argument */
 
@@ -4633,10 +4663,29 @@
 	return;
     }
 
+#ifdef HAVE_SETJMP_H
+    /*
+     * Matching with a regexp may cause a very deep recursive call of
+     * regmatch().  Vim will crash when running out of stack space.
+     * Catch this here if the system supports it.
+     * It's a bit slow, thus do it outside of the loop.
+     */
+    mch_startjmp();
+    if (SETJMP(lc_jump_env) != 0)
+    {
+	mch_didjmp();
+# ifdef SIGHASARG
+	if (lc_signal != SIGINT)
+# endif
+	    EMSG(_(e_complex));
+	got_int = TRUE;
+	goto jumpend;
+    }
+#endif
+
     /*
      * pass 1: set marks for each (not) matching line
      */
-    ndone = 0;
     for (lnum = eap->line1; lnum <= eap->line2 && !got_int; ++lnum)
     {
 	/* a match on this line? */
@@ -4649,6 +4698,11 @@
 	line_breakcheck();
     }
 
+#ifdef HAVE_SETJMP_H
+jumpend:
+    mch_endjmp();
+#endif
+
     /*
      * pass 2: execute the command for each line that has been marked
      */
@@ -4719,7 +4773,7 @@
 
     /* If subsitutes done, report number of substitues, otherwise report
      * number of extra or deleted lines. */
-    if (!do_sub_msg())
+    if (!do_sub_msg(FALSE))
 	msgmore(curbuf->b_ml.ml_line_count - old_lcount);
 }
 
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 1628449..9b105fe 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -609,6 +609,8 @@
 			EXTRA|NOTRLCOM|CMDWIN),
 EX(CMD_promptrepl,	"promptrepl",	gui_mch_replace_dialog,
 			EXTRA|NOTRLCOM|CMDWIN),
+EX(CMD_profile,		"profile",	ex_profile,
+			BANG|EXTRA|TRLBAR|CMDWIN),
 EX(CMD_psearch,		"psearch",	ex_psearch,
 			BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA),
 EX(CMD_ptag,		"ptag",		ex_ptag,
@@ -850,9 +852,9 @@
 EX(CMD_view,		"view",		ex_edit,
 			BANG|FILE1|EDITCMD|ARGOPT|TRLBAR),
 EX(CMD_vimgrep,		"vimgrep",	ex_vimgrep,
-			NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+			BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
 EX(CMD_vimgrepadd,	"vimgrepadd",	ex_vimgrep,
-			NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
+			BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE),
 EX(CMD_viusage,		"viusage",	ex_viusage,
 			TRLBAR),
 EX(CMD_vmap,		"vmap",		ex_map,
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 6c8ece9..f1b8d2a 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -25,6 +25,54 @@
 
 static void	cmd_source __ARGS((char_u *fname, exarg_T *eap));
 
+#ifdef FEAT_EVAL
+/* Growarray to store the names of sourced scripts.
+ * For Unix also store the dev/ino, so that we don't have to stat() each
+ * script when going through the list. */
+typedef struct scriptitem_S
+{
+    char_u	*sn_name;
+# ifdef UNIX
+    int		sn_dev;
+    ino_t	sn_ino;
+# endif
+# ifdef FEAT_PROFILE
+    int		sn_prof_on;	/* TRUE when script is/was profiled */
+    int		sn_pr_force;	/* forceit: profile defined functions */
+    proftime_T	sn_pr_child;	/* time set when going into first child */
+    int		sn_pr_nest;	/* nesting for sn_pr_child */
+    /* profiling the script as a whole */
+    int		sn_pr_count;	/* nr of times sourced */
+    proftime_T	sn_pr_total;	/* time spend in script + children */
+    proftime_T	sn_pr_self;	/* time spend in script itself */
+    proftime_T	sn_pr_start;	/* time at script start */
+    proftime_T	sn_pr_children; /* time in children after script start */
+    /* profiling the script per line */
+    garray_T	sn_prl_ga;	/* things stored for every line */
+    proftime_T	sn_prl_start;	/* start time for current line */
+    proftime_T	sn_prl_children; /* time spent in children for this line */
+    proftime_T	sn_prl_wait;	/* wait start time for current line */
+    int		sn_prl_idx;	/* index of line being timed; -1 if none */
+    int		sn_prl_execed;	/* line being timed was executed */
+# endif
+} scriptitem_T;
+
+static garray_T script_items = {0, 0, sizeof(scriptitem_T), 4, NULL};
+#define SCRIPT_ITEM(id) (((scriptitem_T *)script_items.ga_data)[(id) - 1])
+
+# ifdef FEAT_PROFILE
+/* Struct used in sn_prl_ga for every line of a script. */
+typedef struct sn_prl_S
+{
+    int		snp_count;	/* nr of times line was executed */
+    proftime_T	sn_prl_total;	/* time spend in a line + children */
+    proftime_T	sn_prl_self;	/* time spend in a line itself */
+} sn_prl_T;
+
+#  define PRL_ITEM(si, idx)	(((sn_prl_T *)(si)->sn_prl_ga.ga_data)[(idx)])
+# endif
+#endif
+
 #if defined(FEAT_EVAL) || defined(PROTO)
 static int debug_greedy = FALSE;	/* batch mode debugging: don't save
 					   and restore typeahead. */
@@ -352,41 +400,54 @@
     char_u	*dbg_name;	/* function or file name */
     regprog_T	*dbg_prog;	/* regexp program */
     linenr_T	dbg_lnum;	/* line number in function or file */
+    int		dbg_forceit;	/* ! used */
 };
 
 static garray_T dbg_breakp = {0, 0, sizeof(struct debuggy), 4, NULL};
-#define BREAKP(idx)	(((struct debuggy *)dbg_breakp.ga_data)[idx])
+#define BREAKP(idx)		(((struct debuggy *)dbg_breakp.ga_data)[idx])
+#define DEBUGGY(gap, idx)	(((struct debuggy *)gap->ga_data)[idx])
 static int last_breakp = 0;	/* nr of last defined breakpoint */
 
+#ifdef FEAT_PROFILE
+/* Profiling uses file and func names similar to breakpoints. */
+static garray_T prof_ga = {0, 0, sizeof(struct debuggy), 4, NULL};
+#endif
 #define DBG_FUNC	1
 #define DBG_FILE	2
 
-static int dbg_parsearg __ARGS((char_u *arg));
+static int dbg_parsearg __ARGS((char_u *arg, garray_T *gap));
+static linenr_T debuggy_find __ARGS((int file,char_u *fname, linenr_T after, garray_T *gap, int *fp));
 
 /*
- * Parse the arguments of ":breakadd" or ":breakdel" and put them in the entry
- * just after the last one in dbg_breakp.  Note that "dbg_name" is allocated.
+ * Parse the arguments of ":profile", ":breakadd" or ":breakdel" and put them
+ * in the entry just after the last one in dbg_breakp.  Note that "dbg_name"
+ * is allocated.
  * Returns FAIL for failure.
  */
     static int
-dbg_parsearg(arg)
+dbg_parsearg(arg, gap)
     char_u	*arg;
+    garray_T	*gap;	    /* either &dbg_breakp or &prof_ga */
 {
     char_u	*p = arg;
     char_u	*q;
     struct debuggy *bp;
     int		here = FALSE;
 
-    if (ga_grow(&dbg_breakp, 1) == FAIL)
+    if (ga_grow(gap, 1) == FAIL)
 	return FAIL;
-    bp = &BREAKP(dbg_breakp.ga_len);
+    bp = &DEBUGGY(gap, gap->ga_len);
 
     /* Find "func" or "file". */
     if (STRNCMP(p, "func", 4) == 0)
 	bp->dbg_type = DBG_FUNC;
     else if (STRNCMP(p, "file", 4) == 0)
 	bp->dbg_type = DBG_FILE;
-    else if (STRNCMP(p, "here", 4) == 0)
+    else if (
+#ifdef FEAT_PROFILE
+	    gap != &prof_ga &&
+#endif
+	    STRNCMP(p, "here", 4) == 0)
     {
 	if (curbuf->b_ffname == NULL)
 	{
@@ -406,7 +467,11 @@
     /* Find optional line number. */
     if (here)
 	bp->dbg_lnum = curwin->w_cursor.lnum;
-    else if (VIM_ISDIGIT(*p))
+    else if (
+#ifdef FEAT_PROFILE
+	    gap != &prof_ga &&
+#endif
+	    VIM_ISDIGIT(*p))
     {
 	bp->dbg_lnum = getdigits(&p);
 	p = skipwhite(p);
@@ -474,10 +539,19 @@
 {
     struct debuggy *bp;
     char_u	*pat;
+    garray_T	*gap;
 
-    if (dbg_parsearg(eap->arg) == OK)
+    gap = &dbg_breakp;
+#ifdef FEAT_PROFILE
+    if (eap->cmdidx == CMD_profile)
+	gap = &prof_ga;
+#endif
+
+    if (dbg_parsearg(eap->arg, gap) == OK)
     {
-	bp = &BREAKP(dbg_breakp.ga_len);
+	bp = &DEBUGGY(gap, gap->ga_len);
+	bp->dbg_forceit = eap->forceit;
+
 	pat = file_pat_to_reg_pat(bp->dbg_name, NULL, NULL, FALSE);
 	if (pat != NULL)
 	{
@@ -490,8 +564,14 @@
 	{
 	    if (bp->dbg_lnum == 0)	/* default line number is 1 */
 		bp->dbg_lnum = 1;
-	    BREAKP(dbg_breakp.ga_len++).dbg_nr = ++last_breakp;
-	    ++debug_tick;
+#ifdef FEAT_PROFILE
+	    if (eap->cmdidx != CMD_profile)
+#endif
+	    {
+		DEBUGGY(gap, gap->ga_len).dbg_nr = ++last_breakp;
+		++debug_tick;
+	    }
+	    ++gap->ga_len;
 	}
     }
 }
@@ -536,7 +616,7 @@
     else
     {
 	/* ":breakdel {func|file} [lnum] {name}" */
-	if (dbg_parsearg(eap->arg) == FAIL)
+	if (dbg_parsearg(eap->arg, &dbg_breakp) == FAIL)
 	    return;
 	bp = &BREAKP(dbg_breakp.ga_len);
 	for (i = 0; i < dbg_breakp.ga_len; ++i)
@@ -605,6 +685,35 @@
     char_u	*fname;	    /* file or function name */
     linenr_T	after;	    /* after this line number */
 {
+    return debuggy_find(file, fname, after, &dbg_breakp, NULL);
+}
+
+#if defined(FEAT_PROFILE) || defined(PROTO)
+/*
+ * Return TRUE if profiling is on for a function or sourced file.
+ */
+    int
+has_profiling(file, fname, fp)
+    int		file;	    /* TRUE for a file, FALSE for a function */
+    char_u	*fname;	    /* file or function name */
+    int		*fp;	    /* return: forceit */
+{
+    return (debuggy_find(file, fname, (linenr_T)0, &prof_ga, fp)
+							      != (linenr_T)0);
+}
+#endif
+
+/*
+ * Common code for dbg_find_breakpoint() and has_profiling().
+ */
+    static linenr_T
+debuggy_find(file, fname, after, gap, fp)
+    int		file;	    /* TRUE for a file, FALSE for a function */
+    char_u	*fname;	    /* file or function name */
+    linenr_T	after;	    /* after this line number */
+    garray_T	*gap;	    /* either &dbg_breakp or &prof_ga */
+    int		*fp;	    /* if not NULL: return forceit */
+{
     struct debuggy *bp;
     int		i;
     linenr_T	lnum = 0;
@@ -612,6 +721,10 @@
     char_u	*name = fname;
     int		prev_got_int;
 
+    /* Return quickly when there are no breakpoints. */
+    if (gap->ga_len == 0)
+	return (linenr_T)0;
+
     /* Replace K_SNR in function name with "<SNR>". */
     if (!file && fname[0] == K_SPECIAL)
     {
@@ -625,26 +738,32 @@
 	}
     }
 
-    for (i = 0; i < dbg_breakp.ga_len; ++i)
+    for (i = 0; i < gap->ga_len; ++i)
     {
-	/* skip entries that are not useful or are for a line that is beyond
-	 * an already found breakpoint */
-	bp = &BREAKP(i);
-	if ((bp->dbg_type == DBG_FILE) == file
-		&& bp->dbg_lnum > after
-		&& (lnum == 0 || bp->dbg_lnum < lnum))
+	/* Skip entries that are not useful or are for a line that is beyond
+	 * an already found breakpoint. */
+	bp = &DEBUGGY(gap, i);
+	if (((bp->dbg_type == DBG_FILE) == file && (
+#ifdef FEAT_PROFILE
+		gap == &prof_ga ||
+#endif
+		(bp->dbg_lnum > after && (lnum == 0 || bp->dbg_lnum < lnum)))))
 	{
 	    regmatch.regprog = bp->dbg_prog;
 	    regmatch.rm_ic = FALSE;
 	    /*
-	     * Save the value of got_int and reset it.  We don't want a previous
-	     * interruption cancel matching, only hitting CTRL-C while matching
-	     * should abort it.
+	     * Save the value of got_int and reset it.  We don't want a
+	     * previous interruption cancel matching, only hitting CTRL-C
+	     * while matching should abort it.
 	     */
 	    prev_got_int = got_int;
 	    got_int = FALSE;
 	    if (vim_regexec(&regmatch, name, (colnr_T)0))
+	    {
 		lnum = bp->dbg_lnum;
+		if (fp != NULL)
+		    *fp = bp->dbg_forceit;
+	    }
 	    got_int |= prev_got_int;
 	}
     }
@@ -666,6 +785,339 @@
     debug_breakpoint_name = name;
     debug_breakpoint_lnum = lnum;
 }
+
+
+# if defined(FEAT_PROFILE) || defined(PROTO)
+/*
+ * Functions for profiling.
+ */
+static void script_do_profile __ARGS((scriptitem_T *si));
+static void script_dump_profile __ARGS((FILE *fd));
+static proftime_T prof_wait_time;
+
+/*
+ * Set the time in "tm" to zero.
+ */
+    void
+profile_zero(tm)
+    proftime_T *tm;
+{
+    tm->tv_usec = 0;
+    tm->tv_sec = 0;
+}
+
+/*
+ * Store the current time in "tm".
+ */
+    void
+profile_start(tm)
+    proftime_T *tm;
+{
+    gettimeofday(tm, NULL);
+}
+
+/*
+ * Compute the elapsed time from "tm" till now and store in "tm".
+ */
+    void
+profile_end(tm)
+    proftime_T *tm;
+{
+    proftime_T now;
+
+    gettimeofday(&now, NULL);
+    tm->tv_usec = now.tv_usec - tm->tv_usec;
+    tm->tv_sec = now.tv_sec - tm->tv_sec;
+    if (tm->tv_usec < 0)
+    {
+	tm->tv_usec += 1000000;
+	--tm->tv_sec;
+    }
+}
+
+/*
+ * Subtract the time "tm2" from "tm".
+ */
+    void
+profile_sub(tm, tm2)
+    proftime_T *tm, *tm2;
+{
+    tm->tv_usec -= tm2->tv_usec;
+    tm->tv_sec -= tm2->tv_sec;
+    if (tm->tv_usec < 0)
+    {
+	tm->tv_usec += 1000000;
+	--tm->tv_sec;
+    }
+}
+
+/*
+ * Add the time "tm2" to "tm".
+ */
+    void
+profile_add(tm, tm2)
+    proftime_T *tm, *tm2;
+{
+    tm->tv_usec += tm2->tv_usec;
+    tm->tv_sec += tm2->tv_sec;
+    if (tm->tv_usec >= 1000000)
+    {
+	tm->tv_usec -= 1000000;
+	++tm->tv_sec;
+    }
+}
+
+/*
+ * Get the current waittime.
+ */
+    void
+profile_get_wait(tm)
+    proftime_T *tm;
+{
+    *tm = prof_wait_time;
+}
+
+/*
+ * Subtract the passed waittime since "tm" from "tma".
+ */
+    void
+profile_sub_wait(tm, tma)
+    proftime_T *tm, *tma;
+{
+    proftime_T tm3 = prof_wait_time;
+
+    profile_sub(&tm3, tm);
+    profile_sub(tma, &tm3);
+}
+
+/*
+ * Return TRUE if "tm1" and "tm2" are equal.
+ */
+    int
+profile_equal(tm1, tm2)
+    proftime_T *tm1, *tm2;
+{
+    return (tm1->tv_usec == tm2->tv_usec && tm1->tv_sec == tm2->tv_sec);
+}
+
+/*
+ * Return a string that represents a time.
+ * Uses a static buffer!
+ */
+    char *
+profile_msg(tm)
+    proftime_T *tm;
+{
+    static char buf[50];
+
+    sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec);
+    return buf;
+}
+
+static char_u	*profile_fname = NULL;
+
+/*
+ * ":profile cmd args"
+ */
+    void
+ex_profile(eap)
+    exarg_T	*eap;
+{
+    char_u	*e;
+    int		len;
+
+    e = skiptowhite(eap->arg);
+    len = e - eap->arg;
+    e = skipwhite(e);
+
+    if (len == 5 && STRNCMP(eap->arg, "start", 5) == 0 && *e != NUL)
+    {
+	vim_free(profile_fname);
+	profile_fname = vim_strsave(e);
+	do_profiling = TRUE;
+	profile_zero(&prof_wait_time);
+	set_vim_var_nr(VV_PROFILING, 1L);
+    }
+    else if (!do_profiling)
+	EMSG(_("E750: First use :profile start <fname>"));
+    else
+    {
+	/* The rest is similar to ":breakadd". */
+	ex_breakadd(eap);
+    }
+}
+
+/*
+ * Dump the profiling info.
+ */
+    void
+profile_dump()
+{
+    FILE	*fd;
+
+    if (profile_fname != NULL)
+    {
+	fd = fopen((char *)profile_fname, "w");
+	if (fd == NULL)
+	    EMSG2(_(e_notopen), profile_fname);
+	else
+	{
+	    func_dump_profile(fd);
+	    script_dump_profile(fd);
+	    fclose(fd);
+	}
+    }
+}
+
+/*
+ * Start profiling script "fp".
+ */
+    static void
+script_do_profile(si)
+    scriptitem_T    *si;
+{
+    si->sn_pr_count = 0;
+    profile_zero(&si->sn_pr_total);
+    profile_zero(&si->sn_pr_self);
+
+    ga_init2(&si->sn_prl_ga, sizeof(sn_prl_T), 100);
+    si->sn_prl_idx = -1;
+    si->sn_prof_on = TRUE;
+    si->sn_pr_nest = 0;
+}
+
+/*
+ * save time when starting to invoke another script or function.
+ */
+    void
+script_prof_save(tm)
+    proftime_T	*tm;	    /* place to store wait time */
+{
+    scriptitem_T    *si;
+
+    if (current_SID > 0 && current_SID <= script_items.ga_len)
+    {
+	si = &SCRIPT_ITEM(current_SID);
+	if (si->sn_prof_on && si->sn_pr_nest++ == 0)
+	    profile_start(&si->sn_pr_child);
+    }
+    profile_get_wait(tm);
+}
+
+/*
+ * Count time spent in children after invoking another script or function.
+ */
+    void
+script_prof_restore(tm)
+    proftime_T	*tm;
+{
+    scriptitem_T    *si;
+
+    if (current_SID > 0 && current_SID <= script_items.ga_len)
+    {
+	si = &SCRIPT_ITEM(current_SID);
+	if (si->sn_prof_on && --si->sn_pr_nest == 0)
+	{
+	    profile_end(&si->sn_pr_child);
+	    profile_sub_wait(tm, &si->sn_pr_child); /* don't count wait time */
+	    profile_add(&si->sn_pr_children, &si->sn_pr_child);
+	    profile_add(&si->sn_prl_children, &si->sn_pr_child);
+	}
+    }
+}
+
+static proftime_T inchar_time;
+
+/*
+ * Called when starting to wait for the user to type a character.
+ */
+    void
+prof_inchar_enter()
+{
+    profile_start(&inchar_time);
+}
+
+/*
+ * Called when finished waiting for the user to type a character.
+ */
+    void
+prof_inchar_exit()
+{
+    profile_end(&inchar_time);
+    profile_add(&prof_wait_time, &inchar_time);
+}
+
+/*
+ * Dump the profiling results for all scripts in file "fd".
+ */
+    static void
+script_dump_profile(fd)
+    FILE    *fd;
+{
+    int		    id;
+    scriptitem_T    *si;
+    int		    i;
+    FILE	    *sfd;
+    sn_prl_T	    *pp;
+
+    for (id = 1; id <= script_items.ga_len; ++id)
+    {
+	si = &SCRIPT_ITEM(id);
+	if (si->sn_prof_on)
+	{
+	    fprintf(fd, "SCRIPT  %s\n", si->sn_name);
+	    if (si->sn_pr_count == 1)
+		fprintf(fd, "Sourced 1 time\n");
+	    else
+		fprintf(fd, "Sourced %d times\n", si->sn_pr_count);
+	    fprintf(fd, "Total time: %s\n", profile_msg(&si->sn_pr_total));
+	    fprintf(fd, " Self time: %s\n", profile_msg(&si->sn_pr_self));
+	    fprintf(fd, "\n");
+	    fprintf(fd, "count  total (s)   self (s)\n");
+
+	    sfd = fopen((char *)si->sn_name, "r");
+	    if (sfd == NULL)
+		fprintf(fd, "Cannot open file!\n");
+	    else
+	    {
+		for (i = 0; i < si->sn_prl_ga.ga_len; ++i)
+		{
+		    if (vim_fgets(IObuff, IOSIZE, sfd))
+			break;
+		    pp = &PRL_ITEM(si, i);
+		    if (pp->snp_count > 0)
+		    {
+			fprintf(fd, "%5d ", pp->snp_count);
+			if (profile_equal(&pp->sn_prl_total, &pp->sn_prl_self))
+			    fprintf(fd, "           ");
+			else
+			    fprintf(fd, "%s ", profile_msg(&pp->sn_prl_total));
+			fprintf(fd, "%s ", profile_msg(&pp->sn_prl_self));
+		    }
+		    else
+			fprintf(fd, "                            ");
+		    fprintf(fd, "%s", IObuff);
+		}
+		fclose(sfd);
+	    }
+	    fprintf(fd, "\n");
+	}
+    }
+}
+
+/*
+ * Return TRUE when a function defined in the current script should be
+ * profiled.
+ */
+    int
+prof_def_func()
+{
+    scriptitem_T    *si = &SCRIPT_ITEM(current_SID);
+
+    return si->sn_pr_force;
+}
+
+# endif
 #endif
 
 /*
@@ -2116,24 +2568,6 @@
 
 static char_u *get_one_sourceline __ARGS((struct source_cookie *sp));
 
-#ifdef FEAT_EVAL
-/* Growarray to store the names of sourced scripts.
- * For Unix also store the dev/ino, so that we don't have to stat() each
- * script when going through the list. */
-struct scriptstuff
-{
-    char_u	*name;
-# ifdef UNIX
-    int		dev;
-    ino_t	ino;
-# endif
-};
-static garray_T script_names = {0, 0, sizeof(struct scriptstuff), 4, NULL};
-#define SCRIPT_NAME(id) (((struct scriptstuff *)script_names.ga_data)[(id) - 1].name)
-#define SCRIPT_DEV(id) (((struct scriptstuff *)script_names.ga_data)[(id) - 1].dev)
-#define SCRIPT_INO(id) (((struct scriptstuff *)script_names.ga_data)[(id) - 1].ino)
-#endif
-
 #if defined(WIN32) && defined(FEAT_CSCOPE)
 static FILE *fopen_noinh_readbin __ARGS((char *filename));
 
@@ -2177,6 +2611,7 @@
     static scid_T	    last_current_SID = 0;
     void		    *save_funccalp;
     int			    save_debug_break_level = debug_break_level;
+    scriptitem_T	    *si = NULL;
 # ifdef UNIX
     struct stat		    st;
     int			    stat_ok;
@@ -2186,6 +2621,9 @@
     struct timeval	    tv_rel;
     struct timeval	    tv_start;
 #endif
+#ifdef FEAT_PROFILE
+    proftime_T		    wait_start;
+#endif
 
 #ifdef RISCOS
     p = mch_munge_fname(fname);
@@ -2327,6 +2765,15 @@
 #endif
 
 #ifdef FEAT_EVAL
+# ifdef FEAT_PROFILE
+    if (do_profiling)
+	prof_child_enter(&wait_start);		/* entering a child now */
+# endif
+
+    /* Don't use local function variables, if called from a function.
+     * Also starts profiling timer for nested script. */
+    save_funccalp = save_funccal();
+
     /*
      * Check if this script was sourced before to finds its SID.
      * If it's new, generate a new SID.
@@ -2335,48 +2782,72 @@
 # ifdef UNIX
     stat_ok = (mch_stat((char *)fname_exp, &st) >= 0);
 # endif
-    for (current_SID = script_names.ga_len; current_SID > 0; --current_SID)
-	if (SCRIPT_NAME(current_SID) != NULL
+    for (current_SID = script_items.ga_len; current_SID > 0; --current_SID)
+    {
+	si = &SCRIPT_ITEM(current_SID);
+	if (si->sn_name != NULL
 		&& (
 # ifdef UNIX
 		    /* Compare dev/ino when possible, it catches symbolic
 		     * links.  Also compare file names, the inode may change
 		     * when the file was edited. */
-		    ((stat_ok && SCRIPT_DEV(current_SID) != -1)
-			&& (SCRIPT_DEV(current_SID) == st.st_dev
-			    && SCRIPT_INO(current_SID) == st.st_ino)) ||
+		    ((stat_ok && si->sn_dev != -1)
+			&& (si->sn_dev == st.st_dev
+			    && si->sn_ino == st.st_ino)) ||
 # endif
-		fnamecmp(SCRIPT_NAME(current_SID), fname_exp) == 0))
+		fnamecmp(si->sn_name, fname_exp) == 0))
 	    break;
+    }
     if (current_SID == 0)
     {
 	current_SID = ++last_current_SID;
-	if (ga_grow(&script_names, (int)(current_SID - script_names.ga_len))
-									== OK)
+	if (ga_grow(&script_items, (int)(current_SID - script_items.ga_len))
+								      == FAIL)
+	    goto almosttheend;
+	while (script_items.ga_len < current_SID)
 	{
-	    while (script_names.ga_len < current_SID)
-	    {
-		SCRIPT_NAME(script_names.ga_len + 1) = NULL;
-		++script_names.ga_len;
-	    }
-	    SCRIPT_NAME(current_SID) = fname_exp;
-# ifdef UNIX
-	    if (stat_ok)
-	    {
-		SCRIPT_DEV(current_SID) = st.st_dev;
-		SCRIPT_INO(current_SID) = st.st_ino;
-	    }
-	    else
-		SCRIPT_DEV(current_SID) = -1;
+	    ++script_items.ga_len;
+	    SCRIPT_ITEM(script_items.ga_len).sn_name = NULL;
+# ifdef FEAT_PROFILE
+	    SCRIPT_ITEM(script_items.ga_len).sn_prof_on = FALSE;
 # endif
-	    fname_exp = NULL;
 	}
+	si = &SCRIPT_ITEM(current_SID);
+	si->sn_name = fname_exp;
+	fname_exp = NULL;
+# ifdef UNIX
+	if (stat_ok)
+	{
+	    si->sn_dev = st.st_dev;
+	    si->sn_ino = st.st_ino;
+	}
+	else
+	    si->sn_dev = -1;
+# endif
+
 	/* Allocate the local script variables to use for this script. */
 	new_script_vars(current_SID);
     }
 
-    /* Don't use local function variables, if called from a function */
-    save_funccalp = save_funccal();
+# ifdef FEAT_PROFILE
+    if (do_profiling)
+    {
+	int	forceit;
+
+	/* Check if we do profiling for this script. */
+	if (!si->sn_prof_on && has_profiling(TRUE, si->sn_name, &forceit))
+	{
+	    script_do_profile(si);
+	    si->sn_pr_force = forceit;
+	}
+	if (si->sn_prof_on)
+	{
+	    ++si->sn_pr_count;
+	    profile_start(&si->sn_pr_start);
+	    profile_zero(&si->sn_pr_children);
+	}
+    }
+# endif
 #endif
 
     /*
@@ -2386,20 +2857,27 @@
 				     DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_REPEAT);
 
     retval = OK;
-    fclose(cookie.fp);
-    vim_free(cookie.nextline);
-#ifdef FEAT_MBYTE
-    convert_setup(&cookie.conv, NULL, NULL);
+
+#ifdef FEAT_PROFILE
+    if (do_profiling)
+    {
+	/* Get "si" again, "script_items" may have been reallocated. */
+	si = &SCRIPT_ITEM(current_SID);
+	if (si->sn_prof_on)
+	{
+	    profile_end(&si->sn_pr_start);
+	    profile_sub_wait(&wait_start, &si->sn_pr_start);
+	    profile_add(&si->sn_pr_total, &si->sn_pr_start);
+	    profile_add(&si->sn_pr_self, &si->sn_pr_start);
+	    profile_sub(&si->sn_pr_self, &si->sn_pr_children);
+	}
+    }
 #endif
 
     if (got_int)
 	EMSG(_(e_interr));
     sourcing_name = save_sourcing_name;
     sourcing_lnum = save_sourcing_lnum;
-#ifdef FEAT_EVAL
-    current_SID = save_current_SID;
-    restore_funccal(save_funccalp);
-#endif
     if (p_verbose > 1)
     {
 	msg_str((char_u *)_("finished sourcing %s"), fname);
@@ -2426,6 +2904,21 @@
 	++debug_break_level;
 #endif
 
+#ifdef FEAT_EVAL
+almosttheend:
+    current_SID = save_current_SID;
+    restore_funccal(save_funccalp);
+# ifdef FEAT_PROFILE
+    if (do_profiling)
+	prof_child_exit(&wait_start);		/* leaving a child now */
+# endif
+#endif
+    fclose(cookie.fp);
+    vim_free(cookie.nextline);
+#ifdef FEAT_MBYTE
+    convert_setup(&cookie.conv, NULL, NULL);
+#endif
+
 theend:
     vim_free(fname_exp);
     return retval;
@@ -2442,9 +2935,9 @@
 {
     int i;
 
-    for (i = 1; i <= script_names.ga_len && !got_int; ++i)
-	if (SCRIPT_NAME(i) != NULL)
-	    smsg((char_u *)"%3d: %s", i, SCRIPT_NAME(i));
+    for (i = 1; i <= script_items.ga_len && !got_int; ++i)
+	if (SCRIPT_ITEM(i).sn_name != NULL)
+	    smsg((char_u *)"%3d: %s", i, SCRIPT_ITEM(i).sn_name);
 }
 
 # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
@@ -2456,9 +2949,9 @@
 {
     int i;
 
-    for (i = 1; i <= script_names.ga_len; ++i)
-	if (SCRIPT_NAME(i) != NULL)
-	    slash_adjust(SCRIPT_NAME(i));
+    for (i = 1; i <= script_items.ga_len; ++i)
+	if (SCRIPT_ITEM(i).sn_name != NULL)
+	    slash_adjust(SCRIPT_ITEM(i).sn_name);
 }
 # endif
 
@@ -2477,8 +2970,9 @@
 	return (char_u *)"-c argument";
     if (id == SID_ENV)
 	return (char_u *)"environment variable";
-    return SCRIPT_NAME(id);
+    return SCRIPT_ITEM(id).sn_name;
 }
+
 #endif
 
 #if defined(USE_CR) || defined(PROTO)
@@ -2565,6 +3059,10 @@
 	sp->breakpoint = dbg_find_breakpoint(TRUE, sp->fname, sourcing_lnum);
 	sp->dbg_tick = debug_tick;
     }
+# ifdef FEAT_PROFILE
+    if (do_profiling)
+	script_line_end();
+# endif
 #endif
     /*
      * Get current line.  If there is a read-ahead line, use it, otherwise get
@@ -2579,6 +3077,10 @@
 	line = sp->nextline;
 	sp->nextline = NULL;
 	++sourcing_lnum;
+#ifdef FEAT_PROFILE
+	if (do_profiling)
+	    script_line_start();
+#endif
     }
 
     /* Only concatenate lines starting with a \ when 'cpoptions' doesn't
@@ -2783,6 +3285,90 @@
     return NULL;
 }
 
+#if defined(FEAT_PROFILE) || defined(PROTO)
+/*
+ * Called when starting to read a script line.
+ * "sourcing_lnum" must be correct!
+ * When skipping lines it may not actually be executed, but we won't find out
+ * until later and we need to store the time now.
+ */
+    void
+script_line_start()
+{
+    scriptitem_T    *si;
+    sn_prl_T	    *pp;
+
+    if (current_SID <= 0 || current_SID > script_items.ga_len)
+	return;
+    si = &SCRIPT_ITEM(current_SID);
+    if (si->sn_prof_on && sourcing_lnum >= 1)
+    {
+	/* Grow the array before starting the timer, so that the time spend
+	 * here isn't counted. */
+	ga_grow(&si->sn_prl_ga, (int)(sourcing_lnum - si->sn_prl_ga.ga_len));
+	si->sn_prl_idx = sourcing_lnum - 1;
+	while (si->sn_prl_ga.ga_len <= si->sn_prl_idx
+		&& si->sn_prl_ga.ga_len < si->sn_prl_ga.ga_maxlen)
+	{
+	    /* Zero counters for a line that was not used before. */
+	    pp = &PRL_ITEM(si, si->sn_prl_ga.ga_len);
+	    pp->snp_count = 0;
+	    profile_zero(&pp->sn_prl_total);
+	    profile_zero(&pp->sn_prl_self);
+	    ++si->sn_prl_ga.ga_len;
+	}
+	si->sn_prl_execed = FALSE;
+	profile_start(&si->sn_prl_start);
+	profile_zero(&si->sn_prl_children);
+	profile_get_wait(&si->sn_prl_wait);
+    }
+}
+
+/*
+ * Called when actually executing a function line.
+ */
+    void
+script_line_exec()
+{
+    scriptitem_T    *si;
+
+    if (current_SID <= 0 || current_SID > script_items.ga_len)
+	return;
+    si = &SCRIPT_ITEM(current_SID);
+    if (si->sn_prof_on && si->sn_prl_idx >= 0)
+	si->sn_prl_execed = TRUE;
+}
+
+/*
+ * Called when done with a function line.
+ */
+    void
+script_line_end()
+{
+    scriptitem_T    *si;
+    sn_prl_T	    *pp;
+
+    if (current_SID <= 0 || current_SID > script_items.ga_len)
+	return;
+    si = &SCRIPT_ITEM(current_SID);
+    if (si->sn_prof_on && si->sn_prl_idx >= 0
+				     && si->sn_prl_idx < si->sn_prl_ga.ga_len)
+    {
+	if (si->sn_prl_execed)
+	{
+	    pp = &PRL_ITEM(si, si->sn_prl_idx);
+	    ++pp->snp_count;
+	    profile_end(&si->sn_prl_start);
+	    profile_sub_wait(&si->sn_prl_wait, &si->sn_prl_start);
+	    profile_add(&pp->sn_prl_self, &si->sn_prl_start);
+	    profile_add(&pp->sn_prl_total, &si->sn_prl_start);
+	    profile_sub(&pp->sn_prl_self, &si->sn_prl_children);
+	}
+	si->sn_prl_idx = -1;
+    }
+}
+#endif
+
 /*
  * ":scriptencoding": Set encoding conversion for a sourced script.
  * Without the multi-byte feature it's simply ignored.
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 2bb5aeb..22e2018 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -434,6 +434,10 @@
 # define ex_changes		ex_ni
 #endif
 
+#ifndef FEAT_PROFILE
+# define ex_profile		ex_ni
+#endif
+
 /*
  * Declare cmdnames[].
  */
@@ -728,6 +732,7 @@
     void	*cmd_cookie;
     struct loop_cookie cmd_loop_cookie;
     void	*real_cookie;
+    int		getline_is_func;
 #else
 # define cmd_getline getline
 # define cmd_cookie cookie
@@ -772,13 +777,13 @@
     real_cookie = getline_cookie(getline, cookie);
 
     /* Inside a function use a higher nesting level. */
-    if (getline_equal(getline, cookie, get_func_line)
-			       && ex_nesting_level == func_level(real_cookie))
+    getline_is_func = getline_equal(getline, cookie, get_func_line);
+    if (getline_is_func && ex_nesting_level == func_level(real_cookie))
 	++ex_nesting_level;
 
     /* Get the function or script name and the address where the next breakpoint
      * line and the debug tick for a function or script are stored. */
-    if (getline_equal(getline, cookie, get_func_line))
+    if (getline_is_func)
     {
 	fname = func_name(real_cookie);
 	breakpoint = func_breakpoint(real_cookie);
@@ -837,13 +842,16 @@
     next_cmdline = cmdline;
     do
     {
+#ifdef FEAT_EVAL
+	getline_is_func = getline_equal(getline, cookie, get_func_line);
+#endif
+
 	/* stop skipping cmds for an error msg after all endif/while/for */
 	if (next_cmdline == NULL
 #ifdef FEAT_EVAL
 		&& !force_abort
 		&& cstack.cs_idx < 0
-		&& !(getline_equal(getline, cookie, get_func_line)
-					       && func_has_abort(real_cookie))
+		&& !(getline_is_func && func_has_abort(real_cookie))
 #endif
 							)
 	    did_emsg = FALSE;
@@ -865,12 +873,23 @@
 
 	    /* Check if a function has returned or, unless it has an unclosed
 	     * try conditional, aborted. */
-	    if (getline_equal(getline, cookie, get_func_line)
-					       && func_has_ended(real_cookie))
+	    if (getline_is_func)
 	    {
-		retval = FAIL;
-		break;
+# ifdef FEAT_PROFILE
+		if (do_profiling)
+		    func_line_end(real_cookie);
+# endif
+		if (func_has_ended(real_cookie))
+		{
+		    retval = FAIL;
+		    break;
+		}
 	    }
+#ifdef FEAT_PROFILE
+	    else if (do_profiling
+			     && getline_equal(getline, cookie, getsourceline))
+		script_line_end();
+#endif
 
 	    /* Check if a sourced file hit a ":finish" command. */
 	    if (source_finished(getline, cookie))
@@ -903,6 +922,15 @@
 							fname, sourcing_lnum);
 		*dbg_tick = debug_tick;
 	    }
+# ifdef FEAT_PROFILE
+	    if (do_profiling)
+	    {
+		if (getline_is_func)
+		    func_line_start(real_cookie);
+		else if (getline_equal(getline, cookie, getsourceline))
+		    script_line_start();
+	    }
+# endif
 	}
 
 	if (cstack.cs_looplevel > 0)
@@ -1839,6 +1867,17 @@
 #endif
 
 #ifdef FEAT_EVAL
+# ifdef FEAT_PROFILE
+    /* Count this line for profiling if ea.skip is FALSE. */
+    if (do_profiling && !ea.skip)
+    {
+	if (getline_equal(getline, cookie, get_func_line))
+	    func_line_exec(getline_cookie(getline, cookie));
+	else if (getline_equal(getline, cookie, getsourceline))
+	    script_line_exec();
+    }
+#endif
+
     /* May go to debug mode.  If this happens and the ">quit" debug command is
      * used, throw an interrupt exception and skip the next command. */
     dbg_check_breakpoint(&ea);
@@ -4006,11 +4045,9 @@
     if (*p != NUL && (eap->cmdidx == CMD_vimgrep
 		|| eap->cmdidx == CMD_vimgrepadd || grep_internal(eap->cmdidx)))
     {
-	p = skip_vimgrep_pat(p, NULL);
+	p = skip_vimgrep_pat(p, NULL, NULL);
 	if (p == NULL)
 	    p = eap->arg;
-	else if (*p != NUL && !vim_iswhite(*p))
-	    ++p;	/* step past ending separator of /pat/ */
     }
     return p;
 }
diff --git a/src/feature.h b/src/feature.h
index f82bf75..0383cdb 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -380,6 +380,13 @@
 #endif
 
 /*
+ * +profile		Profiling for functions and scripts.
+ */
+#ifdef FEAT_HUGE
+# define FEAT_PROFILE
+#endif
+
+/*
  *			Insert mode completion with 'completefunc'.
  */
 #if defined(FEAT_INS_EXPAND) && defined(FEAT_EVAL)
diff --git a/src/fileio.c b/src/fileio.c
index 0644688..328431a 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -7925,6 +7925,9 @@
     long	save_cmdbang;
 #endif
     static int	filechangeshell_busy = FALSE;
+#ifdef FEAT_PROFILE
+    proftime_T	wait_time;
+#endif
 
     /*
      * Quickly return if there are no autocommands for this event or
@@ -8097,6 +8100,11 @@
 #ifdef FEAT_EVAL
     save_current_SID = current_SID;
 
+# ifdef FEAT_PROFILE
+    if (do_profiling)
+	prof_child_enter(&wait_time); /* doesn't count for the caller itself */
+# endif
+
     /* Don't use local function variables, if called from a function */
     save_funccalp = save_funccal();
 #endif
@@ -8188,6 +8196,10 @@
 #ifdef FEAT_EVAL
     current_SID = save_current_SID;
     restore_funccal(save_funccalp);
+# ifdef FEAT_PROFILE
+    if (do_profiling)
+	prof_child_exit(&wait_time);
+# endif
 #endif
     vim_free(fname);
     vim_free(sfname);
diff --git a/src/globals.h b/src/globals.h
index 2c1c53a..fdfb1f5 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -204,6 +204,9 @@
 EXTERN int	debug_break_level INIT(= -1);	/* break below this level */
 EXTERN int	debug_did_msg INIT(= FALSE);	/* did "debug mode" message */
 EXTERN int	debug_tick INIT(= 0);		/* breakpoint change count */
+# ifdef FEAT_PROFILE
+EXTERN int	do_profiling INIT(= 0);		/* ":profile start" used */
+# endif
 
 /*
  * The exception currently being thrown.  Used to pass an exception to
@@ -1406,7 +1409,9 @@
 EXTERN char_u e_guarded[]	INIT(=N_("E463: Region is guarded, cannot modify"));
 EXTERN char_u e_nbreadonly[]	INIT(=N_("E744: NetBeans does not allow changes in read-only files"));
 #endif
+#if defined(FEAT_EVAL) || defined(FEAT_SYN_HL) || defined(PROTO)
 EXTERN char_u e_intern2[]	INIT(=N_("E685: Internal error: %s"));
+#endif
 #if defined(HAVE_SETJMP_H) || defined(HAVE_TRY_EXCEPT)
 EXTERN char_u e_complex[]	INIT(=N_("E361: Crash intercepted; regexp too complex?"));
 #endif
diff --git a/src/gui.c b/src/gui.c
index 572e330..2204cd5 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -555,7 +555,7 @@
 	/* When 'cmdheight' was set during startup it may not have taken
 	 * effect yet. */
 	if (p_ch != 1L)
-	    command_height(1L);
+	    command_height(-1L);
 
 	return;
     }
diff --git a/src/gui_mac.c b/src/gui_mac.c
index b43aec0..bbf329d 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -3808,7 +3808,7 @@
 {
     /* TODO: Add support for bold italic underline proportional etc... */
     Str255	suggestedFont = "\pMonaco";
-    int		suggestedSize = 9;
+    int		suggestedSize = 10;
     FontInfo	font_info;
     short	font_id;
     GuiFont	font;
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 23feb6f..d6d37c4 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -4051,7 +4051,8 @@
     if (beval == NULL)
 	return;
     TRACE0("gui_mch_enable_beval_area {{{");
-    BevalTimerId = SetTimer(s_textArea, 0, p_bdlay / 2, (TIMERPROC)BevalTimerProc);
+    BevalTimerId = SetTimer(s_textArea, 0, p_bdlay / 2,
+						   (TIMERPROC)BevalTimerProc);
     TRACE0("gui_mch_enable_beval_area }}}");
 }
 
diff --git a/src/main.c b/src/main.c
index cfaaa41..8c2e73f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2352,6 +2352,10 @@
     apply_autocmds(EVENT_VIMLEAVE, NULL, NULL, FALSE, curbuf);
 #endif
 
+#ifdef FEAT_PROFILE
+    profile_dump();
+#endif
+
     if (did_emsg
 #ifdef FEAT_GUI
 	    || (gui.in_use && msg_didany && p_verbose > 0)
diff --git a/src/misc1.c b/src/misc1.c
index 8ddc6f0..3125dfe 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -3209,6 +3209,10 @@
 {
     char_u  *var;
 
+    /* In case we are called a second time (when 'encoding' changes). */
+    vim_free(homedir);
+    homedir = NULL;
+
 #ifdef VMS
     var = mch_getenv((char_u *)"SYS$LOGIN");
 #else
@@ -3270,6 +3274,23 @@
 	    }
 	}
     }
+
+# if defined(FEAT_MBYTE)
+    if (enc_utf8 && var != NULL)
+    {
+	int	len;
+	char_u  *pp;
+
+	/* Convert from active codepage to UTF-8.  Other conversions are
+	 * not done, because they would fail for non-ASCII characters. */
+	acp_to_enc(var, STRLEN(var), &pp, &len);
+	if (pp != NULL)
+	{
+	    homedir = pp;
+	    return;
+	}
+    }
+# endif
 #endif
 
 #if defined(OS2) || defined(MSDOS) || defined(MSWIN)
@@ -3594,7 +3615,25 @@
 	p = NULL;
 
     if (p != NULL)
+    {
+#if defined(FEAT_MBYTE) && defined(WIN3264)
+	if (enc_utf8)
+	{
+	    int	    len;
+	    char_u  *pp;
+
+	    /* Convert from active codepage to UTF-8.  Other conversions are
+	     * not done, because they would fail for non-ASCII characters. */
+	    acp_to_enc(p, STRLEN(p), &pp, &len);
+	    if (pp != NULL)
+	    {
+		p = pp;
+		*mustfree = TRUE;
+	    }
+	}
+#endif
 	return p;
+    }
 
     vimruntime = (STRCMP(name, "VIMRUNTIME") == 0);
     if (!vimruntime && STRCMP(name, "VIM") != 0)
@@ -3620,6 +3659,26 @@
 		*mustfree = TRUE;
 	    else
 		p = mch_getenv((char_u *)"VIM");
+
+#if defined(FEAT_MBYTE) && defined(WIN3264)
+	    if (enc_utf8)
+	    {
+		int	len;
+		char_u  *pp;
+
+		/* Convert from active codepage to UTF-8.  Other conversions
+		 * are not done, because they would fail for non-ASCII
+		 * characters. */
+		acp_to_enc(p, STRLEN(p), &pp, &len);
+		if (pp != NULL)
+		{
+		    if (mustfree)
+			vim_free(p);
+		    p = pp;
+		    *mustfree = TRUE;
+		}
+	    }
+#endif
 	}
     }
 
diff --git a/src/misc2.c b/src/misc2.c
index d647fc7..d5a8092 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1374,8 +1374,8 @@
 
 /*
  * Version of strchr() and strrchr() that handle unsigned char strings
- * with characters above 128 correctly. Also it doesn't return a pointer to
- * the NUL at the end of the string.
+ * with characters from 128 to 255 correctly.  It also doesn't return a
+ * pointer to the NUL at the end of the string.
  */
     char_u  *
 vim_strchr(string, c)
@@ -1431,9 +1431,30 @@
 }
 
 /*
+ * Version of strchr() that only works for bytes and handles unsigned char
+ * strings with characters above 128 correctly. It also doesn't return a
+ * pointer to the NUL at the end of the string.
+ */
+    char_u  *
+vim_strbyte(string, c)
+    char_u	*string;
+    int		c;
+{
+    char_u	*p = string;
+
+    while (*p != NUL)
+    {
+	if (*p == c)
+	    return p;
+	++p;
+    }
+    return NULL;
+}
+
+/*
  * Search for last occurrence of "c" in "string".
  * return NULL if not found.
- * Does not handle multi-byte!
+ * Does not handle multi-byte char for "c"!
  */
     char_u  *
 vim_strrchr(string, c)
@@ -1441,12 +1462,13 @@
     int		c;
 {
     char_u	*retval = NULL;
+    char_u	*p = string;
 
-    while (*string)
+    while (*p)
     {
-	if (*string == c)
-	    retval = string;
-	mb_ptr_adv(string);
+	if (*p == c)
+	    retval = p;
+	mb_ptr_adv(p);
     }
     return retval;
 }
@@ -2549,6 +2571,9 @@
 {
     char_u	*ncmd;
     int		retval;
+#ifdef FEAT_PROFILE
+    proftime_T	wait_time;
+#endif
 
     if (p_verbose > 3)
     {
@@ -2558,6 +2583,11 @@
 	cursor_on();
     }
 
+#ifdef FEAT_PROFILE
+    if (do_profiling)
+	prof_child_enter(&wait_time);
+#endif
+
     if (*p_sh == NUL)
     {
 	EMSG(_(e_shellempty));
@@ -2603,6 +2633,10 @@
 
 #ifdef FEAT_EVAL
     set_vim_var_nr(VV_SHELL_ERROR, (long)retval);
+# ifdef FEAT_PROFILE
+    if (do_profiling)
+	prof_child_exit(&wait_time);
+# endif
 #endif
 
     return retval;
diff --git a/src/normal.c b/src/normal.c
index 2ba3f74..2d2efc2 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5472,14 +5472,14 @@
 {
 #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
     /* In a quickfix window a <CR> jumps to the error under the cursor. */
-    if (bt_quickfix(curbuf) && cap->cmdchar == '\r')
+    if (bt_quickfix(curbuf) && cap->cmdchar == CAR)
 	do_cmdline_cmd((char_u *)".cc");
     else
 #endif
     {
 #ifdef FEAT_CMDWIN
 	/* In the cmdline window a <CR> executes the command. */
-	if (cmdwin_type != 0 && cap->cmdchar == '\r')
+	if (cmdwin_type != 0 && cap->cmdchar == CAR)
 	    cmdwin_result = CAR;
 	else
 #endif
diff --git a/src/option.c b/src/option.c
index 4444b1f..fd9f75f 100644
--- a/src/option.c
+++ b/src/option.c
@@ -2629,18 +2629,20 @@
 # else
 	static char	*(names[3]) = {"TMPDIR", "TEMP", "TMP"};
 # endif
-	int	len;
-	garray_T ga;
+	int		len;
+	garray_T	ga;
+	int		mustfree;
 
 	ga_init2(&ga, 1, 100);
 	for (n = 0; n < (long)(sizeof(names) / sizeof(char *)); ++n)
 	{
+	    mustfree = FALSE;
 # ifdef UNIX
 	    if (*names[n] == NUL)
 		p = (char_u *)"/tmp";
 	    else
 # endif
-		p = mch_getenv((char_u *)names[n]);
+		p = vim_getenv((char_u *)names[n], &mustfree);
 	    if (p != NULL && *p != NUL)
 	    {
 		/* First time count the NUL, otherwise count the ','. */
@@ -2655,6 +2657,8 @@
 		    ga.ga_len += len;
 		}
 	    }
+	    if (mustfree)
+		vim_free(p);
 	}
 	if (ga.ga_data != NULL)
 	{
@@ -2705,9 +2709,10 @@
 	char_u	*buf;
 	int	i;
 	int	j;
+	int	mustfree = FALSE;
 
 	/* Initialize the 'cdpath' option's default value. */
-	cdpath = mch_getenv((char_u *)"CDPATH");
+	cdpath = vim_getenv((char_u *)"CDPATH", &mustfree);
 	if (cdpath != NULL)
 	{
 	    buf = alloc((unsigned)((STRLEN(cdpath) << 1) + 2));
@@ -2731,6 +2736,8 @@
 		options[opt_idx].def_val[VI_DEFAULT] = buf;
 		options[opt_idx].flags |= P_DEF_ALLOCED;
 	    }
+	    if (mustfree)
+		vim_free(cdpath);
 	}
     }
 #endif
@@ -2962,6 +2969,10 @@
 		    p_tenc = empty_option;
 	    }
 # endif
+# if defined(WIN3264) && defined(FEAT_MBYTE)
+	    /* $HOME may have characters in active code page. */
+	    init_homedir();
+# endif
 	}
 	else
 	{
@@ -5089,6 +5100,12 @@
 		convert_setup(&input_conv, p_tenc, p_enc);
 		convert_setup(&output_conv, p_enc, p_tenc);
 	    }
+
+# if defined(WIN3264) && defined(FEAT_MBYTE)
+	    /* $HOME may have characters in active code page. */
+	    if (varp == &p_enc)
+		init_homedir();
+# endif
 	}
     }
 #endif
diff --git a/src/os_mswin.c b/src/os_mswin.c
index 5d45d7b..4f3a49b 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -1346,22 +1346,16 @@
 			break;
 	    }
 
-#if defined(FEAT_MBYTE) && defined(WIN3264)
+# if defined(FEAT_MBYTE) && defined(WIN3264)
 	    /* The text is in the active codepage.  Convert to 'encoding',
 	     * going through UCS-2. */
-	    MultiByteToWideChar_alloc(GetACP(), 0, str, str_size,
-						 (LPWSTR *)&to_free, &maxlen);
+	    acp_to_enc(str, str_size, &to_free, &maxlen);
 	    if (to_free != NULL)
 	    {
 		str_size = maxlen;
-		str = ucs2_to_enc((short_u *)to_free, &str_size);
-		if (str != NULL)
-		{
-		    vim_free(to_free);
-		    to_free = str;
-		}
+		str = to_free;
 	    }
-#endif
+# endif
 	}
     }
 #ifdef FEAT_MBYTE
@@ -1398,6 +1392,31 @@
 #endif
 }
 
+#if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
+/*
+ * Convert from the active codepage to 'encoding'.
+ * Input is "str[str_size]".
+ * The result is in allocated memory: "out[outlen]".  With terminating NUL.
+ */
+    void
+acp_to_enc(str, str_size, out, outlen)
+    char_u	*str;
+    int		str_size;
+    char_u	**out;
+    int		*outlen;
+
+{
+    LPWSTR	widestr;
+
+    MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
+    if (widestr != NULL)
+    {
+	*out = ucs2_to_enc((short_u *)widestr, outlen);
+	vim_free(widestr);
+    }
+}
+#endif
+
 /*
  * Send the current selection to the clipboard.
  */
diff --git a/src/po/Make_ming.mak b/src/po/Make_ming.mak
index db42720..acd18e5 100644
--- a/src/po/Make_ming.mak
+++ b/src/po/Make_ming.mak
@@ -10,10 +10,10 @@
 # language (xx) and add it to the next three lines.
 #
 
-LANGUAGES =	af ca cs de en_GB es fr ga it ja ko no pl ru sk sv uk zh_TW \
+LANGUAGES =	af ca cs de en_GB es fr ga it ja ko no pl ru sk sv uk vi zh_TW \
 		zh_TW.UTF-8 zh_CN zh_CN.UTF-8
 MOFILES =	af.mo ca.mo cs.mo de.mo en_GB.mo es.mo fr.mo ga.mo it.mo ja.mo \
-		ko.mo no.mo pl.mo ru.mo sk.mo sv.mo uk.mo \
+		ko.mo no.mo pl.mo ru.mo sk.mo sv.mo uk.mo vi.mo \
 		zh_TW.mo zh_TW.UTF-8.mo zh_CN.mo zh_CN.UTF-8.mo
 
 PACKAGE = vim
diff --git a/src/po/Make_mvc.mak b/src/po/Make_mvc.mak
index c902614..607cf5e 100644
--- a/src/po/Make_mvc.mak
+++ b/src/po/Make_mvc.mak
@@ -6,10 +6,10 @@
 # Please read README_mvc.txt before using this file.
 #
 
-LANGUAGES =	af ca cs de en_GB es fr ga it ja ko no pl ru sk sv uk zh_TW \
+LANGUAGES =	af ca cs de en_GB es fr ga it ja ko no pl ru sk sv uk vi zh_TW \
 		zh_TW.UTF-8 zh_CN zh_CN.UTF-8
 MOFILES =	af.mo ca.mo cs.mo de.mo en_GB.mo es.mo fr.mo ga.mo it.mo ja.mo \
-		ko.mo no.mo pl.mo ru.mo sk.mo sv.mo uk.mo \
+		ko.mo no.mo pl.mo ru.mo sk.mo sv.mo uk.mo vi.mo \
 		zh_TW.mo zh_TW.UTF-8.mo zh_CN.mo zh_CN.UTF-8.mo
 
 PACKAGE = vim
diff --git a/src/po/Makefile b/src/po/Makefile
index dc94efd..4ff49db 100644
--- a/src/po/Makefile
+++ b/src/po/Makefile
@@ -4,10 +4,10 @@
 # Note: ja.sjis, *.cp1250 and zh_CN.cp936 are only for MS-Windows, they are
 # not installed on Unix
 
-LANGUAGES =	af ca cs de en_GB es fr ga it ja ko no pl ru sk sv uk zh_TW \
+LANGUAGES =	af ca cs de en_GB es fr ga it ja ko no pl ru sk sv uk vi zh_TW \
 		zh_TW.UTF-8 zh_CN zh_CN.UTF-8
 MOFILES =	af.mo ca.mo cs.mo de.mo en_GB.mo es.mo fr.mo ga.mo it.mo ja.mo \
-		ko.mo no.mo pl.mo ru.mo sk.mo sv.mo uk.mo \
+		ko.mo no.mo pl.mo ru.mo sk.mo sv.mo uk.mo vi.mo \
 		zh_TW.mo zh_TW.UTF-8.mo zh_CN.mo zh_CN.UTF-8.mo
 
 PACKAGE = vim
diff --git a/src/po/vi.po b/src/po/vi.po
new file mode 100644
index 0000000..bb033a0
--- /dev/null
+++ b/src/po/vi.po
@@ -0,0 +1,6625 @@
+# Vietnamese translation for Vim
+# 
+# Về điều kiện sử dụng Vim hãy đọc trong trình soạn thảo Vim ":help uganda"
+# Về tác giả của chương trình soạn thảo Vim hãy đọc trong Vim ":help credits"
+#
+# first translator(s): Phan Vinh Thinh "teppi" <teppi@vnlinux.org>, 2005
+#
+# Original translations.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Vim 6.3 \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-05-10 21:37+0400\n"
+"PO-Revision-Date: 2004-05-10 21:37+0400\n"
+"Last-Translator: Phan Vinh Thinh <teppi@vnlinux.org>\n"
+"Language-Team: Phan Vinh Thinh <teppi@vnlinux.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: buffer.c:102
+msgid "E82: Cannot allocate any buffer, exiting..."
+msgstr "E82: Không thể phân chia bộ nhớ thậm chí cho một bộ đệm, thoát..."
+
+#: buffer.c:105
+msgid "E83: Cannot allocate buffer, using other one..."
+msgstr "E83: Không thể phân chia bộ nhớ cho bộ đệm, sử dụng bộ đệm khác..."
+
+#: buffer.c:805
+#, c-format
+msgid "E515: No buffers were unloaded"
+msgstr "E515: Không có bộ đệm nào được bỏ nạp từ bộ nhớ"
+
+#: buffer.c:807
+#, c-format
+msgid "E516: No buffers were deleted"
+msgstr "E516: Không có bộ đệm nào bị xóa"
+
+#: buffer.c:809
+#, c-format
+msgid "E517: No buffers were wiped out"
+msgstr "E517: Không có bộ đệm nào được làm sạch"
+
+#: buffer.c:817
+msgid "1 buffer unloaded"
+msgstr "1 bộ đệm được bỏ nạp từ bộ nhớ"
+
+#: buffer.c:819
+#, c-format
+msgid "%d buffers unloaded"
+msgstr "%d bộ đệm được bỏ nạp từ bộ nhớ"
+
+#: buffer.c:824
+msgid "1 buffer deleted"
+msgstr "1 bộ đệm bị xóa"
+
+#: buffer.c:826
+#, c-format
+msgid "%d buffers deleted"
+msgstr "%d bộ đệm được bỏ nạp"
+
+#: buffer.c:831
+msgid "1 buffer wiped out"
+msgstr "1 bộ đệm được làm sạch"
+
+#: buffer.c:833
+#, c-format
+msgid "%d buffers wiped out"
+msgstr "%d bộ đệm được làm sạch"
+
+#: buffer.c:894
+msgid "E84: No modified buffer found"
+msgstr "E84: Không tìm thấy bộ đệm có thay đổi"
+
+#. back where we started, didn't find anything.
+#: buffer.c:933
+msgid "E85: There is no listed buffer"
+msgstr "E85: Không có bộ đệm được liệt kê"
+
+#: buffer.c:945
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: Bộ đệm %ld không tồn tại"
+
+#: buffer.c:948
+msgid "E87: Cannot go beyond last buffer"
+msgstr "E87: Đây là bộ đệm cuối cùng"
+
+#: buffer.c:950
+msgid "E88: Cannot go before first buffer"
+msgstr "E88: Đây là bộ đệm đầu tiên"
+
+#: buffer.c:988
+#, c-format
+msgid "E89: No write since last change for buffer %ld (add ! to override)"
+msgstr "E89: Thay đổi trong bộ đệm %ld chưa được ghi lại (thêm ! để thoát ra bằng mọi giá)"
+
+#: buffer.c:1005
+msgid "E90: Cannot unload last buffer"
+msgstr "E90: Không thể bỏ nạp từ bộ nhớ bộ đệm cuối cùng"
+
+#: buffer.c:1538
+msgid "W14: Warning: List of file names overflow"
+msgstr "W14: Cảnh báo: Danh sách tên tập tin quá đầy"
+
+#: buffer.c:1709
+#, c-format
+msgid "E92: Buffer %ld not found"
+msgstr "E92: Bộ đệm %ld không được tìm thấy"
+
+#: buffer.c:1940
+#, c-format
+msgid "E93: More than one match for %s"
+msgstr "E93: Tìm thấy vài tương ứng với %s"
+
+#: buffer.c:1942
+#, c-format
+msgid "E94: No matching buffer for %s"
+msgstr "E94: Không có bộ đệm tương ứng với %s"
+
+#: buffer.c:2337
+#, c-format
+msgid "line %ld"
+msgstr "dòng %ld"
+
+#: buffer.c:2420
+msgid "E95: Buffer with this name already exists"
+msgstr "E95: Đã có bộ đệm với tên như vậy"
+
+#: buffer.c:2713
+msgid " [Modified]"
+msgstr " [Đã thay đổi]"
+
+#: buffer.c:2718
+msgid "[Not edited]"
+msgstr "[Chưa soạn thảo]"
+
+#: buffer.c:2723
+msgid "[New file]"
+msgstr "[Tập tin mới]"
+
+#: buffer.c:2724
+msgid "[Read errors]"
+msgstr "[Lỗi đọc]"
+
+#: buffer.c:2726 fileio.c:2112
+msgid "[readonly]"
+msgstr "[chỉ đọc]"
+
+#: buffer.c:2747
+#, c-format
+msgid "1 line --%d%%--"
+msgstr "1 dòng --%d%%--"
+
+#: buffer.c:2749
+#, c-format
+msgid "%ld lines --%d%%--"
+msgstr "%ld dòng --%d%%--"
+
+#: buffer.c:2756
+#, c-format
+msgid "line %ld of %ld --%d%%-- col "
+msgstr "dòng %ld của %ld --%d%%-- cột "
+
+#: buffer.c:2864
+msgid "[No file]"
+msgstr "[Không có tập tin]"
+
+#. must be a help buffer
+#: buffer.c:2904
+msgid "help"
+msgstr "trợ giúp"
+
+#: buffer.c:3463 screen.c:5075
+msgid "[help]"
+msgstr "[trợ giúp]"
+
+#: buffer.c:3495 screen.c:5081
+msgid "[Preview]"
+msgstr "[Xem trước]"
+
+#: buffer.c:3775
+msgid "All"
+msgstr "Tất cả"
+
+#: buffer.c:3775
+msgid "Bot"
+msgstr "Cuối"
+
+#: buffer.c:3777
+msgid "Top"
+msgstr "Đầu"
+
+#: buffer.c:4523
+#, c-format
+msgid ""
+"\n"
+"# Buffer list:\n"
+msgstr ""
+"\n"
+"# Danh sách bộ đệm:\n"
+
+#: buffer.c:4556
+msgid "[Error List]"
+msgstr "[Danh sách lỗi]"
+
+#: buffer.c:4569 memline.c:1520
+msgid "[No File]"
+msgstr "[Không có tập tin]"
+
+#: buffer.c:4882
+msgid ""
+"\n"
+"--- Signs ---"
+msgstr ""
+"\n"
+"--- Ký hiệu ---"
+
+#: buffer.c:4901
+#, c-format
+msgid "Signs for %s:"
+msgstr "Ký hiệu cho %s:"
+
+#: buffer.c:4907
+#, c-format
+msgid "    line=%ld  id=%d  name=%s"
+msgstr "    dòng=%ld  id=%d  tên=%s"
+
+#: diff.c:139
+#, c-format
+msgid "E96: Can not diff more than %ld buffers"
+msgstr "E96: Chỉ có thể theo dõi sự khác nhau trong nhiều nhất %ld bộ đệm"
+
+#: diff.c:713
+msgid "E97: Cannot create diffs"
+msgstr "E97: Không thể tạo tập tin khác biệt (diff)"
+
+#: diff.c:818
+msgid "Patch file"
+msgstr "Tập tin vá lỗi (patch)"
+
+#: diff.c:1069
+msgid "E98: Cannot read diff output"
+msgstr "E98: Không thể đọc dữ liệu ra của lệnh diff"
+
+#: diff.c:1819
+msgid "E99: Current buffer is not in diff mode"
+msgstr "E99: Bộ đệm hiện thời không nằm trong chế độ khác biệt (diff)"
+
+#: diff.c:1831
+msgid "E100: No other buffer in diff mode"
+msgstr "E100: Không còn bộ đệm trong chế độ khác biệt (diff) nào nữa"
+
+#: diff.c:1839
+msgid "E101: More than two buffers in diff mode, don't know which one to use"
+msgstr "E101: Có nhiều hơn hai bộ đệm trong chế độ khác biệt (diff), không biết chọn"
+
+#: diff.c:1862
+#, c-format
+msgid "E102: Can't find buffer \"%s\""
+msgstr "E102: Không tìm thấy bộ đệm \"%s\""
+
+#: diff.c:1868
+#, c-format
+msgid "E103: Buffer \"%s\" is not in diff mode"
+msgstr "E103: Bộ đệm \"%s\" không nằm trong chế độ khác biệt (diff)"
+
+#: digraph.c:2199
+msgid "E104: Escape not allowed in digraph"
+msgstr "E104: Không cho phép dùng ký tự thoát Escape trong chữ ghép"
+
+#: digraph.c:2384
+msgid "E544: Keymap file not found"
+msgstr "E544: Không tìm thấy tập tin sơ đồ bàn phím"
+
+#: digraph.c:2411
+msgid "E105: Using :loadkeymap not in a sourced file"
+msgstr "E105: Câu lệnh :loadkeymap được sử dụng ngoài tập tin script"
+
+#: edit.c:40
+msgid " Keyword completion (^N^P)"
+msgstr " Tự động kết thúc cho từ khóa (^N^P)"
+
+#. ctrl_x_mode == 0, ^P/^N compl.
+#: edit.c:41
+msgid " ^X mode (^E^Y^L^]^F^I^K^D^V^N^P)"
+msgstr " Chế độ ^X (^E^Y^L^]^F^I^K^D^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:44
+msgid " Keyword Local completion (^N^P)"
+msgstr " Tự động kết thúc nội bộ cho từ khóa (^N^P)"
+
+#: edit.c:45
+msgid " Whole line completion (^L^N^P)"
+msgstr " Tự động kết thúc cho cả dòng (^L^N^P)"
+
+#: edit.c:46
+msgid " File name completion (^F^N^P)"
+msgstr " Tự động kết thúc tên tập tin (^F^N^P)"
+
+#: edit.c:47
+msgid " Tag completion (^]^N^P)"
+msgstr " Tự động kết thúc thẻ đánh dấu (^]^N^P)"
+
+#: edit.c:48
+msgid " Path pattern completion (^N^P)"
+msgstr " Tự động kết thúc mẫu đường dẫn (^N^P)"
+
+#: edit.c:49
+msgid " Definition completion (^D^N^P)"
+msgstr " Tự động kết thúc định nghĩa (^D^N^P)"
+
+#: edit.c:51
+msgid " Dictionary completion (^K^N^P)"
+msgstr " Tự động kết thúc theo từ điển (^K^N^P)"
+
+#: edit.c:52
+msgid " Thesaurus completion (^T^N^P)"
+msgstr " Tự động kết thúc từ đồng âm (^T^N^P)"
+
+#: edit.c:53
+msgid " Command-line completion (^V^N^P)"
+msgstr " Tự động kết thúc dòng lệnh (^V^N^P)"
+
+#: edit.c:56
+msgid "Hit end of paragraph"
+msgstr "Kết thúc của đoạn văn"
+
+#: edit.c:962
+msgid "'thesaurus' option is empty"
+msgstr "Không đưa ra giá trị của tùy chọn 'thesaurus'"
+
+#: edit.c:1166
+msgid "'dictionary' option is empty"
+msgstr "Không đưa ra giá trị của tùy chọn 'dictionary'"
+
+#: edit.c:2162
+#, c-format
+msgid "Scanning dictionary: %s"
+msgstr "Quét từ điển: %s"
+
+#: edit.c:2368
+msgid " (insert) Scroll (^E/^Y)"
+msgstr " (chèn) Cuộn (^E/^Y)"
+
+#: edit.c:2370
+msgid " (replace) Scroll (^E/^Y)"
+msgstr " (thay thế) Cuộn (^E/^Y)"
+
+#: edit.c:2684
+#, c-format
+msgid "Scanning: %s"
+msgstr "Quét: %s"
+
+#: edit.c:2719
+#, c-format
+msgid "Scanning tags."
+msgstr "Tìm kiếm trong số thẻ đánh dấu."
+
+#: edit.c:3381
+msgid " Adding"
+msgstr " Thêm"
+
+#. 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:3430
+msgid "-- Searching..."
+msgstr "-- Tìm kiếm..."
+
+#: edit.c:3486
+msgid "Back at original"
+msgstr "Từ ban đầu"
+
+#: edit.c:3491
+msgid "Word from other line"
+msgstr "Từ của dòng khác"
+
+#: edit.c:3496
+msgid "The only match"
+msgstr "Tương ứng duy nhất"
+
+#: edit.c:3555
+#, c-format
+msgid "match %d of %d"
+msgstr "Tương ứng %d của %d"
+
+#: edit.c:3558
+#, c-format
+msgid "match %d"
+msgstr "Tương ứng %d"
+
+#. Skip further arguments but do continue to
+#. * search for a trailing command.
+#: eval.c:1024
+#, c-format
+msgid "E106: Unknown variable: \"%s\""
+msgstr "E106: Biến không biết: \"%s\""
+
+#: eval.c:1320
+#, c-format
+msgid "E107: Missing braces: %s"
+msgstr "E107: Thiếu dấu ngoặc: %s"
+
+#: eval.c:1435 eval.c:1449
+#, c-format
+msgid "E108: No such variable: \"%s\""
+msgstr "E108: Không có biến như vậy: \"%s\""
+
+#: eval.c:1705
+msgid "E109: Missing ':' after '?'"
+msgstr "E109: Thiếu ':' sau '?'"
+
+#: eval.c:2327
+msgid "E110: Missing ')'"
+msgstr "E110: Thiếu ')'"
+
+#: eval.c:2389
+msgid "E111: Missing ']'"
+msgstr "E111: Thiếu ']'"
+
+#: eval.c:2466
+#, c-format
+msgid "E112: Option name missing: %s"
+msgstr "E112: Không đưa ra tên tùy chọn: %s"
+
+#: eval.c:2484
+#, c-format
+msgid "E113: Unknown option: %s"
+msgstr "E113: Tùy chọn không biết: %s"
+
+#: eval.c:2555
+#, c-format
+msgid "E114: Missing quote: %s"
+msgstr "E114: Thiếu ngoặc kép: %s"
+
+#: eval.c:2698
+#, c-format
+msgid "E115: Missing quote: %s"
+msgstr "E115: Thiếu ngoặc kép: %s"
+
+#: eval.c:3054
+#, c-format
+msgid "E116: Invalid arguments for function %s"
+msgstr "E116: Tham số cho hàm %s đưa ra không đúng"
+
+#: eval.c:3083
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Hàm số không biết: %s"
+
+#: eval.c:3084
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: Quá nhiều tham số cho hàm: %s"
+
+#: eval.c:3085
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: Không đủ tham số cho hàm: %s"
+
+#: eval.c:3086
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: Sử dụng <SID> ngoài script: %s"
+
+#.
+#. * 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:3687 gui.c:4382 gui_gtk.c:2059
+msgid "&Ok"
+msgstr "&Ok"
+
+#: eval.c:4226
+#, c-format
+msgid "+-%s%3ld lines: "
+msgstr "+-%s%3ld dòng: "
+
+#: eval.c:5477
+msgid ""
+"&OK\n"
+"&Cancel"
+msgstr ""
+"&OK\n"
+"&Hủy bỏ"
+
+#: eval.c:5517
+msgid "called inputrestore() more often than inputsave()"
+msgstr "Hàm số inputrestore() được gọi nhiều hơn hàm inputsave()"
+
+#: eval.c:5977
+msgid "E655: Too many symbolic links (cycle?)"
+msgstr "E656: Quá nhiều liên kết tượng trưng (vòng lặp?)"
+
+#: eval.c:6609
+msgid "E240: No connection to Vim server"
+msgstr "E240: Không có kết nối với máy chủ Vim"
+
+#: eval.c:6706
+msgid "E277: Unable to read a server reply"
+msgstr "E227: Máy chủ không trả lời"
+
+#: eval.c:6734
+msgid "E258: Unable to send to client"
+msgstr "E258: Không thể trả lời cho máy con"
+
+#: eval.c:6782
+#, c-format
+msgid "E241: Unable to send to %s"
+msgstr "E241: Không thể gửi tin nhắn tới %s"
+
+#: eval.c:6882
+msgid "(Invalid)"
+msgstr "(Không đúng)"
+
+#: eval.c:8060
+#, c-format
+msgid "E121: Undefined variable: %s"
+msgstr "E121: Biến không xác định: %s"
+
+#: eval.c:8492
+#, c-format
+msgid "E461: Illegal variable name: %s"
+msgstr "E461: Tên biến không cho phép: %s"
+
+#: eval.c:8784
+#, c-format
+msgid "E122: Function %s already exists, add ! to replace it"
+msgstr "E122: Hàm số %s đã có, hãy thêm ! để thay thế nó."
+
+#: eval.c:8857
+#, c-format
+msgid "E123: Undefined function: %s"
+msgstr "E123: Hàm số không xác định: %s"
+
+#: eval.c:8870
+#, c-format
+msgid "E124: Missing '(': %s"
+msgstr "E124: Thiếu '(': %s"
+
+#: eval.c:8903
+#, c-format
+msgid "E125: Illegal argument: %s"
+msgstr "E125: Tham số không cho phép: %s"
+
+#: eval.c:8982
+msgid "E126: Missing :endfunction"
+msgstr "E126: Thiếu lệnh :endfunction"
+
+#: eval.c:9089
+#, c-format
+msgid "E127: Cannot redefine function %s: It is in use"
+msgstr "E127: Không thể định nghĩa lại hàm số %s: hàm đang được sử dụng"
+
+#: eval.c:9159
+msgid "E129: Function name required"
+msgstr "E129: Cần tên hàm số"
+
+#: eval.c:9210
+#, c-format
+msgid "E128: Function name must start with a capital: %s"
+msgstr "E128: Tên hàm số phải bắt đầu với một chữ cái hoa: %s"
+
+#: eval.c:9402
+#, c-format
+msgid "E130: Undefined function: %s"
+msgstr "E130: Hàm số %s chưa xác định"
+
+#: eval.c:9407
+#, c-format
+msgid "E131: Cannot delete function %s: It is in use"
+msgstr "E131: Không thể xóa hàm số %s: Hàm đang được sử dụng"
+
+#: eval.c:9455
+msgid "E132: Function call depth is higher than 'maxfuncdepth'"
+msgstr "E132: Độ sâu của lời gọi hàm số lớn hơn giá trị 'maxfuncdepth'"
+
+#. always scroll up, don't overwrite
+#: eval.c:9508
+#, c-format
+msgid "calling %s"
+msgstr "lời gọi %s"
+
+#: eval.c:9570
+#, c-format
+msgid "%s aborted"
+msgstr "%s dừng"
+
+#: eval.c:9572
+#, c-format
+msgid "%s returning #%ld"
+msgstr "%s trả lại #%ld"
+
+#: eval.c:9579
+#, c-format
+msgid "%s returning \"%s\""
+msgstr "%s trả lại \"%s\""
+
+#. always scroll up, don't overwrite
+#: eval.c:9595 ex_cmds2.c:2365
+#, c-format
+msgid "continuing in %s"
+msgstr "tiếp tục trong %s"
+
+#: eval.c:9621
+msgid "E133: :return not inside a function"
+msgstr "E133: lệnh :return ở ngoài một hàm"
+
+#: eval.c:9952
+#, c-format
+msgid ""
+"\n"
+"# global variables:\n"
+msgstr ""
+"\n"
+"# biến toàn cầu:\n"
+
+#: ex_cmds.c:92
+#, c-format
+msgid "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
+msgstr "<%s>%s%s  %d,  Hex %02x,  Octal %03o"
+
+#: ex_cmds.c:118
+#, c-format
+msgid "> %d, Hex %04x, Octal %o"
+msgstr "> %d, Hex %04x, Octal %o"
+
+#: ex_cmds.c:119
+#, c-format
+msgid "> %d, Hex %08x, Octal %o"
+msgstr "> %d, Hex %08x, Octal %o"
+
+#: ex_cmds.c:430
+msgid "E134: Move lines into themselves"
+msgstr "E134: Di chuyển các dòng lên chính chúng"
+
+#: ex_cmds.c:499
+msgid "1 line moved"
+msgstr "Đã di chuyển 1 dòng"
+
+#: ex_cmds.c:501
+#, c-format
+msgid "%ld lines moved"
+msgstr "Đã di chuyển %ld dòng"
+
+#: ex_cmds.c:924
+#, c-format
+msgid "%ld lines filtered"
+msgstr "Đã lọc %ld dòng"
+
+#: ex_cmds.c:952
+msgid "E135: *Filter* Autocommands must not change current buffer"
+msgstr "E135: Các lệnh tự động *Filter* không được thay đổi bộ đệm hiện thời"
+
+#: ex_cmds.c:1037
+msgid "[No write since last change]\n"
+msgstr "[Thay đổi chưa được ghi nhớ]\n"
+
+#: ex_cmds.c:1283
+#, c-format
+msgid "%sviminfo: %s in line: "
+msgstr "%sviminfo: %s trên dòng: "
+
+#: ex_cmds.c:1288
+msgid "E136: viminfo: Too many errors, skipping rest of file"
+msgstr "E136: viminfo: Quá nhiều lỗi, phần còn lại của tập tin sẽ được bỏ qua"
+
+#: ex_cmds.c:1323
+#, c-format
+msgid "Reading viminfo file \"%s\"%s%s%s"
+msgstr "Đọc tập tin viminfo \"%s\"%s%s%s"
+
+#: ex_cmds.c:1324
+msgid " info"
+msgstr " thông tin"
+
+#: ex_cmds.c:1325
+msgid " marks"
+msgstr " dấu hiệu"
+
+#: ex_cmds.c:1326
+msgid " FAILED"
+msgstr " KHÔNG THÀNH CÔNG"
+
+#: ex_cmds.c:1418
+#, c-format
+msgid "E137: Viminfo file is not writable: %s"
+msgstr "E137: Thiếu quyền ghi lên tập tin viminfo: %s"
+
+#: ex_cmds.c:1543
+#, c-format
+msgid "E138: Can't write viminfo file %s!"
+msgstr "E138: Không thể ghi tập tin viminfo %s!"
+
+#: ex_cmds.c:1551
+#, c-format
+msgid "Writing viminfo file \"%s\""
+msgstr "Ghi tập tin viminfo \"%s\""
+
+#. Write the info:
+#: ex_cmds.c:1649
+#, c-format
+msgid "# This viminfo file was generated by Vim %s.\n"
+msgstr "# Tập tin viminfo này được tự động tạo bởi Vim %s.\n"
+
+#: ex_cmds.c:1651
+#, c-format
+msgid ""
+"# You may edit it if you're careful!\n"
+"\n"
+msgstr ""
+"# Bạn có thể sửa tập tin này, nhưng hãy thận trọng!\n"
+"\n"
+
+#: ex_cmds.c:1653
+#, c-format
+msgid "# Value of 'encoding' when this file was written\n"
+msgstr "# Giá trị của tùy chọn 'encoding' vào thời điểm ghi tập tin\n"
+
+#: ex_cmds.c:1752
+msgid "Illegal starting char"
+msgstr "Ký tự đầu tiên không cho phép"
+
+#: ex_cmds.c:2097 ex_cmds.c:2362 ex_cmds2.c:763
+msgid "Save As"
+msgstr "Ghi nhớ như"
+
+#. Overwriting a file that is loaded in another buffer is not a
+#. * good idea.
+#: ex_cmds.c:2140
+msgid "E139: File is loaded in another buffer"
+msgstr "E139: Tập tin được nạp trong bộ đệm khác"
+
+#: ex_cmds.c:2174
+msgid "Write partial file?"
+msgstr "Ghi nhớ một phần tập tin?"
+
+#: ex_cmds.c:2181
+msgid "E140: Use ! to write partial buffer"
+msgstr "E140: Sử dụng ! để ghi nhớ một phần bộ đệm"
+
+#: ex_cmds.c:2296
+#, c-format
+msgid "Overwrite existing file \"%.*s\"?"
+msgstr "Ghi đè lên tập tin đã có \"%.*s\"?"
+
+#: ex_cmds.c:2367
+#, c-format
+msgid "E141: No file name for buffer %ld"
+msgstr "E141: Không có tên tập tin cho bộ đệm %ld"
+
+#: ex_cmds.c:2405
+msgid "E142: File not written: Writing is disabled by 'write' option"
+msgstr "E142: Tập tin chưa được ghi nhớ: Ghi nhớ bị tắt bởi tùy chọn 'write'"
+
+#: ex_cmds.c:2425
+#, c-format
+msgid ""
+"'readonly' option is set for \"%.*s\".\n"
+"Do you wish to write anyway?"
+msgstr ""
+"Tùy chọn 'readonly' được đặt cho \"%.*s\".\n"
+"Ghi nhớ bằng mọi giá?"
+
+#: ex_cmds.c:2597
+msgid "Edit File"
+msgstr "Soạn thảo tập tin"
+
+#: ex_cmds.c:3205
+#, c-format
+msgid "E143: Autocommands unexpectedly deleted new buffer %s"
+msgstr "E143: Các lệnh tự động xóa bộ đệm mới ngoài ý muốn %s"
+
+#: ex_cmds.c:3339
+msgid "E144: non-numeric argument to :z"
+msgstr "E144: Tham số của lệnh :z phải là số"
+
+#: ex_cmds.c:3424
+msgid "E145: Shell commands not allowed in rvim"
+msgstr "E145: Không cho phép sử dụng lệnh shell trong rvim."
+
+#: ex_cmds.c:3531
+msgid "E146: Regular expressions can't be delimited by letters"
+msgstr "E146: Không thể phân cách biểu thức chính quy bằng chữ cái"
+
+#: ex_cmds.c:3877
+#, c-format
+msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
+msgstr "thay thế bằng %s? (y/n/a/q/l/^E/^Y)"
+
+#: ex_cmds.c:4270
+msgid "(Interrupted) "
+msgstr "(bị dừng)"
+
+#: ex_cmds.c:4274
+msgid "1 substitution"
+msgstr "1 thay thế"
+
+#: ex_cmds.c:4276
+#, c-format
+msgid "%ld substitutions"
+msgstr "%ld thay thế"
+
+#: ex_cmds.c:4279
+msgid " on 1 line"
+msgstr " trên 1 dòng"
+
+#: ex_cmds.c:4281
+#, c-format
+msgid " on %ld lines"
+msgstr " trên %ld dòng"
+
+#: ex_cmds.c:4332
+msgid "E147: Cannot do :global recursive"
+msgstr "E147: Không thực hiện được lệnh :global đệ qui"
+
+#: ex_cmds.c:4367
+msgid "E148: Regular expression missing from global"
+msgstr "E148: Thiếu biểu thức chính quy trong lệnh :global"
+
+#: ex_cmds.c:4416
+#, c-format
+msgid "Pattern found in every line: %s"
+msgstr "Tìm thấy tương ứng trên mọi dòng: %s"
+
+#: ex_cmds.c:4497
+#, c-format
+msgid ""
+"\n"
+"# Last Substitute String:\n"
+"$"
+msgstr ""
+"\n"
+"# Chuỗi thay thế cuối cùng:\n"
+"$"
+
+#: ex_cmds.c:4598
+msgid "E478: Don't panic!"
+msgstr "E478: Hãy bình tĩnh, đừng hoảng hốt!"
+
+#: ex_cmds.c:4650
+#, c-format
+msgid "E661: Sorry, no '%s' help for %s"
+msgstr "E661: Rất tiếc, không có trợ giúp '%s' cho %s"
+
+#: ex_cmds.c:4653
+#, c-format
+msgid "E149: Sorry, no help for %s"
+msgstr "E149: Rất tiếc không có trợ giúp cho %s"
+
+#: ex_cmds.c:4687
+#, c-format
+msgid "Sorry, help file \"%s\" not found"
+msgstr "Xin lỗi, không tìm thấy tập tin trợ giúp \"%s\""
+
+#: ex_cmds.c:5170
+#, c-format
+msgid "E150: Not a directory: %s"
+msgstr "E150: %s không phải là một thư mục"
+
+#: ex_cmds.c:5309
+#, c-format
+msgid "E152: Cannot open %s for writing"
+msgstr "E152: Không thể mở %s để ghi"
+
+#: ex_cmds.c:5345
+#, c-format
+msgid "E153: Unable to open %s for reading"
+msgstr "E153: Không thể mở %s để đọc"
+
+#: ex_cmds.c:5367
+#, c-format
+msgid "E670: Mix of help file encodings within a language: %s"
+msgstr "E670: Tập tin trợ giúp sử dụng nhiều bảng mã khác nhau cho một ngôn ngữ: %s"
+
+#: ex_cmds.c:5445
+#, c-format
+msgid "E154: Duplicate tag \"%s\" in file %s"
+msgstr "E154: Thẻ ghi lặp lại \"%s\" trong tập tin %s"
+
+#: ex_cmds.c:5557
+#, c-format
+msgid "E160: Unknown sign command: %s"
+msgstr "E160: Câu lệnh ký hiệu không biết: %s"
+
+#: ex_cmds.c:5577
+msgid "E156: Missing sign name"
+msgstr "E156: Thiếu tên ký hiệu"
+
+#: ex_cmds.c:5623
+msgid "E612: Too many signs defined"
+msgstr "E612: Định nghĩa quá nhiều ký hiệu"
+
+#: ex_cmds.c:5691
+#, c-format
+msgid "E239: Invalid sign text: %s"
+msgstr "E239: Văn bản ký hiệu không thích hợp: %s"
+
+#: ex_cmds.c:5722 ex_cmds.c:5913
+#, c-format
+msgid "E155: Unknown sign: %s"
+msgstr "E155: Ký hiệu không biết: %s"
+
+#: ex_cmds.c:5771
+msgid "E159: Missing sign number"
+msgstr "E159: Thiếu số của ký hiệu"
+
+#: ex_cmds.c:5853
+#, c-format
+msgid "E158: Invalid buffer name: %s"
+msgstr "E158: Tên bộ đệm không đúng: %s"
+
+#: ex_cmds.c:5892
+#, c-format
+msgid "E157: Invalid sign ID: %ld"
+msgstr "E157: ID của ký hiệu không đúng: %ld"
+
+#: ex_cmds.c:5962
+msgid " (NOT FOUND)"
+msgstr " (KHÔNG TÌM THẤY)"
+
+#: ex_cmds.c:5964
+msgid " (not supported)"
+msgstr " (không được hỗ trợ)"
+
+#: ex_cmds.c:6063
+msgid "[Deleted]"
+msgstr "[bị xóa]"
+
+#: ex_cmds2.c:92
+msgid "Entering Debug mode.  Type \"cont\" to continue."
+msgstr "Bật chế độ sửa lỗi (Debug). Gõ \"cont\" để tiếp tục."
+
+#: ex_cmds2.c:96 ex_docmd.c:966
+#, c-format
+msgid "line %ld: %s"
+msgstr "dòng %ld: %s"
+
+#: ex_cmds2.c:98
+#, c-format
+msgid "cmd: %s"
+msgstr "câu lệnh: %s"
+
+#: ex_cmds2.c:290
+#, c-format
+msgid "Breakpoint in \"%s%s\" line %ld"
+msgstr "Điểm dừng trên \"%s%s\" dòng %ld"
+
+#: ex_cmds2.c:540
+#, c-format
+msgid "E161: Breakpoint not found: %s"
+msgstr "E161: Không tìm thấy điểm dừng: %s"
+
+#: ex_cmds2.c:566
+msgid "No breakpoints defined"
+msgstr "Điểm dừng không được xác định"
+
+#: ex_cmds2.c:571
+#, c-format
+msgid "%3d  %s %s  line %ld"
+msgstr "%3d  %s %s dòng %ld"
+
+#: ex_cmds2.c:786
+#, c-format
+msgid "Save changes to \"%.*s\"?"
+msgstr "Ghi nhớ thay đổi vào \"%.*s\"?"
+
+#: ex_cmds2.c:788 ex_docmd.c:9378
+msgid "Untitled"
+msgstr "Chưa đặt tên"
+
+#: ex_cmds2.c:915
+#, c-format
+msgid "E162: No write since last change for buffer \"%s\""
+msgstr "E162: Thay đổi chưa được ghi nhớ trong bộ đệm \"%s\""
+
+#: ex_cmds2.c:984
+msgid "Warning: Entered other buffer unexpectedly (check autocommands)"
+msgstr ""
+"Cảnh báo: Chuyển tới bộ đệm khác không theo ý muốn (hãy kiểm tra câu lệnh tự động)"
+
+#: ex_cmds2.c:1387
+msgid "E163: There is only one file to edit"
+msgstr "E163: Chỉ có một tập tin để soạn thảo"
+
+#: ex_cmds2.c:1389
+msgid "E164: Cannot go before first file"
+msgstr "E164: Đây là tập tin đầu tiên"
+
+#: ex_cmds2.c:1391
+msgid "E165: Cannot go beyond last file"
+msgstr "E165: Đây là tập tin cuối cùng"
+
+#: ex_cmds2.c:1804
+#, c-format
+msgid "E666: compiler not supported: %s"
+msgstr "E666: trình biên dịch không được hỗ trợ: %s"
+
+#: ex_cmds2.c:1897
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "Tìm kiếm \"%s\" trong \"%s\""
+
+#: ex_cmds2.c:1919
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "Tìm kiếm \"%s\""
+
+#: ex_cmds2.c:1940
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "không tìm thấy trong 'runtimepath': \"%s\""
+
+#: ex_cmds2.c:1974
+msgid "Source Vim script"
+msgstr "Thực hiện script của Vim"
+
+#: ex_cmds2.c:2164
+#, c-format
+msgid "Cannot source a directory: \"%s\""
+msgstr "Không thể thực hiện một thư mục: \"%s\""
+
+#: ex_cmds2.c:2202
+#, c-format
+msgid "could not source \"%s\""
+msgstr "không thực hiện được \"%s\""
+
+#: ex_cmds2.c:2204
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "dòng %ld: không thực hiện được \"%s\""
+
+#: ex_cmds2.c:2218
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "thực hiện \"%s\""
+
+#: ex_cmds2.c:2220
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "dòng %ld: thực hiện \"%s\""
+
+#: ex_cmds2.c:2363
+#, c-format
+msgid "finished sourcing %s"
+msgstr "thực hiện xong %s"
+
+#: ex_cmds2.c:2707
+msgid "W15: Warning: Wrong line separator, ^M may be missing"
+msgstr ""
+"W15: Cảnh báo: Ký tự phân cách dòng không đúng. Rất có thể thiếu ^M"
+
+#: ex_cmds2.c:2756
+msgid "E167: :scriptencoding used outside of a sourced file"
+msgstr "E167: Lệnh :scriptencoding sử dụng ngoài tập tin script"
+
+#: ex_cmds2.c:2789
+msgid "E168: :finish used outside of a sourced file"
+msgstr "E168: Lệnh :finish sử dụng ngoài tập tin script"
+
+#: ex_cmds2.c:3238
+#, c-format
+msgid "Page %d"
+msgstr "Trang %d"
+
+#: ex_cmds2.c:3394
+msgid "No text to be printed"
+msgstr "Không có gì để in"
+
+#: ex_cmds2.c:3472
+#, c-format
+msgid "Printing page %d (%d%%)"
+msgstr "In trang %d (%d%%)"
+
+#: ex_cmds2.c:3484
+#, c-format
+msgid " Copy %d of %d"
+msgstr " Sao chép %d của %d"
+
+#: ex_cmds2.c:3542
+#, c-format
+msgid "Printed: %s"
+msgstr "Đã in: %s"
+
+#: ex_cmds2.c:3549
+#, c-format
+msgid "Printing aborted"
+msgstr "In bị dừng"
+
+#: ex_cmds2.c:3914
+msgid "E455: Error writing to PostScript output file"
+msgstr "E455: Lỗi ghi nhớ vào tập tin PostScript"
+
+#: ex_cmds2.c:4189
+#, c-format
+msgid "E624: Can't open file \"%s\""
+msgstr "E624: Không thể mở tập tin \"%s\""
+
+#: ex_cmds2.c:4199 ex_cmds2.c:4824
+#, c-format
+msgid "E457: Can't read PostScript resource file \"%s\""
+msgstr "E457: Không thể đọc tập tin tài nguyên PostScript \"%s\""
+
+#: ex_cmds2.c:4207
+#, c-format
+msgid "E618: file \"%s\" is not a PostScript resource file"
+msgstr "E618: \"%s\" không phải là tập tin tài nguyên PostScript"
+
+#: ex_cmds2.c:4222 ex_cmds2.c:4242 ex_cmds2.c:4257 ex_cmds2.c:4279
+#, c-format
+msgid "E619: file \"%s\" is not a supported PostScript resource file"
+msgstr "E619: \"%s\" không phải là tập tin tài nguyên PostScript được hỗ trợ"
+
+#: ex_cmds2.c:4309
+#, c-format
+msgid "E621: \"%s\" resource file has wrong version"
+msgstr "E621: tập tin tài nguyên \"%s\" có phiên bản không đúng"
+
+#: ex_cmds2.c:4776
+msgid "E324: Can't open PostScript output file"
+msgstr "E324: Không thể mở tập tin PostScript"
+
+#: ex_cmds2.c:4809
+#, c-format
+msgid "E456: Can't open file \"%s\""
+msgstr "E456: Không thể mở tập tin \"%s\""
+
+#: ex_cmds2.c:4928
+msgid "E456: Can't find PostScript resource file \"prolog.ps\""
+msgstr "E456: Không tìm thấy tập tin tài nguyên PostScript \"prolog.ps\""
+
+#: ex_cmds2.c:4959
+#, c-format
+msgid "E456: Can't find PostScript resource file \"%s.ps\""
+msgstr "E456: Không tìm thấy tập tin tài nguyên PostScript \"%s.ps\""
+
+#: ex_cmds2.c:4977
+#, c-format
+msgid "E620: Unable to convert from multi-byte to \"%s\" encoding"
+msgstr ""
+"E620: Không thể chuyển từ các ký tự nhiều byte thành bảng mã \"%s\"" 
+
+#: ex_cmds2.c:5102
+msgid "Sending to printer..."
+msgstr "Gửi tới máy in..."
+
+#: ex_cmds2.c:5106
+msgid "E365: Failed to print PostScript file"
+msgstr "E365: In tập tin PostScript không thành công"
+
+#: ex_cmds2.c:5108
+msgid "Print job sent."
+msgstr "Đã gửi công việc in."
+
+#: ex_cmds2.c:5618
+#, c-format
+msgid "Current %slanguage: \"%s\""
+msgstr "Ngôn ngữ %shiện thời: \"%s\""
+
+#: ex_cmds2.c:5629
+#, c-format
+msgid "E197: Cannot set language to \"%s\""
+msgstr "E197: Không thể thay đổi ngôn ngữ thành \"%s\""
+
+#: ex_docmd.c:525
+msgid "Entering Ex mode.  Type \"visual\" to go to Normal mode."
+msgstr "Chuyển vào chế độ Ex. Để chuyển về chế độ Thông thường hãy gõ \"visual\""
+
+#. must be at EOF
+#: ex_docmd.c:561
+msgid "E501: At end-of-file"
+msgstr "E501: Ở cuối tập tin"
+
+#: ex_docmd.c:669
+msgid "E169: Command too recursive"
+msgstr "E169: Câu lệnh quá đệ quy"
+
+#: ex_docmd.c:1229
+#, c-format
+msgid "E605: Exception not caught: %s"
+msgstr "E605: Trường hợp đặc biệt không được xử lý: %s"
+
+#: ex_docmd.c:1317
+msgid "End of sourced file"
+msgstr "Kết thúc tập tin script"
+
+#: ex_docmd.c:1318
+msgid "End of function"
+msgstr "Kết thúc của hàm số"
+
+#: ex_docmd.c:1907
+msgid "E464: Ambiguous use of user-defined command"
+msgstr "E464: Sự sử dụng không rõ ràng câu lệnh do người dùng định nghĩa"
+
+#: ex_docmd.c:1921
+msgid "E492: Not an editor command"
+msgstr "E492: Không phải là câu lệnh của trình soạn thảo"
+
+#: ex_docmd.c:2028
+msgid "E493: Backwards range given"
+msgstr "E493: Đưa ra phạm vi ngược lại"
+
+#: ex_docmd.c:2037
+msgid "Backwards range given, OK to swap"
+msgstr "Đưa ra phạm vi ngược lại, thay đổi vị trí hai giới hạn"
+
+#: ex_docmd.c:2160
+msgid "E494: Use w or w>>"
+msgstr "E494: Hãy sử dụng w hoặc w>>"
+
+#: ex_docmd.c:3786
+msgid "E319: Sorry, the command is not available in this version"
+msgstr "E319: Xin lỗi, câu lệnh này không có trong phiên bản này"
+
+#: ex_docmd.c:3989
+msgid "E172: Only one file name allowed"
+msgstr "E172: Chỉ cho phép sử dụng một tên tập tin"
+
+#: ex_docmd.c:4569
+msgid "1 more file to edit.  Quit anyway?"
+msgstr "Còn 1 tập tin nữa cần soạn thảo. Thoát?"
+
+#: ex_docmd.c:4572
+#, c-format
+msgid "%d more files to edit.  Quit anyway?"
+msgstr "Còn %d tập tin nữa chưa soạn thảo. Thoát?"
+
+#: ex_docmd.c:4579
+msgid "E173: 1 more file to edit"
+msgstr "E173: 1 tập tin nữa chờ soạn thảo."
+
+#: ex_docmd.c:4581
+#, c-format
+msgid "E173: %ld more files to edit"
+msgstr "E173: %ld tập tin nữa chưa soạn thảo."
+
+#: ex_docmd.c:4676
+msgid "E174: Command already exists: add ! to replace it"
+msgstr "E174: Đã có câu lệnh: Thêm ! để thay thế"
+
+#: ex_docmd.c:4787
+msgid ""
+"\n"
+"    Name        Args Range Complete  Definition"
+msgstr ""
+"\n"
+"    Tên		Tham_số Phạm_vi Phần_phụ Định_nghĩa"
+
+#: ex_docmd.c:4876
+msgid "No user-defined commands found"
+msgstr "Không tìm thấy câu lệnh do người dùng định nghĩa"
+
+#: ex_docmd.c:4908
+msgid "E175: No attribute specified"
+msgstr "E175: Không có tham số được chỉ ra"
+
+#: ex_docmd.c:4960
+msgid "E176: Invalid number of arguments"
+msgstr "E176: Số lượng tham số không đúng"
+
+#: ex_docmd.c:4975
+msgid "E177: Count cannot be specified twice"
+msgstr "E177: Số đếm không thể được chỉ ra hai lần"
+
+#: ex_docmd.c:4985
+msgid "E178: Invalid default value for count"
+msgstr "E178: Giá trị của số đếm theo mặc định không đúng"
+
+#: ex_docmd.c:5016
+msgid "E179: argument required for complete"
+msgstr "E179: yêu cầu đưa ra tham số để kết thúc"
+
+#: ex_docmd.c:5048
+#, c-format
+msgid "E180: Invalid complete value: %s"
+msgstr "E180: Giá trị phần phụ không đúng: %s"
+
+#: ex_docmd.c:5057
+msgid "E468: Completion argument only allowed for custom completion"
+msgstr ""
+"E468: Tham số tự động kết thúc chỉ cho phép sử dụng với phần phụ đặc biệt"
+
+#: ex_docmd.c:5063
+msgid "E467: Custom completion requires a function argument"
+msgstr "E467: Phần phục đặc biệt yêu cầu một tham số của hàm"
+
+#: ex_docmd.c:5074
+#, c-format
+msgid "E181: Invalid attribute: %s"
+msgstr "E181: Thuộc tính không đúng: %s"
+
+#: ex_docmd.c:5117
+msgid "E182: Invalid command name"
+msgstr "E182: Tên câu lệnh không đúng"
+
+#: ex_docmd.c:5132
+msgid "E183: User defined commands must start with an uppercase letter"
+msgstr "E183: Câu lệnh người dùng định nghĩa phải bắt đầu với một ký tự hoa"
+
+#: ex_docmd.c:5203
+#, c-format
+msgid "E184: No such user-defined command: %s"
+msgstr "E184: Không có câu lệnh người dùng định nghĩa như vậy: %s"
+
+#: ex_docmd.c:5664
+#, c-format
+msgid "E185: Cannot find color scheme %s"
+msgstr "E185: Không tin thấy sơ đồ màu sắc %s"
+
+#: ex_docmd.c:5672
+msgid "Greetings, Vim user!"
+msgstr "Xin chào, người dùng Vim!"
+
+#: ex_docmd.c:6389
+msgid "Edit File in new window"
+msgstr "Soạn thảo tập tin trong cửa sổ mới"
+
+#: ex_docmd.c:6684
+msgid "No swap file"
+msgstr "Không có tập tin swap"
+
+#: ex_docmd.c:6788
+msgid "Append File"
+msgstr "Thêm tập tin"
+
+#: ex_docmd.c:6852
+msgid "E186: No previous directory"
+msgstr "E186: Không có thư mục trước"
+
+#: ex_docmd.c:6934
+msgid "E187: Unknown"
+msgstr "E187: Không rõ"
+
+#: ex_docmd.c:7019
+msgid "E465: :winsize requires two number arguments"
+msgstr "E465: câu lệnh :winsize yêu cầu hai tham số bằng số"
+
+#: ex_docmd.c:7075
+#, c-format
+msgid "Window position: X %d, Y %d"
+msgstr "Vị trí cửa sổ: X %d, Y %d"
+
+#: ex_docmd.c:7080
+msgid "E188: Obtaining window position not implemented for this platform"
+msgstr "E188: Trên hệ thống này việc xác định vị trí cửa sổ không làm việc"
+
+#: ex_docmd.c:7090
+msgid "E466: :winpos requires two number arguments"
+msgstr "E466: câu lệnh :winpos yêu câu hai tham số bằng số"
+
+#: ex_docmd.c:7368
+msgid "Save Redirection"
+msgstr "Chuyển hướng ghi nhớ"
+
+#: ex_docmd.c:7558
+msgid "Save View"
+msgstr "Ghi nhớ vẻ ngoài"
+
+#: ex_docmd.c:7559
+msgid "Save Session"
+msgstr "Ghi nhớ buổi làm việc"
+
+#: ex_docmd.c:7561
+msgid "Save Setup"
+msgstr "Ghi nhớ cấu hình"
+
+#: ex_docmd.c:7713
+#, c-format
+msgid "E189: \"%s\" exists (add ! to override)"
+msgstr "E189: \"%s\" đã có (thêm !, để ghi đè)"
+
+#: ex_docmd.c:7718
+#, c-format
+msgid "E190: Cannot open \"%s\" for writing"
+msgstr "E190: Không mở được \"%s\" để ghi nhớ"
+
+#. set mark
+#: ex_docmd.c:7742
+msgid "E191: Argument must be a letter or forward/backward quote"
+msgstr "E191: Tham số phải là một chữ cái hoặc dấu ngoặc thẳng/ngược"
+
+#: ex_docmd.c:7784
+msgid "E192: Recursive use of :normal too deep"
+msgstr "E192: Sử dụng đệ quy lệnh :normal quá sâu"
+
+#: ex_docmd.c:8302
+msgid "E194: No alternate file name to substitute for '#'"
+msgstr "E194: Không có tên tập tin tương đương để thay thế '#'"
+
+#: ex_docmd.c:8333
+msgid "E495: no autocommand file name to substitute for \"<afile>\""
+msgstr "E495: Không có tên tập tin câu lệnh tự động để thay thế \"<afile>\""
+
+#: ex_docmd.c:8341
+msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
+msgstr "E496: Không có số thứ tự bộ đệm câu lệnh tự động để thay thế \"<abuf>\""
+
+#: ex_docmd.c:8352
+msgid "E497: no autocommand match name to substitute for \"<amatch>\""
+msgstr "E497: Không có tên tương ứng câu lệnh tự động để thay thế \"<amatch>\""
+
+#: ex_docmd.c:8362
+msgid "E498: no :source file name to substitute for \"<sfile>\""
+msgstr "E498: không có tên tập tin :source để thay thế \"<sfile>\""
+
+#: ex_docmd.c:8403
+#, no-c-format
+msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
+msgstr "E499: Tên tập tin rỗng cho '%' hoặc '#', chỉ làm việc với \":p:h\""
+
+#: ex_docmd.c:8405
+msgid "E500: Evaluates to an empty string"
+msgstr "E500: Kết quả của biểu thức là một chuỗi rỗng"
+
+#: ex_docmd.c:9360
+msgid "E195: Cannot open viminfo file for reading"
+msgstr "E195: Không thể mở tập tin viminfo để đọc"
+
+#: ex_docmd.c:9533
+msgid "E196: No digraphs in this version"
+msgstr "E196: Trong phiên bản này chữ ghép không được hỗ trợ"
+
+#: ex_eval.c:440
+msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
+msgstr ""
+"E608: Không thể thực hiện lệnh :throw cho những ngoại lệ với tiền tố 'Vim'"
+
+#. always scroll up, don't overwrite
+#: ex_eval.c:529
+#, c-format
+msgid "Exception thrown: %s"
+msgstr "Trường hợp ngoại lệ: %s"
+
+#: ex_eval.c:576
+#, c-format
+msgid "Exception finished: %s"
+msgstr "Kết thúc việc xử lý trường hợp ngoại lệ: %s"
+
+#: ex_eval.c:577
+#, c-format
+msgid "Exception discarded: %s"
+msgstr "Trường hợp ngoại lệ bị bỏ qua: %s"
+
+#: ex_eval.c:620 ex_eval.c:664
+#, c-format
+msgid "%s, line %ld"
+msgstr "%s, dòng %ld"
+
+#. always scroll up, don't overwrite
+#: ex_eval.c:638
+#, c-format
+msgid "Exception caught: %s"
+msgstr "Xử lý trường hợp ngoại lệ: %s"
+
+#: ex_eval.c:713
+#, c-format
+msgid "%s made pending"
+msgstr "%s thực hiện việc chờ đợi"
+
+#: ex_eval.c:716
+#, c-format
+msgid "%s resumed"
+msgstr "%s được phục hồi lại"
+
+#: ex_eval.c:720
+#, c-format
+msgid "%s discarded"
+msgstr "%s bị bỏ qua"
+
+#: ex_eval.c:746
+msgid "Exception"
+msgstr "Trường hợp ngoại lệ"
+
+#: ex_eval.c:752
+msgid "Error and interrupt"
+msgstr "Lỗi và sự gián đoạn"
+
+#: ex_eval.c:754 gui.c:4381
+msgid "Error"
+msgstr "Lỗi"
+
+#. if (pending & CSTP_INTERRUPT)
+#: ex_eval.c:756
+msgid "Interrupt"
+msgstr "Sự gián đoạn"
+
+#: ex_eval.c:830
+msgid "E579: :if nesting too deep"
+msgstr "E579: :if xếp lồng vào nhau quá sâu"
+
+#: ex_eval.c:867
+msgid "E580: :endif without :if"
+msgstr "E580: :endif không có :if"
+
+#: ex_eval.c:911
+msgid "E581: :else without :if"
+msgstr "E581: :else không có :if"
+
+#: ex_eval.c:914
+msgid "E582: :elseif without :if"
+msgstr "E582: :elseif không có :if"
+
+#: ex_eval.c:921
+msgid "E583: multiple :else"
+msgstr "E583: phát hiện vài :else"
+
+#: ex_eval.c:924
+msgid "E584: :elseif after :else"
+msgstr "E584: :elseif sau :else"
+
+#: ex_eval.c:991
+msgid "E585: :while nesting too deep"
+msgstr "E585: :while xếp lồng vào nhau quá sâu"
+
+#: ex_eval.c:1047
+msgid "E586: :continue without :while"
+msgstr "E586: :continue không có :while"
+
+#: ex_eval.c:1087
+msgid "E587: :break without :while"
+msgstr "E587: :break không có :while"
+
+#: ex_eval.c:1286
+msgid "E601: :try nesting too deep"
+msgstr "E601: :try xếp lồng vào nhau quá sâu"
+
+#: ex_eval.c:1366
+msgid "E603: :catch without :try"
+msgstr "E603: :catch không có :try"
+
+#. Give up for a ":catch" after ":finally" and ignore it.
+#. * Just parse.
+#: ex_eval.c:1388
+msgid "E604: :catch after :finally"
+msgstr "E604: :catch đứng sau :finally"
+
+#: ex_eval.c:1521
+msgid "E606: :finally without :try"
+msgstr "E606: :finally không có :try"
+
+#. Give up for a multiple ":finally" and ignore it.
+#: ex_eval.c:1545
+msgid "E607: multiple :finally"
+msgstr "E607: phát hiện vài :finally"
+
+#: ex_eval.c:1654
+msgid "E602: :endtry without :try"
+msgstr "E602: :endtry không có :try"
+
+#: ex_eval.c:1986
+msgid "E193: :endfunction not inside a function"
+msgstr "E193: lệnh :endfunction chỉ được sử dụng trong một hàm số"
+
+#: ex_getln.c:3296
+msgid "tagname"
+msgstr "tên thẻ ghi"
+
+#: ex_getln.c:3299
+msgid " kind file\n"
+msgstr " loại tập tin\n"
+
+#: ex_getln.c:4752
+msgid "'history' option is zero"
+msgstr "giá trị của tùy chọn 'history' bằng không"
+
+#: ex_getln.c:5023
+#, c-format
+msgid ""
+"\n"
+"# %s History (newest to oldest):\n"
+msgstr ""
+"\n"
+"# %s, Lịch sử (bắt đầu từ mới nhất tới cũ nhất):\n"
+
+#: ex_getln.c:5024
+msgid "Command Line"
+msgstr "Dòng lệnh"
+
+#: ex_getln.c:5025
+msgid "Search String"
+msgstr "Chuỗi tìm kiếm"
+
+#: ex_getln.c:5026
+msgid "Expression"
+msgstr "Biểu thức"
+
+#: ex_getln.c:5027
+msgid "Input Line"
+msgstr "Dòng nhập"
+
+#: ex_getln.c:5065
+msgid "E198: cmd_pchar beyond the command length"
+msgstr "E198: cmd_pchar lớn hơn chiều dài câu lệnh"
+
+#: ex_getln.c:5242
+msgid "E199: Active window or buffer deleted"
+msgstr "E199: Cửa sổ hoặc bộ đệm hoạt động bị xóa"
+
+#: fileio.c:377
+msgid "Illegal file name"
+msgstr "Tên tập tin không cho phép"
+
+#: fileio.c:401 fileio.c:535 fileio.c:2913 fileio.c:2954
+msgid "is a directory"
+msgstr "là một thư mục"
+
+#: fileio.c:403
+msgid "is not a file"
+msgstr "không phải là một tập tin"
+
+#: fileio.c:557 fileio.c:4131
+msgid "[New File]"
+msgstr "[Tập tin mới]"
+
+#: fileio.c:590
+msgid "[Permission Denied]"
+msgstr "[Truy cập bị từ chối]"
+
+#: fileio.c:694
+msgid "E200: *ReadPre autocommands made the file unreadable"
+msgstr "E200: Câu lệnh tự động *ReadPre làm cho tập tin trở thành không thể đọc"
+
+#: fileio.c:696
+msgid "E201: *ReadPre autocommands must not change current buffer"
+msgstr "E201: Câu lệnh tự động *ReadPre không được thay đổi bộ đệm hoạt động"
+
+#: fileio.c:717
+msgid "Vim: Reading from stdin...\n"
+msgstr "Vim: Đọc từ đầu vào tiêu chuẩn stdin...\n"
+
+#: fileio.c:723
+msgid "Reading from stdin..."
+msgstr "Đọc từ đầu vào tiêu chuẩn stdin..."
+
+#. Re-opening the original file failed!
+#: fileio.c:1000
+msgid "E202: Conversion made file unreadable!"
+msgstr "E202: Sự biến đổi làm cho tập tin trở thành không thể đọc!"
+
+#: fileio.c:2090
+msgid "[fifo/socket]"
+msgstr "[fifo/socket]"
+
+#: fileio.c:2097
+msgid "[fifo]"
+msgstr "[fifo]"
+
+#: fileio.c:2104
+msgid "[socket]"
+msgstr "[socket]"
+
+#: fileio.c:2112
+msgid "[RO]"
+msgstr "[Chỉ đọc]"
+
+#: fileio.c:2122
+msgid "[CR missing]"
+msgstr "[thiếu ký tự CR]"
+
+#: fileio.c:2127
+msgid "[NL found]"
+msgstr "[tìm thấy ký tự NL]"
+
+#: fileio.c:2132
+msgid "[long lines split]"
+msgstr "[dòng dài được chia nhỏ]"
+
+#: fileio.c:2138 fileio.c:4115
+msgid "[NOT converted]"
+msgstr "[KHÔNG được chuyển đổi]"
+
+#: fileio.c:2143 fileio.c:4120
+msgid "[converted]"
+msgstr "[đã chuyển bảng mã]"
+
+#: fileio.c:2150 fileio.c:4145
+msgid "[crypted]"
+msgstr "[đã mã hóa]"
+
+#: fileio.c:2157
+msgid "[CONVERSION ERROR]"
+msgstr "[LỖI CHUYỂN BẢNG MÃ]"
+
+#: fileio.c:2163
+#, c-format
+msgid "[ILLEGAL BYTE in line %ld]"
+msgstr "[BYTE KHÔNG CHO PHÉP trên dòng %ld]"
+
+#: fileio.c:2170
+msgid "[READ ERRORS]"
+msgstr "[LỖI ĐỌC]"
+
+#: fileio.c:2386
+msgid "Can't find temp file for conversion"
+msgstr "Không tìm thấy tập tin tạm thời (temp) để chuyển bảng mã"
+
+#: fileio.c:2393
+msgid "Conversion with 'charconvert' failed"
+msgstr "Chuyển đổi nhờ 'charconvert' không được thực hiện"
+
+#: fileio.c:2396
+msgid "can't read output of 'charconvert'"
+msgstr "không đọc được đầu ra của 'charconvert'"
+
+#: fileio.c:2796
+msgid "E203: Autocommands deleted or unloaded buffer to be written"
+msgstr ""
+"E203: Câu lệnh tự động đã xóa hoặc bỏ nạp bộ đệm cần ghi nhớ"
+
+#: fileio.c:2819
+msgid "E204: Autocommand changed number of lines in unexpected way"
+msgstr "E204: Câu lệnh tự động đã thay đổ số dòng theo cách không mong muốn"
+
+#: fileio.c:2857
+msgid "NetBeans dissallows writes of unmodified buffers"
+msgstr "NetBeans không cho phép ghi nhớ bộ đệm chưa có thay đổi nào"
+
+#: fileio.c:2865
+msgid "Partial writes disallowed for NetBeans buffers"
+msgstr "Ghi nhớ một phần bộ đệm NetBeans không được cho phép"
+
+#: fileio.c:2919 fileio.c:2937
+msgid "is not a file or writable device"
+msgstr "không phải là một tập tin thay một thiết bị có thể ghi nhớ"
+
+#: fileio.c:2989
+msgid "is read-only (add ! to override)"
+msgstr "là tập tin chỉ đọc (thêm ! để ghi nhớ bằng mọi giá)"
+
+#: fileio.c:3335
+msgid "E506: Can't write to backup file (add ! to override)"
+msgstr "E506: Không thể ghi nhớ vào tập tin lưu trữ (thêm ! để ghi nhớ bằng mọi giá"
+
+#: fileio.c:3347
+msgid "E507: Close error for backup file (add ! to override)"
+msgstr "E507: Lỗi đóng tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)"
+
+#: fileio.c:3349
+msgid "E508: Can't read file for backup (add ! to override)"
+msgstr "E508: Không đọc được tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)"
+
+#: fileio.c:3365
+msgid "E509: Cannot create backup file (add ! to override)"
+msgstr "E509: Không tạo được tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)"
+
+#: fileio.c:3468
+msgid "E510: Can't make backup file (add ! to override)"
+msgstr "E510: Không tạo được tập tin lưu trữ (thêm ! để bỏ qua việc kiểm tra lại)"
+
+#: fileio.c:3530
+msgid "E460: The resource fork would be lost (add ! to override)"
+msgstr "E460: Nhánh tài nguyên sẽ bị mất (thêm ! để bỏ qua việc kiểm tra lại)"
+
+#: fileio.c:3640
+msgid "E214: Can't find temp file for writing"
+msgstr "E214: Không tìm thấy tập tin tạm thời (temp) để ghi nhớ"
+
+#: fileio.c:3658
+msgid "E213: Cannot convert (add ! to write without conversion)"
+msgstr "E213: Không thể chuyển đổi bảng mã (thêm ! để ghi nhớ mà không chuyển đổi)"
+
+#: fileio.c:3693
+msgid "E166: Can't open linked file for writing"
+msgstr "E166: Không thể mở tập tin liên kết để ghi nhớ"
+
+#: fileio.c:3697
+msgid "E212: Can't open file for writing"
+msgstr "E212: Không thể mở tập tin để ghi nhớ"
+
+#: fileio.c:3959
+msgid "E667: Fsync failed"
+msgstr "E667: Không thực hiện thành công hàm số fsync()"
+
+#: fileio.c:3966
+msgid "E512: Close failed"
+msgstr "E512: Thao tác đóng không thành công"
+
+#: fileio.c:4037
+msgid "E513: write error, conversion failed"
+msgstr "E513: Lỗi ghi nhớ, biến đổi không thành công"
+
+#: fileio.c:4043
+msgid "E514: write error (file system full?)"
+msgstr "E514: lỗi ghi nhớ (không còn chỗ trống?)"
+
+#: fileio.c:4110
+msgid " CONVERSION ERROR"
+msgstr " LỖI BIẾN ĐỔI"
+
+#: fileio.c:4126
+msgid "[Device]"
+msgstr "[Thiết bị]"
+
+#: fileio.c:4131
+msgid "[New]"
+msgstr "[Mới]"
+
+#: fileio.c:4153
+msgid " [a]"
+msgstr " [a]"
+
+#: fileio.c:4153
+msgid " appended"
+msgstr " đã thêm"
+
+#: fileio.c:4155
+msgid " [w]"
+msgstr " [w]"
+
+#: fileio.c:4155
+msgid " written"
+msgstr " đã ghi"
+
+#: fileio.c:4205
+msgid "E205: Patchmode: can't save original file"
+msgstr "E205: Chế độ vá lỗi (patch): không thể ghi nhớ tập tin gốc"
+
+#: fileio.c:4227
+msgid "E206: patchmode: can't touch empty original file"
+msgstr ""
+"E206: Chế độ vá lỗi (patch): không thể thay đổi tham số của tập tin gốc trống rỗng"
+
+#: fileio.c:4242
+msgid "E207: Can't delete backup file"
+msgstr "E207: Không thể xóa tập tin lưu trữ (backup)"
+
+#: fileio.c:4306
+msgid ""
+"\n"
+"WARNING: Original file may be lost or damaged\n"
+msgstr ""
+"\n"
+"CẢNH BÁO: Tập tin gốc có thể bị mất hoặc bị hỏng\n"
+
+#: fileio.c:4308
+msgid "don't quit the editor until the file is successfully written!"
+msgstr "đừng thoát khởi trình soạn thảo, khi tập tin còn chưa được ghi nhớ thành cồng"
+
+#: fileio.c:4397
+msgid "[dos]"
+msgstr "[dos]"
+
+#: fileio.c:4397
+msgid "[dos format]"
+msgstr "[định dạng dos]"
+
+#: fileio.c:4404
+msgid "[mac]"
+msgstr "[mac]"
+
+#: fileio.c:4404
+msgid "[mac format]"
+msgstr "[định dạng mac]"
+
+#: fileio.c:4411
+msgid "[unix]"
+msgstr "[unix]"
+
+#: fileio.c:4411
+msgid "[unix format]"
+msgstr "[định dạng unix]"
+
+#: fileio.c:4438
+msgid "1 line, "
+msgstr "1 dòng, "
+
+#: fileio.c:4440
+#, c-format
+msgid "%ld lines, "
+msgstr "%ld dòng, "
+
+#: fileio.c:4443
+msgid "1 character"
+msgstr "1 ký tự"
+
+#: fileio.c:4445
+#, c-format
+msgid "%ld characters"
+msgstr "%ld ký tự"
+
+#: fileio.c:4455
+msgid "[noeol]"
+msgstr "[noeol]"
+
+#: fileio.c:4455
+msgid "[Incomplete last line]"
+msgstr "[Dòng cuối cùng không đầy đủ]"
+
+#. don't overwrite messages here
+#. must give this prompt
+#. don't use emsg() here, don't want to flush the buffers
+#: fileio.c:4474
+msgid "WARNING: The file has been changed since reading it!!!"
+msgstr "CẢNH BÁO: Tập tin đã thay đổi so với thời điểm đọc!!!"
+
+#: fileio.c:4476
+msgid "Do you really want to write to it"
+msgstr "Bạn có chắc muốn ghi nhớ vào tập tin này"
+
+#: fileio.c:5726
+#, c-format
+msgid "E208: Error writing to \"%s\""
+msgstr "E208: Lỗi ghi nhớ vào \"%s\""
+
+#: fileio.c:5733
+#, c-format
+msgid "E209: Error closing \"%s\""
+msgstr "E209: Lỗi đóng \"%s\""
+
+#: fileio.c:5736
+#, c-format
+msgid "E210: Error reading \"%s\""
+msgstr "E210: Lỗi đọc \"%s\""
+
+#: fileio.c:5970
+msgid "E246: FileChangedShell autocommand deleted buffer"
+msgstr "E246: Bộ đệm bị xóa khi thực hiện câu lệnh tự động FileChangedShell"
+
+#: fileio.c:5977
+#, c-format
+msgid "E211: Warning: File \"%s\" no longer available"
+msgstr "E211: Cảnh báo: Tập tin \"%s\" không còn truy cập được nữa"
+
+#: fileio.c:5991
+#, c-format
+msgid ""
+"W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as "
+"well"
+msgstr ""
+"W12: Cảnh báo: Tập tin \"%s\" và bộ đệm Vim đã thay đổi không phụ thuộc vào "
+"nhau"
+
+#: fileio.c:5994
+#, c-format
+msgid "W11: Warning: File \"%s\" has changed since editing started"
+msgstr ""
+"W11: Cảnh báo: Tập tin \"%s\" đã thay đổi sau khi việc soạn thảo bắt đầu"
+
+#: fileio.c:5996
+#, c-format
+msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
+msgstr ""
+"W16: Cảnh báo: chế độ truy cập tới tập tin \"%s\" đã thay đổi sau khi bắt "
+"đầu soạn thảo"
+
+#: fileio.c:6006
+#, c-format
+msgid "W13: Warning: File \"%s\" has been created after editing started"
+msgstr ""
+"W13: Cảnh báo: tập tin \"%s\" được tạo ra sau khi việc soạn thảo bắt đầu"
+
+#: fileio.c:6019
+msgid "See \":help W11\" for more info."
+msgstr "Hãy xem thông tin chi tiết trong \":help W11\"."
+
+#: fileio.c:6033
+msgid "Warning"
+msgstr "Cảnh báo"
+
+#: fileio.c:6034
+msgid ""
+"&OK\n"
+"&Load File"
+msgstr ""
+"&OK\n"
+"&Nạp tập tin"
+
+#: fileio.c:6140
+#, c-format
+msgid "E462: Could not prepare for reloading \"%s\""
+msgstr "E462: Không thể chuẩn bị để nạp lại \"%s\""
+
+#: fileio.c:6159
+#, c-format
+msgid "E321: Could not reload \"%s\""
+msgstr "E321: Không thể nạp lại \"%s\""
+
+#: fileio.c:6740
+msgid "--Deleted--"
+msgstr "--Bị xóa--"
+
+#. the group doesn't exist
+#: fileio.c:6900
+#, c-format
+msgid "E367: No such group: \"%s\""
+msgstr "E367: Nhóm \"%s\" không tồn tại"
+
+#: fileio.c:7026
+#, c-format
+msgid "E215: Illegal character after *: %s"
+msgstr "E215: Ký tự không cho phép sau *: %s"
+
+#: fileio.c:7038
+#, c-format
+msgid "E216: No such event: %s"
+msgstr "E216: Sự kiện không có thật: %s"
+
+#: fileio.c:7040
+#, c-format
+msgid "E216: No such group or event: %s"
+msgstr "E216: Nhóm hoặc sự kiện không có thật: %s"
+
+#. Highlight title
+#: fileio.c:7198
+msgid ""
+"\n"
+"--- Auto-Commands ---"
+msgstr ""
+"\n"
+"--- Câu lệnh tự động ---"
+
+#: fileio.c:7469
+msgid "E217: Can't execute autocommands for ALL events"
+msgstr "E217: Không thể thực hiện câu lệnh tự động cho MỌI sự kiện"
+
+#: fileio.c:7492
+msgid "No matching autocommands"
+msgstr "Không có câu lệnh tự động tương ứng"
+
+#: fileio.c:7813
+msgid "E218: autocommand nesting too deep"
+msgstr "E218: câu lệnh tự động xếp lồng vào nhau quá xâu"
+
+#: fileio.c:8088
+#, c-format
+msgid "%s Auto commands for \"%s\""
+msgstr "%s câu lệnh tự động cho \"%s\""
+
+#: fileio.c:8096
+#, c-format
+msgid "Executing %s"
+msgstr "Thực hiện %s"
+
+#. always scroll up, don't overwrite
+#: fileio.c:8164
+#, c-format
+msgid "autocommand %s"
+msgstr "câu lệnh tự động %s"
+
+#: fileio.c:8731
+msgid "E219: Missing {."
+msgstr "E219: Thiếu {."
+
+#: fileio.c:8733
+msgid "E220: Missing }."
+msgstr "E220: Thiếu }."
+
+#: fold.c:68
+msgid "E490: No fold found"
+msgstr "E490: Không tìm thấy nếp gấp"
+
+#: fold.c:593
+msgid "E350: Cannot create fold with current 'foldmethod'"
+msgstr ""
+"E350: Không thể tạo nếp gấp với giá trị hiện thời của tùy chọn 'foldmethod'"
+
+#: fold.c:595
+msgid "E351: Cannot delete fold with current 'foldmethod'"
+msgstr ""
+"E351: Không thể xóa nếp gấp với giá trị hiện thời của tùy chọn 'foldmethod'"
+
+#: getchar.c:248
+msgid "E222: Add to read buffer"
+msgstr "E222: Thêm vào bộ đệm đang đọc"
+
+#: getchar.c:2198
+msgid "E223: recursive mapping"
+msgstr "E223: ánh xạ đệ quy"
+
+#: getchar.c:3077
+#, c-format
+msgid "E224: global abbreviation already exists for %s"
+msgstr "E224: đã có sự viết tắt toàn cầu cho %s"
+
+#: getchar.c:3080
+#, c-format
+msgid "E225: global mapping already exists for %s"
+msgstr "E225: đã có ánh xạ toàn cầu cho %s"
+
+#: getchar.c:3212
+#, c-format
+msgid "E226: abbreviation already exists for %s"
+msgstr "E226: đã có sự viết tắt cho %s"
+
+#: getchar.c:3215
+#, c-format
+msgid "E227: mapping already exists for %s"
+msgstr "E227: đã có ánh xạ cho %s"
+
+#: getchar.c:3279
+msgid "No abbreviation found"
+msgstr "Không tìm thấy viết tắt"
+
+#: getchar.c:3281
+msgid "No mapping found"
+msgstr "Không tìm thấy ánh xạ"
+
+#: getchar.c:4173
+msgid "E228: makemap: Illegal mode"
+msgstr "E228: makemap: Chế độ không cho phép"
+
+#: gui.c:220
+msgid "E229: Cannot start the GUI"
+msgstr "E229: Không chạy được giao diện đồ họa GUI"
+
+#: gui.c:349
+#, c-format
+msgid "E230: Cannot read from \"%s\""
+msgstr "E230: Không đọc được từ \"%s\""
+
+#: gui.c:472
+msgid "E665: Cannot start GUI, no valid font found"
+msgstr ""
+"E665: Không chạy được giao diện đồ họa GUI, đưa ra phông chữ không đúng"
+
+#: gui.c:477
+msgid "E231: 'guifontwide' invalid"
+msgstr "E231: 'guifontwide' có giá trị không đúng"
+
+#: gui.c:547
+msgid "E599: Value of 'imactivatekey' is invalid"
+msgstr "E599: Giá trị của 'imactivatekey' không đúng"
+
+#: gui.c:4061
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: Không chỉ định được màu %s"
+
+#: gui_at_fs.c:300
+msgid "<cannot open> "
+msgstr "<không thể mở> "
+
+#: gui_at_fs.c:1136
+#, c-format
+msgid "E616: vim_SelFile: can't get font %s"
+msgstr "E616: vim_SelFile: không tìm thấy phông chữ %s"
+
+#: gui_at_fs.c:2781
+msgid "E614: vim_SelFile: can't return to current directory"
+msgstr "E614: vim_SelFile: không trở lại được thư mục hiện thời"
+
+#: gui_at_fs.c:2801
+msgid "Pathname:"
+msgstr "Đường dẫn tới tập tin:"
+
+#: gui_at_fs.c:2807
+msgid "E615: vim_SelFile: can't get current directory"
+msgstr "E615: vim_SelFile: không tìm thấy thư mục hiện thời"
+
+#: gui_at_fs.c:2815 gui_motif.c:1623
+msgid "OK"
+msgstr "Đồng ý"
+
+#: gui_at_fs.c:2815 gui_gtk.c:2731 gui_motif.c:1618 gui_motif.c:2849
+msgid "Cancel"
+msgstr "Hủy bỏ"
+
+#: gui_at_sb.c:486
+msgid "Scrollbar Widget: Could not get geometry of thumb pixmap."
+msgstr "Thanh cuộn: Không thể xác định hình học của thanh cuộn."
+
+#: gui_athena.c:2047 gui_motif.c:1871
+msgid "Vim dialog"
+msgstr "Hộp thoại Vim"
+
+#: gui_beval.c:101 gui_w32.c:3829
+msgid "E232: Cannot create BalloonEval with both message and callback"
+msgstr ""
+"E232: Không tạo được BalloonEval với cả thông báo và lời gọi ngược lại" 
+
+#: gui_gtk.c:1607
+msgid "Vim dialog..."
+msgstr "Hộp thoại Vim..."
+
+#: gui_gtk.c:2060 message.c:2993
+msgid ""
+"&Yes\n"
+"&No\n"
+"&Cancel"
+msgstr ""
+"&Có\n"
+"&Không\n"
+"&Dừng"
+
+#: gui_gtk.c:2268
+msgid "Input _Methods"
+msgstr "Cách nhập _dữ liệu"
+
+#: gui_gtk.c:2534 gui_motif.c:2768
+msgid "VIM - Search and Replace..."
+msgstr "VIM - Tìm kiếm và thay thế..."
+
+#: gui_gtk.c:2542 gui_motif.c:2770
+msgid "VIM - Search..."
+msgstr "VIM - Tìm kiếm..."
+
+#: gui_gtk.c:2574 gui_motif.c:2888
+msgid "Find what:"
+msgstr "Tìm kiếm gì:"
+
+#: gui_gtk.c:2592 gui_motif.c:2920
+msgid "Replace with:"
+msgstr "Thay thế bởi:"
+
+#. whole word only button
+#: gui_gtk.c:2624 gui_motif.c:3036
+msgid "Match whole word only"
+msgstr "Chỉ tìm tương ứng hoàn toàn với từ"
+
+#. match case button
+#: gui_gtk.c:2635 gui_motif.c:3048
+msgid "Match case"
+msgstr "Có tính kiểu chữ"
+
+#: gui_gtk.c:2645 gui_motif.c:2990
+msgid "Direction"
+msgstr "Hướng"
+
+#. 'Up' and 'Down' buttons
+#: gui_gtk.c:2657 gui_motif.c:3002
+msgid "Up"
+msgstr "Lên"
+
+#: gui_gtk.c:2661 gui_motif.c:3010
+msgid "Down"
+msgstr "Xuống"
+
+#: gui_gtk.c:2683 gui_gtk.c:2685 gui_motif.c:2792
+msgid "Find Next"
+msgstr "Tìm tiếp"
+
+#: gui_gtk.c:2702 gui_gtk.c:2704 gui_motif.c:2809
+msgid "Replace"
+msgstr "Thay thế"
+
+#: gui_gtk.c:2715 gui_gtk.c:2717 gui_motif.c:2822
+msgid "Replace All"
+msgstr "Thay thế tất cả"
+
+#: gui_gtk_x11.c:2327
+msgid "Vim: Received \"die\" request from session manager\n"
+msgstr "Vim: Nhận được yêu cầu \"chết\" (dừng) từ trình quản lý màn hình\n"
+
+#: gui_gtk_x11.c:3519
+msgid "Vim: Main window unexpectedly destroyed\n"
+msgstr "Vim: Cửa sổ chính đã bị đóng đột ngột\n"
+
+#: gui_gtk_x11.c:4138
+msgid "Font Selection"
+msgstr "Chọn phông chữ"
+
+#: gui_gtk_x11.c:6035 ui.c:2120
+msgid "Used CUT_BUFFER0 instead of empty selection"
+msgstr "Sử dụng CUT_BUFFER0 thay cho lựa chọn trống rỗng"
+
+#: gui_motif.c:1617 gui_motif.c:1620
+msgid "Filter"
+msgstr "Đầu lọc"
+
+#: gui_motif.c:1619
+msgid "Directories"
+msgstr "Thư mục"
+
+#: gui_motif.c:1621
+msgid "Help"
+msgstr "Trợ giúp"
+
+#: gui_motif.c:1622
+msgid "Files"
+msgstr "Tập tin"
+
+#: gui_motif.c:1624
+msgid "Selection"
+msgstr "Lựa chọn"
+
+#: gui_motif.c:2835
+msgid "Undo"
+msgstr "Hủy thao tác"
+
+#: gui_riscos.c:952
+#, c-format
+msgid "E610: Can't load Zap font '%s'"
+msgstr "E610: Không nạp được phông chữ Zap '%s'"
+
+#: gui_riscos.c:1048
+#, c-format
+msgid "E611: Can't use font %s"
+msgstr "E611: Không sử dụng được phông chữ %s"
+
+#: gui_riscos.c:3270
+msgid ""
+"\n"
+"Sending message to terminate child process.\n"
+msgstr ""
+"\n"
+"Gửi thông báo để \"hủy diệt\" (dừng) tiến trình con.\n"
+
+#: gui_w32.c:829
+#, c-format
+msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
+msgstr "E243: Tham số không được hỗ trợ: \"-%s\"; Hãy sử dụng phiên bản OLE."
+
+#: gui_w48.c:2090
+msgid "Find string (use '\\\\' to find  a '\\')"
+msgstr "Tìm kiếm chuỗi (hãy sử dụng '\\\\' để tìm kiếm dấu '\\')"
+
+#: gui_w48.c:2115
+msgid "Find & Replace (use '\\\\' to find  a '\\')"
+msgstr "Tìm kiếm và Thay thế (hãy sử dụng '\\\\' để tìm kiếm dấu '\\')"
+
+#: gui_x11.c:1537
+msgid "Vim E458: Cannot allocate colormap entry, some colors may be incorrect"
+msgstr ""
+"Vim E458: Không chỉ định được bản ghi trong bảng màu, một vài màu có thể "
+"hiển thị không chính xác"
+
+#: gui_x11.c:2118
+#, c-format
+msgid "E250: Fonts for the following charsets are missing in fontset %s:"
+msgstr "E250: Trong bộ phông chữ %s thiếu phông cho các bảng mã sau:"
+
+#: gui_x11.c:2161
+#, c-format
+msgid "E252: Fontset name: %s"
+msgstr "E252: Bộ phông chữ: %s"
+
+#: gui_x11.c:2162
+#, c-format
+msgid "Font '%s' is not fixed-width"
+msgstr "Phông chữ '%s' không phải là phông có độ rộng cố định (fixed-width)"
+
+#: gui_x11.c:2181
+#, c-format
+msgid "E253: Fontset name: %s\n"
+msgstr "E253: Bộ phông chữ: %s\n"
+
+#: gui_x11.c:2182
+#, c-format
+msgid "Font0: %s\n"
+msgstr "Font0: %s\n"
+
+#: gui_x11.c:2183
+#, c-format
+msgid "Font1: %s\n"
+msgstr "Font1: %s\n"
+
+#: gui_x11.c:2184
+msgid "Font%ld width is not twice that of font0\n"
+msgstr "Chiều rộng phông chữ font%ld phải lớn hơn hai lần so với chiều rộng font0\n"
+
+#: gui_x11.c:2185
+#, c-format
+msgid "Font0 width: %ld\n"
+msgstr "Chiều rộng font0: %ld\n"
+
+#: gui_x11.c:2186
+#, c-format
+msgid ""
+"Font1 width: %ld\n"
+"\n"
+msgstr ""
+"Chiều rộng font1: %ld\n"
+"\n"
+
+#: hangulin.c:610
+msgid "E256: Hangul automata ERROR"
+msgstr "E256: LỖI máy tự động Hangual (tiếng Hàn)"
+
+#: if_cscope.c:77
+msgid "Add a new database"
+msgstr "Thêm một cơ sở dữ liệu mới"
+
+#: if_cscope.c:79
+msgid "Query for a pattern"
+msgstr "Yêu cầu theo một mẫu"
+
+#: if_cscope.c:81
+msgid "Show this message"
+msgstr "Hiển thị thông báo này"
+
+#: if_cscope.c:83
+msgid "Kill a connection"
+msgstr "Hủy kết nối"
+
+#: if_cscope.c:85
+msgid "Reinit all connections"
+msgstr "Khởi đầu lại tất cả các kết nối"
+
+#: if_cscope.c:87
+msgid "Show connections"
+msgstr "Hiển thị kết nối"
+
+#: if_cscope.c:95
+#, c-format
+msgid "E560: Usage: cs[cope] %s"
+msgstr "E560: Sử dụng: cs[cope] %s"
+
+#: if_cscope.c:124
+msgid "This cscope command does not support splitting the window.\n"
+msgstr "Câu lệnh cscope này không hỗ trợ việc chia (split) cửa sổ.\n"
+
+#: if_cscope.c:175
+msgid "E562: Usage: cstag <ident>"
+msgstr "E562: Sử dụng: cstag <tên>"
+
+#: if_cscope.c:231
+msgid "E257: cstag: tag not found"
+msgstr "E257: cstag: không tìm thấy thẻ ghi"
+
+#: if_cscope.c:409
+#, c-format
+msgid "E563: stat(%s) error: %d"
+msgstr "E563: lỗi stat(%s): %d"
+
+#: if_cscope.c:419
+msgid "E563: stat error"
+msgstr "E563: lỗi stat"
+
+#: if_cscope.c:516
+#, c-format
+msgid "E564: %s is not a directory or a valid cscope database"
+msgstr "E564: %s không phải là một thư mục hoặc một cơ sở dữ liệu cscope thích hợp"
+
+#: if_cscope.c:534
+#, c-format
+msgid "Added cscope database %s"
+msgstr "Đã thêm cơ sở dữ liệu cscope %s"
+
+#: if_cscope.c:589
+#, c-format
+msgid "E262: error reading cscope connection %ld"
+msgstr "E262: lỗi lấy thông tin từ kết nối cscope %ld"
+
+#: if_cscope.c:694
+msgid "E561: unknown cscope search type"
+msgstr "E561: không rõ loại tìm kiếm cscope"
+
+#: if_cscope.c:736
+msgid "E566: Could not create cscope pipes"
+msgstr "E566: Không tạo được đường ống (pipe) cho cscope"
+
+#: if_cscope.c:753
+msgid "E622: Could not fork for cscope"
+msgstr "E622: Không thực hiện được fork() cho cscope"
+
+#: if_cscope.c:847 if_cscope.c:897
+msgid "cs_create_connection exec failed"
+msgstr "thực hiện cs_create_connection không thành công"
+
+#: if_cscope.c:898
+msgid "E623: Could not spawn cscope process"
+msgstr "E623: Chạy tiến trình cscope không thành công"
+
+#: if_cscope.c:911
+msgid "cs_create_connection: fdopen for to_fp failed"
+msgstr "cs_create_connection: thực hiện fdopen cho to_fp không thành công"
+
+#: if_cscope.c:913
+msgid "cs_create_connection: fdopen for fr_fp failed"
+msgstr "cs_create_connection: thực hiện fdopen cho fr_fp không thành công"
+
+#: if_cscope.c:951
+msgid "E567: no cscope connections"
+msgstr "E567: không có kết nối với cscope"
+
+#: if_cscope.c:1025
+#, c-format
+msgid "E259: no matches found for cscope query %s of %s"
+msgstr "E259: không tìm thấy tương ứng với yêu cầu cscope %s cho %s"
+
+#: if_cscope.c:1082
+#, c-format
+msgid "E469: invalid cscopequickfix flag %c for %c"
+msgstr "E469: cờ cscopequickfix %c cho %c không chính xác"
+
+#: if_cscope.c:1152
+msgid "cscope commands:\n"
+msgstr "các lệnh cscope:\n"
+
+#: if_cscope.c:1155
+#, c-format
+msgid "%-5s: %-30s (Usage: %s)"
+msgstr "%-5s: %-30s (Sử dụng: %s)"
+
+#: if_cscope.c:1253
+#, c-format
+msgid "E625: cannot open cscope database: %s"
+msgstr "E625: không mở được cơ sở dữ liệu cscope: %s"
+
+#: if_cscope.c:1271
+msgid "E626: cannot get cscope database information"
+msgstr "E626: không lấy được thông tin về cơ sở dữ liệu cscope"
+
+#: if_cscope.c:1296
+msgid "E568: duplicate cscope database not added"
+msgstr "E568: cơ sở dữ liệu này của cscope đã được gắn vào từ trước"
+
+#: if_cscope.c:1307
+msgid "E569: maximum number of cscope connections reached"
+msgstr "E569: đã đạt tới số kết nối lớn nhất cho phép với cscope"
+
+#: if_cscope.c:1424
+#, c-format
+msgid "E261: cscope connection %s not found"
+msgstr "E261: kết nối với cscope %s không được tìm thấy"
+
+#: if_cscope.c:1458
+#, c-format
+msgid "cscope connection %s closed"
+msgstr "kết nối %s với cscope đã bị đóng"
+
+#. should not reach here
+#: if_cscope.c:1598
+msgid "E570: fatal error in cs_manage_matches"
+msgstr "E570: lỗi nặng trong cs_manage_matches"
+
+#: if_cscope.c:1848
+#, c-format
+msgid "Cscope tag: %s"
+msgstr "Thẻ ghi cscope: %s"
+
+#: if_cscope.c:1870
+msgid ""
+"\n"
+"   #   line"
+msgstr ""
+"\n"
+"   #   dòng"
+
+#: if_cscope.c:1872
+msgid "filename / context / line\n"
+msgstr "tên tập tin / nội dung / dòng\n"
+
+#: if_cscope.c:1990
+#, c-format
+msgid "E609: Cscope error: %s"
+msgstr "E609: Lỗi cscope: %s"
+
+#: if_cscope.c:2176
+msgid "All cscope databases reset"
+msgstr "Khởi động lại tất cả cơ sở dữ liệu cscope"
+
+#: if_cscope.c:2244
+msgid "no cscope connections\n"
+msgstr "không có kết nối với cscope\n"
+
+#: if_cscope.c:2248
+msgid " # pid    database name                       prepend path\n"
+msgstr " # pid    tên cơ sở dữ liệu                   đường dẫn ban đầu\n"
+
+#: if_python.c:436
+msgid ""
+"E263: Sorry, this command is disabled, the Python library could not be "
+"loaded."
+msgstr ""
+"E263: Rất tiếc câu lệnh này không làm việc, vì thư viện Python chưa được nạp."
+
+#: if_python.c:500
+msgid "E659: Cannot invoke Python recursively"
+msgstr "E659: Không thể gọi Python một cách đệ quy"
+
+#: if_python.c:701
+msgid "can't delete OutputObject attributes"
+msgstr "Không xóa được thuộc tính OutputObject"
+
+#: if_python.c:708
+msgid "softspace must be an integer"
+msgstr "giá trị softspace phải là một số nguyên"
+
+#: if_python.c:716
+msgid "invalid attribute"
+msgstr "thuộc tính không đúng"
+
+#: if_python.c:755 if_python.c:769
+msgid "writelines() requires list of strings"
+msgstr "writelines() yêu cầu một danh sách các chuỗi"
+
+#: if_python.c:895
+msgid "E264: Python: Error initialising I/O objects"
+msgstr "E264: Python: Lỗi khi bắt đầu sử dụng vật thể I/O"
+
+#: if_python.c:1080 if_tcl.c:1402
+msgid "invalid expression"
+msgstr "biểu thức không đúng"
+
+#: if_python.c:1094 if_tcl.c:1407
+msgid "expressions disabled at compile time"
+msgstr "biểu thức bị tắt khi biên dịch"
+
+#: if_python.c:1107
+msgid "attempt to refer to deleted buffer"
+msgstr "cố chỉ đến bộ đệm đã bị xóa"
+
+#: if_python.c:1122 if_python.c:1163 if_python.c:1227 if_tcl.c:1214
+msgid "line number out of range"
+msgstr "số thứ tự của dòng vượt quá giới hạn"
+
+#: if_python.c:1362
+#, c-format
+msgid "<buffer object (deleted) at %8lX>"
+msgstr "<vật thể của bộ đệm (bị xóa) tại %8lX>"
+
+#: if_python.c:1453 if_tcl.c:836
+msgid "invalid mark name"
+msgstr "tên dấu hiệu không đúng"
+
+#: if_python.c:1733
+msgid "no such buffer"
+msgstr "không có bộ đệm như vậy"
+
+#: if_python.c:1821
+msgid "attempt to refer to deleted window"
+msgstr "cố chỉ đến cửa sổ đã bị đóng"
+
+#: if_python.c:1866
+msgid "readonly attribute"
+msgstr "thuộc tính chỉ đọc"
+
+#: if_python.c:1879
+msgid "cursor position outside buffer"
+msgstr "vị trí con trỏ nằm ngoài bộ đệm"
+
+#: if_python.c:1956
+#, c-format
+msgid "<window object (deleted) at %.8lX>"
+msgstr "<vật thể của cửa sổ (bị xóa) tại %.8lX>"
+
+#: if_python.c:1968
+#, c-format
+msgid "<window object (unknown) at %.8lX>"
+msgstr "<vật thể của cửa sổ (không rõ) tại %.8lX>"
+
+#: if_python.c:1970
+#, c-format
+msgid "<window %d>"
+msgstr "<cửa sổ %d>"
+
+#: if_python.c:2046
+msgid "no such window"
+msgstr "không có cửa sổ như vậy"
+
+#: if_python.c:2307 if_python.c:2341 if_python.c:2396 if_python.c:2464
+#: if_python.c:2586 if_python.c:2638 if_tcl.c:684 if_tcl.c:729 if_tcl.c:803
+#: if_tcl.c:873 if_tcl.c:1999
+msgid "cannot save undo information"
+msgstr "không ghi được thông tin về việc hủy thao tác"
+
+#: if_python.c:2309 if_python.c:2403 if_python.c:2475
+msgid "cannot delete line"
+msgstr "không xóa được dòng"
+
+#: if_python.c:2346 if_python.c:2491 if_tcl.c:690 if_tcl.c:2021
+msgid "cannot replace line"
+msgstr "không thay thế được dòng"
+
+#: if_python.c:2509 if_python.c:2588 if_python.c:2646
+msgid "cannot insert line"
+msgstr "không chèn được dòng"
+
+#: if_python.c:2750
+msgid "string cannot contain newlines"
+msgstr "chuỗi không thể chứa ký tự dòng mới"
+
+#: if_ruby.c:422
+msgid ""
+"E266: Sorry, this command is disabled, the Ruby library could not be loaded."
+msgstr ""
+"E266: Rất tiếc câu lệnh này không làm việc, vì thư viện Ruby chưa đượcnạp."
+
+#: if_ruby.c:485
+#, c-format
+msgid "E273: unknown longjmp status %d"
+msgstr "E273: không rõ trạng thái của longjmp %d"
+
+#: if_sniff.c:67
+msgid "Toggle implementation/definition"
+msgstr "Bật tắt giữa thi hành/định nghĩa"
+
+#: if_sniff.c:68
+msgid "Show base class of"
+msgstr "Hiển thị hạng cơ bản của"
+
+#: if_sniff.c:69
+msgid "Show overridden member function"
+msgstr "Hiển thị hàm số bị nạp đè lên"
+
+#: if_sniff.c:70
+msgid "Retrieve from file"
+msgstr "Nhận từ tập tin"
+
+#: if_sniff.c:71
+msgid "Retrieve from project"
+msgstr "Nhận từ dự án"
+
+#: if_sniff.c:73
+msgid "Retrieve from all projects"
+msgstr "Nhận từ tất cả các dự án"
+
+#: if_sniff.c:74
+msgid "Retrieve"
+msgstr "Nhận"
+
+#: if_sniff.c:75
+msgid "Show source of"
+msgstr "Hiển thị mã nguồn"
+
+#: if_sniff.c:76
+msgid "Find symbol"
+msgstr "Tìm ký hiệu"
+
+#: if_sniff.c:77
+msgid "Browse class"
+msgstr "Duyệt hạng"
+
+#: if_sniff.c:78
+msgid "Show class in hierarchy"
+msgstr "Hiển thị hạng trong hệ thống cấp bậc"
+
+#: if_sniff.c:79
+msgid "Show class in restricted hierarchy"
+msgstr "Hiển thị hạng trong hệ thống cấp bậc giới hạn"
+
+#: if_sniff.c:80
+msgid "Xref refers to"
+msgstr "Xref chỉ đến"
+
+#: if_sniff.c:81
+msgid "Xref referred by"
+msgstr "Liên kết đến xref từ"
+
+#: if_sniff.c:82
+msgid "Xref has a"
+msgstr "Xref có một"
+
+#: if_sniff.c:83
+msgid "Xref used by"
+msgstr "Xref được sử dụng bởi"
+
+#: if_sniff.c:84
+msgid "Show docu of"
+msgstr "Hiển thị docu của"
+
+#: if_sniff.c:85
+msgid "Generate docu for"
+msgstr "Tạo docu cho"
+
+#: if_sniff.c:97
+msgid ""
+"Cannot connect to SNiFF+. Check environment (sniffemacs must be found in "
+"$PATH).\n"
+msgstr ""
+"Không kết nối được tới SNiFF+. Hãy kiểm tra cấu hình môi trường."
+"(sniffemacs phải được chỉ ra trong biến $PATH).\n"
+
+#: if_sniff.c:425
+msgid "E274: Sniff: Error during read. Disconnected"
+msgstr "E274: Sniff: Lỗi trong thời gian đọc. Ngắt kết nối"
+
+#: if_sniff.c:553
+msgid "SNiFF+ is currently "
+msgstr "Trong thời điểm hiện nay SNiFF+ "
+
+#: if_sniff.c:555
+msgid "not "
+msgstr "không "
+
+#: if_sniff.c:556
+msgid "connected"
+msgstr "được kết nối"
+
+#: if_sniff.c:592
+#, c-format
+msgid "E275: Unknown SNiFF+ request: %s"
+msgstr "E275: không rõ yêu cầu của SNiFF+: %s"
+
+#: if_sniff.c:605
+msgid "E276: Error connecting to SNiFF+"
+msgstr "E276: Lỗi kết nối với SNiFF+"
+
+#: if_sniff.c:1009
+msgid "E278: SNiFF+ not connected"
+msgstr "E278: SNiFF+ chưa được kết nối"
+
+#: if_sniff.c:1018
+msgid "E279: Not a SNiFF+ buffer"
+msgstr "E279: Đây không phải là bộ đệm SNiFF+"
+
+#: if_sniff.c:1083
+msgid "Sniff: Error during write. Disconnected"
+msgstr "Sniff: Lỗi trong thời gian ghi nhớ. Ngắt kết nối"
+
+#: if_tcl.c:418
+msgid "invalid buffer number"
+msgstr "số của bộ đệm không đúng"
+
+#: if_tcl.c:464 if_tcl.c:931 if_tcl.c:1110
+msgid "not implemented yet"
+msgstr "tạm thời chưa được thực thi"
+
+#: if_tcl.c:501
+msgid "unknown option"
+msgstr "tùy chọn không rõ"
+
+#. ???
+#: if_tcl.c:774
+msgid "cannot set line(s)"
+msgstr "không thể đặt (các) dòng"
+
+#: if_tcl.c:845
+msgid "mark not set"
+msgstr "dấu hiệu chưa được đặt"
+
+#: if_tcl.c:851 if_tcl.c:1066
+#, c-format
+msgid "row %d column %d"
+msgstr "hàng %d cột %d"
+
+#: if_tcl.c:881
+msgid "cannot insert/append line"
+msgstr "không thể chèn hoặc thêm dòng"
+
+#: if_tcl.c:1268
+msgid "unknown flag: "
+msgstr "cờ không biết: "
+
+#: if_tcl.c:1338
+msgid "unknown vimOption"
+msgstr "không rõ tùy chọn vimOption"
+
+#: if_tcl.c:1423
+msgid "keyboard interrupt"
+msgstr "sự gián đoạn của bàn phím"
+
+#: if_tcl.c:1428
+msgid "vim error"
+msgstr "lỗi của vim"
+
+#: if_tcl.c:1471
+msgid "cannot create buffer/window command: object is being deleted"
+msgstr "không tạo được câu lệnh của bộ đệm hay của cửa sổ: vật thể đang bị xóa"
+
+#: if_tcl.c:1545
+msgid ""
+"cannot register callback command: buffer/window is already being deleted"
+msgstr ""
+"không đăng ký được câu lệnh gọi ngược: bộ đệm hoặc cửa sổ đang bị xóa"
+
+#. This should never happen.  Famous last word?
+#: if_tcl.c:1562
+msgid ""
+"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim."
+"org"
+msgstr ""
+"E280: LỖI NẶNG CỦA TCL: bị hỏng danh sách liên kết!? Hãy thông báo việc này"
+"đến danh sách thư (mailing list) vim-dev@vim.org"
+
+#: if_tcl.c:1563
+msgid "cannot register callback command: buffer/window reference not found"
+msgstr ""
+"không đăng ký được câu lệnh gọi ngược: không tìm thấy liên kết đến bộ đệm "
+"hoặc cửa sổ"
+
+#: if_tcl.c:1724
+msgid ""
+"E571: Sorry, this command is disabled: the Tcl library could not be loaded."
+msgstr ""
+"E571: Rất tiếc là câu lệnh này không làm việc, vì thư viện Tcl chưa được nạp"
+
+#: if_tcl.c:1886
+msgid ""
+"E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"
+msgstr ""
+"E281: LỖI TCL: mã thoát ra không phải là một số nguyên!? Hãy thông báo điều "
+"này đến danh sách thư (mailing list) vim-dev@vim.org"
+
+#: if_tcl.c:2007
+msgid "cannot get line"
+msgstr "không nhận được dòng"
+
+#: if_xcmdsrv.c:225
+msgid "Unable to register a command server name"
+msgstr "Không đăng ký được một tên cho máy chủ câu lệnh"
+
+#: if_xcmdsrv.c:473
+msgid "E248: Failed to send command to the destination program"
+msgstr "E248: Gửi câu lệnh vào chương trình khác không thành công"
+
+#: if_xcmdsrv.c:747
+#, c-format
+msgid "E573: Invalid server id used: %s"
+msgstr "E573: Sử dụng id máy chủ không đúng: %s"
+
+#: if_xcmdsrv.c:1110
+msgid "E251: VIM instance registry property is badly formed.  Deleted!"
+msgstr "E251: Thuộc tính đăng ký của Vim được định dạng không đúng.  Xóa!"
+
+#: main.c:60
+msgid "Unknown option"
+msgstr "Tùy chọn không biết"
+
+#: main.c:62
+msgid "Too many edit arguments"
+msgstr "Có quá nhiều tham số soạn thảo"
+
+#: main.c:64
+msgid "Argument missing after"
+msgstr "Thiếu tham số sau"
+
+#: main.c:66
+msgid "Garbage after option"
+msgstr "Rác sau tùy chọn"
+
+#: main.c:68
+msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
+msgstr ""
+"Quá nhiều tham số \"+câu lệnh\", \"-c câu lệnh\" hoặc \"--cmd câu lệnh\""
+
+#: main.c:70
+msgid "Invalid argument for"
+msgstr "Tham số không được phép cho"
+
+#: main.c:466
+msgid "This Vim was not compiled with the diff feature."
+msgstr "Vim không được biên dịch với tính năng hỗ trợ xem khác biệt (diff)."
+
+#: main.c:932
+msgid "Attempt to open script file again: \""
+msgstr "Thử mở tập tin script một lần nữa: \""
+
+#: main.c:941
+msgid "Cannot open for reading: \""
+msgstr "Không mở để đọc được: \""
+
+#: main.c:985
+msgid "Cannot open for script output: \""
+msgstr "Không mở cho đầu ra script được: \""
+
+#: main.c:1132
+#, c-format
+msgid "%d files to edit\n"
+msgstr "%d tập tin để soạn thảo\n"
+
+#: main.c:1233
+msgid "Vim: Warning: Output is not to a terminal\n"
+msgstr "Vim: Cảnh báo: Đầu ra không hướng tới một terminal\n"
+
+#: main.c:1235
+msgid "Vim: Warning: Input is not from a terminal\n"
+msgstr "Vim: Cảnh báo: Đầu vào không phải đến từ một terminal\n"
+
+#. just in case..
+#: main.c:1297
+msgid "pre-vimrc command line"
+msgstr "dòng lệnh trước khi thực hiện vimrc"
+
+#: main.c:1338
+#, c-format
+msgid "E282: Cannot read from \"%s\""
+msgstr "E282: Không đọc được từ \"%s\""
+
+#: main.c:2411
+msgid ""
+"\n"
+"More info with: \"vim -h\"\n"
+msgstr ""
+"\n"
+"Xem thông tin chi tiết với: \"vim -h\"\n"
+
+#: main.c:2444
+msgid "[file ..]       edit specified file(s)"
+msgstr "[tập tin ..]     soạn thảo (các) tập tin chỉ ra"
+
+#: main.c:2445
+msgid "-               read text from stdin"
+msgstr "-                đọc văn bản từ đầu vào stdin"
+
+#: main.c:2446
+msgid "-t tag          edit file where tag is defined"
+msgstr "-t thẻ ghi      soạn thảo tập tin từ chỗ thẻ ghi chỉ ra"
+
+#: main.c:2448
+msgid "-q [errorfile]  edit file with first error"
+msgstr "-q [tập tin lỗi] soạn thảo tập tin với lỗi đầu tiên"
+
+#: main.c:2457
+msgid ""
+"\n"
+"\n"
+"usage:"
+msgstr ""
+"\n"
+"\n"
+"Sử dụng:"
+
+#: main.c:2460
+msgid " vim [arguments] "
+msgstr " vim [các tham số] "
+
+#: main.c:2464
+msgid ""
+"\n"
+"   or:"
+msgstr ""
+"\n"
+"   hoặc:"
+
+#: main.c:2467
+msgid ""
+"\n"
+"\n"
+"Arguments:\n"
+msgstr ""
+"\n"
+"\n"
+"Tham số:\n"
+
+#: main.c:2468
+msgid "--\t\t\tOnly file names after this"
+msgstr "--\t\t\tSau tham số chỉ đưa ra tên tập tin"
+
+#: main.c:2470
+msgid "--literal\t\tDon't expand wildcards"
+msgstr "--literal\t\tKhông thực hiện việc mở rộng wildcard"
+
+#: main.c:2473
+msgid "-register\t\tRegister this gvim for OLE"
+msgstr "-register\t\tĐăng ký gvim này cho OLE"
+
+#: main.c:2474
+msgid "-unregister\t\tUnregister gvim for OLE"
+msgstr "-unregister\t\tBỏ đăng ký gvim này cho OLE"
+
+#: main.c:2477
+msgid "-g\t\t\tRun using GUI (like \"gvim\")"
+msgstr "-g\t\t\tSử dụng giao diện đồ họa GUI (giống \"gvim\")"
+
+#: main.c:2478
+msgid "-f  or  --nofork\tForeground: Don't fork when starting GUI"
+msgstr "-f  hoặc  --nofork\tTrong chương trình hoạt động: Không thực hiện fork khi chạy GUI"
+
+#: main.c:2480
+msgid "-v\t\t\tVi mode (like \"vi\")"
+msgstr "-v\t\t\tChế độ Vi (giống \"vi\")"
+
+#: main.c:2481
+msgid "-e\t\t\tEx mode (like \"ex\")"
+msgstr "-e\t\t\tChế độ Ex (giống \"ex\")"
+
+#: main.c:2482
+msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
+msgstr "-s\t\t\tChế độ ít đưa thông báo (gói) (chỉ dành cho \"ex\")"
+
+#: main.c:2484
+msgid "-d\t\t\tDiff mode (like \"vimdiff\")"
+msgstr "-d\t\t\tChế độ khác biệt, diff (giống \"vimdiff\")"
+
+#: main.c:2486
+msgid "-y\t\t\tEasy mode (like \"evim\", modeless)"
+msgstr "-y\t\t\tChế độ đơn giản (giống \"evim\", không có chế độ)"
+
+#: main.c:2487
+msgid "-R\t\t\tReadonly mode (like \"view\")"
+msgstr "-R\t\t\tChế độ chỉ đọc (giống \"view\")"
+
+#: main.c:2488
+msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
+msgstr "-Z\t\t\tChế độ hạn chế (giống \"rvim\")"
+
+#: main.c:2489
+msgid "-m\t\t\tModifications (writing files) not allowed"
+msgstr "-m\t\t\tKhông có khả năng ghi nhớ thay đổi (ghi nhớ tập tin)"
+
+#: main.c:2490
+msgid "-M\t\t\tModifications in text not allowed"
+msgstr "-M\t\t\tKhông có khả năng thay đổi văn bản"
+
+#: main.c:2491
+msgid "-b\t\t\tBinary mode"
+msgstr "-b\t\t\tChế độ nhị phân (binary)"
+
+#: main.c:2493
+msgid "-l\t\t\tLisp mode"
+msgstr "-l\t\t\tChế độ Lisp"
+
+#: main.c:2495
+msgid "-C\t\t\tCompatible with Vi: 'compatible'"
+msgstr "-C\t\t\tChế độ tương thích với Vi: 'compatible'"
+
+#: main.c:2496
+msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
+msgstr "-N\t\t\tChế độ không tương thích hoàn toàn với Vi: 'nocompatible'"
+
+#: main.c:2497
+msgid "-V[N]\t\tVerbose level"
+msgstr "-V[N]\t\tMức độ chi tiết của thông báo"
+
+#: main.c:2498
+msgid "-D\t\t\tDebugging mode"
+msgstr "-D\t\t\tChế độ sửa lỗi (debug)"
+
+#: main.c:2499
+msgid "-n\t\t\tNo swap file, use memory only"
+msgstr "-n\t\t\tKhông sử dụng tập tin swap, chỉ sử dụng bộ nhớ"
+
+#: main.c:2500
+msgid "-r\t\t\tList swap files and exit"
+msgstr "-r\t\t\tLiệt kê các tập tin swap rồi thoát"
+
+#: main.c:2501
+msgid "-r (with file name)\tRecover crashed session"
+msgstr "-r (với tên tập tin)\tPhục hồi lần soạn thảo gặp sự cố"
+
+#: main.c:2502
+msgid "-L\t\t\tSame as -r"
+msgstr "-L\t\t\tGiống với -r"
+
+#: main.c:2504
+msgid "-f\t\t\tDon't use newcli to open window"
+msgstr "-f\t\t\tKhông sử dụng newcli để mở cửa sổ"
+
+#: main.c:2505
+msgid "-dev <device>\t\tUse <device> for I/O"
+msgstr "-dev <thiết bị>\t\tSử dụng <thiết bị> cho I/O"
+
+#: main.c:2508
+msgid "-A\t\t\tstart in Arabic mode"
+msgstr "-A\t\t\tKhởi động vào chế độ Ả Rập"
+
+#: main.c:2511
+msgid "-H\t\t\tStart in Hebrew mode"
+msgstr "-H\t\t\tKhởi động vào chế độ Do thái"
+
+#: main.c:2514
+msgid "-F\t\t\tStart in Farsi mode"
+msgstr "-F\t\t\tKhởi động vào chế độ Farsi"
+
+#: main.c:2516
+msgid "-T <terminal>\tSet terminal type to <terminal>"
+msgstr "-T <terminal>\tĐặt loại terminal thành <terminal>"
+
+#: main.c:2517
+msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
+msgstr "-u <vimrc>\t\tSử dụng <vimrc> thay thế cho mọi .vimrc"
+
+#: main.c:2519
+msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
+msgstr "-U <gvimrc>\t\tSử dụng <gvimrc> thay thế cho mọi .gvimrc"
+
+#: main.c:2521
+msgid "--noplugin\t\tDon't load plugin scripts"
+msgstr "--noplugin\t\tKhông nạp bất kỳ script môđun nào"
+
+#: main.c:2522
+msgid "-o[N]\t\tOpen N windows (default: one for each file)"
+msgstr "-o[N]\t\tMở N cửa sổ (theo mặc định: mỗi cửa sổ cho một tập tin)"
+
+#: main.c:2523
+msgid "-O[N]\t\tLike -o but split vertically"
+msgstr "-O[N]\t\tGiống với -o nhưng phân chia theo đường thẳng đứng"
+
+#: main.c:2524
+msgid "+\t\t\tStart at end of file"
+msgstr "+\t\t\tBắt đầu soạn thảo từ cuối tập tin"
+
+#: main.c:2525
+msgid "+<lnum>\t\tStart at line <lnum>"
+msgstr "+<lnum>\t\tBắt đầu soạn thảo từ dòng thứ <lnum> (số thứ tự của dòng)"
+
+#: main.c:2527
+msgid "--cmd <command>\tExecute <command> before loading any vimrc file"
+msgstr "--cmd <câu lệnh>\tThực hiện <câu lệnh> trước khi nạp tập tin vimrc"
+
+#: main.c:2529
+msgid "-c <command>\t\tExecute <command> after loading the first file"
+msgstr "-c <câu lệnh>\t\tThực hiện <câu lệnh> sau khi nạp tập tin đầu tiên"
+
+#: main.c:2530
+msgid "-S <session>\t\tSource file <session> after loading the first file"
+msgstr "-S <session>\t\tThực hiện <session> sau khi nạp tập tin đầu tiên"
+
+#: main.c:2531
+msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
+msgstr "-s <scriptin>\tĐọc các lệnh của chế độ Thông thường từ tập tin <scriptin>"
+
+#: main.c:2532
+msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
+msgstr "-w <scriptout>\tThêm tất cả các lệnh đã gõ vào tập tin <scriptout>"
+
+#: main.c:2533
+msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
+msgstr "-W <scriptout>\tGhi nhớ tất cả các lệnh đã gõ vào tập tin <scriptout>"
+
+#: main.c:2535
+msgid "-x\t\t\tEdit encrypted files"
+msgstr "-x\t\t\tSoạn thảo tập tin đã mã hóa"
+
+#: main.c:2539
+msgid "-display <display>\tConnect vim to this particular X-server"
+msgstr "-display <màn hình>\tKết nối vim tới máy chủ X đã chỉ ra"
+
+#: main.c:2541
+msgid "-X\t\t\tDo not connect to X server"
+msgstr "-X\t\t\tKhông thực hiện việc kết nối tới máy chủ X"
+
+#: main.c:2544
+msgid "--remote <files>\tEdit <files> in a Vim server if possible"
+msgstr "--remote <tập tin>\tSoạn thảo <tập tin> trên máy chủ Vim nếu có thể"
+
+#: main.c:2545
+msgid "--remote-silent <files>  Same, don't complain if there is no server"
+msgstr "--remote-silent <tập tin>  Cũng vậy, nhưng không kêu ca dù không có máy chủ"
+
+#: main.c:2546
+msgid ""
+"--remote-wait <files>  As --remote but wait for files to have been edited"
+msgstr ""
+"--remote-wait <tập tin>  Cũng như --remote, nhưng chờ sự kết thúc"
+
+#: main.c:2547
+msgid ""
+"--remote-wait-silent <files>  Same, don't complain if there is no server"
+msgstr ""
+"--remote-wait-silent <tập tin>  Cũng vậy, nhưng không kêu ca dù không có máy chủ"
+
+#: main.c:2548
+msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
+msgstr "--remote-send <phím>\tGửi <phím> lên máy chủ Vim và thoát"
+
+#: main.c:2549
+msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
+msgstr "--remote-expr <biểu thức>\tTính <biểu thức> trên máy chủ Vim và in ra kết quả"
+
+#: main.c:2550
+msgid "--serverlist\t\tList available Vim server names and exit"
+msgstr "--serverlist\t\tHiển thị danh sách máy chủ Vim và thoát"
+
+#: main.c:2551
+msgid "--servername <name>\tSend to/become the Vim server <name>"
+msgstr ""
+"--servername <tên>\tGửi lên (hoặc trở thành) máy chủ Vim với <tên>"
+
+#: main.c:2554
+msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
+msgstr "-i <viminfo>\t\tSử dụng tập tin <viminfo> thay cho .viminfo"
+
+#: main.c:2556
+msgid "-h  or  --help\tPrint Help (this message) and exit"
+msgstr "-h hoặc --help\tHiển thị Trợ giúp (thông tin này) và thoát"
+
+#: main.c:2557
+msgid "--version\t\tPrint version information and exit"
+msgstr "--version\t\tĐưa ra thông tin về phiên bản Vim và thoát"
+
+#: main.c:2561
+msgid ""
+"\n"
+"Arguments recognised by gvim (Motif version):\n"
+msgstr ""
+"\n"
+"Tham số cho gvim (phiên bản Motif):\n"
+
+#: main.c:2565
+msgid ""
+"\n"
+"Arguments recognised by gvim (neXtaw version):\n"
+msgstr ""
+"\n"
+"Tham số cho gvim (phiên bản neXtaw):\n"
+
+#: main.c:2567
+msgid ""
+"\n"
+"Arguments recognised by gvim (Athena version):\n"
+msgstr ""
+"\n"
+"Tham số cho gvim (phiên bản Athena):\n"
+
+#: main.c:2571
+msgid "-display <display>\tRun vim on <display>"
+msgstr "-display <màn hình>\tChạy vim trong <màn hình> đã chỉ ra"
+
+#: main.c:2572
+msgid "-iconic\t\tStart vim iconified"
+msgstr "-iconic\t\tChạy vim ở dạng thu nhỏ"
+
+#: main.c:2574
+msgid "-name <name>\t\tUse resource as if vim was <name>"
+msgstr "-name <tên>\t\tSử dụng tài nguyên giống như khi vim có <tên>"
+
+#: main.c:2575
+msgid "\t\t\t  (Unimplemented)\n"
+msgstr "\t\t\t  (Chưa được thực thi)\n"
+
+#: main.c:2577
+msgid "-background <color>\tUse <color> for the background (also: -bg)"
+msgstr "-background <màu>\tSử dụng <màu> chỉ ra cho nền (cũng như: -bg)"
+
+#: main.c:2578
+msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
+msgstr "-foreground <màu>\tSử dụng <màu> cho văn bản thông thường (cũng như: -fg)"
+
+#: main.c:2579 main.c:2599
+msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
+msgstr "-font <phông>\t\tSử dụng <phông> chữ cho văn bản thông thường (cũng như: -fn)"
+
+#: main.c:2580
+msgid "-boldfont <font>\tUse <font> for bold text"
+msgstr "-boldfont <phông>\tSử dụng <phông> chữ cho văn bản in đậm"
+
+#: main.c:2581
+msgid "-italicfont <font>\tUse <font> for italic text"
+msgstr "-italicfont <phông>\tSử dụng <phông> chữ cho văn bản in nghiêng"
+
+#: main.c:2582 main.c:2600
+msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
+msgstr ""
+"-geometry <kích thước>\tSử dụng <kích thước> ban đầu (cũng như: -geom)"
+
+#: main.c:2583
+msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
+msgstr "-borderwidth <rộng>\tSử dụng đường viền có chiều <rộng> (cũng như: -bw)"
+
+#: main.c:2584
+msgid "-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)"
+msgstr ""
+"-scrollbarwidth <rộng> Sử dụng thanh cuộn với chiều <rộng> (cũng như: -sw)"
+
+#: main.c:2586
+msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
+msgstr "-menuheight <cao>\tSử dụng thanh trình đơn với chiều <cao> (cũng như: -mh)"
+
+#: main.c:2588 main.c:2601
+msgid "-reverse\t\tUse reverse video (also: -rv)"
+msgstr "-reverse\t\tSử dụng chế độ video đảo ngược (cũng như: -rv)"
+
+#: main.c:2589
+msgid "+reverse\t\tDon't use reverse video (also: +rv)"
+msgstr "+reverse\t\tKhông sử dụng chế độ video đảo ngược (cũng như: +rv)"
+
+#: main.c:2590
+msgid "-xrm <resource>\tSet the specified resource"
+msgstr "-xrm <tài nguyên>\tĐặt <tài nguyên> chỉ ra"
+
+#: main.c:2593
+msgid ""
+"\n"
+"Arguments recognised by gvim (RISC OS version):\n"
+msgstr ""
+"\n"
+"Tham số cho gvim (phiên bản RISC OS):\n"
+
+#: main.c:2594
+msgid "--columns <number>\tInitial width of window in columns"
+msgstr "--columns <số>\tChiều rộng ban đầu của cửa sổ tính theo số cột"
+
+#: main.c:2595
+msgid "--rows <number>\tInitial height of window in rows"
+msgstr "--rows <số>\tChiều cao ban đầu của cửa sổ tính theo số dòng"
+
+#: main.c:2598
+msgid ""
+"\n"
+"Arguments recognised by gvim (GTK+ version):\n"
+msgstr ""
+"\n"
+"Tham số cho gvim (phiên bản GTK+):\n"
+
+#: main.c:2602
+msgid "-display <display>\tRun vim on <display> (also: --display)"
+msgstr ""
+"-display <màn hình>\tChạy vim trên <màn hình> chỉ ra (cũng như: --display)"
+
+#: main.c:2604
+msgid "--role <role>\tSet a unique role to identify the main window"
+msgstr "--role <vai trò>\tĐặt <vai trò> duy nhất để nhận diện cửa sổ chính"
+
+#: main.c:2606
+msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
+msgstr "--socketid <xid>\tMở Vim bên trong thành phần GTK khác"
+
+#: main.c:2609
+msgid "-P <parent title>\tOpen Vim inside parent application"
+msgstr "-P <tiêu đề của mẹ>\tMở Vim bên trong ứng dụng mẹ"
+
+#: main.c:2847
+msgid "No display"
+msgstr "Không có màn hình"
+
+#. Failed to send, abort.
+#: main.c:2862
+msgid ": Send failed.\n"
+msgstr ": Gửi không thành công.\n"
+
+#. Let vim start normally.
+#: main.c:2868
+msgid ": Send failed. Trying to execute locally\n"
+msgstr ": Gửi không thành công. Thử thực hiện nội bộ\n"
+
+#: main.c:2906 main.c:2927
+#, c-format
+msgid "%d of %d edited"
+msgstr "đã soạn thảo %d từ %d"
+
+#: main.c:2949
+msgid "No display: Send expression failed.\n"
+msgstr "Không có màn hình: gửi biểu thức không thành công.\n"
+
+#: main.c:2961
+msgid ": Send expression failed.\n"
+msgstr ": Gửi biểu thức không thành công.\n"
+
+#: mark.c:709
+msgid "No marks set"
+msgstr "Không có dấu hiệu nào được đặt."
+
+#: mark.c:711
+#, c-format
+msgid "E283: No marks matching \"%s\""
+msgstr "E283: Không có dấu hiệu tương ứng với \"%s\""
+
+#. Highlight title
+#: mark.c:722
+msgid ""
+"\n"
+"mark line  col file/text"
+msgstr ""
+"\n"
+"nhãn dòng  cột tập tin/văn bản"
+
+#. Highlight title
+#: mark.c:760
+msgid ""
+"\n"
+" jump line  col file/text"
+msgstr ""
+"\n"
+"bước_nhảy dòng  cột tập tin/văn bản"
+
+#. Highlight title
+#: mark.c:805
+msgid ""
+"\n"
+"change line  col text"
+msgstr ""
+"\n"
+"thay đổi dòng  cột văn bản"
+
+#: mark.c:1281
+#, c-format
+msgid ""
+"\n"
+"# File marks:\n"
+msgstr ""
+"\n"
+"# Nhãn của tập tin:\n"
+
+#. Write the jumplist with -'
+#: mark.c:1316
+#, c-format
+msgid ""
+"\n"
+"# Jumplist (newest first):\n"
+msgstr ""
+"\n"
+"# Danh sách bước nhảy (mới hơn đứng trước):\n"
+
+#: mark.c:1412
+#, c-format
+msgid ""
+"\n"
+"# History of marks within files (newest to oldest):\n"
+msgstr ""
+"\n"
+"# Lịch sử các nhãn trong tập tin (từ mới nhất đến cũ nhất):\n"
+
+#: mark.c:1501
+msgid "Missing '>'"
+msgstr "Thiếu '>'"
+
+#: mbyte.c:467
+msgid "E543: Not a valid codepage"
+msgstr "E543: Bảng mã không cho phép"
+
+#: mbyte.c:4431
+msgid "E284: Cannot set IC values"
+msgstr "E284: Không đặt được giá trị nội dung nhập vào (IC)"
+
+#: mbyte.c:4583
+msgid "E285: Failed to create input context"
+msgstr "E285: Không tạo được nội dung nhập vào"
+
+#: mbyte.c:4741
+msgid "E286: Failed to open input method"
+msgstr "E286: Việc thử mở phương pháp nhập không thành công"
+
+#: mbyte.c:4752
+msgid "E287: Warning: Could not set destroy callback to IM"
+msgstr ""
+"E287: Cảnh báo: không đặt được sự gọi ngược hủy diệt thành phương pháp nhập"
+
+#: mbyte.c:4758
+msgid "E288: input method doesn't support any style"
+msgstr "E288: phương pháp nhập không hỗ trợ bất kỳ phong cách (style) nào"
+
+#: mbyte.c:4815
+msgid "E289: input method doesn't support my preedit type"
+msgstr "E289: phương pháp nhập không hỗ trợ loại soạn thảo trước của Vim"
+
+#: mbyte.c:4889
+msgid "E290: over-the-spot style requires fontset"
+msgstr "E290: phong cách over-the-spot yêu cầu một bộ phông chữ"
+
+#: mbyte.c:4925
+msgid "E291: Your GTK+ is older than 1.2.3. Status area disabled"
+msgstr "E291: GTK+ cũ hơn 1.2.3. Vùng chỉ trạng thái không làm việc"
+
+#: mbyte.c:5232
+msgid "E292: Input Method Server is not running"
+msgstr "E292: Máy chủ phương pháp nhập liệu chưa được chạy"
+
+#: memfile.c:488
+msgid "E293: block was not locked"
+msgstr "E293: khối chưa bị khóa"
+
+#: memfile.c:1005
+msgid "E294: Seek error in swap file read"
+msgstr "E294: Lỗi tìm kiếm khi đọc tập tin trao đổi (swap)"
+
+#: memfile.c:1010
+msgid "E295: Read error in swap file"
+msgstr "E295: Lỗi đọc tập tin trao đổi (swap)"
+
+#: memfile.c:1062
+msgid "E296: Seek error in swap file write"
+msgstr "E296: Lỗi tìm kiếm khi ghi nhớ tập tin trao đổi (swap)"
+
+#: memfile.c:1080
+msgid "E297: Write error in swap file"
+msgstr "E295: Lỗi ghi nhớ tập tin trao đổi (swap)"
+
+#: memfile.c:1277
+msgid "E300: Swap file already exists (symlink attack?)"
+msgstr ""
+"E300: Tập tin trao đổi (swap) đã tồn tại (sử dụng liên kết mềm tấn công?)"
+
+#: memline.c:275
+msgid "E298: Didn't get block nr 0?"
+msgstr "E298: Chưa lấy khối số 0?"
+
+#: memline.c:315
+msgid "E298: Didn't get block nr 1?"
+msgstr "E298: Chưa lấy khối số 12?"
+
+#: memline.c:333
+msgid "E298: Didn't get block nr 2?"
+msgstr "E298: Chưa lấy khối số 2?"
+
+#. could not (re)open the swap file, what can we do????
+#: memline.c:443
+msgid "E301: Oops, lost the swap file!!!"
+msgstr "E301: Ối, mất tập tin trao đổi (swap)!!!"
+
+#: memline.c:448
+msgid "E302: Could not rename swap file"
+msgstr "E302: Không đổi được tên tập tin trao đổi (swap)"
+
+#: memline.c:518
+#, c-format
+msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
+msgstr ""
+"E303: Không mở được tập tin trao đổi (swap) cho \"%s\", nên không thể phục hồi"
+
+#: memline.c:617
+msgid "E304: ml_timestamp: Didn't get block 0??"
+msgstr "E304: ml_timestamp: Chưa lấy khối số 0??"
+
+#: memline.c:757
+#, c-format
+msgid "E305: No swap file found for %s"
+msgstr "E305: Không tìm thấy tập tin trao đổi (swap) cho %s"
+
+#: memline.c:767
+msgid "Enter number of swap file to use (0 to quit): "
+msgstr "Hãy nhập số của tập tin trao đổi (swap) muốn sử dụng (0 để thoát): "
+
+#: memline.c:812
+#, c-format
+msgid "E306: Cannot open %s"
+msgstr "E306: Không mở được %s"
+
+#: memline.c:834
+msgid "Unable to read block 0 from "
+msgstr "Không thể đọc khối số 0 từ "
+
+#: memline.c:837
+msgid ""
+"\n"
+"Maybe no changes were made or Vim did not update the swap file."
+msgstr ""
+"\n"
+"Chưa có thay đổi nào hoặc Vim không thể cập nhật tập tin trao đổi (swap)"
+
+#: memline.c:847 memline.c:864
+msgid " cannot be used with this version of Vim.\n"
+msgstr " không thể sử dụng trong phiên bản Vim này.\n"
+
+#: memline.c:849
+msgid "Use Vim version 3.0.\n"
+msgstr "Hãy sử dụng Vim phiên bản 3.0.\n"
+
+#: memline.c:855
+#, c-format
+msgid "E307: %s does not look like a Vim swap file"
+msgstr "E307: %s không phải là tập tin trao đổi (swap) của Vim"
+
+#: memline.c:868
+msgid " cannot be used on this computer.\n"
+msgstr " không thể sử dụng trên máy tính này.\n"
+
+#: memline.c:870
+msgid "The file was created on "
+msgstr "Tập tin đã được tạo trên "
+
+#: memline.c:874
+msgid ""
+",\n"
+"or the file has been damaged."
+msgstr ""
+",\n"
+"hoặc tập tin đã bị hỏng."
+
+#: memline.c:903
+#, c-format
+msgid "Using swap file \"%s\""
+msgstr "Đang sử dụng tập tin trao đổi (swap) \"%s\""
+
+#: memline.c:909
+#, c-format
+msgid "Original file \"%s\""
+msgstr "Tập tin gốc \"%s\""
+
+#: memline.c:922
+msgid "E308: Warning: Original file may have been changed"
+msgstr "E308: Cảnh báo: Tập tin gốc có thể đã bị thay đổi"
+
+#: memline.c:975
+#, c-format
+msgid "E309: Unable to read block 1 from %s"
+msgstr "E309: Không đọc được khối số 1 từ %s"
+
+#: memline.c:979
+msgid "???MANY LINES MISSING"
+msgstr "???THIẾU NHIỀU DÒNG"
+
+#: memline.c:995
+msgid "???LINE COUNT WRONG"
+msgstr "???GIÁ TRỊ CỦA SỐ ĐẾM DÒNG BỊ SAI"
+
+#: memline.c:1002
+msgid "???EMPTY BLOCK"
+msgstr "???KHỐI RỖNG"
+
+#: memline.c:1028
+msgid "???LINES MISSING"
+msgstr "???THIẾU DÒNG"
+
+#: memline.c:1060
+#, c-format
+msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
+msgstr "E310: Khối 1 ID sai (%s không phải là tập tin .swp?)"
+
+#: memline.c:1065
+msgid "???BLOCK MISSING"
+msgstr "???THIẾU KHỐI"
+
+#: memline.c:1081
+msgid "??? from here until ???END lines may be messed up"
+msgstr "??? từ đây tới ???CUỐI, các dòng có thể đã bị hỏng"
+
+#: memline.c:1097
+msgid "??? from here until ???END lines may have been inserted/deleted"
+msgstr "??? từ đây tới ???CUỐI, các dòng có thể đã bị chèn hoặc xóa"
+
+#: memline.c:1117
+msgid "???END"
+msgstr "???CUỐI"
+
+#: memline.c:1143
+msgid "E311: Recovery Interrupted"
+msgstr "E311: Việc phục hồi bị gián đoạn"
+
+#: memline.c:1148
+msgid ""
+"E312: Errors detected while recovering; look for lines starting with ???"
+msgstr ""
+"E312: Phát hiện ra lỗi trong khi phục hồi; hãy xem những dòng bắt đầu với ???"
+
+#: memline.c:1150
+msgid "See \":help E312\" for more information."
+msgstr "Hãy xem thông tin bổ sung trong trợ giúp \":help E312\""
+
+#: memline.c:1155
+msgid "Recovery completed. You should check if everything is OK."
+msgstr "Việc phục hồi đã hoàn thành. Nên kiểm tra xem mọi thứ có ổn không."
+
+#: memline.c:1156
+msgid ""
+"\n"
+"(You might want to write out this file under another name\n"
+msgstr ""
+"\n"
+"(Có thể ghi nhớ tập tin với tên khác và so sánh với tập\n"
+
+#: memline.c:1157
+msgid "and run diff with the original file to check for changes)\n"
+msgstr "gốc bằng chương trình diff).\n"
+
+#: memline.c:1158
+msgid ""
+"Delete the .swp file afterwards.\n"
+"\n"
+msgstr ""
+"Sau đó hãy xóa tập tin .swp.\n"
+"\n"
+
+#. use msg() to start the scrolling properly
+#: memline.c:1214
+msgid "Swap files found:"
+msgstr "Tìm thấy tập tin trao đổi (swap):"
+
+#: memline.c:1392
+msgid "   In current directory:\n"
+msgstr "   Trong thư mục hiện thời:\n"
+
+#: memline.c:1394
+msgid "   Using specified name:\n"
+msgstr "   Với tên chỉ ra:\n"
+
+#: memline.c:1398
+msgid "   In directory "
+msgstr "   Trong thư mục   "
+
+#: memline.c:1416
+msgid "      -- none --\n"
+msgstr "      -- không --\n"
+
+#: memline.c:1488
+msgid "          owned by: "
+msgstr "          người sở hữu: "
+
+#: memline.c:1490
+msgid "   dated: "
+msgstr "    ngày: "
+
+#: memline.c:1494 memline.c:3684
+msgid "             dated: "
+msgstr "              ngày: "
+
+#: memline.c:1510
+msgid "         [from Vim version 3.0]"
+msgstr "         [từ Vim phiên bản 3.0]"
+
+#: memline.c:1514
+msgid "         [does not look like a Vim swap file]"
+msgstr "         [không phải là tập tin trao đổi (swap) của Vim]"
+
+#: memline.c:1518
+msgid "         file name: "
+msgstr "         tên tập tin: "
+
+#: memline.c:1524
+msgid ""
+"\n"
+"          modified: "
+msgstr ""
+"\n"
+"           thay đổi: "
+
+#: memline.c:1525
+msgid "YES"
+msgstr "CÓ"
+
+#: memline.c:1525
+msgid "no"
+msgstr "không"
+
+#: memline.c:1529
+msgid ""
+"\n"
+"         user name: "
+msgstr ""
+"\n"
+"      tên người dùng: "
+
+#: memline.c:1536
+msgid "   host name: "
+msgstr "    tên máy: "
+
+#: memline.c:1538
+msgid ""
+"\n"
+"         host name: "
+msgstr ""
+"\n"
+"           tên máy: "
+
+#: memline.c:1544
+msgid ""
+"\n"
+"        process ID: "
+msgstr ""
+"\n"
+"     ID tiến trình: "
+
+#: memline.c:1550
+msgid " (still running)"
+msgstr " (vẫn đang chạy)"
+
+#: memline.c:1562
+msgid ""
+"\n"
+"         [not usable with this version of Vim]"
+msgstr ""
+"\n"
+"         [không sử dụng được với phiên bản này của Vim]"
+
+#: memline.c:1565
+msgid ""
+"\n"
+"         [not usable on this computer]"
+msgstr ""
+"\n"
+"         [không sử dụng được trên máy tính này]"
+
+#: memline.c:1570
+msgid "         [cannot be read]"
+msgstr "         [không đọc được]"
+
+#: memline.c:1574
+msgid "         [cannot be opened]"
+msgstr "         [không mở được]"
+
+#: memline.c:1764
+msgid "E313: Cannot preserve, there is no swap file"
+msgstr "E313: Không cập nhật được tập tin trao đổi (swap) vì không tìm thấy nó"
+
+#: memline.c:1817
+msgid "File preserved"
+msgstr "Đã cập nhật tập tin trao đổi (swap)"
+
+#: memline.c:1819
+msgid "E314: Preserve failed"
+msgstr "E314: Cập nhật không thành công"
+
+#: memline.c:1890
+#, c-format
+msgid "E315: ml_get: invalid lnum: %ld"
+msgstr "E315: ml_get: giá trị lnum không đúng: %ld"
+
+#: memline.c:1916
+#, c-format
+msgid "E316: ml_get: cannot find line %ld"
+msgstr "E316: ml_get: không tìm được dòng %ld"
+
+#: memline.c:2306
+msgid "E317: pointer block id wrong 3"
+msgstr "E317: Giá trị của pointer khối số 3 không đúng"
+
+#: memline.c:2386
+msgid "stack_idx should be 0"
+msgstr "giá trị stack_idx phải bằng 0"
+
+#: memline.c:2448
+msgid "E318: Updated too many blocks?"
+msgstr "E318: Đã cập nhật quá nhiều khối?"
+
+#: memline.c:2630
+msgid "E317: pointer block id wrong 4"
+msgstr "E317: Giá trị của pointer khối số 4 không đúng"
+
+#: memline.c:2657
+msgid "deleted block 1?"
+msgstr "đã xóa khối số 1?"
+
+#: memline.c:2857
+#, c-format
+msgid "E320: Cannot find line %ld"
+msgstr "E320: Không tìm được dòng %ld"
+
+#: memline.c:3100
+msgid "E317: pointer block id wrong"
+msgstr "E317: giá trị của pointer khối không đúng"
+
+#: memline.c:3116
+msgid "pe_line_count is zero"
+msgstr "giá trị pe_line_count bằng không"
+
+#: memline.c:3145
+#, c-format
+msgid "E322: line number out of range: %ld past the end"
+msgstr "E322: số thứ tự dòng vượt quá giới hạn : %ld"
+
+#: memline.c:3149
+#, c-format
+msgid "E323: line count wrong in block %ld"
+msgstr "E323: giá trị đếm dòng không đúng trong khối %ld"
+
+#: memline.c:3198
+msgid "Stack size increases"
+msgstr "Kích thước của đống tăng lên"
+
+#: memline.c:3244
+msgid "E317: pointer block id wrong 2"
+msgstr "E317: Giá trị của cái chỉ (pointer) khối số 2 không đúng"
+
+#: memline.c:3674
+msgid "E325: ATTENTION"
+msgstr "E325: CHÚ Ý"
+
+#: memline.c:3675
+msgid ""
+"\n"
+"Found a swap file by the name \""
+msgstr ""
+"\n"
+"Tìm thấy một tập tin trao đổi (swap) với tên \""
+
+#: memline.c:3679
+msgid "While opening file \""
+msgstr "Khi mở tập tin: \""
+
+#: memline.c:3688
+msgid "      NEWER than swap file!\n"
+msgstr "                    MỚI hơn so với tập tin trao đổi (swap)\n"
+
+#. Some of these messages are long to allow translation to
+#. * other languages.
+#: memline.c:3692
+msgid ""
+"\n"
+"(1) Another program may be editing the same file.\n"
+"    If this is the case, be careful not to end up with two\n"
+"    different instances of the same file when making changes.\n"
+msgstr ""
+"\n"
+"(1) Rất có thể một chương trình khác đang soạn thảo tập tin.\n"
+"    Nếu như vậy, hãy cẩn thận khi thay đổi, làm sao để không thu\n"
+"    được hai phương án khác nhau của cùng một tập tin.\n"
+
+#: memline.c:3693
+msgid "    Quit, or continue with caution.\n"
+msgstr "    Thoát hoặc tiếp tục với sự cẩn thận.\n"
+
+#: memline.c:3694
+msgid ""
+"\n"
+"(2) An edit session for this file crashed.\n"
+msgstr ""
+"\n"
+"(2) Lần soạn thảo trước của tập tin này gặp sự cố.\n"
+
+#: memline.c:3695
+msgid "    If this is the case, use \":recover\" or \"vim -r "
+msgstr "    Trong trường hợp này, hãy sử dụng câu lệnh \":recover\" hoặc \"vim -r "
+
+#: memline.c:3697
+msgid ""
+"\"\n"
+"    to recover the changes (see \":help recovery\").\n"
+msgstr ""
+"\"\n"
+"    để phục hồi những thay đổi (hãy xem \":help recovery\").\n"
+
+#: memline.c:3698
+msgid "    If you did this already, delete the swap file \""
+msgstr "    Nếu đã thực hiện thao tác này rồi, thì hãy xóa tập tin trao đổi (swap) \""
+
+#: memline.c:3700
+msgid ""
+"\"\n"
+"    to avoid this message.\n"
+msgstr ""
+"\"\n"
+"    để tránh sự xuất hiện của thông báo này trong tương lai.\n"
+
+#: memline.c:3714 memline.c:3718
+msgid "Swap file \""
+msgstr "Tập tin trao đổi (swap) \""
+
+#: memline.c:3715 memline.c:3721
+msgid "\" already exists!"
+msgstr "\" đã có rồi!"
+
+#: memline.c:3724
+msgid "VIM - ATTENTION"
+msgstr "VIM - CHÚ Ý"
+
+#: memline.c:3726
+msgid "Swap file already exists!"
+msgstr "Tập tin trao đổi (swap) đã rồi!"
+
+#: memline.c:3730
+msgid ""
+"&Open Read-Only\n"
+"&Edit anyway\n"
+"&Recover\n"
+"&Quit\n"
+"&Abort"
+msgstr ""
+"&O Mở chỉ để đọc\n"
+"&E Vẫn soạn thảo\n"
+"&R Phục hồi\n"
+"&Q Thoát\n"
+"&A Gián đoạn"
+
+#: memline.c:3732
+msgid ""
+"&Open Read-Only\n"
+"&Edit anyway\n"
+"&Recover\n"
+"&Quit\n"
+"&Abort\n"
+"&Delete it"
+msgstr ""
+"&O Mở chỉ để đọc\n"
+"&E Vẫn soạn thảo\n"
+"&R Phục hồi\n"
+"&Q Thoát\n"
+"&A Gián đoạn"
+"&D Xóa nó"
+
+#: memline.c:3789
+msgid "E326: Too many swap files found"
+msgstr "E326: Tìm thấy quá nhiều tập tin trao đổi (swap)"
+
+#: menu.c:64
+msgid "E327: Part of menu-item path is not sub-menu"
+msgstr "E327: Một phần của đường dẫn tới phần tử của trình đơn không phải là trình đơn con"
+
+#: menu.c:65
+msgid "E328: Menu only exists in another mode"
+msgstr "E328: Trình đơn chỉ có trong chế độ khác"
+
+#: menu.c:66
+msgid "E329: No menu of that name"
+msgstr "E329: Không có trình đơn với tên như vậy"
+
+#: menu.c:525
+msgid "E330: Menu path must not lead to a sub-menu"
+msgstr "E330: Đường dẫn tới trình đơn không được đưa tới trình đơn con"
+
+#: menu.c:564
+msgid "E331: Must not add menu items directly to menu bar"
+msgstr "E331: Các phần tử của trình đơn không thể thêm trực tiếp vào thanh trình đơn"
+
+#: menu.c:570
+msgid "E332: Separator cannot be part of a menu path"
+msgstr "E332: Cái phân chia không thể là một phần của đường dẫn tới trình đơn"
+
+#. Now we have found the matching menu, and we list the mappings
+#. Highlight title
+#: menu.c:1097
+msgid ""
+"\n"
+"--- Menus ---"
+msgstr ""
+"\n"
+"--- Trình đơn ---"
+
+#: menu.c:2019
+msgid "Tear off this menu"
+msgstr "Chia cắt trình đơn này"
+
+#: menu.c:2084
+msgid "E333: Menu path must lead to a menu item"
+msgstr "E333: Đường dẫn tới trình đơn phải đưa tới một phần tử cuả trình đơn"
+
+#: menu.c:2104
+#, c-format
+msgid "E334: Menu not found: %s"
+msgstr "E334: Không tìm thấy trình đơn: %s"
+
+#: menu.c:2173
+#, c-format
+msgid "E335: Menu not defined for %s mode"
+msgstr "E335: Trình đơn không được định nghĩa cho chế độ %s"
+
+#: menu.c:2211
+msgid "E336: Menu path must lead to a sub-menu"
+msgstr "E336: Đường dẫn tới trình đơn phải đưa tới một trình đơn con"
+
+#: menu.c:2232
+msgid "E337: Menu not found - check menu names"
+msgstr "E337: Không tìm thấy trình đơn - hãy kiểm tra tên trình đơn"
+
+#: message.c:414
+#, c-format
+msgid "Error detected while processing %s:"
+msgstr "Phát hiện lỗi khi xử lý %s:"
+
+#: message.c:440
+#, c-format
+msgid "line %4ld:"
+msgstr "dòng %4ld:"
+
+#: message.c:647
+msgid "[string too long]"
+msgstr "[chuỗi quá dài]"
+
+#: message.c:797
+msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
+msgstr ""
+"Bản dịch các thông báo sang tiếng Việt: Phan Vĩnh Thịnh <teppi@vnlinux.org>"
+
+#: message.c:1025
+msgid "Interrupt: "
+msgstr "Gián đoạn: "
+
+#: message.c:1028
+msgid "Hit ENTER to continue"
+msgstr "Nhấn phím ENTER để tiếp tục"
+
+#: message.c:1030
+msgid "Hit ENTER or type command to continue"
+msgstr "Nhấn phím ENTER hoặc nhập câu lệnh để tiếp tục"
+
+#: message.c:2351
+msgid "-- More --"
+msgstr "-- Còn nữa --"
+
+#: message.c:2354
+msgid " (RET/BS: line, SPACE/b: page, d/u: half page, q: quit)"
+msgstr " (RET/BS: dòng, SPACE/b: trang, d/u: nửa trang, q: thoát)"
+
+#: message.c:2355
+msgid " (RET: line, SPACE: page, d: half page, q: quit)"
+msgstr " (RET: dòng, SPACE: trang, d: nửa trang, q: thoát)"
+
+#: message.c:2976 message.c:2991
+msgid "Question"
+msgstr "Câu hỏi"
+
+#: message.c:2978
+msgid ""
+"&Yes\n"
+"&No"
+msgstr ""
+"&Có\n"
+"&Không"
+
+#: message.c:3011
+msgid ""
+"&Yes\n"
+"&No\n"
+"Save &All\n"
+"&Discard All\n"
+"&Cancel"
+msgstr ""
+"&Có\n"
+"&Không"
+"&Ghi nhớ tất cả\n"
+"&Vứt bỏ tất cả\n"
+"&Dừng lại"
+
+#: message.c:3052
+msgid "Save File dialog"
+msgstr "Ghi nhớ tập tin"
+
+#: message.c:3054
+msgid "Open File dialog"
+msgstr "Mở tập tin"
+
+#. TODO: non-GUI file selector here
+#: message.c:3125
+msgid "E338: Sorry, no file browser in console mode"
+msgstr ""
+"E338: Xin lỗi nhưng không có trình duyệt tập tin trong chế độ kênh giao tác (console)"
+
+#: misc1.c:2773
+msgid "W10: Warning: Changing a readonly file"
+msgstr "W10: Cảnh báo: Thay đổi một tập tin chỉ có quyền đọc"
+
+#: misc1.c:3021
+msgid "1 more line"
+msgstr "Thêm 1 dòng"
+
+#: misc1.c:3023
+msgid "1 line less"
+msgstr "Bớt 1 dòng"
+
+#: misc1.c:3028
+#, c-format
+msgid "%ld more lines"
+msgstr "Thêm %ld dòng"
+
+#: misc1.c:3030
+#, c-format
+msgid "%ld fewer lines"
+msgstr "Bớt %ld dòng"
+
+#: misc1.c:3033
+msgid " (Interrupted)"
+msgstr " (Bị gián đoạn)"
+
+#: misc1.c:7588
+msgid "Vim: preserving files...\n"
+msgstr "Vim: ghi nhớ các tập tin...\n"
+
+#. close all memfiles, without deleting
+#: misc1.c:7598
+msgid "Vim: Finished.\n"
+msgstr "Vim: Đã xong.\n"
+
+#: misc2.c:695 misc2.c:711
+#, c-format
+msgid "ERROR: "
+msgstr "LỖI: "
+
+#: misc2.c:715
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[byte] tổng phân phối-còn trống %lu-%lu, sử dụng %lu, píc sử dụng %lu\n"
+
+#: misc2.c:717
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[gọi] tổng re/malloc() %lu, tổng free() %lu\n"
+"\n"
+
+#: misc2.c:772
+msgid "E340: Line is becoming too long"
+msgstr "E340: Dòng đang trở thành quá dài"
+
+#: misc2.c:816
+#, c-format
+msgid "E341: Internal error: lalloc(%ld, )"
+msgstr "E341: Lỗi nội bộ: lalloc(%ld, )"
+
+#: misc2.c:924
+#, c-format
+msgid "E342: Out of memory!  (allocating %lu bytes)"
+msgstr "E342: Không đủ bộ nhớ! (phân chia %lu byte)"
+
+#: misc2.c:2594
+#, c-format
+msgid "Calling shell to execute: \"%s\""
+msgstr "Gọi shell để thực hiện: \"%s\""
+
+#: misc2.c:2816
+msgid "E545: Missing colon"
+msgstr "E545: Thiếu dấu hai chấm"
+
+#: misc2.c:2818 misc2.c:2845
+msgid "E546: Illegal mode"
+msgstr "E546: Chế độ không cho phép"
+
+#: misc2.c:2884
+msgid "E547: Illegal mouseshape"
+msgstr "E547: Dạng trỏ chuột không cho phép"
+
+#: misc2.c:2924
+msgid "E548: digit expected"
+msgstr "E548: yêu cầu một số"
+
+#: misc2.c:2929
+msgid "E549: Illegal percentage"
+msgstr "E549: Tỷ lệ phần trăm không cho phép"
+
+#: misc2.c:3239
+msgid "Enter encryption key: "
+msgstr "Nhập mật khẩu để mã hóa: "
+
+#: misc2.c:3240
+msgid "Enter same key again: "
+msgstr "      Nhập lại mật khẩu:"
+
+#: misc2.c:3250
+msgid "Keys don't match!"
+msgstr "Hai mật khẩu không trùng nhau!"
+
+#: misc2.c:3799
+#, c-format
+msgid ""
+"E343: Invalid path: '**[number]' must be at the end of the path or be "
+"followed by '%s'."
+msgstr ""
+"E343: Đường dẫn đưa ra không đúng: '**[số]' phải ở cuối đường dẫn hoặc "
+"theo sau bởi '%s'"
+
+#: misc2.c:5078
+#, c-format
+msgid "E344: Can't find directory \"%s\" in cdpath"
+msgstr "E344: Không tìm thấy thư mục \"%s\" để chuyển thư mục"
+
+#: misc2.c:5081
+#, c-format
+msgid "E345: Can't find file \"%s\" in path"
+msgstr "E345: Không tìm thấy tập tin \"%s\" trong đường dẫn"
+
+#: misc2.c:5087
+#, c-format
+msgid "E346: No more directory \"%s\" found in cdpath"
+msgstr "E346: Trong đường dẫn thay đổi thư mục không còn có thư mục \"%s\" nữa"
+
+#: misc2.c:5090
+#, c-format
+msgid "E347: No more file \"%s\" found in path"
+msgstr "E347: Trong đường dẫn path không còn có tập tin \"%s\" nữa"
+
+#: misc2.c:5324
+msgid "E550: Missing colon"
+msgstr "E550: Thiếu dấu hai chấm"
+
+#: misc2.c:5336
+msgid "E551: Illegal component"
+msgstr "E551: Thành phần không cho phép"
+
+#: misc2.c:5344
+msgid "E552: digit expected"
+msgstr "E552: Cần chỉ ra một số"
+
+#. Get here when the server can't be found.
+#: netbeans.c:396
+msgid "Cannot connect to Netbeans #2"
+msgstr "Không kết nối được với Netbeans #2"
+
+#: netbeans.c:404
+msgid "Cannot connect to Netbeans"
+msgstr "Không kết nối được với NetBeans"
+
+#: netbeans.c:450
+#, c-format
+msgid "E668: Wrong access mode for NetBeans connection info file: \"%s\""
+msgstr ""
+"E668: Chế độ truy cập thông tin về liên kết với NetBeans không đúng: \"%s\""
+
+#: netbeans.c:749
+msgid "read from Netbeans socket"
+msgstr "đọc từ socket NetBeans"
+
+#: netbeans.c:1643
+#, c-format
+msgid "E658: NetBeans connection lost for buffer %ld"
+msgstr "E658: Bị mất liên kết với NetBeans cho bộ đệm %ld"
+
+#: normal.c:2980
+msgid "Warning: terminal cannot highlight"
+msgstr "Cảnh báo: terminal không thực hiện được sự chiếu sáng"
+
+#: normal.c:3276
+msgid "E348: No string under cursor"
+msgstr "E348: Không có chuỗi ở vị trí con trỏ"
+
+#: normal.c:3278
+msgid "E349: No identifier under cursor"
+msgstr "E349: Không có tên ở vị trí con trỏ"
+
+#: normal.c:4519
+msgid "E352: Cannot erase folds with current 'foldmethod'"
+msgstr ""
+"E352: Không thể tẩy xóa nếp gấp với giá trị hiện thời của tùy chọn 'foldmethod'"
+
+#: normal.c:6740
+msgid "E664: changelist is empty"
+msgstr "E664: danh sách những thay đổi trống rỗng"
+
+#: normal.c:6742
+msgid "E662: At start of changelist"
+msgstr "E662: Ở đầu danh sách những thay đổi"
+
+#: normal.c:6744
+msgid "E663: At end of changelist"
+msgstr "E662: Ở cuối danh sách những thay đổi"
+
+#: normal.c:8005
+msgid "Type  :quit<Enter>  to exit Vim"
+msgstr "Gõ :quit<Enter>  để thoát khỏi Vim"
+
+#: ops.c:294
+#, c-format
+msgid "1 line %sed 1 time"
+msgstr "Trên 1 dòng %s 1 lần"
+
+#: ops.c:296
+#, c-format
+msgid "1 line %sed %d times"
+msgstr "Trên 1 dòng %s %d lần"
+
+#: ops.c:301
+#, c-format
+msgid "%ld lines %sed 1 time"
+msgstr "Trên %ld dòng %s 1 lần"
+
+#: ops.c:304
+#, c-format
+msgid "%ld lines %sed %d times"
+msgstr "Trên %ld dòng %s %d lần"
+
+#: ops.c:662
+#, c-format
+msgid "%ld lines to indent... "
+msgstr "Thụt đầu %ld dòng..."
+
+#: ops.c:712
+msgid "1 line indented "
+msgstr "Đã thụt đầu 1 dòng"
+
+#: ops.c:714
+#, c-format
+msgid "%ld lines indented "
+msgstr "%ld dòng đã thụt đầu"
+
+#. must display the prompt
+#: ops.c:1675
+msgid "cannot yank; delete anyway"
+msgstr "sao chép không thành công; đã xóa"
+
+#: ops.c:2261
+msgid "1 line changed"
+msgstr "1 dòng đã thay đổi"
+
+#: ops.c:2263
+#, c-format
+msgid "%ld lines changed"
+msgstr "%ld đã thay đổi"
+
+#: ops.c:2647
+#, c-format
+msgid "freeing %ld lines"
+msgstr "đã làm sạch %ld dòng"
+
+#: ops.c:2928
+msgid "1 line yanked"
+msgstr "đã sao chép 1 dòng"
+
+#: ops.c:2930
+#, c-format
+msgid "%ld lines yanked"
+msgstr "đã sao chép %ld dòng"
+
+#: ops.c:3215
+#, c-format
+msgid "E353: Nothing in register %s"
+msgstr "E353: Trong sổ đăng ký %s không có gì hết"
+
+#. Highlight title
+#: ops.c:3766
+msgid ""
+"\n"
+"--- Registers ---"
+msgstr ""
+"\n"
+"--- Sổ đăng ký ---"
+
+#: ops.c:5075
+msgid "Illegal register name"
+msgstr "Tên sổ đăng ký không cho phép"
+
+#: ops.c:5163
+#, c-format
+msgid ""
+"\n"
+"# Registers:\n"
+msgstr ""
+"\n"
+"# Sổ đăng ký:\n"
+
+#: ops.c:5213
+#, c-format
+msgid "E574: Unknown register type %d"
+msgstr "E574: Loại sổ đăng ký không biết %d"
+
+#: ops.c:5698
+#, c-format
+msgid "E354: Invalid register name: '%s'"
+msgstr "E354: Tên sổ đăng ký không cho phép: '%s'"
+
+#: ops.c:6058
+#, c-format
+msgid "%ld Cols; "
+msgstr "%ld Cột; "
+
+#: ops.c:6065
+#, c-format
+msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
+msgstr "Chọn %s%ld của %ld Dòng; %ld của %ld Từ; %ld của %ld Byte"
+
+#: ops.c:6081
+#, c-format
+msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
+msgstr "Cột %s của %s;  Dòng %ld của %ld; Từ %ld của %ld; Byte %ld của %ld"
+
+#: ops.c:6092
+#, c-format
+msgid "(+%ld for BOM)"
+msgstr "(+%ld cho BOM)"
+
+#: option.c:1643
+msgid "%<%f%h%m%=Page %N"
+msgstr "%<%f%h%m%=Trang %N"
+
+#: option.c:2092
+msgid "Thanks for flying Vim"
+msgstr "Xin cảm ơn đã sử dụng Vim"
+
+#: option.c:3419 option.c:3535
+msgid "E518: Unknown option"
+msgstr "E518: Tùy chọn không biết"
+
+#: option.c:3432
+msgid "E519: Option not supported"
+msgstr "E519: Tùy chọn không được hỗ trợ"
+
+#: option.c:3457
+msgid "E520: Not allowed in a modeline"
+msgstr "E520: Không cho phép trên dòng chế độ (modeline)"
+
+#: option.c:3522
+msgid ""
+"\n"
+"\tLast set from "
+msgstr ""
+"\n"
+"\tLần cuối cùng tùy chọn thay đổi vào "
+
+#: option.c:3661
+msgid "E521: Number required after ="
+msgstr "E521: Sau dấu = cần đưa ra một số"
+
+#: option.c:3989 option.c:4619
+msgid "E522: Not found in termcap"
+msgstr "E522: Không tìm thấy trong termcap"
+
+#: option.c:4064
+#, c-format
+msgid "E539: Illegal character <%s>"
+msgstr "E539: Ký tự không cho phép <%s>"
+
+#: option.c:4611
+msgid "E529: Cannot set 'term' to empty string"
+msgstr "E529: Giá trị của tùy chọn 'term' không thể là một chuỗi trống rỗng"
+
+#: option.c:4614
+msgid "E530: Cannot change term in GUI"
+msgstr "E530: Không thể thay đổi terminal trong giao diện đồ họa GUI"
+
+#: option.c:4616
+msgid "E531: Use \":gui\" to start the GUI"
+msgstr "E531: Hãy sử dụng \":gui\" để chạy giao diện đồ họa GUI"
+
+#: option.c:4645
+msgid "E589: 'backupext' and 'patchmode' are equal"
+msgstr "E589: giá trị của tùy chọn 'backupext' và 'patchmode' bằng nhau"
+
+#: option.c:4860
+msgid "E617: Cannot be changed in the GTK+ 2 GUI"
+msgstr "E617: Không thể thay đổi trong giao diện đồ họa GTK+ 2"
+
+#: option.c:5016
+msgid "E524: Missing colon"
+msgstr "E524: Thiếu dấu hai chấm"
+
+#: option.c:5018
+msgid "E525: Zero length string"
+msgstr "E525: Chuỗi có độ dài bằng không"
+
+#: option.c:5086
+#, c-format
+msgid "E526: Missing number after <%s>"
+msgstr "E526: Thiếu một số sau <%s>"
+
+#: option.c:5100
+msgid "E527: Missing comma"
+msgstr "E527: Thiếu dấu phẩy"
+
+#: option.c:5107
+msgid "E528: Must specify a ' value"
+msgstr "E528: Cần đưa ra một giá trị cho '"
+
+#: option.c:5148
+msgid "E595: contains unprintable or wide character"
+msgstr "E595: chứa ký tự không in ra hoặc ký tự với chiều rộng gấp đôi"
+
+#: option.c:5197
+msgid "E596: Invalid font(s)"
+msgstr "E596: Phông chữ không đúng"
+
+#: option.c:5205
+msgid "E597: can't select fontset"
+msgstr "E597: không chọn được bộ phông chữ"
+
+#: option.c:5207
+msgid "E598: Invalid fontset"
+msgstr "E598: Bộ phông chữ không đúng"
+
+#: option.c:5214
+msgid "E533: can't select wide font"
+msgstr "E533: không chọn được phông chữ với các ký tự có chiều rộng gấp đôi"
+
+#: option.c:5216
+msgid "E534: Invalid wide font"
+msgstr "E534: Phông chữ, với ký tự có chiều rộng gấp đôi, không đúng"
+
+#: option.c:5486
+#, c-format
+msgid "E535: Illegal character after <%c>"
+msgstr "E535: Ký tự sau <%c> không chính xác"
+
+#: option.c:5597
+msgid "E536: comma required"
+msgstr "E536: cầu có dấu phẩy"
+
+#: option.c:5607
+#, c-format
+msgid "E537: 'commentstring' must be empty or contain %s"
+msgstr "E537: Giá trị của tùy chọn 'commentstring' phải rỗng hoặc chứa %s"
+
+#: option.c:5679
+msgid "E538: No mouse support"
+msgstr "E538: Chuột không được hỗ trợ"
+
+#: option.c:5947
+msgid "E540: Unclosed expression sequence"
+msgstr "E540: Dãy các biểu thức không đóng"
+
+#: option.c:5951
+msgid "E541: too many items"
+msgstr "E541: quá nhiều phần tử"
+
+#: option.c:5953
+msgid "E542: unbalanced groups"
+msgstr "E542: các nhóm không cân bằng"
+
+#: option.c:6193
+msgid "E590: A preview window already exists"
+msgstr "E590: Cửa sổ xem trước đã có"
+
+#: option.c:6450
+msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
+msgstr ""
+"W17: Tiếng Ả Rập yêu cầu sử dụng UTF-8, hãy nhập ':set encoding=utf-8'"
+
+#: option.c:6783
+#, c-format
+msgid "E593: Need at least %d lines"
+msgstr "E593: Cần ít nhất %d dòng"
+
+#: option.c:6793
+#, c-format
+msgid "E594: Need at least %d columns"
+msgstr "E594: Cần ít nhất %d cột"
+
+#: option.c:7100
+#, c-format
+msgid "E355: Unknown option: %s"
+msgstr "E355: Tùy chọn không biết: %s"
+
+#: option.c:7220
+msgid ""
+"\n"
+"--- Terminal codes ---"
+msgstr ""
+"\n"
+"--- Mã terminal ---"
+
+#: option.c:7222
+msgid ""
+"\n"
+"--- Global option values ---"
+msgstr ""
+"\n"
+"--- Giá trị tùy chọn toàn cầu ---"
+
+#: option.c:7224
+msgid ""
+"\n"
+"--- Local option values ---"
+msgstr ""
+"\n"
+"--- Giá trị tùy chọn nội bộ ---"
+
+#: option.c:7226
+msgid ""
+"\n"
+"--- Options ---"
+msgstr ""
+"\n"
+"--- Tùy chọn ---"
+
+#: option.c:7932
+msgid "E356: get_varp ERROR"
+msgstr "E356: LỖI get_varp"
+
+#: option.c:8903
+#, c-format
+msgid "E357: 'langmap': Matching character missing for %s"
+msgstr "E357: 'langmap': Thiếu ký tự tương ứng cho %s"
+
+#: option.c:8937
+#, c-format
+msgid "E358: 'langmap': Extra characters after semicolon: %s"
+msgstr "E358: 'langmap': Thừa ký tự sau dấu chấm phẩy: %s"
+
+#: os_amiga.c:280
+msgid "cannot open "
+msgstr "không mở được "
+
+#: os_amiga.c:314
+msgid "VIM: Can't open window!\n"
+msgstr "VIM: Không mở được cửa sổ!\n"
+
+#: os_amiga.c:338
+msgid "Need Amigados version 2.04 or later\n"
+msgstr "Cần Amigados phiên bản 2.04 hoặc mới hơn\n"
+
+#: os_amiga.c:344
+#, c-format
+msgid "Need %s version %ld\n"
+msgstr "Cần %s phiên bản %ld\n"
+
+#: os_amiga.c:416
+msgid "Cannot open NIL:\n"
+msgstr "Không mở được NIL:\n"
+
+#: os_amiga.c:427
+msgid "Cannot create "
+msgstr "Không tạo được "
+
+#: os_amiga.c:905
+#, c-format
+msgid "Vim exiting with %d\n"
+msgstr "Thoát Vim với mã %d\n"
+
+#: os_amiga.c:937
+msgid "cannot change console mode ?!\n"
+msgstr "không thay đổi được chế độ kênh giao tác (console)?!\n"
+
+#: os_amiga.c:1003
+msgid "mch_get_shellsize: not a console??\n"
+msgstr "mch_get_shellsize: không phải là kênh giao tác (console)??\n"
+
+#. if Vim opened a window: Executing a shell may cause crashes
+#: os_amiga.c:1152
+msgid "E360: Cannot execute shell with -f option"
+msgstr "E360: Không chạy được shell với tùy chọn -f"
+
+#: os_amiga.c:1193 os_amiga.c:1283
+msgid "Cannot execute "
+msgstr "Không chạy được "
+
+#: os_amiga.c:1196 os_amiga.c:1293
+msgid "shell "
+msgstr "shell "
+
+#: os_amiga.c:1216 os_amiga.c:1318
+msgid " returned\n"
+msgstr " thoát\n"
+
+#: os_amiga.c:1459
+msgid "ANCHOR_BUF_SIZE too small."
+msgstr "Giá trị ANCHOR_BUF_SIZE quá nhỏ."
+
+#: os_amiga.c:1463
+msgid "I/O ERROR"
+msgstr "LỖI I/O (NHẬP/XUẤT)"
+
+#: os_mswin.c:539
+msgid "...(truncated)"
+msgstr "...(bị cắt bớt)"
+
+#: os_mswin.c:641
+msgid "'columns' is not 80, cannot execute external commands"
+msgstr "Tùy chọn 'columns' khác 80, chương trình ngoại trú không thể thực hiện"
+
+#: os_mswin.c:1973
+msgid "E237: Printer selection failed"
+msgstr "E327: Chọn máy in không thành công"
+
+#: os_mswin.c:2013
+#, c-format
+msgid "to %s on %s"
+msgstr "tới %s trên %s"
+
+#: os_mswin.c:2028
+#, c-format
+msgid "E613: Unknown printer font: %s"
+msgstr "E613: Không rõ phông chữ của máy in: %s"
+
+#: os_mswin.c:2077 os_mswin.c:2087
+#, c-format
+msgid "E238: Print error: %s"
+msgstr "E238: Lỗi in: %s"
+
+#: os_mswin.c:2088
+msgid "Unknown"
+msgstr "Không rõ"
+
+#: os_mswin.c:2115
+#, c-format
+msgid "Printing '%s'"
+msgstr "Đang in '%s'"
+
+#: os_mswin.c:3204
+#, c-format
+msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
+msgstr "E244: Tên bảng mã không cho phép \"%s\" trong tên phông chữ \"%s\""
+
+#: os_mswin.c:3212
+#, c-format
+msgid "E245: Illegal char '%c' in font name \"%s\""
+msgstr "E245: Ký tự không cho phép '%c' trong tên phông chữ \"%s\""
+
+#: os_riscos.c:1259
+msgid "E366: Invalid 'osfiletype' option - using Text"
+msgstr "E366: Giá trị tùy chọn 'osfiletype' không cho phép - sử dụng Text"
+
+#: os_unix.c:927
+msgid "Vim: Double signal, exiting\n"
+msgstr "Vim: Tín hiệu đôi, thoát\n"
+
+#: os_unix.c:933
+#, c-format
+msgid "Vim: Caught deadly signal %s\n"
+msgstr "Vim: Nhận được tín hiệu chết %s\n"
+
+#: os_unix.c:936
+#, c-format
+msgid "Vim: Caught deadly signal\n"
+msgstr "Vim: Nhận được tín hiệu chết\n"
+
+#: os_unix.c:1199
+#, c-format
+msgid "Opening the X display took %ld msec"
+msgstr "Mở màn hình X mất %ld mili giây"
+
+#: os_unix.c:1226
+msgid ""
+"\n"
+"Vim: Got X error\n"
+msgstr ""
+"\n"
+"Vim: Lỗi X\n"
+
+#: os_unix.c:1334
+msgid "Testing the X display failed"
+msgstr "Kiểm tra màn hình X không thành công"
+
+#: os_unix.c:1473
+msgid "Opening the X display timed out"
+msgstr "Không mở được màn hình X trong thời gian cho phép (time out)"
+
+#: os_unix.c:3227 os_unix.c:3907
+msgid ""
+"\n"
+"Cannot execute shell "
+msgstr ""
+"\n"
+"Không chạy được shell "
+
+#: os_unix.c:3275
+msgid ""
+"\n"
+"Cannot execute shell sh\n"
+msgstr ""
+"\n"
+"Không chạy được shell sh\n"
+
+#: os_unix.c:3279 os_unix.c:3913
+msgid ""
+"\n"
+"shell returned "
+msgstr ""
+"\n"
+"shell dừng làm việc "
+
+#: os_unix.c:3414
+msgid ""
+"\n"
+"Cannot create pipes\n"
+msgstr ""
+"\n"
+"Không tạo được đường ống (pipe)\n"
+
+#: os_unix.c:3429
+msgid ""
+"\n"
+"Cannot fork\n"
+msgstr ""
+"\n"
+"Không thực hiện được fork()\n"
+
+#: os_unix.c:3920
+msgid ""
+"\n"
+"Command terminated\n"
+msgstr ""
+"\n"
+"Câu lệnh bị gián đoạn\n"
+
+#: os_unix.c:4184 os_unix.c:4309 os_unix.c:5975
+msgid "XSMP lost ICE connection"
+msgstr "XSMP mất kết nối ICE"
+
+#: os_unix.c:5558
+msgid "Opening the X display failed"
+msgstr "Mở màn hình X không thành công"
+
+#: os_unix.c:5880
+msgid "XSMP handling save-yourself request"
+msgstr "XSMP xử lý yêu cầu tự động ghi nhớ"
+
+#: os_unix.c:5999
+msgid "XSMP opening connection"
+msgstr "XSMP mở kết nối"
+
+#: os_unix.c:6018
+msgid "XSMP ICE connection watch failed"
+msgstr "XSMP mất theo dõi kết nối ICE"
+
+#: os_unix.c:6038
+#, c-format
+msgid "XSMP SmcOpenConnection failed: %s"
+msgstr "XSMP thực hiện SmcOpenConnection không thành công: %s"
+
+#: os_vms_mms.c:59
+msgid "At line"
+msgstr "Tại dòng"
+
+#: os_w32exe.c:65
+msgid "Could not allocate memory for command line."
+msgstr "Không phân chia được bộ nhớ cho dòng lệnh."
+
+#: os_w32exe.c:66 os_w32exe.c:89 os_w32exe.c:100
+msgid "VIM Error"
+msgstr "Lỗi VIM"
+
+#: os_w32exe.c:89
+msgid "Could not load vim32.dll!"
+msgstr "Không nạp được vim32.dll!"
+
+#: os_w32exe.c:99
+msgid "Could not fix up function pointers to the DLL!"
+msgstr "Không sửa được cái chỉ (pointer) hàm số tới DLL!"
+
+#: os_win16.c:342 os_win32.c:3216
+#, c-format
+msgid "shell returned %d"
+msgstr "thoát shell với mã %d"
+
+#: os_win32.c:2674
+#, c-format
+msgid "Vim: Caught %s event\n"
+msgstr "Vim: Nhận được sự kiện %s\n"
+
+#: os_win32.c:2676
+msgid "close"
+msgstr "đóng"
+
+#: os_win32.c:2678
+msgid "logoff"
+msgstr "thoát"
+
+#: os_win32.c:2679
+msgid "shutdown"
+msgstr "tắt máy"
+
+#: os_win32.c:3169
+msgid "E371: Command not found"
+msgstr "E371: Câu lệnh không tìm thấy"
+
+#: os_win32.c:3182
+msgid ""
+"VIMRUN.EXE not found in your $PATH.\n"
+"External commands will not pause after completion.\n"
+"See  :help win32-vimrun  for more information."
+msgstr ""
+"Không tìm thấy VIMRUN.EXE trong $PATH.\n"
+"Lệnh ngoại trú sẽ không dừng lại sau khi hoàn thành.\n"
+"Thông tin chi tiết xem trong :help win32-vimrun"
+
+#: os_win32.c:3185
+msgid "Vim Warning"
+msgstr "Cảnh báo Vim"
+
+#: quickfix.c:258
+#, c-format
+msgid "E372: Too many %%%c in format string"
+msgstr "E372: Quá nhiều %%%c trong chuỗi định dạng"
+
+#: quickfix.c:271
+#, c-format
+msgid "E373: Unexpected %%%c in format string"
+msgstr "E373: Không mong đợi %%%c trong chuỗi định dạng"
+
+#: quickfix.c:325
+msgid "E374: Missing ] in format string"
+msgstr "E374: Thiếu ] trong chuỗi định dạng"
+
+#: quickfix.c:339
+#, c-format
+msgid "E375: Unsupported %%%c in format string"
+msgstr "E375: %%%c không được hỗ trợ trong chuỗi định dạng"
+
+#: quickfix.c:357
+#, c-format
+msgid "E376: Invalid %%%c in format string prefix"
+msgstr "E376: Không cho phép %%%c trong tiền tố của chuỗi định dạng"
+
+#: quickfix.c:365
+#, c-format
+msgid "E377: Invalid %%%c in format string"
+msgstr "E377: Không cho phép %%%c trong chuỗi định dạng"
+
+#: quickfix.c:391
+msgid "E378: 'errorformat' contains no pattern"
+msgstr "E378: Trong giá trị 'errorformat' thiếu mẫu (pattern)"
+
+#: quickfix.c:501
+msgid "E379: Missing or empty directory name"
+msgstr "E379: Tên thư mục không được đưa ra hoặc bằng một chuỗi rỗng"
+
+#: quickfix.c:990
+msgid "E553: No more items"
+msgstr "E553: Không còn phần tử nào nữa"
+
+#: quickfix.c:1229
+#, c-format
+msgid "(%d of %d)%s%s: "
+msgstr "(%d của %d)%s%s: "
+
+#: quickfix.c:1231
+msgid " (line deleted)"
+msgstr " (dòng bị xóa)"
+
+#: quickfix.c:1444
+msgid "E380: At bottom of quickfix stack"
+msgstr "E380: Ở dưới của đống sửa nhanh"
+
+#: quickfix.c:1453
+msgid "E381: At top of quickfix stack"
+msgstr "E381: Ở đầu của đống sửa nhanh"
+
+#: quickfix.c:1465
+#, c-format
+msgid "error list %d of %d; %d errors"
+msgstr "danh sách lỗi %d của %d; %d lỗi"
+
+#: quickfix.c:1943
+msgid "E382: Cannot write, 'buftype' option is set"
+msgstr "E382: Không ghi nhớ được, giá trị 'buftype' không phải là chuỗi rỗng"
+
+#: regexp.c:319
+#, c-format
+msgid "E369: invalid item in %s%%[]"
+msgstr "E369: phần tử không cho phép trong %s%%[]"
+
+#: regexp.c:838
+msgid "E339: Pattern too long"
+msgstr "E339: Mẫu (pattern) quá dài"
+
+#: regexp.c:1009
+msgid "E50: Too many \\z("
+msgstr "E50: Quá nhiều \\z("
+
+#: regexp.c:1020
+#, c-format
+msgid "E51: Too many %s("
+msgstr "E51: Quá nhiều %s("
+
+#: regexp.c:1077
+msgid "E52: Unmatched \\z("
+msgstr "E52: Không có cặp cho \\z("
+
+#: regexp.c:1081
+#, c-format
+msgid "E53: Unmatched %s%%("
+msgstr "E53: Không có cặp cho %s%%("
+
+#: regexp.c:1083
+#, c-format
+msgid "E54: Unmatched %s("
+msgstr "E54: Không có cặp cho %s("
+
+#: regexp.c:1088
+#, c-format
+msgid "E55: Unmatched %s)"
+msgstr "E55: Không có cặp cho %s)"
+
+#: regexp.c:1258
+#, c-format
+msgid "E56: %s* operand could be empty"
+msgstr "E56: operand %s* không thể rỗng"
+
+#: regexp.c:1261
+#, c-format
+msgid "E57: %s+ operand could be empty"
+msgstr "E57: operand %s+ không thể rỗng"
+
+#: regexp.c:1316
+#, c-format
+msgid "E59: invalid character after %s@"
+msgstr "E59: ký tự không cho phép sau %s@"
+
+#: regexp.c:1344
+#, c-format
+msgid "E58: %s{ operand could be empty"
+msgstr "E58: operand %s{ không thể rỗng"
+
+#: regexp.c:1354
+#, c-format
+msgid "E60: Too many complex %s{...}s"
+msgstr "E60: Quá nhiều cấu trúc phức tạp %s{...}"
+
+#: regexp.c:1370
+#, c-format
+msgid "E61: Nested %s*"
+msgstr "E61: %s* lồng vào"
+
+#: regexp.c:1373
+#, c-format
+msgid "E62: Nested %s%c"
+msgstr "E62: %s%c lồng vào"
+
+#: regexp.c:1491
+msgid "E63: invalid use of \\_"
+msgstr "E63: không cho phép sử dụng \\_"
+
+#: regexp.c:1536
+#, c-format
+msgid "E64: %s%c follows nothing"
+msgstr "E64: %s%c không theo sau gì cả"
+
+#: regexp.c:1592
+msgid "E65: Illegal back reference"
+msgstr "E65: Không cho phép liên kết ngược lại"
+
+#: regexp.c:1605
+msgid "E66: \\z( not allowed here"
+msgstr "E66: \\z( không thể sử dụng ở đây"
+
+#: regexp.c:1624
+msgid "E67: \\z1 et al. not allowed here"
+msgstr "E67: \\z1 và tương tự không được sử dụng ở đây"
+
+#: regexp.c:1635
+msgid "E68: Invalid character after \\z"
+msgstr "E68: Ký tự không cho phép sau \\z"
+
+#: regexp.c:1684
+#, c-format
+msgid "E69: Missing ] after %s%%["
+msgstr "E69: Thiếu ] sau %s%%["
+
+#: regexp.c:1700
+#, c-format
+msgid "E70: Empty %s%%[]"
+msgstr "E70: %s%%[] rỗng"
+
+#: regexp.c:1760
+#, c-format
+msgid "E71: Invalid character after %s%%"
+msgstr "E71: Ký tự không cho phép sau %s%%"
+
+#: regexp.c:2557
+#, c-format
+msgid "E554: Syntax error in %s{...}"
+msgstr "E554: Lỗi cú pháp trong %s{...}"
+
+#: regexp.c:2863 regexp.c:3016
+msgid "E361: Crash intercepted; regexp too complex?"
+msgstr "E361: Sự cố được ngăn chặn; biểu thức chính quy quá phức tạp?"
+
+#: regexp.c:3004 regexp.c:3013
+msgid "E363: pattern caused out-of-stack error"
+msgstr "E363: sử dụng mẫu (pattern) gây ra lỗi out-of-stack"
+
+#: regexp.c:3258
+msgid "External submatches:\n"
+msgstr "Sự tương ứng con ngoài:\n"
+
+#: screen.c:2184
+#, c-format
+msgid "+--%3ld lines folded "
+msgstr "+--%3ld dòng được gấp"
+
+#: screen.c:7996
+msgid " VREPLACE"
+msgstr " THAY THẾ ẢO"
+
+#: screen.c:8000
+msgid " REPLACE"
+msgstr " THAY THẾ"
+
+#: screen.c:8005
+msgid " REVERSE"
+msgstr " NGƯỢC LẠI"
+
+#: screen.c:8007
+msgid " INSERT"
+msgstr " CHÈN"
+
+#: screen.c:8010
+msgid " (insert)"
+msgstr " (chèn)"
+
+#: screen.c:8012
+msgid " (replace)"
+msgstr " (thay thế)"
+
+#: screen.c:8014
+msgid " (vreplace)"
+msgstr " (thay thế ảo)"
+
+#: screen.c:8017
+msgid " Hebrew"
+msgstr " Do thái"
+
+#: screen.c:8028
+msgid " Arabic"
+msgstr " Ả rập"
+
+#: screen.c:8031
+msgid " (lang)"
+msgstr " (ngôn ngữ)"
+
+#: screen.c:8035
+msgid " (paste)"
+msgstr " (dán)"
+
+#: screen.c:8048
+msgid " VISUAL"
+msgstr " CHẾ ĐỘ VISUAL"
+
+#: screen.c:8049
+msgid " VISUAL LINE"
+msgstr " DÒNG VISUAL"
+
+#: screen.c:8050
+msgid " VISUAL BLOCK"
+msgstr " KHỐI VISUAL"
+
+#: screen.c:8051
+msgid " SELECT"
+msgstr " LỰA CHỌN"
+
+#: screen.c:8052
+msgid " SELECT LINE"
+msgstr " LỰA CHỌN DÒNG"
+
+#: screen.c:8053
+msgid " SELECT BLOCK"
+msgstr " LỰA CHỌN KHỐI"
+
+#: screen.c:8068 screen.c:8131
+msgid "recording"
+msgstr "đang ghi"
+
+#: search.c:37
+msgid "search hit TOP, continuing at BOTTOM"
+msgstr "tìm kiếm sẽ được tiếp tục từ CUỐI tài liệu"
+
+#: search.c:38
+msgid "search hit BOTTOM, continuing at TOP"
+msgstr "tìm kiếm sẽ được tiếp tục từ ĐẦU tài liệu"
+
+#: search.c:526
+#, c-format
+msgid "E383: Invalid search string: %s"
+msgstr "E383: Chuỗi tìm kiếm không đúng: %s"
+
+#: search.c:853
+#, c-format
+msgid "E384: search hit TOP without match for: %s"
+msgstr "E384: tìm kiếm kết thúc ở ĐẦU tập tin; không tìm thấy %s"
+
+#: search.c:856
+#, c-format
+msgid "E385: search hit BOTTOM without match for: %s"
+msgstr "E385: tìm kiếm kết thúc ở CUỐI tập tin; không tìm thấy %s"
+
+#: search.c:1249
+msgid "E386: Expected '?' or '/'  after ';'"
+msgstr "E386: Mong đợi nhập '?' hoặc '/' sau ';'"
+
+#: search.c:3759
+msgid " (includes previously listed match)"
+msgstr " (gồm cả những tương ứng đã liệt kê trước đây)"
+
+#. cursor at status line
+#: search.c:3779
+msgid "--- Included files "
+msgstr "--- Tập tin tính đến "
+
+#: search.c:3781
+msgid "not found "
+msgstr "không tìm thấy "
+
+#: search.c:3782
+msgid "in path ---\n"
+msgstr "trong đường dẫn ---\n"
+
+#: search.c:3839
+msgid "  (Already listed)"
+msgstr " (Đã liệt kê)"
+
+#: search.c:3841
+msgid "  NOT FOUND"
+msgstr " KHÔNG TÌM THẤY"
+
+#: search.c:3893
+#, c-format
+msgid "Scanning included file: %s"
+msgstr "Quét trong tập tin được tính đến: %s"
+
+#: search.c:4111
+msgid "E387: Match is on current line"
+msgstr "E387: Tương ứng nằm trên dòng hiện tại"
+
+#: search.c:4254
+msgid "All included files were found"
+msgstr "Tìm thấy tất cả các tập tin được tính đến"
+
+#: search.c:4256
+msgid "No included files"
+msgstr "Không có tập tin được tính đến"
+
+#: search.c:4272
+msgid "E388: Couldn't find definition"
+msgstr "E388: Không tìm thấy định nghĩa"
+
+#: search.c:4274
+msgid "E389: Couldn't find pattern"
+msgstr "E389: Không tìm thấy mẫu (pattern)"
+
+#: syntax.c:3050
+#, c-format
+msgid "E390: Illegal argument: %s"
+msgstr "E390: Tham số không cho phép: %s"
+
+#: syntax.c:3230
+#, c-format
+msgid "E391: No such syntax cluster: %s"
+msgstr "E391: Không có cụm cú pháp như vậy: %s"
+
+#: syntax.c:3394
+msgid "No Syntax items defined for this buffer"
+msgstr "Không có phần tử cú pháp nào được định nghĩa cho bộ đệm này"
+
+#: syntax.c:3402
+msgid "syncing on C-style comments"
+msgstr "Đồng bộ hóa theo chú thích kiểu C"
+
+#: syntax.c:3410
+msgid "no syncing"
+msgstr "không đồng bộ hóa"
+
+#: syntax.c:3413
+msgid "syncing starts "
+msgstr "đồng bộ hóa bắt đầu "
+
+#: syntax.c:3415 syntax.c:3490
+msgid " lines before top line"
+msgstr " dòng trước dòng đầu tiên"
+
+#: syntax.c:3420
+msgid ""
+"\n"
+"--- Syntax sync items ---"
+msgstr ""
+"\n"
+"--- Phần tử đồng bộ hóa cú pháp ---"
+
+#: syntax.c:3425
+msgid ""
+"\n"
+"syncing on items"
+msgstr ""
+"\n"
+"đồng bộ hóa theo phần tử"
+
+#: syntax.c:3431
+msgid ""
+"\n"
+"--- Syntax items ---"
+msgstr ""
+"\n"
+"--- Phần tử cú pháp ---"
+
+#: syntax.c:3454
+#, c-format
+msgid "E392: No such syntax cluster: %s"
+msgstr "E392: Không có cụm cú pháp như vậy: %s"
+
+#: syntax.c:3480
+msgid "minimal "
+msgstr "nhỏ nhất "
+
+#: syntax.c:3487
+msgid "maximal "
+msgstr "lớn nhất "
+
+#: syntax.c:3499
+msgid "; match "
+msgstr "; tương ứng "
+
+#: syntax.c:3501
+msgid " line breaks"
+msgstr " chuyển dòng"
+
+#: syntax.c:4135
+msgid "E393: group[t]here not accepted here"
+msgstr "E393: không được sử dụng group[t]here ở đây"
+
+#: syntax.c:4159
+#, c-format
+msgid "E394: Didn't find region item for %s"
+msgstr "E394: Phần tử vùng cho %s không tìm thấy"
+
+#: syntax.c:4187
+msgid "E395: contains argument not accepted here"
+msgstr "E395: không được sử dụng tham số contains ở đây" 
+
+#: syntax.c:4198
+msgid "E396: containedin argument not accepted here"
+msgstr "E396: không được sử dụng tham số containedin ở đây" 
+
+#: syntax.c:4276
+msgid "E397: Filename required"
+msgstr "E397: Yêu cầu tên tập tin"
+
+#: syntax.c:4614
+#, c-format
+msgid "E398: Missing '=': %s"
+msgstr "E398: Thiếu '=': %s"
+
+#: syntax.c:4772
+#, c-format
+msgid "E399: Not enough arguments: syntax region %s"
+msgstr "E399: Không đủ tham số: vùng cú pháp %s"
+
+#: syntax.c:5103
+msgid "E400: No cluster specified"
+msgstr "E400: Chưa chỉ ra cụm"
+
+#: syntax.c:5140
+#, c-format
+msgid "E401: Pattern delimiter not found: %s"
+msgstr "E401: Không tìm thấy ký tự phân chia mẫu (pattern): %s"
+
+#: syntax.c:5215
+#, c-format
+msgid "E402: Garbage after pattern: %s"
+msgstr "E402: Rác ở sau mẫu (pattern): %s"
+
+#: syntax.c:5305
+msgid "E403: syntax sync: line continuations pattern specified twice"
+msgstr "E403: đồng bộ hóa cú pháp: mẫu tiếp tục của dòng chỉ ra hai lần"
+
+#: syntax.c:5362
+#, c-format
+msgid "E404: Illegal arguments: %s"
+msgstr "E404: Tham số không cho phép: %s"
+
+#: syntax.c:5412
+#, c-format
+msgid "E405: Missing equal sign: %s"
+msgstr "E405: Thiếu dấu bằng: %s"
+
+#: syntax.c:5418
+#, c-format
+msgid "E406: Empty argument: %s"
+msgstr "E406: Tham số trống rỗng: %s"
+
+#: syntax.c:5445
+#, c-format
+msgid "E407: %s not allowed here"
+msgstr "E407: %s không được cho phép ở đây"
+
+#: syntax.c:5452
+#, c-format
+msgid "E408: %s must be first in contains list"
+msgstr "E408: %s phải là đầu tiên trong danh sách contains"
+
+#: syntax.c:5522
+#, c-format
+msgid "E409: Unknown group name: %s"
+msgstr "E409: Tên nhóm không biết: %s"
+
+#: syntax.c:5755
+#, c-format
+msgid "E410: Invalid :syntax subcommand: %s"
+msgstr "E410: Câu lệnh con :syntax không đúng: %s"
+
+#: syntax.c:6136
+#, c-format
+msgid "E411: highlight group not found: %s"
+msgstr "E411: không tìm thấy nhóm chiếu sáng cú pháp: %s"
+
+#: syntax.c:6160
+#, c-format
+msgid "E412: Not enough arguments: \":highlight link %s\""
+msgstr "E412: Không đủ tham số: \":highlight link %s\""
+
+#: syntax.c:6167
+#, c-format
+msgid "E413: Too many arguments: \":highlight link %s\""
+msgstr "E413: Quá nhiều tham số: \":highlight link %s\""
+
+#: syntax.c:6187
+msgid "E414: group has settings, highlight link ignored"
+msgstr "E414: nhóm có thiết lập riêng, chiếu sáng liên kết bị bỏ qua"
+
+#: syntax.c:6316
+#, c-format
+msgid "E415: unexpected equal sign: %s"
+msgstr "E415: dấu bằng không được mong đợi: %s"
+
+#: syntax.c:6352
+#, c-format
+msgid "E416: missing equal sign: %s"
+msgstr "E416: thiếu dấu bằng: %s"
+
+#: syntax.c:6380
+#, c-format
+msgid "E417: missing argument: %s"
+msgstr "E417: thiếu tham số: %s"
+
+#: syntax.c:6417
+#, c-format
+msgid "E418: Illegal value: %s"
+msgstr "E418: Giá trị không cho phép: %s"
+
+#: syntax.c:6536
+msgid "E419: FG color unknown"
+msgstr "E419: Không rõ màu văn bản (FG)"
+
+#: syntax.c:6547
+msgid "E420: BG color unknown"
+msgstr "E420: Không rõ màu nền sau (BG)"
+
+#: syntax.c:6608
+#, c-format
+msgid "E421: Color name or number not recognized: %s"
+msgstr "E421: Tên hoặc số của màu không được nhận ra: %s"
+
+#: syntax.c:6814
+#, c-format
+msgid "E422: terminal code too long: %s"
+msgstr "E422: mã terminal quá dài: %s"
+
+#: syntax.c:6861
+#, c-format
+msgid "E423: Illegal argument: %s"
+msgstr "E423: Tham số không cho phép: %s"
+
+#: syntax.c:7390
+msgid "E424: Too many different highlighting attributes in use"
+msgstr "E424: Sử dụng quá nhiều thuộc tính chiếu sáng cú pháp"
+
+#: syntax.c:7911
+msgid "E669: Unprintable character in group name"
+msgstr "E669: Ký tự không thể tin ra trong tên nhóm"
+
+#. This is an error, but since there previously was no check only
+#. * give a warning.
+#: syntax.c:7918
+msgid "W18: Invalid character in group name"
+msgstr "W18: Ký tự không cho phép trong tên nhóm"
+
+#: tag.c:90
+msgid "E555: at bottom of tag stack"
+msgstr "E555: ở cuối đống thẻ ghi"
+
+#: tag.c:91
+msgid "E556: at top of tag stack"
+msgstr "E556: ở đầu đống thẻ ghi"
+
+#: tag.c:412
+msgid "E425: Cannot go before first matching tag"
+msgstr "E425: Không chuyển được tới vị trí ở trước thẻ ghi tương ứng đầu tiên"
+
+#: tag.c:550
+#, c-format
+msgid "E426: tag not found: %s"
+msgstr "E426: không tìm thấy thẻ ghi: %s"
+
+#: tag.c:583
+msgid "  # pri kind tag"
+msgstr ""
+
+#: tag.c:586
+msgid "file\n"
+msgstr "tập tin\n"
+
+#.
+#. * Ask to select a tag from the list.
+#. * When using ":silent" assume that <CR> was entered.
+#.
+#: tag.c:744
+msgid "Enter nr of choice (<CR> to abort): "
+msgstr "Hãy chọn số cần thiết (<CR> để dừng):"
+
+#: tag.c:784
+msgid "E427: There is only one matching tag"
+msgstr "E427: Chỉ có một thẻ ghi tương ứng"
+
+#: tag.c:786
+msgid "E428: Cannot go beyond last matching tag"
+msgstr "E428: Không chuyển được tới vị trí ở sau thẻ ghi tương ứng cuối cùng"
+
+#: tag.c:810
+#, c-format
+msgid "File \"%s\" does not exist"
+msgstr "Tập tin \"%s\" không tồn tại"
+
+#. Give an indication of the number of matching tags
+#: tag.c:823
+#, c-format
+msgid "tag %d of %d%s"
+msgstr "thẻ ghi %d của %d%s"
+
+#: tag.c:826
+msgid " or more"
+msgstr " và hơn nữa"
+
+#: tag.c:828
+msgid "  Using tag with different case!"
+msgstr " Đang sử dụng thẻ ghi với kiểu chữ khác!"
+
+#: tag.c:872
+#, c-format
+msgid "E429: File \"%s\" does not exist"
+msgstr "E429: Tập tin \"%s\" không tồn tại"
+
+#. Highlight title
+#: tag.c:941
+msgid ""
+"\n"
+"  # TO tag         FROM line  in file/text"
+msgstr ""
+"\n"
+"  # TỚI thẻ ghi        TỪ   dòng  trong tập tin/văn bản"
+
+#: tag.c:1363
+#, c-format
+msgid "Searching tags file %s"
+msgstr "Tìm kiếm tập tin thẻ ghi %s"
+
+#: tag.c:1550
+#, c-format
+msgid "E430: Tag file path truncated for %s\n"
+msgstr "E430: Đường dẫn tới tập tin thẻ ghi bị cắt bớt cho %s\n"
+
+#: tag.c:2203
+#, c-format
+msgid "E431: Format error in tags file \"%s\""
+msgstr "E431: Lỗi định dạng trong tập tin thẻ ghi \"%s\""
+
+#: tag.c:2207
+#, c-format
+msgid "Before byte %ld"
+msgstr "Trước byte %ld"
+
+#: tag.c:2240
+#, c-format
+msgid "E432: Tags file not sorted: %s"
+msgstr "E432: Tập tin thẻ ghi chưa được sắp xếp: %s"
+
+#. never opened any tags file
+#: tag.c:2280
+msgid "E433: No tags file"
+msgstr "E433: Không có tập tin thẻ ghi"
+
+#: tag.c:3016
+msgid "E434: Can't find tag pattern"
+msgstr "E434: Không tìm thấy mẫu thẻ ghi"
+
+#: tag.c:3027
+msgid "E435: Couldn't find tag, just guessing!"
+msgstr "E435: Không tìm thấy thẻ ghi, đang thử đoán!"
+
+#: term.c:1759
+msgid "' not known. Available builtin terminals are:"
+msgstr "' không rõ. Có các terminal gắn sẵn (builtin) sau:"
+
+#: term.c:1783
+msgid "defaulting to '"
+msgstr "theo mặc định '"
+
+#: term.c:2141
+msgid "E557: Cannot open termcap file"
+msgstr "E557: Không thể mở tập tin termcap"
+
+#: term.c:2145
+msgid "E558: Terminal entry not found in terminfo"
+msgstr "E558: Trong terminfo không có bản ghi nào về terminal này"
+
+#: term.c:2147
+msgid "E559: Terminal entry not found in termcap"
+msgstr "E559: Trong termcap không có bản ghi nào về terminal này"
+
+#: term.c:2306
+#, c-format
+msgid "E436: No \"%s\" entry in termcap"
+msgstr "E436: Trong termcap không có bản ghi \"%s\""
+
+#: term.c:2780
+msgid "E437: terminal capability \"cm\" required"
+msgstr "E437: cần khả năng của terminal \"cm\""
+
+#. Highlight title
+#: term.c:4990
+msgid ""
+"\n"
+"--- Terminal keys ---"
+msgstr ""
+"\n"
+"--- Phím terminal ---"
+
+#: ui.c:258
+msgid "new shell started\n"
+msgstr "đã chạy shell mới\n"
+
+#: ui.c:1841
+msgid "Vim: Error reading input, exiting...\n"
+msgstr "Vim: Lỗi đọc dữ liệu nhập, thoát...\n"
+
+#. must display the prompt
+#: undo.c:405
+msgid "No undo possible; continue anyway"
+msgstr "Không thể hủy thao tác; tiếp tục thực hiện"
+
+#: undo.c:561
+msgid "E438: u_undo: line numbers wrong"
+msgstr "E438: u_undo: số thứ tự dòng không đúng"
+
+#: undo.c:757
+msgid "1 change"
+msgstr "duy nhất 1 thay đổi"
+
+#: undo.c:759
+#, c-format
+msgid "%ld changes"
+msgstr "%ld thay đổi"
+
+#: undo.c:812
+msgid "E439: undo list corrupt"
+msgstr "E439: danh sách hủy thao tác (undo) bị hỏng"
+
+#: undo.c:844
+msgid "E440: undo line missing"
+msgstr "E440: bị mất dòng hủy thao tác"
+
+#. Only MS VC 4.1 and earlier can do Win32s
+#: version.c:721
+msgid ""
+"\n"
+"MS-Windows 16/32 bit GUI version"
+msgstr ""
+"\n"
+"Phiên bản với giao diện đồ họa GUI cho MS-Windows 16/32 bit"
+
+#: version.c:723
+msgid ""
+"\n"
+"MS-Windows 32 bit GUI version"
+msgstr ""
+"\n"
+"Phiên bản với giao diện đồ họa GUI cho MS-Windows 32 bit"
+
+#: version.c:726
+msgid " in Win32s mode"
+msgstr " trong chế độ Win32"
+
+#: version.c:728
+msgid " with OLE support"
+msgstr " với hỗ trợ OLE"
+
+#: version.c:731
+msgid ""
+"\n"
+"MS-Windows 32 bit console version"
+msgstr ""
+"\n"
+"Phiên bản console cho MS-Windows 32 bit"
+
+#: version.c:735
+msgid ""
+"\n"
+"MS-Windows 16 bit version"
+msgstr ""
+"\n"
+"Phiên bản cho MS-Windows 16 bit"
+
+#: version.c:739
+msgid ""
+"\n"
+"32 bit MS-DOS version"
+msgstr ""
+"\n"
+"Phiên bản cho MS-DOS 32 bit"
+
+#: version.c:741
+msgid ""
+"\n"
+"16 bit MS-DOS version"
+msgstr ""
+"\n"
+"Phiên bản cho MS-DOS 16 bit"
+
+#: version.c:747
+msgid ""
+"\n"
+"MacOS X (unix) version"
+msgstr ""
+"\n"
+"Phiên bản cho MacOS X (unix)"
+
+#: version.c:749
+msgid ""
+"\n"
+"MacOS X version"
+msgstr ""
+"\n"
+"Phiên bản cho MacOS X"
+
+#: version.c:752
+msgid ""
+"\n"
+"MacOS version"
+msgstr ""
+"\n"
+"Phiên bản cho MacOS"
+
+#: version.c:757
+msgid ""
+"\n"
+"RISC OS version"
+msgstr ""
+"\n"
+"Phiên bản cho RISC OS"
+
+#: version.c:767
+msgid ""
+"\n"
+"Included patches: "
+msgstr ""
+"\n"
+"Bao gồm các bản vá lỗi: "
+
+#: version.c:793 version.c:1161
+msgid "Modified by "
+msgstr "Với các thay đổi bởi "
+
+#: version.c:800
+msgid ""
+"\n"
+"Compiled "
+msgstr ""
+"\n"
+"Được biên dịch "
+
+#: version.c:803
+msgid "by "
+msgstr "bởi "
+
+#: version.c:815
+msgid ""
+"\n"
+"Huge version "
+msgstr ""
+"\n"
+"Phiên bản khổng lồ "
+
+#: version.c:818
+msgid ""
+"\n"
+"Big version "
+msgstr ""
+"\n"
+"Phiên bản lớn "
+
+#: version.c:821
+msgid ""
+"\n"
+"Normal version "
+msgstr ""
+"\n"
+"Phiên bản thông thường "
+
+#: version.c:824
+msgid ""
+"\n"
+"Small version "
+msgstr ""
+"\n"
+"Phiên bản nhỏ "
+
+#: version.c:826
+msgid ""
+"\n"
+"Tiny version "
+msgstr ""
+"\n"
+"Phiên bản \"tí hon\" "
+
+#: version.c:832
+msgid "without GUI."
+msgstr "không có giao diện đồ họa GUI."
+
+#: version.c:837
+msgid "with GTK2-GNOME GUI."
+msgstr "với giao diện đồ họa GUI GTK2-GNOME."
+
+#: version.c:839
+msgid "with GTK-GNOME GUI."
+msgstr "với giao diện đồ họa GUI GTK-GNOME."
+
+#: version.c:843
+msgid "with GTK2 GUI."
+msgstr "với giao diện đồ họa GUI GTK2."
+
+#: version.c:845
+msgid "with GTK GUI."
+msgstr "với giao diện đồ họa GUI GTK."
+
+#: version.c:850
+msgid "with X11-Motif GUI."
+msgstr "với giao diện đồ họa GUI X11-Motif."
+
+#: version.c:854
+msgid "with X11-neXtaw GUI."
+msgstr "với giao diện đồ họa GUI X11-neXtaw."
+
+#: version.c:856
+msgid "with X11-Athena GUI."
+msgstr "với giao diện đồ họa GUI X11-Athena."
+
+#: version.c:860
+msgid "with BeOS GUI."
+msgstr "với giao diện đồ họa GUI BeOS."
+
+#: version.c:863
+msgid "with Photon GUI."
+msgstr "với giao diện đồ họa GUI Photon."
+
+#: version.c:866
+msgid "with GUI."
+msgstr "với giao diện đồ họa GUI."
+
+#: version.c:869
+msgid "with Carbon GUI."
+msgstr "với giao diện đồ họa GUI Carbon."
+
+#: version.c:872
+msgid "with Cocoa GUI."
+msgstr "với giao diện đồ họa GUI Cocoa."
+
+#: version.c:875
+msgid "with (classic) GUI."
+msgstr "với giao diện đồ họa (cổ điển) GUI."
+
+#: version.c:886
+msgid "  Features included (+) or not (-):\n"
+msgstr "  Tính năng có (+) hoặc không (-):\n"
+
+#: version.c:898
+msgid "   system vimrc file: \""
+msgstr "            tập tin vimrc chung cho hệ thống: \""
+
+#: version.c:903
+msgid "     user vimrc file: \""
+msgstr "         tập tin vimrc của người dùng: \""
+
+#: version.c:908
+msgid " 2nd user vimrc file: \""
+msgstr "  tập tin vimrc thứ hai của người dùng: \""
+
+#: version.c:913
+msgid " 3rd user vimrc file: \""
+msgstr "  tập tin vimrc thứ ba của người dùng: \""
+
+#: version.c:918
+msgid "      user exrc file: \""
+msgstr "         tập tin exrc của người dùng: \""
+
+#: version.c:923
+msgid "  2nd user exrc file: \""
+msgstr "  tập tin exrc thứ hai của người dùng: \""
+
+#: version.c:929
+msgid "  system gvimrc file: \""
+msgstr "            tập tin gvimrc chung cho hệ thống: \""
+
+#: version.c:933
+msgid "    user gvimrc file: \""
+msgstr "         tập tin gvimrc của người dùng: \""
+
+#: version.c:937
+msgid "2nd user gvimrc file: \""
+msgstr "  tập tin gvimrc thứ hai của người dùng: \""
+
+#: version.c:942
+msgid "3rd user gvimrc file: \""
+msgstr "  tập tin gvimrc thứ ba của người dùng: \""
+
+#: version.c:949
+msgid "    system menu file: \""
+msgstr "             tập tin trình đơn chung cho hệ thống: \""
+
+#: version.c:957
+msgid "  fall-back for $VIM: \""
+msgstr "          giá trị $VIM theo mặc định: \""
+
+#: version.c:963
+msgid " f-b for $VIMRUNTIME: \""
+msgstr "   giá trị $VIMRUNTIME theo mặc định: \""
+
+#: version.c:967
+msgid "Compilation: "
+msgstr "Tham số biên dịch: "
+
+#: version.c:973
+msgid "Compiler: "
+msgstr "Trình biên dịch: "
+
+#: version.c:978
+msgid "Linking: "
+msgstr "Liên kết: "
+
+#: version.c:983
+msgid "  DEBUG BUILD"
+msgstr "  BIÊN DỊCH SỬA LỖI (DEBUG)"
+
+#: version.c:1022
+msgid "VIM - Vi IMproved"
+msgstr "VIM ::: Vi IMproved (Vi cải tiến) ::: Phiên bản tiếng Việt"
+
+#: version.c:1024
+msgid "version "
+msgstr "phiên bản "
+
+#: version.c:1025
+msgid "by Bram Moolenaar et al."
+msgstr "do Bram Moolenaar và những người khác"
+
+#: version.c:1029
+msgid "Vim is open source and freely distributable"
+msgstr "Vim là chương trình mã nguồn mở và phân phối tự do"
+
+#: version.c:1031
+msgid "Help poor children in Uganda!"
+msgstr "Hãy giúp đỡ trẻ em nghèo Uganda!"
+
+#: version.c:1032
+msgid "type  :help iccf<Enter>       for information "
+msgstr "hãy gõ :help iccf<Enter>       để biết thêm thông tin"
+
+#: version.c:1034
+msgid "type  :q<Enter>               to exit         "
+msgstr "hãy gõ :q<Enter>               để thoát khỏi chương trình     "
+
+#: version.c:1035
+msgid "type  :help<Enter>  or  <F1>  for on-line help"
+msgstr "hãy gõ :help<Enter> hoặc <F1>   để có được trợ giúp        "
+
+#: version.c:1036
+msgid "type  :help version6<Enter>   for version info"
+msgstr "hãy gõ :help version6<Enter>   để biết về phiên bản này  "
+
+#: version.c:1039
+msgid "Running in Vi compatible mode"
+msgstr "Làm việc trong chế độ tương thích với Vi"
+
+#: version.c:1040
+msgid "type  :set nocp<Enter>        for Vim defaults"
+msgstr "hãy gõ :set nocp<Enter>        để chuyển vào chế độ Vim     "
+
+#: version.c:1041
+msgid "type  :help cp-default<Enter> for info on this"
+msgstr "hãy gõ :help cp-default<Enter> để có thêm thông tin về điều này"
+
+#: version.c:1056
+msgid "menu  Help->Orphans           for information    "
+msgstr "trình đơn Trợ giúp->Mồ côi             để có thêm thông tin     "
+
+#: version.c:1058
+msgid "Running modeless, typed text is inserted"
+msgstr "Không chế độ, văn bản nhập vào sẽ được chèn"
+
+#: version.c:1059
+msgid "menu  Edit->Global Settings->Toggle Insert Mode  "
+msgstr "trình đơn Soạn thảo->Thiết lập chung->Chế độ chèn                     "
+
+#: version.c:1060
+msgid "                              for two modes      "
+msgstr "                                 cho hai chế độ               "
+
+#: version.c:1064
+msgid "menu  Edit->Global Settings->Toggle Vi Compatible"
+msgstr "trình đơn Soạn thảo->Thiết lập chung->Tương thích với Vi                "
+
+#: version.c:1065
+msgid "                              for Vim defaults   "
+msgstr "                                 để chuyển vào chế độ Vim mặc định       "
+
+#: version.c:1112
+msgid "Sponsor Vim development!"
+msgstr "Hãy giúp đỡ phát triển Vim!"
+
+#: version.c:1113
+msgid "Become a registered Vim user!"
+msgstr "Hãy trở thành người dùng đăng ký của Vim!"
+
+#: version.c:1116
+msgid "type  :help sponsor<Enter>    for information "
+msgstr "hãy gõ :help sponsor<Enter>    để biết thêm thông tin     "
+
+#: version.c:1117
+msgid "type  :help register<Enter>   for information "
+msgstr "hãy gõ :help register<Enter>   để biết thêm thông tin     "
+
+#: version.c:1119
+msgid "menu  Help->Sponsor/Register  for information    "
+msgstr "trình đơn Trợ giúp->Giúp đỡ/Đăng ký để biết thêm thông tin       "
+
+#: version.c:1129
+msgid "WARNING: Windows 95/98/ME detected"
+msgstr "CẢNH BÁO: nhận ra Windows 95/98/ME"
+
+#: version.c:1132
+msgid "type  :help windows95<Enter>  for info on this"
+msgstr "hãy gõ :help windows95<Enter>  để biết thêm thông tin     "
+
+#: window.c:203
+msgid "E441: There is no preview window"
+msgstr "E441: Không có cửa sổ xem trước"
+
+#: window.c:581
+msgid "E442: Can't split topleft and botright at the same time"
+msgstr "E442: Cửa sổ không thể đồng thời ở bên trái phía trên và bên phải phía dưới"
+
+#: window.c:1340
+msgid "E443: Cannot rotate when another window is split"
+msgstr "E443: Không đổi được chỗ khi cửa sổ khác được chia"
+
+#: window.c:1836
+msgid "E444: Cannot close last window"
+msgstr "E444: Không được đóng cửa sổ cuối cùng"
+
+#: window.c:2567
+msgid "Already only one window"
+msgstr "Chỉ có một cửa sổ"
+
+#: window.c:2614
+msgid "E445: Other window contains changes"
+msgstr "E445: Cửa sổ khác có thay đổi chưa được ghi nhớ"
+
+#: window.c:4480
+msgid "E446: No file name under cursor"
+msgstr "E446: Không có tên tập tin tại vị trí con trỏ"
+
+#: window.c:4599
+#, c-format
+msgid "E447: Can't find file \"%s\" in path"
+msgstr "E447: Không tìm thấy tập tin \"%s\" trong đường dẫn"
+
+#: if_perl.xs:326 globals.h:1232
+#, c-format
+msgid "E370: Could not load library %s"
+msgstr "E370: Không nạp được thư viện %s"
+
+#: if_perl.xs:554
+msgid "Sorry, this command is disabled: the Perl library could not be loaded."
+msgstr "Xin lỗi, câu lệnh này bị tắt: không nạp được thư viện Perl."
+
+#: if_perl.xs:607
+msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
+msgstr ""
+"E299: Không cho phép sự tính toán Perl trong hộp cát mà không có môđun An toàn"
+
+#: GvimExt/gvimext.cpp:583
+msgid "Edit with &multiple Vims"
+msgstr "Soạn thảo trong nhiều Vi&m"
+
+#: GvimExt/gvimext.cpp:589
+msgid "Edit with single &Vim"
+msgstr "Soạn thảo trong một &Vim"
+
+#: GvimExt/gvimext.cpp:598
+msgid "&Diff with Vim"
+msgstr "&So sánh (diff) qua Vim"
+
+#: GvimExt/gvimext.cpp:611
+msgid "Edit with &Vim"
+msgstr "Soạn thảo trong &Vim"
+
+#. Now concatenate
+#: GvimExt/gvimext.cpp:633
+msgid "Edit with existing Vim - &"
+msgstr "Soạn thảo trong Vim đã chạy - &"
+
+#: GvimExt/gvimext.cpp:746
+msgid "Edits the selected file(s) with Vim"
+msgstr "Soạn thảo (các) tập tin đã chọn trong Vim"
+
+#: GvimExt/gvimext.cpp:885 GvimExt/gvimext.cpp:966
+msgid "Error creating process: Check if gvim is in your path!"
+msgstr "Lỗi tạo tiến trình: Hãy kiểm tra xem gvim có trong đường dẫn không!"
+
+#: GvimExt/gvimext.cpp:886 GvimExt/gvimext.cpp:900 GvimExt/gvimext.cpp:967
+msgid "gvimext.dll error"
+msgstr "lỗi gvimext.dll"
+
+#: GvimExt/gvimext.cpp:899
+msgid "Path length too long!"
+msgstr "Đường dẫn quá dài!"
+
+#: globals.h:1022
+msgid "--No lines in buffer--"
+msgstr "-- Không có dòng nào trong bộ đệm --"
+
+#.
+#. * The error messages that can be shared are included here.
+#. * Excluded are errors that are only used once and debugging messages.
+#.
+#: globals.h:1185
+msgid "E470: Command aborted"
+msgstr "E470: Câu lệnh bị dừng"
+
+#: globals.h:1186
+msgid "E471: Argument required"
+msgstr "E471: Cần chỉ ra tham số"
+
+#: globals.h:1187
+msgid "E10: \\ should be followed by /, ? or &"
+msgstr "E10: Sau \\ phải là các ký tự /, ? hoặc &"
+
+#: globals.h:1189
+msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
+msgstr "E11: Lỗi trong cửa sổ dòng lệnh; <CR> thực hiện, CTRL-C thoát"
+
+#: globals.h:1191
+msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
+msgstr ""
+"E12: Câu lệnh không cho phép từ exrc/vimrc trong thư mục hiện thời hoặc trong"
+"tìm kiếm thẻ ghi"
+
+#: globals.h:1193
+msgid "E171: Missing :endif"
+msgstr "E171: Thiếu câu lệnh :endif"
+
+#: globals.h:1194
+msgid "E600: Missing :endtry"
+msgstr "E600: Thiếu câu lệnh :endtry"
+
+#: globals.h:1195
+msgid "E170: Missing :endwhile"
+msgstr "E170: Thiếu câu lệnh :endwhile"
+
+#: globals.h:1196
+msgid "E588: :endwhile without :while"
+msgstr "E588: Câu lệnh :endwhile không có lệnh :while (1 cặp)"
+
+#: globals.h:1198
+msgid "E13: File exists (add ! to override)"
+msgstr "E13: Tập tin đã tồn tại (thêm ! để ghi chèn)"
+
+#: globals.h:1199
+msgid "E472: Command failed"
+msgstr "E472: Không thực hiện thành công câu lệnh"
+
+#: globals.h:1201
+#, c-format
+msgid "E234: Unknown fontset: %s"
+msgstr "E234: Không rõ bộ phông chữ: %s"
+
+#: globals.h:1205
+#, c-format
+msgid "E235: Unknown font: %s"
+msgstr "E235: Không rõ phông chữ: %s"
+
+#: globals.h:1208
+#, c-format
+msgid "E236: Font \"%s\" is not fixed-width"
+msgstr "E236: Phông chữ \"%s\" không có độ rộng cố định (fixed-width)"
+
+#: globals.h:1210
+msgid "E473: Internal error"
+msgstr "E473: Lỗi nội bộ"
+
+#: globals.h:1211
+msgid "Interrupted"
+msgstr "Bị gián đoạn"
+
+#: globals.h:1212
+msgid "E14: Invalid address"
+msgstr "E14: Địa chỉ không cho phép"
+
+#: globals.h:1213
+msgid "E474: Invalid argument"
+msgstr "E474: Tham số không cho phép"
+
+#: globals.h:1214
+#, c-format
+msgid "E475: Invalid argument: %s"
+msgstr "E475: Tham số không cho phép: %s"
+
+#: globals.h:1216
+#, c-format
+msgid "E15: Invalid expression: %s"
+msgstr "E15: Biểu thức không cho phép: %s"
+
+#: globals.h:1218
+msgid "E16: Invalid range"
+msgstr "E16: Vùng không cho phép"
+
+#: globals.h:1219
+msgid "E476: Invalid command"
+msgstr "E476: Câu lệnh không cho phép"
+
+#: globals.h:1221
+#, c-format
+msgid "E17: \"%s\" is a directory"
+msgstr "E17: \"%s\" là mộ thư mục"
+
+#: globals.h:1224
+msgid "E18: Unexpected characters before '='"
+msgstr "E18: Ở trước '=' có các ký tự không mong đợi"
+
+#: globals.h:1227
+#, c-format
+msgid "E364: Library call failed for \"%s()\""
+msgstr "E364: Gọi hàm số \"%s()\" của thư viện không thành công"
+
+#: globals.h:1233
+#, c-format
+msgid "E448: Could not load library function %s"
+msgstr "E448: Nạp hàm số %s của thư viện không thành công"
+
+#: globals.h:1235
+msgid "E19: Mark has invalid line number"
+msgstr "E19: Dấu hiệu chỉ đến một số thứ tự dòng không đúng"
+
+#: globals.h:1236
+msgid "E20: Mark not set"
+msgstr "E20: Dấu hiệu không được xác định"
+
+#: globals.h:1237
+msgid "E21: Cannot make changes, 'modifiable' is off"
+msgstr "E21: Không thể thay đổi, vì tùy chọn 'modifiable' bị tắt"
+
+#: globals.h:1238
+msgid "E22: Scripts nested too deep"
+msgstr "E22: Các script lồng vào nhau quá sâu"
+
+#: globals.h:1239
+msgid "E23: No alternate file"
+msgstr "E23: Không có tập tin xen kẽ"
+
+#: globals.h:1240
+msgid "E24: No such abbreviation"
+msgstr "E24: Không có chữ viết tắt như vậy"
+
+#: globals.h:1241
+msgid "E477: No ! allowed"
+msgstr "E477: Không cho phép !"
+
+#: globals.h:1243
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: Không sử dụng được giao diện đồ họa vì không chọn khi biên dịch"
+
+#: globals.h:1246
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr "E26: Tiếng Do thái không được chọn khi biên dịch\n"
+
+#: globals.h:1249
+msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
+msgstr "E27: Tiếng Farsi không được chọn khi biên dịch\n"
+
+#: globals.h:1252
+msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
+msgstr "E800: Tiếng Ả Rập không được chọn khi biên dịch\n"
+
+#: globals.h:1255
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: Nhóm chiếu sáng cú pháp %s không tồn tại"
+
+#: globals.h:1257
+msgid "E29: No inserted text yet"
+msgstr "E29: Tạm thời chưa có văn bản được chèn"
+
+#: globals.h:1258
+msgid "E30: No previous command line"
+msgstr "E30: Không có dòng lệnh trước"
+
+#: globals.h:1259
+msgid "E31: No such mapping"
+msgstr "E31: Không có ánh xạ (mapping) như vậy"
+
+#: globals.h:1260
+msgid "E479: No match"
+msgstr "E479: Không có tương ứng"
+
+#: globals.h:1261
+#, c-format
+msgid "E480: No match: %s"
+msgstr "E480: Không có tương ứng: %s"
+
+#: globals.h:1262
+msgid "E32: No file name"
+msgstr "E32: Không có tên tập tin"
+
+#: globals.h:1263
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: Không có biểu thức chính quy trước để thay thế"
+
+#: globals.h:1264
+msgid "E34: No previous command"
+msgstr "E34: Không có câu lệnh trước"
+
+#: globals.h:1265
+msgid "E35: No previous regular expression"
+msgstr "E35: Không có biểu thức chính quy trước"
+
+#: globals.h:1266
+msgid "E481: No range allowed"
+msgstr "E481: Không cho phép sử dụng phạm vi"
+
+#: globals.h:1268
+msgid "E36: Not enough room"
+msgstr "E36: Không đủ chỗ trống"
+
+#: globals.h:1271
+#, c-format
+msgid "E247: no registered server named \"%s\""
+msgstr "E247: máy chủ \"%s\" chưa đăng ký"
+
+#: globals.h:1273
+#, c-format
+msgid "E482: Can't create file %s"
+msgstr "E482: Không tạo được tập tin %s"
+
+#: globals.h:1274
+msgid "E483: Can't get temp file name"
+msgstr "E483: Không nhận được tên tập tin tạm thời (temp)"
+
+#: globals.h:1275
+#, c-format
+msgid "E484: Can't open file %s"
+msgstr "E484: Không mở được tập tin %s"
+
+#: globals.h:1276
+#, c-format
+msgid "E485: Can't read file %s"
+msgstr "E485: Không đọc được tập tin %s"
+
+#: globals.h:1277
+msgid "E37: No write since last change (add ! to override)"
+msgstr "E37: Thay đổi chưa được ghi nhớ (thêm ! để bỏ qua ghi nhớ)"
+
+#: globals.h:1278
+msgid "E38: Null argument"
+msgstr "E38: Tham sô bằng 0"
+
+#: globals.h:1280
+msgid "E39: Number expected"
+msgstr "E39: Yêu cầu một số"
+
+#: globals.h:1283
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: Không mở được tập tin lỗi %s"
+
+#: globals.h:1286
+msgid "E233: cannot open display"
+msgstr "E233: không mở được màn hình"
+
+#: globals.h:1288
+msgid "E41: Out of memory!"
+msgstr "E41: Không đủ bộ nhớ!"
+
+#: globals.h:1290
+msgid "Pattern not found"
+msgstr "Không tìm thấy mẫu (pattern)"
+
+#: globals.h:1292
+#, c-format
+msgid "E486: Pattern not found: %s"
+msgstr "E486: Không tìm thấy mẫu (pattern): %s"
+
+#: globals.h:1293
+msgid "E487: Argument must be positive"
+msgstr "E487: Tham số phải là một số dương"
+
+#: globals.h:1295
+msgid "E459: Cannot go back to previous directory"
+msgstr "E459: Không quay lại được thư mục trước đó"
+
+#: globals.h:1299
+msgid "E42: No Errors"
+msgstr "E42: Không có lỗi"
+
+#: globals.h:1301
+msgid "E43: Damaged match string"
+msgstr "E43: Chuỗi tương ứng bị hỏng"
+
+#: globals.h:1302
+msgid "E44: Corrupted regexp program"
+msgstr "E44: Chương trình xử lý biểu thức chính quy bị hỏng"
+
+#: globals.h:1303
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: Tùy chọn 'readonly' được bật (Hãy thêm ! để lờ đi)"
+
+#: globals.h:1305
+#, c-format
+msgid "E46: Cannot set read-only variable \"%s\""
+msgstr "E46: Không thay đổi được biến chỉ đọc \"%s\""
+
+#: globals.h:1308
+msgid "E47: Error while reading errorfile"
+msgstr "E47: Lỗi khi đọc tập tin lỗi"
+
+#: globals.h:1311
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: Không cho phép trong hộp cát (sandbox)"
+
+#: globals.h:1313
+msgid "E523: Not allowed here"
+msgstr "E523: Không cho phép ở đây"
+
+#: globals.h:1316
+msgid "E359: Screen mode setting not supported"
+msgstr "E359: Chế độ màn hình không được hỗ trợ"
+
+#: globals.h:1318
+msgid "E49: Invalid scroll size"
+msgstr "E49: Kích thước thanh cuộn không cho phép"
+
+#: globals.h:1319
+msgid "E91: 'shell' option is empty"
+msgstr "E91: Tùy chọn 'shell' là một chuỗi rỗng"
+
+#: globals.h:1321
+msgid "E255: Couldn't read in sign data!"
+msgstr "E255: Không đọc được dữ liệu về ký tự!"
+
+#: globals.h:1323
+msgid "E72: Close error on swap file"
+msgstr "E72: Lỗi đóng tập tin trao đổi (swap)"
+
+#: globals.h:1324
+msgid "E73: tag stack empty"
+msgstr "E73: đống thẻ ghi rỗng"
+
+#: globals.h:1325
+msgid "E74: Command too complex"
+msgstr "E74: Câu lệnh quá phức tạp"
+
+#: globals.h:1326
+msgid "E75: Name too long"
+msgstr "E75: Tên quá dài"
+
+#: globals.h:1327
+msgid "E76: Too many ["
+msgstr "E76: Quá nhiều ký tự ["
+
+#: globals.h:1328
+msgid "E77: Too many file names"
+msgstr "E77: Quá nhiều tên tập tin"
+
+#: globals.h:1329
+msgid "E488: Trailing characters"
+msgstr "E488: Ký tự thừa ở đuôi"
+
+#: globals.h:1330
+msgid "E78: Unknown mark"
+msgstr "E78: Dấu hiệu không biết"
+
+#: globals.h:1331
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: Không thực hiện được phép thế theo wildcard"
+
+#: globals.h:1333
+msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
+msgstr "E591: giá trị của 'winheight' không thể nhỏ hơn 'winminheight'"
+
+#: globals.h:1335
+msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
+msgstr "E592: giá trị của 'winwidth' không thể nhỏ hơn 'winminwidth'"
+
+#: globals.h:1338
+msgid "E80: Error while writing"
+msgstr "E80: Lỗi khi ghi nhớ"
+
+#: globals.h:1339
+msgid "Zero count"
+msgstr "Giá trị của bộ đếm bằng 0"
+
+#: globals.h:1341
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: Sử dụng <SID> ngoài phạm vi script"
+
+#: globals.h:1344
+msgid "E449: Invalid expression received"
+msgstr "E449: Nhận được một biểu thức không cho phép"
+
+#: globals.h:1347
+msgid "E463: Region is guarded, cannot modify"
+msgstr "E463: Không thể thay đổi vùng đã được bảo vệ"
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index b430039..2a6f12e 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -21,7 +21,9 @@
 int eval_to_number __ARGS((char_u *expr));
 char_u *call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe));
 void *save_funccal __ARGS((void));
-void restore_funccal __ARGS((void *fc));
+void restore_funccal __ARGS((void *vfc));
+void prof_child_enter __ARGS((proftime_T *tm));
+void prof_child_exit __ARGS((proftime_T *tm));
 int eval_foldexpr __ARGS((char_u *arg, int *cp));
 void ex_let __ARGS((exarg_T *eap));
 void *eval_for_line __ARGS((char_u *arg, int *errp, char_u **nextcmdp, int skip));
@@ -34,6 +36,9 @@
 int do_unlet __ARGS((char_u *name, int forceit));
 void del_menutrans_vars __ARGS((void));
 char_u *get_user_var_name __ARGS((expand_T *xp, int idx));
+int list_append_dict __ARGS((list_T *list, dict_T *dict));
+dict_T *dict_alloc __ARGS((void));
+int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
 char_u *get_function_name __ARGS((expand_T *xp, int idx));
 char_u *get_expr_name __ARGS((expand_T *xp, int idx));
 void set_vim_var_nr __ARGS((int idx, long val));
@@ -52,6 +57,7 @@
 void ex_echohl __ARGS((exarg_T *eap));
 void ex_execute __ARGS((exarg_T *eap));
 void ex_function __ARGS((exarg_T *eap));
+void func_dump_profile __ARGS((FILE *fd));
 char_u *get_user_func_name __ARGS((expand_T *xp, int idx));
 void ex_delfunction __ARGS((exarg_T *eap));
 void ex_return __ARGS((exarg_T *eap));
@@ -59,6 +65,9 @@
 void discard_pending_return __ARGS((void *rettv));
 char_u *get_return_cmd __ARGS((void *rettv));
 char_u *get_func_line __ARGS((int c, void *cookie, int indent));
+void func_line_start __ARGS((void *cookie));
+void func_line_exec __ARGS((void *cookie));
+void func_line_end __ARGS((void *cookie));
 int func_has_ended __ARGS((void *cookie));
 int func_has_abort __ARGS((void *cookie));
 int read_viminfo_varlist __ARGS((vir_T *virp, int writing));
diff --git a/src/proto/ex_cmds2.pro b/src/proto/ex_cmds2.pro
index 3fa6922..72d88dd 100644
--- a/src/proto/ex_cmds2.pro
+++ b/src/proto/ex_cmds2.pro
@@ -8,7 +8,24 @@
 void ex_breakdel __ARGS((exarg_T *eap));
 void ex_breaklist __ARGS((exarg_T *eap));
 linenr_T dbg_find_breakpoint __ARGS((int file, char_u *fname, linenr_T after));
+int has_profiling __ARGS((int file, char_u *fname, int *fp));
 void dbg_breakpoint __ARGS((char_u *name, linenr_T lnum));
+void profile_zero __ARGS((proftime_T *tm));
+void profile_start __ARGS((proftime_T *tm));
+void profile_end __ARGS((proftime_T *tm));
+void profile_sub __ARGS((proftime_T *tm, proftime_T *tm2));
+void profile_add __ARGS((proftime_T *tm, proftime_T *tm2));
+void profile_get_wait __ARGS((proftime_T *tm));
+void profile_sub_wait __ARGS((proftime_T *tm, proftime_T *tma));
+int profile_equal __ARGS((proftime_T *tm1, proftime_T *tm2));
+char *profile_msg __ARGS((proftime_T *tm));
+void ex_profile __ARGS((exarg_T *eap));
+void profile_dump __ARGS((void));
+void script_prof_save __ARGS((proftime_T *tm));
+void script_prof_restore __ARGS((proftime_T *tm));
+void prof_inchar_enter __ARGS((void));
+void prof_inchar_exit __ARGS((void));
+int prof_def_func __ARGS((void));
 int autowrite __ARGS((buf_T *buf, int forceit));
 void autowrite_all __ARGS((void));
 int check_changed __ARGS((buf_T *buf, int checkaw, int mult_win, int forceit, int allbuf));
@@ -43,11 +60,13 @@
 int source_level __ARGS((void *cookie));
 int do_source __ARGS((char_u *fname, int check_other, int is_vimrc));
 void ex_scriptnames __ARGS((exarg_T *eap));
-int has_scriptname __ARGS((char_u *name));
 void scriptnames_slash_adjust __ARGS((void));
 char_u *get_scriptname __ARGS((scid_T id));
 char *fgets_cr __ARGS((char *s, int n, FILE *stream));
 char_u *getsourceline __ARGS((int c, void *cookie, int indent));
+void script_line_start __ARGS((void));
+void script_line_exec __ARGS((void));
+void script_line_end __ARGS((void));
 void ex_scriptencoding __ARGS((exarg_T *eap));
 void ex_finish __ARGS((exarg_T *eap));
 void do_finish __ARGS((exarg_T *eap, int reanimate));
diff --git a/src/proto/misc2.pro b/src/proto/misc2.pro
index eb042f0..5cbd270 100644
--- a/src/proto/misc2.pro
+++ b/src/proto/misc2.pro
@@ -40,6 +40,7 @@
 int vim_stricmp __ARGS((char *s1, char *s2));
 int vim_strnicmp __ARGS((char *s1, char *s2, size_t len));
 char_u *vim_strchr __ARGS((char_u *string, int c));
+char_u *vim_strbyte __ARGS((char_u *string, int c));
 char_u *vim_strrchr __ARGS((char_u *string, int c));
 int vim_isspace __ARGS((int x));
 void ga_clear __ARGS((garray_T *gap));
diff --git a/src/proto/os_mswin.pro b/src/proto/os_mswin.pro
index de96a04..966b018 100644
--- a/src/proto/os_mswin.pro
+++ b/src/proto/os_mswin.pro
@@ -31,6 +31,7 @@
 short_u *enc_to_ucs2 __ARGS((char_u *str, int *lenp));
 char_u *ucs2_to_enc __ARGS((short_u *str, int *lenp));
 void clip_mch_request_selection __ARGS((VimClipboard *cbd));
+void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen));
 void clip_mch_set_selection __ARGS((VimClipboard *cbd));
 void DumpPutS __ARGS((const char *psz));
 int mch_get_winpos __ARGS((int *x, int *y));
diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro
index 4f61d59..c731876 100644
--- a/src/proto/quickfix.pro
+++ b/src/proto/quickfix.pro
@@ -19,7 +19,8 @@
 void ex_cnext __ARGS((exarg_T *eap));
 void ex_cfile __ARGS((exarg_T *eap));
 void ex_vimgrep __ARGS((exarg_T *eap));
-char_u *skip_vimgrep_pat __ARGS((char_u *p, char_u **s));
+char_u *skip_vimgrep_pat __ARGS((char_u *p, char_u **s, int *flags));
+int get_errorlist __ARGS((list_T *list));
 void ex_cbuffer __ARGS((exarg_T *eap));
 void ex_helpgrep __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
diff --git a/src/quickfix.c b/src/quickfix.c
index 079e6c9..38f7d95 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -35,7 +35,7 @@
     int		     qf_col;	/* column where the error occurred */
     int		     qf_nr;	/* error number */
     char_u	    *qf_text;	/* description of the error */
-    char_u	     qf_virt_col; /* set to TRUE if qf_col is screen column */
+    char_u	     qf_viscol; /* set to TRUE if qf_col is screen column */
     char_u	     qf_cleared;/* set to TRUE if line has been deleted */
     char_u	     qf_type;	/* type of the error (mostly 'E'); 1 for
 				   :helpgrep */
@@ -88,7 +88,7 @@
 
 static int qf_init_ext __ARGS((char_u *efile, buf_T *buf, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast));
 static void	qf_new_list __ARGS((void));
-static int	qf_add_entry __ARGS((struct qf_line **prevp, char_u *dir, char_u *fname, char_u *mesg, long lnum, int col, int virt_col, int nr, int type, int valid));
+static int	qf_add_entry __ARGS((struct qf_line **prevp, char_u *dir, char_u *fname, char_u *mesg, long lnum, int col, int vis_col, int nr, int type, int valid));
 static void	qf_msg __ARGS((void));
 static void	qf_free __ARGS((int idx));
 static char_u	*qf_types __ARGS((int, int));
@@ -147,7 +147,7 @@
     char_u	    *errmsg;
     char_u	    *fmtstr = NULL;
     int		    col = 0;
-    char_u	    use_virt_col = FALSE;
+    char_u	    use_viscol = FALSE;
     int		    type = 0;
     int		    valid;
     linenr_T	    buflnum = lnumfirst;
@@ -467,7 +467,7 @@
 		errmsg[0] = NUL;
 	    lnum = 0;
 	    col = 0;
-	    use_virt_col = FALSE;
+	    use_viscol = FALSE;
 	    enr = -1;
 	    type = 0;
 	    tail = NULL;
@@ -515,12 +515,12 @@
 		{
 		    col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1);
 		    if (*((char_u *)regmatch.startp[i]) != TAB)
-			use_virt_col = TRUE;
+			use_viscol = TRUE;
 		}
 		if ((i = (int)fmt_ptr->addr[8]) > 0)		/* %v */
 		{
 		    col = (int)atol((char *)regmatch.startp[i]);
-		    use_virt_col = TRUE;
+		    use_viscol = TRUE;
 		}
 		break;
 	    }
@@ -578,7 +578,7 @@
 		    qfprev->qf_lnum = lnum;
 		if (!qfprev->qf_col)
 		    qfprev->qf_col = col;
-		qfprev->qf_virt_col = use_virt_col;
+		qfprev->qf_viscol = use_viscol;
 		if (!qfprev->qf_fnum)
 		    qfprev->qf_fnum = qf_get_fnum(directory,
 					*namebuf || directory ? namebuf
@@ -623,7 +623,7 @@
 			errmsg,
 			lnum,
 			col,
-			use_virt_col,
+			use_viscol,
 			enr,
 			type,
 			valid) == FAIL)
@@ -714,14 +714,14 @@
  * Returns OK or FAIL.
  */
     static int
-qf_add_entry(prevp, dir, fname, mesg, lnum, col, virt_col, nr, type, valid)
+qf_add_entry(prevp, dir, fname, mesg, lnum, col, vis_col, nr, type, valid)
     struct qf_line **prevp;	/* pointer to previously added entry or NULL */
     char_u	*dir;		/* optional directory name */
     char_u	*fname;		/* file name or NULL */
     char_u	*mesg;		/* message */
     long	lnum;		/* line number */
     int		col;		/* column */
-    int		virt_col;	/* using virtual column */
+    int		vis_col;	/* using visual column */
     int		nr;		/* error number */
     int		type;		/* type character */
     int		valid;		/* valid entry */
@@ -739,7 +739,7 @@
     }
     qfp->qf_lnum = lnum;
     qfp->qf_col = col;
-    qfp->qf_virt_col = virt_col;
+    qfp->qf_viscol = vis_col;
     qfp->qf_nr = nr;
     if (type != 1 && !vim_isprintc(type)) /* only printable chars allowed */
 	type = 0;
@@ -1285,7 +1285,7 @@
 	if (qf_ptr->qf_col > 0)
 	{
 	    curwin->w_cursor.col = qf_ptr->qf_col - 1;
-	    if (qf_ptr->qf_virt_col == TRUE)
+	    if (qf_ptr->qf_viscol == TRUE)
 	    {
 		/*
 		 * Check each character from the beginning of the error
@@ -2300,6 +2300,8 @@
 #endif
 #ifdef FEAT_AUTOCMD
     char_u	*au_name =  NULL;
+    int		flags = 0;
+    colnr_T	col;
 
     switch (eap->cmdidx)
     {
@@ -2318,14 +2320,12 @@
 
     /* Get the search pattern: either white-separated or enclosed in // */
     regmatch.regprog = NULL;
-    p = skip_vimgrep_pat(eap->arg, &s);
+    p = skip_vimgrep_pat(eap->arg, &s, &flags);
     if (p == NULL)
     {
 	EMSG(_("E682: Invalid search pattern or delimiter"));
 	goto theend;
     }
-    if (*p != NUL)
-	*p++ = NUL;
     regmatch.regprog = vim_regcomp(s, RE_MAGIC);
     if (regmatch.regprog == NULL)
 	goto theend;
@@ -2437,10 +2437,13 @@
 		goto jumpend;
 	    }
 #endif
+	    /* Try for a match in all lines of the buffer. */
 	    for (lnum = 1; lnum <= buf->b_ml.ml_line_count; ++lnum)
 	    {
-		if (vim_regexec_multi(&regmatch, curwin, buf, lnum,
-							      (colnr_T)0) > 0)
+		/* For ":1vimgrep" look for multiple matches. */
+		col = 0;
+		while (vim_regexec_multi(&regmatch, curwin, buf, lnum,
+								     col) > 0)
 		{
 		    if (qf_add_entry(&prevp,
 				NULL,       /* dir */
@@ -2449,7 +2452,7 @@
 				     regmatch.startpos[0].lnum + lnum, FALSE),
 				regmatch.startpos[0].lnum + lnum,
 				regmatch.startpos[0].col + 1,
-				FALSE,      /* virt_col */
+				FALSE,      /* vis_col */
 				0,          /* nr */
 				0,          /* type */
 				TRUE        /* valid */
@@ -2460,6 +2463,13 @@
 		    }
 		    else
 			found_match = TRUE;
+		    if ((flags & VGR_GLOBAL) == 0
+					       || regmatch.endpos[0].lnum > 0)
+			break;
+		    col = regmatch.endpos[0].col
+					    + (col == regmatch.endpos[0].col);
+		    if (col > STRLEN(ml_get_buf(buf, lnum, FALSE)))
+			break;
 		}
 		line_breakcheck();
 		if (got_int)
@@ -2485,14 +2495,14 @@
 		{
 		    /* When not hiding the buffer and no match was found we
 		     * don't need to remember the buffer, wipe it out.  If
-		     * there was a match and it wasn't the first one: only
-		     * unload the buffer. */
+		     * there was a match and it wasn't the first one or we
+		     * won't jump there: only unload the buffer. */
 		    if (!found_match)
 		    {
 			wipe_dummy_buffer(buf);
 			buf = NULL;
 		    }
-		    else if (buf != first_match_buf)
+		    else if (buf != first_match_buf || (flags & VGR_NOJUMP))
 		    {
 			unload_dummy_buffer(buf);
 			buf = NULL;
@@ -2528,7 +2538,10 @@
 
     /* Jump to first match. */
     if (qf_lists[qf_curlist].qf_count > 0)
-	qf_jump(0, 0, FALSE);
+    {
+	if ((flags & VGR_NOJUMP) == 0)
+	    qf_jump(0, 0, eap->forceit);
+    }
     else
 	EMSG2(_(e_nomatch2), s);
 
@@ -2543,29 +2556,57 @@
 }
 
 /*
- * Skip over the pattern argument of ":vimgrep /pat/".
+ * Skip over the pattern argument of ":vimgrep /pat/[g][j]".
  * Put the start of the pattern in "*s", unless "s" is NULL.
- * Return a pointer to the char just past the pattern.
+ * If "flags" is not NULL put the flags in it: VGR_GLOBAL, VGR_NOJUMP.
+ * If "s" is not NULL terminate the pattern with a NUL.
+ * Return a pointer to the char just past the pattern plus flags.
  */
     char_u *
-skip_vimgrep_pat(p, s)
-    char_u *p;
-    char_u **s;
+skip_vimgrep_pat(p, s, flags)
+    char_u  *p;
+    char_u  **s;
+    int	    *flags;
 {
     int		c;
 
     if (vim_isIDc(*p))
     {
+	/* ":vimgrep pattern fname" */
 	if (s != NULL)
 	    *s = p;
-	return skiptowhite(p);
+	p = skiptowhite(p);
+	if (s != NULL && *p != NUL)
+	    *p++ = NUL;
     }
-    if (s != NULL)
-	*s = p + 1;
-    c = *p;
-    p = skip_regexp(p + 1, c, TRUE, NULL);
-    if (*p != c)
-	return NULL;
+    else
+    {
+	/* ":vimgrep /pattern/[g][j] fname" */
+	if (s != NULL)
+	    *s = p + 1;
+	c = *p;
+	p = skip_regexp(p + 1, c, TRUE, NULL);
+	if (*p != c)
+	    return NULL;
+
+	/* Truncate the pattern. */
+	if (s != NULL)
+	    *p = NUL;
+	++p;
+
+	/* Find the flags */
+	while (*p == 'g' || *p == 'j')
+	{
+	    if (flags != NULL)
+	    {
+		if (*p == 'g')
+		    *flags |= VGR_GLOBAL;
+		else
+		    *flags |= VGR_NOJUMP;
+	    }
+	    ++p;
+	}
+    }
     return p;
 }
 
@@ -2667,6 +2708,51 @@
 	close_buffer(NULL, buf, DOBUF_UNLOAD);
 }
 
+#if defined(FEAT_EVAL) || defined(PROTO)
+/*
+ * Add each quickfix error to list "list" as a dictionary.
+ */
+    int
+get_errorlist(list)
+    list_T	*list;
+{
+    dict_T	    *dict;
+    char_u	    buf[2];
+    struct qf_line  *qfp;
+    int		    i;
+
+    if (qf_curlist >= qf_listcount || qf_lists[qf_curlist].qf_count == 0)
+    {
+	EMSG(_(e_quickfix));
+	return FAIL;
+    }
+
+    qfp = qf_lists[qf_curlist].qf_start;
+    for (i = 1; !got_int && i <= qf_lists[qf_curlist].qf_count; ++i)
+    {
+	if ((dict = dict_alloc()) == NULL)
+	    return FAIL;
+	if (list_append_dict(list, dict) == FAIL)
+	    return FAIL;
+
+	buf[0] = qfp->qf_type;
+	buf[1] = NUL;
+	if ( dict_add_nr_str(dict, "bufnr", (long)qfp->qf_fnum, NULL) == FAIL
+	  || dict_add_nr_str(dict, "lnum",  (long)qfp->qf_lnum, NULL) == FAIL
+	  || dict_add_nr_str(dict, "col",   (long)qfp->qf_col, NULL) == FAIL
+	  || dict_add_nr_str(dict, "vcol",  (long)qfp->qf_viscol, NULL) == FAIL
+	  || dict_add_nr_str(dict, "nr",    (long)qfp->qf_nr, NULL) == FAIL
+	  || dict_add_nr_str(dict, "text",  0L, qfp->qf_text) == FAIL
+	  || dict_add_nr_str(dict, "type",  0L, buf) == FAIL
+	  || dict_add_nr_str(dict, "valid", (long)qfp->qf_valid, NULL) == FAIL)
+	    return FAIL;
+
+	qfp = qfp->qf_next;
+    }
+    return OK;
+}
+#endif
+
 /*
  * ":[range]cbuffer [bufnr]" command.
  */
@@ -2781,7 +2867,7 @@
 					    lnum,
 					    (int)(regmatch.startp[0] - IObuff)
 								+ 1, /* col */
-					    FALSE,	/* virt_col */
+					    FALSE,	/* vis_col */
 					    0,		/* nr */
 					    1,		/* type */
 					    TRUE	/* valid */
diff --git a/src/regexp.c b/src/regexp.c
index c4f8920..6f15824 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -3265,12 +3265,38 @@
 #endif
 	    c = *prog->regmust;
 	s = line + col;
-	while ((s = cstrchr(s, c)) != NULL)
-	{
-	    if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0)
-		break;		/* Found it. */
-	    mb_ptr_adv(s);
-	}
+
+	/*
+	 * This is used very often, esp. for ":global".  Use three versions of
+	 * the loop to avoid overhead of conditions.
+	 */
+	if (!ireg_ic
+#ifdef FEAT_MBYTE
+		&& !has_mbyte
+#endif
+		)
+	    while ((s = vim_strbyte(s, c)) != NULL)
+	    {
+		if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0)
+		    break;		/* Found it. */
+		++s;
+	    }
+#ifdef FEAT_MBYTE
+	else if (!ireg_ic || (!enc_utf8 && mb_char2len(c) > 1))
+	    while ((s = vim_strchr(s, c)) != NULL)
+	    {
+		if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0)
+		    break;		/* Found it. */
+		mb_ptr_adv(s);
+	    }
+#endif
+	else
+	    while ((s = cstrchr(s, c)) != NULL)
+	    {
+		if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0)
+		    break;		/* Found it. */
+		mb_ptr_adv(s);
+	    }
 	if (s == NULL)		/* Not present. */
 	    goto theend;
     }
@@ -3339,8 +3365,16 @@
 	{
 	    if (prog->regstart != NUL)
 	    {
-		/* Skip until the char we know it must start with. */
-		s = cstrchr(regline + col, prog->regstart);
+		/* Skip until the char we know it must start with.
+		 * Used often, do some work to avoid call overhead. */
+		if (!ireg_ic
+#ifdef FEAT_MBYTE
+			    && !has_mbyte
+#endif
+			    )
+		    s = vim_strbyte(regline + col, prog->regstart);
+		else
+		    s = cstrchr(regline + col, prog->regstart);
 		if (s == NULL)
 		{
 		    retval = 0;
@@ -3375,7 +3409,8 @@
 
 #ifdef HAVE_SETJMP_H
 inner_end:
-    ;
+    if (did_mch_startjmp)
+	mch_endjmp();
 #endif
 #ifdef HAVE_TRY_EXCEPT
     }
@@ -3391,10 +3426,6 @@
 	retval = 0L;
     }
 #endif
-#ifdef HAVE_SETJMP_H
-    if (did_mch_startjmp)
-	mch_endjmp();
-#endif
 
 theend:
     /* Didn't find a match. */
diff --git a/src/ui.c b/src/ui.c
index 6d100dc..0941a37 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -138,6 +138,11 @@
     }
 #endif
 
+#ifdef FEAT_PROFILE
+    if (do_profiling && wtime != 0)
+	prof_inchar_enter();
+#endif
+
 #ifdef NO_CONSOLE_INPUT
     /* Don't wait for character input when the window hasn't been opened yet.
      * Do try reading, this works when redirecting stdin from a file.
@@ -150,12 +155,13 @@
 # ifndef NO_CONSOLE
 	retval = mch_inchar(buf, maxlen, 10L, tb_change_cnt);
 	if (retval > 0 || typebuf_changed(tb_change_cnt))
-	    return retval;
+	    goto theend;
 # endif
 	if (wtime == -1 && ++count == 1000)
 	    read_error_exit();
 	buf[0] = CAR;
-	return 1;
+	retval = 1;
+	goto theend;
     }
 #endif
 
@@ -186,6 +192,13 @@
 
     ctrl_c_interrupts = TRUE;
 
+#ifdef NO_CONSOLE_INPUT
+theend:
+#endif
+#ifdef FEAT_PROFILE
+    if (do_profiling && wtime != 0)
+	prof_inchar_exit();
+#endif
     return retval;
 }
 
diff --git a/src/version.c b/src/version.c
index bb0f25b..e879438 100644
--- a/src/version.c
+++ b/src/version.c
@@ -421,6 +421,11 @@
 #else
 	"-printer",
 #endif
+#ifdef FEAT_PROFILE
+	"+profile",
+#else
+	"-profile",
+#endif
 #ifdef FEAT_PYTHON
 # ifdef DYNAMIC_PYTHON
 	"+python/dyn",
diff --git a/src/version.h b/src/version.h
index f73c68e..febf243 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Feb 21)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Feb 21, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Feb 26)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Feb 26, compiled "
diff --git a/src/vim.h b/src/vim.h
index fa554b0..36e5d67 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1533,7 +1533,8 @@
 #define VV_INSERTMODE	33
 #define VV_VAL		34
 #define VV_KEY		35
-#define VV_LEN		36	/* number of v: vars */
+#define VV_PROFILING	36
+#define VV_LEN		37	/* number of v: vars */
 
 #ifdef FEAT_CLIPBOARD
 
@@ -1620,6 +1621,12 @@
 # endif
 #endif
 
+#ifdef FEAT_PROFILE
+typedef struct timeval proftime_T;
+#else
+typedef int proftime_T;	    /* dummy for function prototypes */
+#endif
+
 #include "option.h"	    /* option variables and defines */
 #include "ex_cmds.h"	    /* Ex command defines */
 #include "proto.h"	    /* function prototypes */
@@ -1865,4 +1872,8 @@
 # define handle_signal(x) 0
 #endif
 
+/* flags for skip_vimgrep_pat() */
+#define VGR_GLOBAL	1
+#define VGR_NOJUMP	2
+
 #endif /* VIM__H */
diff --git a/src/window.c b/src/window.c
index c96bb97..7cd2f02 100644
--- a/src/window.c
+++ b/src/window.c
@@ -74,6 +74,11 @@
 
 #define NOWIN		(win_T *)-1	/* non-exisiting window */
 
+#ifdef FEAT_WINDOWS
+static long p_ch_used = 1L;		/* value of 'cmdheight' when frame
+					   size was set */
+#endif
+
 #if defined(FEAT_WINDOWS) || defined(PROTO)
 /*
  * all CTRL-W window commands are handled here, called from normal_cmd().
@@ -498,6 +503,23 @@
 		break;
 #endif
 
+    case K_KENTER:
+    case CAR:
+#if defined(FEAT_QUICKFIX)
+		/*
+		 * In a quickfix window a <CR> jumps to the error under the
+		 * cursor in a new window.
+		 */
+		if (bt_quickfix(curbuf))
+		{
+		    sprintf((char *)cbuf, "split +%ldcc",
+						 (long)curwin->w_cursor.lnum);
+		    do_cmdline_cmd(cbuf);
+		}
+#endif
+		break;
+
+
 /* CTRL-W g  extended commands */
     case 'g':
     case Ctrl_G:
@@ -2680,6 +2702,9 @@
     topframe->fr_width = Columns;
 #endif
     topframe->fr_height = Rows - p_ch;
+#ifdef FEAT_WINDOWS
+    p_ch_used = p_ch;
+#endif
     topframe->fr_win = curwin;
     curwin->w_frame = topframe;
 }
@@ -3308,6 +3333,10 @@
     win_new_height(firstwin, h);
 #endif
     compute_cmdrow();
+#ifdef FEAT_WINDOWS
+    p_ch_used = p_ch;
+#endif
+
 #if 0
     /* Disabled: don't want making the screen smaller make a window larger. */
     if (p_ea)
@@ -4315,6 +4344,13 @@
     int		h;
     frame_T	*frp;
 
+    /* When passed a negative value use the value of p_ch that we remembered.
+     * This is needed for when the GUI starts up, we can't be sure in what
+     * order things happen. */
+    if (old_p_ch < 0)
+	old_p_ch = p_ch_used;
+    p_ch_used = p_ch;
+
     /* Find bottom frame with width of screen. */
     frp = lastwin->w_frame;
 # ifdef FEAT_VERTSPLIT
