summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-03-15 22:34:55 +0000
committerBram Moolenaar <Bram@vim.org>2005-03-15 22:34:55 +0000
commit3918c950c99a626a9fa40e58d7976bffb2e17f5e (patch)
tree43cc4ce3c4ed5473772cd4e175f009290efdf961
parent28a37ffcf79cfa8139246cecba918f3258e411ea (diff)
updated for version 7.0060
-rw-r--r--runtime/syntax/prolog.vim9
-rw-r--r--src/globals.h1
-rw-r--r--src/gui.c101
-rw-r--r--src/gui.h7
-rw-r--r--src/gui_w16.c12
-rw-r--r--src/keymap.h3
-rw-r--r--src/normal.c26
-rw-r--r--src/os_win32.c44
-rw-r--r--src/po/vi.po2325
-rw-r--r--src/proto/gui_kde_x11.pro1
-rw-r--r--src/proto/gui_photon.pro1
-rw-r--r--src/proto/gui_w16.pro1
-rw-r--r--src/proto/gui_w32.pro1
-rw-r--r--src/vim.h14
14 files changed, 1287 insertions, 1259 deletions
diff --git a/runtime/syntax/prolog.vim b/runtime/syntax/prolog.vim
index 2ca1cfa44e..50105fa252 100644
--- a/runtime/syntax/prolog.vim
+++ b/runtime/syntax/prolog.vim
@@ -1,9 +1,8 @@
" Vim syntax file
" Language: PROLOG
-" Maintainers: Ralph Becket <rwab1@cam.sri.co.uk>,
-" Thomas Koehler <jean-luc@picard.franken.de>
-" Last Change: 2003 May 11
-" URL: http://jeanluc-picard.de/vim/syntax/prolog.vim
+" Maintainers: Thomas Koehler <jean-luc@picard.franken.de>
+" Last Change: 2005 Mar 14
+" URL: http://gott-gehabt/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
" There are two sets of highlighting in here:
" If the "prolog_highlighting_clean" variable exists, it is rather sparse.
@@ -73,7 +72,7 @@ if !exists("prolog_highlighting_clean")
endif
-syn sync ccomment maxlines=50
+syn sync maxlines=50
" Define the default highlighting.
diff --git a/src/globals.h b/src/globals.h
index d76eb6f9f9..69a3bc4b45 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -930,6 +930,7 @@ EXTERN char_u *new_last_cmdline INIT(= NULL); /* new value for last_cmdline */
EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */
EXTERN int autocmd_bufnr INIT(= 0); /* fnum for <abuf> on cmdline */
EXTERN char_u *autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */
+EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold triggered */
#endif
EXTERN linenr_T write_no_eol_lnum INIT(= 0); /* non-zero lnum when last line
diff --git a/src/gui.c b/src/gui.c
index 4537820b42..68f9777d55 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -29,6 +29,8 @@ static void fill_mouse_coord __ARGS((char_u *p, int col, int row));
static void gui_do_scrollbar __ARGS((win_T *wp, int which, int enable));
static colnr_T scroll_line_len __ARGS((linenr_T lnum));
static void gui_update_horiz_scrollbar __ARGS((int));
+static void gui_set_fg_color __ARGS((char_u *name));
+static void gui_set_bg_color __ARGS((char_u *name));
static win_T *xy2win __ARGS((int x, int y));
static int can_update_cursor = TRUE; /* can display the cursor */
@@ -1941,6 +1943,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
long_u hl_mask_todo;
guicolor_T fg_color;
guicolor_T bg_color;
+ guicolor_T sp_color;
#if !defined(MSWIN16_FASTTEXT) && !defined(HAVE_GTK2) && !defined(FEAT_GUI_KDE)
GuiFont font = NOFONT;
# ifdef FEAT_XFONTSET
@@ -2050,6 +2053,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
draw_flags |= DRAW_CURSOR;
fg_color = fg;
bg_color = bg;
+ sp_color = fg;
}
else if (aep != NULL)
{
@@ -2059,9 +2063,15 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
bg_color = aep->ae_u.gui.bg_color;
if (bg_color == INVALCOLOR)
bg_color = gui.back_pixel;
+ sp_color = aep->ae_u.gui.sp_color;
+ if (sp_color == INVALCOLOR)
+ sp_color = fg_color;
}
else
+ {
fg_color = gui.norm_pixel;
+ sp_color = fg_color;
+ }
if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
{
@@ -2081,6 +2091,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
gui_mch_set_bg_color(bg_color);
#endif
}
+ gui_mch_set_sp_color(sp_color);
/* Clear the selection if we are about to write over it */
if (!(flags & GUI_MON_NOCLEAR))
@@ -2119,6 +2130,9 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
)
draw_flags |= DRAW_UNDERL;
#endif
+ /* Do we undercurl the text? */
+ if (hl_mask_todo & HL_UNDERCURL)
+ draw_flags |= DRAW_UNDERC;
/* Do we draw transparantly? */
if (flags & GUI_MON_TRS_CURSOR)
@@ -2364,7 +2378,7 @@ gui_redraw_block(row1, col1, row2, col2, flags)
int old_row, old_col;
long_u old_hl_mask;
int off;
- char_u first_attr;
+ sattr_T first_attr;
int idx, len;
int back, nback;
int retval = FALSE;
@@ -2588,9 +2602,6 @@ gui_wait_for_chars(wtime)
long wtime;
{
int retval;
-#ifdef FEAT_AUTOCMD
- static int once_already = 0;
-#endif
/*
* If we're going to wait a bit, update the menus and mouse shape for the
@@ -2605,19 +2616,9 @@ gui_wait_for_chars(wtime)
gui_mch_update();
if (input_available()) /* Got char, return immediately */
- {
-#ifdef FEAT_AUTOCMD
- once_already = 0;
-#endif
return OK;
- }
if (wtime == 0) /* Don't wait for char */
- {
-#ifdef FEAT_AUTOCMD
- once_already = 0;
-#endif
return FAIL;
- }
/* Before waiting, flush any output to the screen. */
gui_mch_flush();
@@ -2629,9 +2630,6 @@ gui_wait_for_chars(wtime)
gui_mch_start_blink();
retval = gui_mch_wait_for_chars(wtime);
gui_mch_stop_blink();
-#ifdef FEAT_AUTOCMD
- once_already = 0;
-#endif
return retval;
}
@@ -2640,53 +2638,36 @@ gui_wait_for_chars(wtime)
*/
gui_mch_start_blink();
-
+ retval = FAIL;
+ /*
+ * We may want to trigger the CursorHold event. First wait for
+ * 'updatetime' and if nothing is typed within that time put the
+ * K_CURSORHOLD key in the input buffer.
+ */
+ if (gui_mch_wait_for_chars(p_ut) == OK)
+ retval = OK;
#ifdef FEAT_AUTOCMD
- /* If there is no character available within 2 seconds (default),
- * write the autoscript file to disk */
- if (once_already == 2)
+ else if (!did_cursorhold && has_cursorhold()
+ && get_real_state() == NORMAL_BUSY)
{
- updatescript(0);
- retval = gui_mch_wait_for_chars(-1L);
- once_already = 0;
- }
- else if (once_already == 1)
- {
- setcursor();
- once_already = 2;
- retval = 0;
+ char_u buf[3];
+
+ /* Put K_CURSORHOLD in the input buffer. */
+ buf[0] = CSI;
+ buf[1] = KS_EXTRA;
+ buf[2] = (int)KE_CURSORHOLD;
+ add_to_input_buf(buf, 3);
+
+ retval = OK;
}
- else
#endif
- if (gui_mch_wait_for_chars(p_ut) != OK)
- {
-#ifdef FEAT_AUTOCMD
- if (has_cursorhold() && get_real_state() == NORMAL_BUSY)
- {
- apply_autocmds(EVENT_CURSORHOLD, NULL, NULL, FALSE, curbuf);
- update_screen(VALID);
- showruler(FALSE);
- setcursor();
- /* In case the commands moved the focus to another window
- * (temporarily). */
- if (need_mouse_correct)
- gui_mouse_correct();
- once_already = 1;
- retval = 0;
- }
- else
-#endif
- {
- updatescript(0);
- retval = gui_mch_wait_for_chars(-1L);
-#ifdef FEAT_AUTOCMD
- once_already = 0;
-#endif
- }
+ if (retval == FAIL)
+ {
+ /* Blocking wait. */
+ updatescript(0);
+ retval = gui_mch_wait_for_chars(-1L);
}
- else
- retval = OK;
gui_mch_stop_blink();
return retval;
@@ -4067,7 +4048,7 @@ gui_check_colors()
}
}
- void
+ static void
gui_set_fg_color(name)
char_u *name;
{
@@ -4075,7 +4056,7 @@ gui_set_fg_color(name)
hl_set_fg_color_name(vim_strsave(name));
}
- void
+ static void
gui_set_bg_color(name)
char_u *name;
{
diff --git a/src/gui.h b/src/gui.h
index aad355bfa5..43311ecc43 100644
--- a/src/gui.h
+++ b/src/gui.h
@@ -161,10 +161,11 @@ class VimWidget;
#define DRAW_TRANSP 0x01 /* draw with transparant bg */
#define DRAW_BOLD 0x02 /* draw bold text */
#define DRAW_UNDERL 0x04 /* draw underline text */
+#define DRAW_UNDERC 0x08 /* draw undercurl text */
#if defined(RISCOS) || defined(HAVE_GTK2) || defined (FEAT_GUI_KDE)
-# define DRAW_ITALIC 0x08 /* draw italic text */
+# define DRAW_ITALIC 0x10 /* draw italic text */
#endif
-#define DRAW_CURSOR 0x10 /* drawing block cursor (win32) */
+#define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
/* For our own tearoff menu item */
#define TEAR_STRING "-->Detach"
@@ -421,6 +422,7 @@ typedef struct Gui
# endif
GdkColor *fgcolor; /* GDK-styled foreground color */
GdkColor *bgcolor; /* GDK-styled background color */
+ GdkColor *spcolor; /* GDK-styled special color */
# ifndef HAVE_GTK2
GuiFont current_font;
# endif
@@ -463,6 +465,7 @@ typedef struct Gui
GuiFont currFont; /* Current font */
guicolor_T currFgColor; /* Current foreground text color */
guicolor_T currBgColor; /* Current background text color */
+ guicolor_T currSpColor; /* Current special text color */
#endif
#ifdef FEAT_GUI_MAC
diff --git a/src/gui_w16.c b/src/gui_w16.c
index e6aa850577..4970336423 100644
--- a/src/gui_w16.c
+++ b/src/gui_w16.c
@@ -584,9 +584,6 @@ gui_mch_set_font(GuiFont font)
SelectFont(s_hdc, gui.currFont);
}
-
-
-
/*
* Set the current text foreground color.
*/
@@ -610,6 +607,15 @@ gui_mch_set_bg_color(guicolor_T color)
SetBkColor(s_hdc, gui.currBgColor);
}
+/*
+ * Set the current text special color.
+ */
+ void
+gui_mch_set_sp_color(guicolor_T color)
+{
+ /* TODO */
+}
+
void
diff --git a/src/keymap.h b/src/keymap.h
index e0e46b7732..35bc9b3154 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -244,6 +244,7 @@ enum key_extra
, KE_X2RELEASE
, KE_DROP /* DnD data is available */
+ , KE_CURSORHOLD /* CursorHold event */
};
/*
@@ -463,6 +464,8 @@ enum key_extra
#define K_DROP TERMCAP2KEY(KS_EXTRA, KE_DROP)
+#define K_CURSORHOLD TERMCAP2KEY(KS_EXTRA, KE_CURSORHOLD)
+
/* Bits for modifier mask */
/* 0x01 cannot be used, because the modifier must be 0x02 or higher */
#define MOD_MASK_SHIFT 0x02
diff --git a/src/normal.c b/src/normal.c
index 0f95728c31..d367318122 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -172,6 +172,9 @@ static void nv_nbcmd __ARGS((cmdarg_T *cap));
#ifdef FEAT_DND
static void nv_drop __ARGS((cmdarg_T *cap));
#endif
+#ifdef FEAT_AUTOCMD
+static void nv_cursorhold __ARGS((cmdarg_T *cap));
+#endif
/*
* Function to be called for a Normal or Visual mode command.
@@ -434,6 +437,9 @@ static const struct nv_cmd
#ifdef FEAT_DND
{K_DROP, nv_drop, NV_STS, 0},
#endif
+#ifdef FEAT_AUTOCMD
+ {K_CURSORHOLD, nv_cursorhold, 0, 0},
+#endif
};
/* Number of commands in nv_cmds[]. */
@@ -1077,6 +1083,9 @@ getcount:
if (need_flushbuf)
out_flush();
#endif
+#ifdef FEAT_AUTOCMD
+ did_cursorhold = FALSE;
+#endif
State = NORMAL;
@@ -8652,3 +8661,20 @@ nv_drop(cap)
do_put('~', BACKWARD, 1L, PUT_CURSEND);
}
#endif
+
+#ifdef FEAT_AUTOCMD
+/*
+ * Trigger CursorHold event.
+ * When waiting for a character for 'updatetime' K_CURSORHOLD is put in the
+ * input buffer. "did_cursorhold" is set to avoid retriggering.
+ */
+/*ARGSUSED*/
+ static void
+nv_cursorhold(cap)
+ cmdarg_T *cap;
+{
+ apply_autocmds(EVENT_CURSORHOLD, NULL, NULL, FALSE, curbuf);
+ did_cursorhold = TRUE;
+}
+#endif
+
diff --git a/src/os_win32.c b/src/os_win32.c
index a50f5d9946..30a3e8e5a3 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1323,9 +1323,6 @@ mch_inchar(
int len;
int c;
-#ifdef FEAT_AUTOCMD
- static int once_already = 0;
-#endif
#define TYPEAHEADLEN 20
static char_u typeahead[TYPEAHEADLEN]; /* previously typed bytes. */
static int typeaheadlen = 0;
@@ -1358,40 +1355,29 @@ mch_inchar(
if (time >= 0)
{
if (!WaitForChar(time)) /* no character available */
- {
-#ifdef FEAT_AUTOCMD
- once_already = 0;
-#endif
return 0;
- }
}
else /* time == -1, wait forever */
{
mch_set_winsize_now(); /* Allow winsize changes from now on */
-#ifdef FEAT_AUTOCMD
- /* If there is no character available within 2 seconds (default),
- * write the autoscript file to disk */
- if (once_already == 2)
- updatescript(0);
- else if (once_already == 1)
- {
- setcursor();
- once_already = 2;
- return 0;
- }
- else
-#endif
- if (!WaitForChar(p_ut))
+ /*
+ * If there is no character available within 2 seconds (default)
+ * write the autoscript file to disk. Or cause the CursorHold event
+ * to be triggered.
+ */
+ if (!WaitForChar(p_ut))
{
#ifdef FEAT_AUTOCMD
- if (has_cursorhold() && get_real_state() == NORMAL_BUSY)
+ if (!did_cursorhold && has_cursorhold()
+ && get_real_state() == NORMAL_BUSY && maxlen >= 3)
{
- apply_autocmds(EVENT_CURSORHOLD, NULL, NULL, FALSE, curbuf);
- update_screen(VALID);
- once_already = 1;
- return 0;
+ buf[0] = K_SPECIAL;
+ buf[1] = KS_EXTRA;
+ buf[2] = (int)KE_CURSORHOLD;
+ return 3;
}
+ else
#endif
updatescript(0);
}
@@ -1528,10 +1514,6 @@ mch_inchar(
}
#endif
-#ifdef FEAT_AUTOCMD
- once_already = 0;
-#endif
-
theend:
/* Move typeahead to "buf", as much as fits. */
len = 0;
diff --git a/src/po/vi.po b/src/po/vi.po
index bb033a0115..2e201ba7de 100644
--- a/src/po/vi.po
+++ b/src/po/vi.po
@@ -1,18 +1,13 @@
# 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
-#
+# first translator(s): Phan Vinh Thinh <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"
+"POT-Creation-Date: 2005-02-25 22:51+0300\n"
+"PO-Revision-Date: 2005-02-30 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"
@@ -27,173 +22,171 @@ msgstr "E82: Không thể phân chia bộ nhớ thậm chí cho một bộ đệ
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
+#: buffer.c:808
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
+#: buffer.c:810
msgid "E516: No buffers were deleted"
msgstr "E516: Không có bộ đệm nào bị xóa"
-#: buffer.c:809
-#, c-format
+#: buffer.c:812
msgid "E517: No buffers were wiped out"
msgstr "E517: Không có bộ đệm nào được làm sạch"
-#: buffer.c:817
+#: buffer.c:820
msgid "1 buffer unloaded"
msgstr "1 bộ đệm được bỏ nạp từ bộ nhớ"
-#: buffer.c:819
+#: buffer.c:822
#, c-format
msgid "%d buffers unloaded"
msgstr "%d bộ đệm được bỏ nạp từ bộ nhớ"
-#: buffer.c:824
+#: buffer.c:827
msgid "1 buffer deleted"
msgstr "1 bộ đệm bị xóa"
-#: buffer.c:826
+#: buffer.c:829
#, c-format
msgid "%d buffers deleted"
msgstr "%d bộ đệm được bỏ nạp"
-#: buffer.c:831
+#: buffer.c:834
msgid "1 buffer wiped out"
msgstr "1 bộ đệm được làm sạch"
-#: buffer.c:833
+#: buffer.c:836
#, c-format
msgid "%d buffers wiped out"
msgstr "%d bộ đệm được làm sạch"
-#: buffer.c:894
+#: buffer.c:897
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
+#: buffer.c:936
msgid "E85: There is no listed buffer"
msgstr "E85: Không có bộ đệm được liệt kê"
-#: buffer.c:945
+#: buffer.c:948
#, c-format
msgid "E86: Buffer %ld does not exist"
msgstr "E86: Bộ đệm %ld không tồn tại"
-#: buffer.c:948
+#: buffer.c:951
msgid "E87: Cannot go beyond last buffer"
msgstr "E87: Đây là bộ đệm cuối cùng"
-#: buffer.c:950
+#: buffer.c:953
msgid "E88: Cannot go before first buffer"
msgstr "E88: Đây là bộ đệm đầu tiên"
-#: buffer.c:988
+#: buffer.c:991
#, 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á)"
+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
+#: buffer.c:1008
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
+#: buffer.c:1544
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
+#: buffer.c:1716
#, c-format
msgid "E92: Buffer %ld not found"
msgstr "E92: Bộ đệm %ld không được tìm thấy"
-#: buffer.c:1940
+#: buffer.c:1947
#, 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
+#: buffer.c:1949
#, 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
+#: buffer.c:2344
#, c-format
msgid "line %ld"
msgstr "dòng %ld"
-#: buffer.c:2420
+#: buffer.c:2429
msgid "E95: Buffer with this name already exists"
msgstr "E95: Đã có bộ đệm với tên như vậy"
-#: buffer.c:2713
+#: buffer.c:2724
msgid " [Modified]"
msgstr " [Đã thay đổi]"
-#: buffer.c:2718
+#: buffer.c:2729
msgid "[Not edited]"
msgstr "[Chưa soạn thảo]"
-#: buffer.c:2723
+#: buffer.c:2734
msgid "[New file]"
msgstr "[Tập tin mới]"
-#: buffer.c:2724
+#: buffer.c:2735
msgid "[Read errors]"
msgstr "[Lỗi đọc]"
-#: buffer.c:2726 fileio.c:2112
+#: buffer.c:2737 fileio.c:2124
msgid "[readonly]"
msgstr "[chỉ đọc]"
-#: buffer.c:2747
+#: buffer.c:2758
#, c-format
msgid "1 line --%d%%--"
msgstr "1 dòng --%d%%--"
-#: buffer.c:2749
+#: buffer.c:2760
#, c-format
msgid "%ld lines --%d%%--"
msgstr "%ld dòng --%d%%--"
-#: buffer.c:2756
+#: buffer.c:2767
#, c-format
msgid "line %ld of %ld --%d%%-- col "
msgstr "dòng %ld của %ld --%d%%-- cột "
-#: buffer.c:2864
+#: buffer.c:2875
msgid "[No file]"
msgstr "[Không có tập tin]"
#. must be a help buffer
-#: buffer.c:2904
+#: buffer.c:2915
msgid "help"
msgstr "trợ giúp"
-#: buffer.c:3463 screen.c:5075
+#: buffer.c:3474 screen.c:5079
msgid "[help]"
msgstr "[trợ giúp]"
-#: buffer.c:3495 screen.c:5081
+#: buffer.c:3506 screen.c:5085
msgid "[Preview]"
msgstr "[Xem trước]"
-#: buffer.c:3775
+#: buffer.c:3786
msgid "All"
msgstr "Tất cả"
-#: buffer.c:3775
+#: buffer.c:3786
msgid "Bot"
msgstr "Cuối"
-#: buffer.c:3777
+#: buffer.c:3788
msgid "Top"
msgstr "Đầu"
-#: buffer.c:4523
-#, c-format
+#: buffer.c:4536
msgid ""
"\n"
"# Buffer list:\n"
@@ -201,15 +194,15 @@ msgstr ""
"\n"
"# Danh sách bộ đệm:\n"
-#: buffer.c:4556
+#: buffer.c:4569
msgid "[Error List]"
msgstr "[Danh sách lỗi]"
-#: buffer.c:4569 memline.c:1520
+#: buffer.c:4582 memline.c:1521
msgid "[No File]"
msgstr "[Không có tập tin]"
-#: buffer.c:4882
+#: buffer.c:4895
msgid ""
"\n"
"--- Signs ---"
@@ -217,12 +210,12 @@ msgstr ""
"\n"
"--- Ký hiệu ---"
-#: buffer.c:4901
+#: buffer.c:4914
#, c-format
msgid "Signs for %s:"
msgstr "Ký hiệu cho %s:"
-#: buffer.c:4907
+#: buffer.c:4920
#, c-format
msgid " line=%ld id=%d name=%s"
msgstr " dòng=%ld id=%d tên=%s"
@@ -254,7 +247,8 @@ msgstr "E100: Không còn bộ đệm trong chế độ khác biệt (diff) nào
#: 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"
+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
@@ -356,7 +350,6 @@ 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."
@@ -473,7 +466,7 @@ msgstr "E120: Sử dụng <SID> ngoài script: %s"
#. * 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
+#: eval.c:3687 gui.c:4385 gui_gtk.c:2059
msgid "&Ok"
msgstr "&Ok"
@@ -496,124 +489,123 @@ 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?)"
+msgstr "E655: Quá nhiều liên kết tượng trưng (vòng lặp?)"
-#: eval.c:6609
+#: eval.c:6626
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
+#: eval.c:6724
msgid "E277: Unable to read a server reply"
-msgstr "E227: Máy chủ không trả lời"
+msgstr "E277: Máy chủ không trả lời"
-#: eval.c:6734
+#: eval.c:6752
msgid "E258: Unable to send to client"
msgstr "E258: Không thể trả lời cho máy con"
-#: eval.c:6782
+#: eval.c:6800
#, 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
+#: eval.c:6900
msgid "(Invalid)"
msgstr "(Không đúng)"
-#: eval.c:8060
+#: eval.c:8078
#, c-format
msgid "E121: Undefined variable: %s"
msgstr "E121: Biến không xác định: %s"
-#: eval.c:8492
+#: eval.c:8510
#, c-format
msgid "E461: Illegal variable name: %s"
msgstr "E461: Tên biến không cho phép: %s"
-#: eval.c:8784
+#: eval.c:8802
#, 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
+#: eval.c:8875
#, c-format
msgid "E123: Undefined function: %s"
msgstr "E123: Hàm số không xác định: %s"
-#: eval.c:8870
+#: eval.c:8888
#, c-format
msgid "E124: Missing '(': %s"
msgstr "E124: Thiếu '(': %s"
-#: eval.c:8903
+#: eval.c:8921
#, c-format
msgid "E125: Illegal argument: %s"
msgstr "E125: Tham số không cho phép: %s"
-#: eval.c:8982
+#: eval.c:9000
msgid "E126: Missing :endfunction"
msgstr "E126: Thiếu lệnh :endfunction"
-#: eval.c:9089
+#: eval.c:9107
#, 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
+#: eval.c:9177
msgid "E129: Function name required"
msgstr "E129: Cần tên hàm số"
-#: eval.c:9210
+#: eval.c:9228
#, 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
+#: eval.c:9420
#, c-format
msgid "E130: Undefined function: %s"
msgstr "E130: Hàm số %s chưa xác định"
-#: eval.c:9407
+#: eval.c:9425
#, 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
+#: eval.c:9473
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
+#: eval.c:9526
#, c-format
msgid "calling %s"
msgstr "lời gọi %s"
-#: eval.c:9570
+#: eval.c:9588
#, c-format
msgid "%s aborted"
msgstr "%s dừng"
-#: eval.c:9572
+#: eval.c:9590
#, c-format
msgid "%s returning #%ld"
msgstr "%s trả lại #%ld"
-#: eval.c:9579
+#: eval.c:9597
#, 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
+#: eval.c:9613 ex_cmds2.c:2370
#, c-format
msgid "continuing in %s"
msgstr "tiếp tục trong %s"
-#: eval.c:9621
+#: eval.c:9639
msgid "E133: :return not inside a function"
msgstr "E133: lệnh :return ở ngoài một hàm"
-#: eval.c:9952
-#, c-format
+#: eval.c:9970
msgid ""
"\n"
"# global variables:\n"
@@ -621,6 +613,243 @@ msgstr ""
"\n"
"# biến toàn cầu:\n"
+#: 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:968
+#, 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:761 ex_cmds.c:2097
+msgid "Save As"
+msgstr "Ghi nhớ như"
+
+#: 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:9398
+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:1901
+#, c-format
+msgid "Searching for \"%s\" in \"%s\""
+msgstr "Tìm kiếm \"%s\" trong \"%s\""
+
+#: ex_cmds2.c:1923
+#, c-format
+msgid "Searching for \"%s\""
+msgstr "Tìm kiếm \"%s\""
+
+#: ex_cmds2.c:1945
+#, c-format
+msgid "not found in 'runtimepath': \"%s\""
+msgstr "không tìm thấy trong 'runtimepath': \"%s\""
+
+#: ex_cmds2.c:1979
+msgid "Source Vim script"
+msgstr "Thực hiện script của Vim"
+
+#: ex_cmds2.c:2169
+#, 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:2207
+#, c-format
+msgid "could not source \"%s\""
+msgstr "không thực hiện được \"%s\""
+
+#: ex_cmds2.c:2209
+#, c-format
+msgid "line %ld: could not source \"%s\""
+msgstr "dòng %ld: không thực hiện được \"%s\""
+
+#: ex_cmds2.c:2223
+#, c-format
+msgid "sourcing \"%s\""
+msgstr "thực hiện \"%s\""
+
+#: ex_cmds2.c:2225
+#, c-format
+msgid "line %ld: sourcing \"%s\""
+msgstr "dòng %ld: thực hiện \"%s\""
+
+#: ex_cmds2.c:2368
+#, c-format
+msgid "finished sourcing %s"
+msgstr "thực hiện xong %s"
+
+#: ex_cmds2.c:2712
+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:2761
+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:2794
+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:3243
+#, c-format
+msgid "Page %d"
+msgstr "Trang %d"
+
+#: ex_cmds2.c:3399
+msgid "No text to be printed"
+msgstr "Không có gì để in"
+
+#: ex_cmds2.c:3477
+#, c-format
+msgid "Printing page %d (%d%%)"
+msgstr "In trang %d (%d%%)"
+
+#: ex_cmds2.c:3489
+#, c-format
+msgid " Copy %d of %d"
+msgstr " Sao chép %d của %d"
+
+#: ex_cmds2.c:3547
+#, c-format
+msgid "Printed: %s"
+msgstr "Đã in: %s"
+
+#: ex_cmds2.c:3554
+msgid "Printing aborted"
+msgstr "In bị dừng"
+
+#: ex_cmds2.c:3919
+msgid "E455: Error writing to PostScript output file"
+msgstr "E455: Lỗi ghi nhớ vào tập tin PostScript"
+
+#: ex_cmds2.c:4194
+#, c-format
+msgid "E624: Can't open file \"%s\""
+msgstr "E624: Không thể mở tập tin \"%s\""
+
+#: ex_cmds2.c:4204 ex_cmds2.c:4829
+#, 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:4212
+#, 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:4227 ex_cmds2.c:4247 ex_cmds2.c:4262 ex_cmds2.c:4284
+#, c-format