mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
updated for version 7.0207
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
|
*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -30,20 +30,17 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
Fix for hlsearch getting stuck on multibyte char also in 6.4. reportec by
|
|
||||||
Yukihiro Nakadaira.
|
|
||||||
|
|
||||||
|
|
||||||
Tab pages:
|
Tab pages:
|
||||||
|
- Add 'guitablabel' option.
|
||||||
- GTK GUI implementation for the tab pages line:
|
- GTK GUI implementation for the tab pages line:
|
||||||
/tmp/vim61_tab.patch.bz2
|
handling of tab in insert mode (like clicking mouse in other window)
|
||||||
Window height can be wrong:
|
and cmdline mode (keep current tab)
|
||||||
:set go-=e
|
|
||||||
resize to fill screen
|
9 GUI implementation for the tab pages line for other systems.
|
||||||
:set go+=e
|
8 Make GUI menu in tab pages line configurable. Like the popup menu.
|
||||||
Add 'guitabitem' option?
|
|
||||||
- GUI implementation for the tab pages line for other systems.
|
|
||||||
8 tab pages in the session file, if "tabpages" in 'sessionoptions'
|
8 tab pages in the session file, if "tabpages" in 'sessionoptions'
|
||||||
|
8 :tabmove +N move tab page N pages forward
|
||||||
|
8 :tabmove -N move tab page N pages backward
|
||||||
7 :tabdup duplicate the tab with all its windows.
|
7 :tabdup duplicate the tab with all its windows.
|
||||||
6 :tab ball tab page for each buffer
|
6 :tab ball tab page for each buffer
|
||||||
6 :tab all tab page for each argument
|
6 :tab all tab page for each argument
|
||||||
@@ -136,6 +133,7 @@ all. (Gautam Iyer)
|
|||||||
|
|
||||||
Mac unicode patch (Da Woon Jung):
|
Mac unicode patch (Da Woon Jung):
|
||||||
- configuration option for platform: i386, ppc or both.
|
- configuration option for platform: i386, ppc or both.
|
||||||
|
Use __LITTLE_ENDIAN__ to test for current platform.
|
||||||
- selecting proportional font breaks display
|
- selecting proportional font breaks display
|
||||||
- UTF-8 text causes display problems. Font replacement causes this.
|
- UTF-8 text causes display problems. Font replacement causes this.
|
||||||
- Command-key mappings do not work. (Alan Schmitt)
|
- Command-key mappings do not work. (Alan Schmitt)
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*version7.txt* For Vim version 7.0aa. Last change: 2006 Feb 24
|
*version7.txt* For Vim version 7.0aa. Last change: 2006 Feb 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1749,4 +1749,11 @@ short instead of a char to store the color number.
|
|||||||
|
|
||||||
ml_get errors when searching for "\n\zs" in an empty file.
|
ml_get errors when searching for "\n\zs" in an empty file.
|
||||||
|
|
||||||
|
When selecting a block and using "$" to select until the end of every line and
|
||||||
|
not highlighting the character under the cursor the first character of the
|
||||||
|
block could be unhighlighted.
|
||||||
|
|
||||||
|
When counting words for the Visual block area and using "$" to select until
|
||||||
|
the end of every line only up to the length of the last line was counted.
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
@@ -14943,7 +14943,7 @@ f_tabpagenr(argvars, rettv)
|
|||||||
if (arg != NULL)
|
if (arg != NULL)
|
||||||
{
|
{
|
||||||
if (STRCMP(arg, "$") == 0)
|
if (STRCMP(arg, "$") == 0)
|
||||||
nr = tabpage_index(NULL);
|
nr = tabpage_index(NULL) - 1;
|
||||||
else
|
else
|
||||||
EMSG2(_(e_invexpr2), arg);
|
EMSG2(_(e_invexpr2), arg);
|
||||||
}
|
}
|
||||||
|
@@ -3061,6 +3061,129 @@ set_toolbar_style(GtkToolbar *toolbar)
|
|||||||
|
|
||||||
#if defined(FEAT_GUI_TABLINE) || defined(PROTO)
|
#if defined(FEAT_GUI_TABLINE) || defined(PROTO)
|
||||||
static int ignore_tabline_evt = FALSE;
|
static int ignore_tabline_evt = FALSE;
|
||||||
|
static GtkWidget *tabline_menu;
|
||||||
|
static int clicked_page; /* page clicked in tab line */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Handle selecting an item in the tab line popup menu.
|
||||||
|
*/
|
||||||
|
/*ARGSUSED*/
|
||||||
|
static void
|
||||||
|
tabline_menu_handler(GtkMenuItem *item, gpointer user_data)
|
||||||
|
{
|
||||||
|
char_u string[3];
|
||||||
|
|
||||||
|
/* Add the string cmd into input buffer */
|
||||||
|
string[0] = CSI;
|
||||||
|
string[1] = KS_TABMENU;
|
||||||
|
string[2] = KE_FILLER;
|
||||||
|
add_to_input_buf(string, 3);
|
||||||
|
string[0] = clicked_page;
|
||||||
|
string[1] = (char_u)(long)user_data;
|
||||||
|
add_to_input_buf_csi(string, 2);
|
||||||
|
|
||||||
|
if (gtk_main_level() > 0)
|
||||||
|
gtk_main_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Send the event for clicking to select tab page "nr".
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
send_tabline_event(int nr)
|
||||||
|
{
|
||||||
|
char_u string[3];
|
||||||
|
|
||||||
|
string[0] = CSI;
|
||||||
|
string[1] = KS_TABLINE;
|
||||||
|
string[2] = KE_FILLER;
|
||||||
|
add_to_input_buf(string, 3);
|
||||||
|
string[0] = nr;
|
||||||
|
add_to_input_buf_csi(string, 1);
|
||||||
|
|
||||||
|
if (gtk_main_level() > 0)
|
||||||
|
gtk_main_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create a menu for the tab line.
|
||||||
|
*/
|
||||||
|
static GtkWidget *
|
||||||
|
create_tabline_menu(void)
|
||||||
|
{
|
||||||
|
GtkWidget *menu, *item;
|
||||||
|
|
||||||
|
menu = gtk_menu_new();
|
||||||
|
|
||||||
|
item = gtk_menu_item_new_with_label(_("Close"));
|
||||||
|
gtk_widget_show(item);
|
||||||
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
|
gtk_signal_connect(GTK_OBJECT(item), "activate",
|
||||||
|
GTK_SIGNAL_FUNC(tabline_menu_handler),
|
||||||
|
(gpointer)TABLINE_MENU_CLOSE);
|
||||||
|
|
||||||
|
item = gtk_menu_item_new_with_label(_("New tab"));
|
||||||
|
gtk_widget_show(item);
|
||||||
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
|
gtk_signal_connect(GTK_OBJECT(item), "activate",
|
||||||
|
GTK_SIGNAL_FUNC(tabline_menu_handler),
|
||||||
|
(gpointer)TABLINE_MENU_NEW);
|
||||||
|
|
||||||
|
item = gtk_menu_item_new_with_label(_("Open Tab..."));
|
||||||
|
gtk_widget_show(item);
|
||||||
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
|
gtk_signal_connect(GTK_OBJECT(item), "activate",
|
||||||
|
GTK_SIGNAL_FUNC(tabline_menu_handler),
|
||||||
|
(gpointer)TABLINE_MENU_OPEN);
|
||||||
|
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
on_tabline_menu(GtkWidget *widget, GdkEvent *event)
|
||||||
|
{
|
||||||
|
/* Was this button press event ? */
|
||||||
|
if (event->type == GDK_BUTTON_PRESS)
|
||||||
|
{
|
||||||
|
GdkEventButton *bevent = (GdkEventButton *)event;
|
||||||
|
int x = bevent->x;
|
||||||
|
GtkWidget *page;
|
||||||
|
GtkWidget *label;
|
||||||
|
|
||||||
|
/* Find out where the click was. */
|
||||||
|
for (clicked_page = 1; ; ++clicked_page)
|
||||||
|
{
|
||||||
|
page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(gui.tabline),
|
||||||
|
clicked_page - 1);
|
||||||
|
if (page == NULL)
|
||||||
|
{
|
||||||
|
/* Past all the labels, return zero. */
|
||||||
|
clicked_page = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gui.tabline), page);
|
||||||
|
/* The label size apparently doesn't include the spacing, estimate
|
||||||
|
* it by the page position. */
|
||||||
|
if (page->allocation.x * 2 + label->allocation.x
|
||||||
|
+ label->allocation.width + 1>= x)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If the event was generated for 3rd button popup the menu. */
|
||||||
|
if (bevent->button == 3)
|
||||||
|
{
|
||||||
|
gtk_menu_popup(GTK_MENU(widget), NULL, NULL, NULL, NULL,
|
||||||
|
bevent->button, bevent->time);
|
||||||
|
/* We handled the event. */
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else if (bevent->button == 1 && clicked_page == 0)
|
||||||
|
/* Click after all tabs moves to next tab page. */
|
||||||
|
send_tabline_event(0);
|
||||||
|
}
|
||||||
|
/* We didn't handle the event. */
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle selecting one of the tabs.
|
* Handle selecting one of the tabs.
|
||||||
@@ -3073,20 +3196,8 @@ on_select_tab(
|
|||||||
gint index,
|
gint index,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
static char_u string[3];
|
|
||||||
|
|
||||||
if (!ignore_tabline_evt)
|
if (!ignore_tabline_evt)
|
||||||
{
|
send_tabline_event(index + 1);
|
||||||
string[0] = CSI;
|
|
||||||
string[1] = KS_TABLINE;
|
|
||||||
string[2] = KE_FILLER;
|
|
||||||
add_to_input_buf(string, 3);
|
|
||||||
string[0] = index + 1;
|
|
||||||
add_to_input_buf_csi(string, 1);
|
|
||||||
|
|
||||||
if (gtk_main_level() > 0)
|
|
||||||
gtk_main_quit();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -3472,6 +3583,11 @@ gui_mch_init(void)
|
|||||||
}
|
}
|
||||||
gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page",
|
gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page",
|
||||||
GTK_SIGNAL_FUNC(on_select_tab), NULL);
|
GTK_SIGNAL_FUNC(on_select_tab), NULL);
|
||||||
|
|
||||||
|
/* Create a popup menu for the tab line and connect it. */
|
||||||
|
tabline_menu = create_tabline_menu();
|
||||||
|
gtk_signal_connect_object(GTK_OBJECT(gui.tabline), "button_press_event",
|
||||||
|
GTK_SIGNAL_FUNC(on_tabline_menu), GTK_OBJECT(tabline_menu));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gui.formwin = gtk_form_new();
|
gui.formwin = gtk_form_new();
|
||||||
|
Reference in New Issue
Block a user