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
|
@ -68,6 +68,7 @@ pub enum Operator {
|
|||
Lowercase,
|
||||
Uppercase,
|
||||
OppositeCase,
|
||||
Digraph { first_char: Option<char> },
|
||||
Register,
|
||||
RecordRegister,
|
||||
ReplayRegister,
|
||||
|
@ -309,6 +310,7 @@ impl Operator {
|
|||
Operator::Delete => "d",
|
||||
Operator::Yank => "y",
|
||||
Operator::Replace => "r",
|
||||
Operator::Digraph { .. } => "^K",
|
||||
Operator::FindForward { before: false } => "f",
|
||||
Operator::FindForward { before: true } => "t",
|
||||
Operator::FindBackward { after: false } => "F",
|
||||
|
@ -342,6 +344,7 @@ impl Operator {
|
|||
| Operator::RecordRegister
|
||||
| Operator::ReplayRegister
|
||||
| Operator::Replace
|
||||
| Operator::Digraph { .. }
|
||||
| Operator::ChangeSurrounds { target: Some(_) }
|
||||
| Operator::DeleteSurrounds => true,
|
||||
Operator::Change
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue