Skip to content

Commit

Permalink
Fix ctrl-u on insert behavior (#1957)
Browse files Browse the repository at this point in the history
* Fix ctrl-u on insert behavior

Now should follow vim behavior more
- no longer remove text on cursor
- no longer remove selected text while inserting
- first kill to start non-whitespace, start, previous new line

* Add comment for c-u parts
  • Loading branch information
pickfire authored Apr 23, 2022
1 parent dd5a7c6 commit c1d3d49
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion helix-term/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -681,7 +681,24 @@ fn kill_to_line_start(cx: &mut Context) {

let selection = doc.selection(view.id).clone().transform(|range| {
let line = range.cursor_line(text);
range.put_cursor(text, text.line_to_char(line), true)
let first_char = text.line_to_char(line);
let anchor = range.cursor(text);
let head = if anchor == first_char && line != 0 {
// select until previous line
line_end_char_index(&text, line - 1)
} else if let Some(pos) = find_first_non_whitespace_char(text.line(line)) {
if first_char + pos < anchor {
// select until first non-blank in line if cursor is after it
first_char + pos
} else {
// select until start of line
first_char
}
} else {
// select until start of line
first_char
};
Range::new(head, anchor)
});
delete_selection_insert_mode(doc, view, &selection);
}
Expand Down

0 comments on commit c1d3d49

Please sign in to comment.