gtksource.vim_imcontext
Module for [VimIMContext] class
Types 3
Vim emulation.
The [gtksource.vim_imcontext.VimIMContext] is a [gtk.imcontext.IMContext] implementation that can be used to provide Vim-like editing controls within a class@View.
The GtkSourceViMIMContext will process incoming [gdk.key_event.KeyEvent] as the user types. It should be used in conjunction with a [gtk.event_controller_key.EventControllerKey].
Various features supported by [gtksource.vim_imcontext.VimIMContext] include:
- Normal, Insert, Replace, Visual, and Visual Line modes
- Support for an integrated command bar and current command preview
- Search and replace
- Motions and Text Objects
- History replay
- Jumplists within the current file
- Registers including the system and primary clipboards
- Creation and motion to marks
- Some commonly used Vim commands
It is recommended that applications display the contents of property@VimIMContext:command-bar-text and property@VimIMContext:command-text to the user as they represent the command-bar and current command preview found in Vim.
[gtksource.vim_imcontext.VimIMContext] attempts to work with additional [gtk.imcontext.IMContext] implementations such as IBus by querying the [gtk.text_view.TextView] before processing the command in states which support it (notably Insert and Replace modes).
GtkEventController *key;
GtkIMContext *im_context;
GtkWidget *view;
view = gtk_source_view_new ();
im_context = gtk_source_vim_im_context_new ();
key = gtk_event_controller_key_new ();
gtk_event_controller_key_set_im_context (GTK_EVENT_CONTROLLER_KEY (key), im_context);
gtk_event_controller_set_propagation_phase (key, GTK_PHASE_CAPTURE);
gtk_widget_add_controller (view, key);
gtk_im_context_set_client_widget (im_context, view);
g_object_bind_property (im_context, "command-bar-text", command_bar_label, "label", 0);
g_object_bind_property (im_context, "command-text", command_label, "label", 0);VimIMContext self()Returns `this`, for use in `with` statements.VimIMContextGidBuilder builder()Get builder for [gtksource.vim_imcontext.VimIMContext] Returns: New builder objectstring commandBarText() @propertystring commandText() @propertyvoid executeCommand(string command)Executes command as if it was typed into the command bar by the user except that this does not emit the `signalVimIMContext::execute-command` signal.string getCommandBarText()Gets the current command-bar text as it is entered by the user. Returns: A string containing the command-bar textstring getCommandText()Gets the current command text as it is entered by the user. Returns: A string containing the command textgulong connectEdit(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtksource.view.View)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == string)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtksource.vim_imcontext.VimIMContext)))
&& Parameters!T.length < 4)Connect to `Edit` signal.gulong connectExecuteCommand(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == string)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : gtksource.vim_imcontext.VimIMContext)))
&& Parameters!T.length < 3)Connect to `ExecuteCommand` signal.gulong connectFormatText(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.text_iter.TextIter)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == gtk.text_iter.TextIter)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtksource.vim_imcontext.VimIMContext)))
&& Parameters!T.length < 4)Connect to `FormatText` signal.gulong connectWrite(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtksource.view.View)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == string)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtksource.vim_imcontext.VimIMContext)))
&& Parameters!T.length < 4)Connect to `Write` signal.Fluent builder for [gtksource.vim_imcontext.VimIMContext]