VimIMContext

open class VimIMContext(pointer: <Error class: unknown class><<Error class: unknown class>>)

Vim emulation.

The GtkSourceVimIMContext is a class@Gtk.IMContext implementation that can be used to provide Vim-like editing controls within a class@View.

The GtkSourceViMIMContext will process incoming class@Gdk.KeyEvent as the user types. It should be used in conjunction with a class@Gtk.EventControllerKey.

Various features supported by GtkSourceVimIMContext 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.

GtkSourceVimIMContext attempts to work with additional class@Gtk.IMContext implementations such as IBus by querying the class@Gtk.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);

Since

5.4

Constructors

Link copied to clipboard
constructor()
constructor(pointer: <Error class: unknown class><<Error class: unknown class>>)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val gtksourceVimIMContextPointer: <Error class: unknown class><<Error class: unknown class>>

Functions

Link copied to clipboard
fun connectEdit(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (view: View, path: String) -> Unit): <Error class: unknown class>

Requests the application open the file found at @path.

Link copied to clipboard
fun connectExecuteCommand(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (command: String) -> Boolean): <Error class: unknown class>

The signal is emitted when a command should be executed. This might be something like :wq or :e <path>.

Link copied to clipboard
fun connectFormatText(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (<Error class: unknown class>, <Error class: unknown class>) -> Unit): <Error class: unknown class>

Requests that the application format the text between

Link copied to clipboard
fun connectWrite(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (view: View, path: String) -> Unit): <Error class: unknown class>

Requests the application save the file.

Link copied to clipboard
open fun executeCommand(command: String)

Executes @command as if it was typed into the command bar by the user except that this does not emit the signal@VimIMContext::execute-command signal.

Link copied to clipboard

Gets the current command-bar text as it is entered by the user.

Link copied to clipboard

Gets the current command text as it is entered by the user.