various qol improvements
Some checks failed
Release / Bump Homebrew formula (push) Has been cancelled
Some checks failed
Release / Bump Homebrew formula (push) Has been cancelled
+ C-u works with C-f and C-b (and their delete counterparts). + Opening files now allows adding a line number after to jump to.
This commit is contained in:
38
main.c
38
main.c
@@ -1130,7 +1130,6 @@ jump_to_position(int col, int row)
|
||||
editor.curx = col;
|
||||
editor.cury = row;
|
||||
|
||||
scroll();
|
||||
display_refresh();
|
||||
}
|
||||
|
||||
@@ -2323,8 +2322,10 @@ process_kcommand(int16_t c)
|
||||
reset_editor();
|
||||
open_file(buf);
|
||||
display_refresh();
|
||||
free(buf);
|
||||
|
||||
jump_to_position(jumpx, jumpy);
|
||||
editor_set_status("file reloaded");
|
||||
break;
|
||||
case CTRL_KEY('s'):
|
||||
case 's':
|
||||
@@ -2469,6 +2470,8 @@ process_normal(int16_t c)
|
||||
void
|
||||
process_escape(int16_t c)
|
||||
{
|
||||
int reps = 0;
|
||||
|
||||
editor_set_status("hi");
|
||||
|
||||
switch (c) {
|
||||
@@ -2481,13 +2484,25 @@ process_escape(int16_t c)
|
||||
editor.curx = 0;
|
||||
break;
|
||||
case 'b':
|
||||
reps = uarg_get();
|
||||
|
||||
while (reps--) {
|
||||
find_prev_word();
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
reps = uarg_get();
|
||||
|
||||
while (reps--) {
|
||||
delete_next_word();
|
||||
}
|
||||
break;
|
||||
case 'f':
|
||||
reps = uarg_get();
|
||||
|
||||
while (reps--) {
|
||||
find_next_word();
|
||||
}
|
||||
break;
|
||||
case 'm':
|
||||
toggle_markset();
|
||||
@@ -2501,7 +2516,11 @@ process_escape(int16_t c)
|
||||
toggle_markset();
|
||||
break;
|
||||
case BACKSPACE:
|
||||
reps = uarg_get();
|
||||
|
||||
while (--reps) {
|
||||
delete_prev_word();
|
||||
}
|
||||
break;
|
||||
case ESC_KEY:
|
||||
case CTRL_KEY('g'):
|
||||
@@ -2509,6 +2528,8 @@ process_escape(int16_t c)
|
||||
default:
|
||||
editor_set_status("unknown ESC key: %04x", c);
|
||||
}
|
||||
|
||||
uarg_clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -3032,6 +3053,8 @@ install_signal_handlers(void)
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
char *arg;
|
||||
int lineno = 0;
|
||||
int opt;
|
||||
int debug = 0;
|
||||
|
||||
@@ -3063,7 +3086,20 @@ main(int argc, char *argv[])
|
||||
open_file(argv[0]);
|
||||
}
|
||||
|
||||
if (argc > 1) {
|
||||
arg = argv[1];
|
||||
if (arg[0] == '+') {
|
||||
arg++;
|
||||
}
|
||||
lineno = atoi(arg);
|
||||
}
|
||||
|
||||
editor_set_status("C-k q to exit / C-k d to dump core");
|
||||
if (lineno < 1) {
|
||||
editor_set_status("Invalid line number %s", arg);
|
||||
} else {
|
||||
jump_to_position(0, lineno - 1);
|
||||
}
|
||||
|
||||
display_clear(NULL);
|
||||
loop();
|
||||
|
||||
Reference in New Issue
Block a user