diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/globals.h | 1 | ||||
-rw-r--r-- | src/gui.c | 101 | ||||
-rw-r--r-- | src/gui.h | 7 | ||||
-rw-r--r-- | src/gui_w16.c | 12 | ||||
-rw-r--r-- | src/keymap.h | 3 | ||||
-rw-r--r-- | src/normal.c | 26 | ||||
-rw-r--r-- | src/os_win32.c | 44 | ||||
-rw-r--r-- | src/po/vi.po | 2325 | ||||
-rw-r--r-- | src/proto/gui_kde_x11.pro | 1 | ||||
-rw-r--r-- | src/proto/gui_photon.pro | 1 | ||||
-rw-r--r-- | src/proto/gui_w16.pro | 1 | ||||
-rw-r--r-- | src/proto/gui_w32.pro | 1 | ||||
-rw-r--r-- | src/vim.h | 14 |
13 files changed, 1283 insertions, 1254 deletions
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 @@ -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; { @@ -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 +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:4314 +#, 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:4781 +msgid "E324: Can't open PostScript output file" +msgstr "E324: Không thể mở tập tin PostScript" + +#: ex_cmds2.c:4814 +#, c-format +msgid "E456: Can't open file \"%s\"" +msgstr "E456: Không thể mở tập tin \"%s\"" + +#: ex_cmds2.c:4933 +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:4964 +#, 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:4982 +#, 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:5107 +msgid "Sending to printer..." +msgstr "Gửi tới máy in..." + +#: ex_cmds2.c:5111 +msgid "E365: Failed to print PostScript file" +msgstr "E365: In tập tin PostScript không thành công" + +#: ex_cmds2.c:5113 +msgid "Print job sent." +msgstr "Đã gửi công việc in." + +#: ex_cmds2.c:5623 +#, c-format +msgid "Current %slanguage: \"%s\"" +msgstr "Ngôn ngữ %shiện thời: \"%s\"" + +#: ex_cmds2.c:5634 +#, c-format +msgid "E197: Cannot set language to \"%s\"" +msgstr "E197: Không thể thay đổi ngôn ngữ thành \"%s\"" + #: ex_cmds.c:92 #, c-format msgid "<%s>%s%s %d, Hex %02x, Octal %0 |