From 6c57f6e59b721a39fd0b876a8f3752789b6fee19 Mon Sep 17 00:00:00 2001 From: Sören Tempel Date: Sat, 29 May 2021 17:29:55 +0200 Subject: Add ctrl+l keybinding to clear everything except current line --- TODO.txt | 2 -- saneterm/keys.py | 1 + saneterm/termview.py | 10 ++++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/TODO.txt b/TODO.txt index c6b1ed3..c9ac1c1 100644 --- a/TODO.txt +++ b/TODO.txt @@ -5,5 +5,3 @@ * Bracketed paste mode * Basic support for raw mode * 9term-like file name completions using ctrl+f -* Support of a ctrl+l screen clear feature and/or - scrolling beyond th end of the buffer like 9term supports diff --git a/saneterm/keys.py b/saneterm/keys.py index 925bdab..6b85ede 100644 --- a/saneterm/keys.py +++ b/saneterm/keys.py @@ -17,6 +17,7 @@ class Bindings(): bind "a" { "move-input-start" () }; bind "e" { "move-input-end" () }; bind "j" { "insert-at-cursor" ("\\n") }; + bind "l" { "clear-view" () }; bind "w" { "delete-from-cursor" (word-ends, -1) }; bind "h" { "backspace" () }; diff --git a/saneterm/termview.py b/saneterm/termview.py index 1b8e3d8..da56245 100644 --- a/saneterm/termview.py +++ b/saneterm/termview.py @@ -75,6 +75,7 @@ class TermView(Gtk.TextView): "kill-after-output": self.__kill_after_output, "move-input-start": self.__move_input_start, "move-input-end": self.__move_input_end, + "clear-view": self.__clear_view, } for signal in signals.items(): @@ -181,3 +182,12 @@ class TermView(Gtk.TextView): end = buffer.get_iter_at_mark(self._last_mark) buffer.place_cursor(end) + + def __clear_view(self, textview): + buffer = textview.get_buffer() + + end = buffer.get_iter_at_mark(self._last_output_mark) + off = end.get_visible_line_offset() + end.backward_chars(off) + + buffer.delete(buffer.get_start_iter(), end) -- cgit 1.4.1