Introduction
Introduction Statistics Contact Development Disclaimer Help
change global movement commands -- g+[gGmhjkl] - gramscii - A simple editor for…
Log
Files
Refs
Tags
README
LICENSE
---
commit 557124afa12af33f8453f04beab1ebfbe1e7a593
parent f73faa7a82282660413e4056486e452af61832c0
Author: KatolaZ <[email protected]>
Date: Mon, 22 Jul 2019 13:54:48 +0100
change global movement commands -- g+[gGmhjkl]
Diffstat:
M TODO | 25 +++++++++++++++----------
M gramscii.c | 49 ++++++++++++++++++++++++-----…
2 files changed, 54 insertions(+), 20 deletions(-)
---
diff --git a/TODO b/TODO
@@ -1,27 +1,32 @@
+ optimize redraws (i.e., avoid to redraw if possible)
- move configs in config.h
- add Makefile
-- auto-arrow 'A' (automatic end-char)
-- change screen management (i.e., use an array of lines)
+- change screen management (i.e., dynamic array of lines)
+- get screen geometry
+- add action multiplier (e.g., "7h" moves left by 7 cols)
+- use [ENTER] to confirm arrow, boxes, and text (useful for scripting)
+- add scripting mode option ("-s"?)
+- add screen geometry option (-g 25x80?)
- read file at point
- parse control characters
- parse arrows (text-mode will allow movements as well)
-- implement CTRL+G as abort (aside ESC)
-- change "g" command:
- - g-g (goto top-left)
- - g-G (goto bottom-right)
- - g-m (goto middle)
- - g-[hjkl] (goto leftmost, bottom, top, rightmost)
+- (?) implement CTRL+G as abort (aside ESC)
+- add crop command (c)
+ visual selection
- - crop
+ - crop-to
- yank/put
* fill
* delete
- undo (by storing lines changed across insert/remove operations)
- manage special chars (DEL/CANC) during text insert
(also do not print unmanaged chars!)
-- get screen geometry
- allow scrolling (both vertical and horizontal)
+- auto-arrow 'A' (automatic end-char)
+* change "g" command:
+ - g-g (goto top-left)
+ - g-G (goto bottom-right)
+ - g-m (goto middle)
+ - g-[hjkl] (goto leftmost, bottom, top, rightmost)
* move style commands in a separate function
(and allow style change in all the modes...)
* add "vis" (for visual) in mode strings
diff --git a/gramscii.c b/gramscii.c
@@ -273,6 +273,44 @@ void go_to(int where){
show_cursor();
}
+void handle_goto(){
+ char c;
+ c=getchar();
+ switch(c){
+ case 'h':
+ dir = DIR_L;
+ x = 0;
+ break;
+ case 'l':
+ dir = DIR_R;
+ x = WIDTH - 1;
+ break;
+ case 'j':
+ dir = DIR_D;
+ y = HEIGHT - 1;
+ break;
+ case 'k':
+ dir = DIR_U;
+ y = 0;
+ break;
+ case 'g':
+ dir = DIR_N;
+ go_to(HOME);
+ break;
+ case 'G':
+ dir = DIR_N;
+ go_to(END);
+ break;
+ case 'm':
+ dir = DIR_N;
+ go_to(MIDDLE);
+ break;
+ }
+ check_bound();
+ show_cursor();
+}
+
+
int move_around(char c){
switch(c){
@@ -297,16 +335,7 @@ int move_around(char c){
x += step;
break;
case 'g':
- dir = DIR_N;
- go_to(HOME);
- break;
- case 'G':
- dir = DIR_N;
- go_to(END);
- break;
- case 'm':
- dir = DIR_N;
- go_to(MIDDLE);
+ handle_goto();
break;
default:
return 0;
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.