-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
:h[elp]
command and documentation
#997
Open
Omnikar
wants to merge
55
commits into
helix-editor:master
Choose a base branch
from
Omnikar:help-command
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+716
−1
Open
Changes from all commits
Commits
Show all changes
55 commits
Select commit
Hold shift + click to select a range
f5b53e0
Help command WIP
Omnikar 00f70e9
Add documentation
Omnikar ababd05
Fix typo
Omnikar 3d2e7ad
Simplify
Omnikar 833e3e1
Fix lint error
Omnikar 15af3a3
Use `anyhow::bail`
Omnikar 53dd41b
Shorten lines
Omnikar 063edb1
Merge branch 'master' into help-command
Omnikar fc2ec0f
Use different bracket types to show cursor position
Omnikar d48c555
Add documentation
Omnikar d28b6fb
Use `anyhow::ensure`
Omnikar 196dda7
Add extending command docs
Omnikar 46d9f49
Merge branch 'master' into 'help-command'
Omnikar 6f3930c
Update `help` function signature
Omnikar bf644d6
Remove backticks around command names
Omnikar 0196aee
`cargo xtask docgen`
Omnikar a3dd3e0
Merge branch 'master' into 'help-command'
Omnikar 3dd9e29
Merge branch 'master' into help-command
Omnikar 897fca7
Re-add backticks around command names
Omnikar e1283fc
Document commands
Omnikar de6fb00
Move command help files into `runtime/help/commands/`
Omnikar 9bcc8a6
Merge branch 'master' into help-command
Omnikar b9d2daf
Update `help` to parse keypresses like a macro
Omnikar 911efce
Merge branch 'master' into help-command
Omnikar 4c02ab0
Move `runtime/help/commands/` to `runtime/help/static-commands/`
Omnikar eda195e
Support `:help` for typable commands
Omnikar d524000
Reorder typable command help
Omnikar c31cb68
Update documentation
Omnikar 3dcd18d
Merge branch 'master' into help-command
Omnikar aee10cf
Add documentation
Omnikar 32d0ef4
Add documentation
Omnikar efbd4e9
Add documentation
Omnikar c108d56
Add documentation
Omnikar 835d515
Implement `:help topics` and document "Words vs. WORDS"
Omnikar cc4c786
Make `:help topics` open in a split
Omnikar d18d745
Implement `:help <keybind>` for non-branching key sequences
Omnikar 94eade9
Fix lint issues
Omnikar f0c1c2d
Add documentation
Omnikar 592fa1d
Merge branch 'master' into help-command
Omnikar 43c1704
Handle `NotFound` and `Cancelled` for keymap lookup
Omnikar c039c9b
Merge branch 'master' into help-command
Omnikar c95317a
Merge branch 'master' into help-command
Omnikar ff9c104
Add documentation regarding Insert mode
Omnikar d7fb82f
Merge branch 'master' into help-command
Omnikar 1e136c6
Merge branch 'master' into help-command
Omnikar 10d3d1c
Merge branch 'master' into help-command
Omnikar 7249c6f
Remove `.txt` extensions
Omnikar 54219fc
Make `:help` with no arguments open command info
Omnikar afc1e7f
Refactor and remove panics
Omnikar ea40659
Refactor `:help` completion function
Omnikar 6ad6009
Fix `:help` help file
Omnikar dd4ec8a
Merge branch 'master' into help-command
Omnikar 7f3a49e
Use an overlaid picker for `:h topics`
Omnikar 9db0321
Fix bug where `:h` would leave pending keys
Omnikar 5f885cf
Merge branch 'master' into help-command
Omnikar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -2401,7 +2401,6 @@ fn move_buffer( | |||||||||||
if event != PromptEvent::Validate { | ||||||||||||
return Ok(()); | ||||||||||||
} | ||||||||||||
|
||||||||||||
ensure!(args.len() == 1, format!(":move takes one argument")); | ||||||||||||
let doc = doc!(cx.editor); | ||||||||||||
let old_path = doc | ||||||||||||
|
@@ -2488,6 +2487,116 @@ fn read(cx: &mut compositor::Context, args: &[Cow<str>], event: PromptEvent) -> | |||||||||||
Ok(()) | ||||||||||||
} | ||||||||||||
|
||||||||||||
fn help(cx: &mut compositor::Context, args: &[Cow<str>], event: PromptEvent) -> anyhow::Result<()> { | ||||||||||||
if event != PromptEvent::Validate { | ||||||||||||
return Ok(()); | ||||||||||||
} | ||||||||||||
|
||||||||||||
const STATIC_HELP_DIR: &str = "static-commands"; | ||||||||||||
const TYPABLE_HELP_DIR: &str = "typable-commands"; | ||||||||||||
|
||||||||||||
let args_msg = args.join(" "); | ||||||||||||
let open_help = | ||||||||||||
move |help_dir: &str, command: &str, editor: &mut Editor| -> anyhow::Result<()> { | ||||||||||||
let path = Path::new("help").join(help_dir).join(command); | ||||||||||||
let path = helix_loader::runtime_file(&path); | ||||||||||||
ensure!(path.is_file(), "No help available for '{args_msg}'"); | ||||||||||||
let id = editor.open(&path, Action::HorizontalSplit)?; | ||||||||||||
editor.document_mut(id).unwrap().set_path(None); | ||||||||||||
|
||||||||||||
Ok(()) | ||||||||||||
}; | ||||||||||||
|
||||||||||||
if args.is_empty() { | ||||||||||||
return open_help(TYPABLE_HELP_DIR, "help", cx.editor); | ||||||||||||
} | ||||||||||||
|
||||||||||||
if args[0] == "topics" { | ||||||||||||
let dir_path = helix_loader::runtime_file(Path::new("help/topics")); | ||||||||||||
|
||||||||||||
let callback = async move { | ||||||||||||
let call: job::Callback = job::Callback::EditorCompositor(Box::new( | ||||||||||||
move |editor: &mut Editor, compositor: &mut Compositor| { | ||||||||||||
let picker = ui::file_picker(dir_path, &editor.config()); | ||||||||||||
compositor.push(Box::new(overlaid(picker))); | ||||||||||||
}, | ||||||||||||
)); | ||||||||||||
Ok(call) | ||||||||||||
}; | ||||||||||||
cx.jobs.callback(callback); | ||||||||||||
|
||||||||||||
return Ok(()); | ||||||||||||
} | ||||||||||||
|
||||||||||||
let (help_dir, command): (&str, &str) = { | ||||||||||||
let arg = &args[0]; | ||||||||||||
if let Some(command) = arg.strip_prefix(':').and_then(|arg| { | ||||||||||||
TYPABLE_COMMAND_LIST.iter().find_map(|command| { | ||||||||||||
(command.name == arg || command.aliases.contains(&arg)).then_some(command.name) | ||||||||||||
}) | ||||||||||||
}) { | ||||||||||||
(TYPABLE_HELP_DIR, command) | ||||||||||||
} else if MappableCommand::STATIC_COMMAND_LIST | ||||||||||||
.iter() | ||||||||||||
.any(|command| command.name() == arg) | ||||||||||||
{ | ||||||||||||
(STATIC_HELP_DIR, arg) | ||||||||||||
} else { | ||||||||||||
let arg = arg.clone().into_owned(); | ||||||||||||
let keys = arg | ||||||||||||
.parse::<KeyEvent>() | ||||||||||||
.map(|key| vec![key]) | ||||||||||||
.or_else(|_| helix_view::input::parse_macro(&arg))?; | ||||||||||||
let callback = async move { | ||||||||||||
let call: job::Callback = job::Callback::EditorCompositor(Box::new( | ||||||||||||
move |editor: &mut Editor, compositor: &mut Compositor| { | ||||||||||||
use crate::keymap::KeymapResult; | ||||||||||||
let editor_view = compositor.find::<ui::EditorView>().unwrap(); | ||||||||||||
let mode = editor.mode; | ||||||||||||
let keymaps = &mut editor_view.keymaps; | ||||||||||||
let (keys, last_key) = (&keys[..keys.len() - 1], keys.last().unwrap()); | ||||||||||||
keys.iter().for_each(|key| { | ||||||||||||
keymaps.get(mode, *key); | ||||||||||||
}); | ||||||||||||
let key_result = keymaps.get(mode, *last_key); | ||||||||||||
let result: anyhow::Result<(&str, &str)> = match &key_result { | ||||||||||||
KeymapResult::Matched(command) => match command { | ||||||||||||
MappableCommand::Static { name, .. } => Ok((STATIC_HELP_DIR, name)), | ||||||||||||
MappableCommand::Typable { name, .. } => { | ||||||||||||
Ok((TYPABLE_HELP_DIR, name)) | ||||||||||||
} | ||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
once this is merged with master this |
||||||||||||
}, | ||||||||||||
KeymapResult::NotFound | KeymapResult::Cancelled(_) => { | ||||||||||||
Err(anyhow!("No command found for '{}'", arg)) | ||||||||||||
} | ||||||||||||
KeymapResult::Pending(_) => { | ||||||||||||
// Clear pending keys | ||||||||||||
keymaps.get(mode, crate::keymap::macros::key!(Esc)); | ||||||||||||
Err(anyhow!( | ||||||||||||
"`:help` for branching keybinds is not yet supported." | ||||||||||||
)) | ||||||||||||
} | ||||||||||||
KeymapResult::MatchedSequence(_) => Err(anyhow!( | ||||||||||||
"`:help` for sequence bindings is not yet supported." | ||||||||||||
)), | ||||||||||||
}; | ||||||||||||
if let Err(e) = result | ||||||||||||
.and_then(|(help_dir, command)| open_help(help_dir, command, editor)) | ||||||||||||
{ | ||||||||||||
editor.set_error(e.to_string()); | ||||||||||||
} | ||||||||||||
}, | ||||||||||||
)); | ||||||||||||
Ok(call) | ||||||||||||
}; | ||||||||||||
cx.jobs.callback(callback); | ||||||||||||
return Ok(()); | ||||||||||||
} | ||||||||||||
}; | ||||||||||||
|
||||||||||||
open_help(help_dir, command, cx.editor) | ||||||||||||
} | ||||||||||||
|
||||||||||||
pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[ | ||||||||||||
TypableCommand { | ||||||||||||
name: "quit", | ||||||||||||
|
@@ -3109,6 +3218,13 @@ pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[ | |||||||||||
fun: read, | ||||||||||||
signature: CommandSignature::positional(&[completers::filename]), | ||||||||||||
}, | ||||||||||||
TypableCommand { | ||||||||||||
name: "help", | ||||||||||||
aliases: &["h"], | ||||||||||||
doc: "Open documentation for a command or keybind.", | ||||||||||||
fun: help, | ||||||||||||
signature: CommandSignature::positional(&[completers::help]), | ||||||||||||
}, | ||||||||||||
]; | ||||||||||||
|
||||||||||||
pub static TYPABLE_COMMAND_MAP: Lazy<HashMap<&'static str, &'static TypableCommand>> = | ||||||||||||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
`append_mode` | ||
|
||
Enters Insert mode at the end of the selection. | ||
|
||
For information about Insert mode, see "Primary Modes". |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
`append_to_line` | ||
|
||
Enters Insert mode at the end of the line. | ||
|
||
For information about Insert mode, see "Primary Modes". |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
`copy_selection_on_next_line` | ||
|
||
Copies the current primary selection to the next line long enough to accomodate it. | ||
|
||
--- Examples --- | ||
|
||
The selection is copied from line 1 to line 2. | ||
┌───────────────────────────┐ ┌───────────────────────────┐ | ||
│ This is text (on line 1]. │ --> │ This is text (on line 1]. │ | ||
│ This is text on line 2. │ │ This is text (on line 2]. │ | ||
└───────────────────────────┘ └───────────────────────────┘ | ||
|
||
The selection duplication skips line 2 because it is too short. | ||
┌──────────────────────────────────┐ ┌──────────────────────────────────┐ | ||
│ This is a longer li(ne of t]ext. │ │ This is a longer li(ne of t]ext. │ | ||
│ This is a shorter line. │ --> │ This is a shorter line. │ | ||
│ This is another longer line. │ │ This is another lon(ger lin]e. │ | ||
└──────────────────────────────────┘ └──────────────────────────────────┘ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
`copy_selection_on_prev_line` | ||
|
||
Copies the current primary selection to the first previous line long enough to accomodate it. | ||
|
||
--- Examples --- | ||
|
||
The selection is copied from line 2 to line 1. | ||
┌───────────────────────────┐ ┌───────────────────────────┐ | ||
│ This is text on line 1. │ --> │ This is text (on line 1]. │ | ||
│ This is text (on line 2]. │ │ This is text (on line 2]. │ | ||
└───────────────────────────┘ └───────────────────────────┘ | ||
|
||
The selection duplication skips line 2 because it is too short. | ||
┌──────────────────────────────────┐ ┌──────────────────────────────────┐ | ||
│ This is a longer line of text. │ │ This is a longer li(ne of t]ext. │ | ||
│ This is a shorter line. │ --> │ This is a shorter line. │ | ||
│ This is another lon(ger lin]e. │ │ This is another lon(ger lin]e. │ | ||
└──────────────────────────────────┘ └──────────────────────────────────┘ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_char_left` | ||
|
||
Extending version of `move_char_left`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_char_right` | ||
|
||
Extending version of `move_char_right`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_line_down` | ||
|
||
Extending version of `move_line_down`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_line_up` | ||
|
||
Extending version of `move_line_up`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_next_char` | ||
|
||
Extending version of `find_next_char`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_next_long_word_end` | ||
|
||
Extending version of `move_next_long_word_end`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_next_long_word_start` | ||
|
||
Extending version of `move_next_long_word_start`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_next_word_end` | ||
|
||
Extending version of `move_next_word_end`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_next_word_start` | ||
|
||
Extending version of `move_next_word_start`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_prev_char` | ||
|
||
Extending version of `find_prev_char`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_prev_long_word_start` | ||
|
||
Extending version of `move_prev_long_word_start`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_prev_word_start` | ||
|
||
Extending version of `move_prev_word_start`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_till_char` | ||
|
||
Extending version of `find_till_char`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`extend_till_prev_char` | ||
|
||
Extending version of `till_prev_char`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
`find_next_char` | ||
|
||
Waits for another keypress, then moves and | ||
selects forward, stopping at the first | ||
instance of the pressed key. Can take | ||
a count, which will cause it to stop | ||
at the nth instance of the keypress, | ||
rather than the first. | ||
|
||
--- Examples --- | ||
|
||
The cursor moves forward, stopping at 'c' | ||
and selecting everything along the way. | ||
┌───────────────────────┐ c ┌───────────────────────┐ | ||
│ This i[s] a sentence. │ --> │ This i(s a sentenc]e. │ | ||
└───────────────────────┘ └───────────────────────┘ | ||
|
||
The cursor is not stopped by line breaks. | ||
┌───────────────────────────┐ ┌────────────────────────────┐ | ||
│ This is the fi[r]st line. │ Q │ This is the fi(rst line. │ | ||
│ This second line has a Q. │ --> │ This second line has a Q]. │ | ||
└───────────────────────────┘ └────────────────────────────┘ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
`find_prev_char` | ||
|
||
Waits for another keypress, then moves and | ||
selects backward, stopping at the first | ||
instance of the pressed key. Can take | ||
a count, which will cause it to stop | ||
at the nth instance of the keypress, | ||
rather than the first. | ||
|
||
--- Examples --- | ||
|
||
The cursor moves backward, stopping at 'h' | ||
and selecting everything along the way. | ||
┌───────────────────────┐ h ┌───────────────────────┐ | ||
│ This is a sent[e]nce. │ --> │ T[his is a sente)nce. │ | ||
└───────────────────────┘ └───────────────────────┘ | ||
|
||
The cursor is not stopped by line breaks. | ||
┌──────────────────────────────────┐ ┌───────────────────────────────────┐ | ||
│ There is a Q in this first line. │ Q │ There is a [Q in this first line. │ | ||
│ This is the se[c]ond line. │ --> │ This is the sec)ond line. │ | ||
└──────────────────────────────────┘ └───────────────────────────────────┘ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
`find_till_char` | ||
|
||
Waits for another keypress, then moves and | ||
selects forward, stopping before the first | ||
instance of the pressed key. Can take | ||
a count, which will cause it to stop | ||
before the nth instance of the keypress, | ||
rather than the first. | ||
|
||
--- Examples --- | ||
|
||
The cursor moves forward, stopping before 'c' | ||
and selecting everything along the way. | ||
┌───────────────────────┐ c ┌───────────────────────┐ | ||
│ This i[s] a sentence. │ --> │ This i(s a senten]ce. │ | ||
└───────────────────────┘ └───────────────────────┘ | ||
|
||
The cursor is not stopped by line breaks. | ||
┌───────────────────────────┐ ┌────────────────────────────┐ | ||
│ This is the fi[r]st line. │ Q │ This is the fi(rst line. │ | ||
│ This second line has a Q. │ --> │ This second line has a ]Q. │ | ||
└───────────────────────────┘ └────────────────────────────┘ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`half_page_down` | ||
|
||
Scrolls down by half of a screen. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
`half_page_up` | ||
|
||
Scrolls up by half of a screen. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
`insert_mode` | ||
|
||
Enters Insert mode at the start of the selection. | ||
|
||
For information about Insert mode, see "Primary Modes". |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
`move_char_left` | ||
|
||
Moves all cursors 1 character left, removing | ||
any selections and wrapping across line breaks. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
`move_char_right` | ||
|
||
Moves all cursors 1 character right, removing | ||
any selections and wrapping across line breaks. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.