Add Vim digraphs (#14887)
Vim digraphs are a way to insert special characters using sequences of two ASCII characters. I've implemented the feature using a new `Digraph` operator, following the example of `AddSurrounds`. There are still a few issues that I'm not sure what the best way to resolve them is. - To insert `ş`, the user must pause between pressing `ctrl-k` and `s ,`, otherwise it triggers the binding for `ctrl-k s`. Is there a way to disable `ctrl-k *` bindings while in insert, replace or waiting mode? - Is there a better way to insert a string at all of the cursors? At the moment I'm constructing the edits manually. - The table of default digraphs is a 1.4k line rust expression. Is this okay as long as it's in its own module? - I'd like a second opinion on how best to structure the settings.json entry. - I have omitted the "meta character" feature as I don't think it makes sense when editing UTF-8 text. Release Notes: - Added support for Vim digraphs. Resolves #11871
This commit is contained in:
parent
b87028956f
commit
26d0a33e79
14 changed files with 1613 additions and 2 deletions
|
@ -316,6 +316,7 @@
|
|||
"ctrl-u": "editor::DeleteToBeginningOfLine",
|
||||
"ctrl-t": "vim::Indent",
|
||||
"ctrl-d": "vim::Outdent",
|
||||
"ctrl-k": ["vim::PushOperator", { "Digraph": {} }],
|
||||
"ctrl-r": ["vim::PushOperator", "Register"]
|
||||
}
|
||||
},
|
||||
|
@ -325,6 +326,7 @@
|
|||
"escape": "vim::NormalBefore",
|
||||
"ctrl-c": "vim::NormalBefore",
|
||||
"ctrl-[": "vim::NormalBefore",
|
||||
"ctrl-k": ["vim::PushOperator", { "Digraph": {} }],
|
||||
"backspace": "vim::UndoReplace",
|
||||
"tab": "vim::Tab",
|
||||
"enter": "vim::Enter"
|
||||
|
@ -337,7 +339,8 @@
|
|||
"enter": "vim::Enter",
|
||||
"escape": "vim::ClearOperators",
|
||||
"ctrl-c": "vim::ClearOperators",
|
||||
"ctrl-[": "vim::ClearOperators"
|
||||
"ctrl-[": "vim::ClearOperators",
|
||||
"ctrl-k": ["vim::PushOperator", { "Digraph": {} }]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -922,7 +922,8 @@
|
|||
"vim": {
|
||||
"use_system_clipboard": "always",
|
||||
"use_multiline_find": false,
|
||||
"use_smartcase_find": false
|
||||
"use_smartcase_find": false,
|
||||
"custom_digraphs": {}
|
||||
},
|
||||
// The server to connect to. If the environment variable
|
||||
// ZED_SERVER_URL is set, it will override this setting.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue