##// END OF EJS Templates
preserve margins when using Ctrl-O for newline...
Gil Forsyth -
Show More
@@ -56,6 +56,10 b' def register_ipython_shortcuts(registry, shell):'
56 56 & cursor_in_leading_ws
57 57 ))(indent_buffer)
58 58
59 registry.add_binding(Keys.ControlO,
60 filter=(HasFocus(DEFAULT_BUFFER)
61 & insert_mode))(newline_with_copy_margin)
62
59 63 if shell.display_completions == 'readlinelike':
60 64 registry.add_binding(Keys.ControlI,
61 65 filter=(HasFocus(DEFAULT_BUFFER)
@@ -144,6 +148,20 b' def suspend_to_bg(event):'
144 148 def indent_buffer(event):
145 149 event.current_buffer.insert_text(' ' * 4)
146 150
151 def newline_with_copy_margin(event):
152 """
153 Preserve margin and cursor position when using
154 Control-O to insert a newline in EMACS mode
155 """
156 b = event.current_buffer
157 cursor_start_pos = b.document.cursor_position_col
158 b.newline(copy_margin=True)
159 b.cursor_up(count=1)
160 cursor_end_pos = b.document.cursor_position_col
161 if cursor_start_pos != cursor_end_pos:
162 pos_diff = cursor_start_pos - cursor_end_pos
163 b.cursor_right(count=pos_diff)
164
147 165
148 166
149 167
General Comments 0
You need to be logged in to leave comments. Login now