Class VimIMContext

java.lang.Object
All Implemented Interfaces:
Proxy

@Generated("io.github.jwharm.JavaGI") public class VimIMContext extends IMContext
Vim emulation.

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

The GtkSourceViMIMContext will process incoming KeyEvent as the user types. It should be used in conjunction with a 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 VimIMContext:command-bar-text and 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 IMContext implementations such as IBus by querying the 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);