parent
c38dc9a37b
commit
b575067317
|
@ -413,6 +413,9 @@ Changes
|
||||||
* `O`: enter insert mode in one (or given count) new lines above
|
* `O`: enter insert mode in one (or given count) new lines above
|
||||||
current selection begin
|
current selection begin
|
||||||
|
|
||||||
|
* `<a-o>`: add an empty line below cursor
|
||||||
|
* `<a-O>`: add an empty line above cursor
|
||||||
|
|
||||||
* `y`: yank selections
|
* `y`: yank selections
|
||||||
* `p`: paste after current selection end
|
* `p`: paste after current selection end
|
||||||
* `P`: paste before current selection begin
|
* `P`: paste before current selection begin
|
||||||
|
|
|
@ -236,6 +236,12 @@ Changes
|
||||||
enter insert mode in a new line (or in a given count of new lines) above
|
enter insert mode in a new line (or in a given count of new lines) above
|
||||||
current selection begin
|
current selection begin
|
||||||
|
|
||||||
|
*<a-o>*::
|
||||||
|
add an empty line below cursor
|
||||||
|
|
||||||
|
*<a-O>*::
|
||||||
|
add an empty line above cursor
|
||||||
|
|
||||||
*y*::
|
*y*::
|
||||||
yank selections
|
yank selections
|
||||||
|
|
||||||
|
|
|
@ -1749,6 +1749,16 @@ void exec_user_mappings(Context& context, NormalParams params)
|
||||||
build_autoinfo_for_mapping(context, KeymapMode::User, {}));
|
build_autoinfo_for_mapping(context, KeymapMode::User, {}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<bool above>
|
||||||
|
void add_empty_line(Context& context, NormalParams params)
|
||||||
|
{
|
||||||
|
String new_lines{'\n', CharCount{std::max(params.count, 1)}};
|
||||||
|
SelectionList sels = context.selections();
|
||||||
|
for (auto& sel : sels)
|
||||||
|
sel.set(above ? sel.min().line : sel.max().line+1);
|
||||||
|
sels.insert(new_lines, InsertMode::InsertCursor);
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
class Repeated
|
class Repeated
|
||||||
{
|
{
|
||||||
|
@ -1901,6 +1911,9 @@ const HashMap<Key, NormalCmd> keymap{
|
||||||
{ {'O'}, {"insert on new line above", enter_insert_mode<InsertMode::OpenLineAbove>} },
|
{ {'O'}, {"insert on new line above", enter_insert_mode<InsertMode::OpenLineAbove>} },
|
||||||
{ {'r'}, {"replace with character", replace_with_char} },
|
{ {'r'}, {"replace with character", replace_with_char} },
|
||||||
|
|
||||||
|
{ {alt('o')}, {"add a new empty line below", add_empty_line<false>} },
|
||||||
|
{ {alt('O')}, {"add a new empty line above", add_empty_line<true>} },
|
||||||
|
|
||||||
{ {'g'}, {"go to location", goto_commands<SelectMode::Replace>} },
|
{ {'g'}, {"go to location", goto_commands<SelectMode::Replace>} },
|
||||||
{ {'G'}, {"extend to location", goto_commands<SelectMode::Extend>} },
|
{ {'G'}, {"extend to location", goto_commands<SelectMode::Extend>} },
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user