22 Commits

Author SHA1 Message Date
a03dd0c433 bump version
Some checks failed
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-24 22:52:25 -08:00
561faf537c Updating docs. 2025-11-24 22:51:10 -08:00
3a36b35c1f support running cloc over the file 2025-11-24 22:51:10 -08:00
Jeremy O'Brien
b1cb2532f6 add flake + default.nix 2025-11-24 22:43:40 -08:00
9f33cdc0e4 bump version
Some checks failed
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-24 22:15:11 -08:00
afcc33329f add C-k l to get lines of code 2025-11-24 22:14:51 -08:00
128235283c bump version
Some checks failed
Release / Bump Homebrew formula (push) Has been cancelled
1.3.0: mark/region
2025-11-24 21:41:04 -08:00
af3c0eddc4 set editor position 2025-11-24 21:38:04 -08:00
f8f01f7dd6 don't clear mark in kill/delete_region 2025-11-24 21:32:23 -08:00
8206ab0a40 fixed counting, I think 2025-11-24 21:21:37 -08:00
af8dcb847e working on delete-region 2025-11-24 21:14:56 -08:00
9434a34116 kill_region appears to work 2025-11-24 20:49:55 -08:00
3b2b60466c continuing region work 2025-11-24 20:27:30 -08:00
52e1f2dd8b Cleaning up; start mark/region work. 2025-11-24 20:07:15 -08:00
8bb9228339 clean asan logs 2025-11-24 19:17:06 -08:00
e937e3398c Dumb typo.
Some checks failed
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-24 14:41:11 -08:00
f147c866ab v1.2.0 with basic killring.
Some checks failed
Release / Bump Homebrew formula (push) Has been cancelled
2025-11-24 14:37:33 -08:00
1227d0abf4 Support basic killing/yanking. 2025-11-24 14:35:44 -08:00
d3591331a5 Update man page with yank. 2025-11-24 14:03:12 -08:00
5eafc1a34b local install in Makefile 2025-11-24 13:57:10 -08:00
a0103dd5aa Start killring work. 2025-11-24 13:46:00 -08:00
3782880062 UTF-8 support. 2025-11-24 13:11:24 -08:00
7 changed files with 1310 additions and 550 deletions

View File

@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.15)
project(ke C) # Specify C language explicitly
set(CMAKE_C_STANDARD 99)
set(KE_VERSION "1.1.1")
set(KE_VERSION "1.3.2")
set(CMAKE_C_FLAGS "-Wall -Wextra -pedantic -Wshadow -Werror -std=c99 -g")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_DEFAULT_SOURCE -D_XOPEN_SOURCE")

View File

@@ -1,6 +1,6 @@
TARGET := ke
KE_VERSION := devel
KE_VERSION := devel
DEST := $(HOME)/.local/bin/$(TARGET)
CFLAGS := -Wall -Wextra -pedantic -Wshadow -Werror -std=c99 -g
CFLAGS += -D_DEFAULT_SOURCE -D_XOPEN_SOURCE
@@ -13,9 +13,15 @@ all: $(TARGET) test.txt
$(TARGET): main.c
$(CC) $(CFLAGS) -o $(TARGET) $(LDFLAGS) main.c
.PHONY: install
#install: $(TARGET)
install:
cp $(TARGET) $(DEST)
clean:
rm -f $(TARGET)
rm -f asan.log*
.PHONY: test.txt
test.txt:
cp test.txt.bak $@
cp test.txt.bak $@

27
default.nix Normal file
View File

@@ -0,0 +1,27 @@
{
lib,
installShellFiles,
stdenv,
...
}:
stdenv.mkDerivation {
pname = "ke";
version = "1.3.2";
src = lib.cleanSource ./.;
nativeBuildInputs = [ installShellFiles ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ke $out/bin/
runHook postInstall
'';
postInstall = ''
installManPage ke.1
'';
}

27
flake.lock generated Normal file
View File

@@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1763835633,
"narHash": "sha256-HzxeGVID5MChuCPESuC0dlQL1/scDKu+MmzoVBJxulM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "050e09e091117c3d7328c7b2b7b577492c43c134",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

18
flake.nix Normal file
View File

@@ -0,0 +1,18 @@
{
description = "Kyle's Text Editor";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs =
{ self, nixpkgs }:
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
in
{
packages.x86_64-linux = {
default = pkgs.callPackage ./default.nix { };
};
};
}

35
ke.1
View File

@@ -19,21 +19,26 @@ is
K-command mode is entered using C-k. This is taken from Wordstar and just
so happens to be blessed with starting with a most excellent letter of
grandeur. Many commands work with and without control; for example,
saving a file can be done with either C-k s or C-k C-s.
.Pp
saving a file can be done with either C-k s or C-k C-s. Other commands work
with ESC or CTRL.
.Sh K-COMMANDS
.Bl -tag -width xxxxxxxxxxxx -offset indent
.It C-k BACKSPACE
Delete from the cursor to the beginning of the line.
.It C-k SPACE
Toggle the mark.
.It C-k d
Delete from the cursor to the end of the line.
.It C-k C-d
Delete the entire link.
Delete the entire line.
.It C-k e
Edit a new file. Also C-k C-e.
.It C-k f
Incremental find.
.It C-k g
Go to a specific line. Also C-k C-g.
.It C-k l
List the number of lines of code in a saved file.
.It C-k m
Run make(1).
.It C-k q
@@ -42,9 +47,33 @@ exit the editor. Also C-k C-q.
save the file, prompting for a filename if needed. Also C-k C-s.
.It C-k x
save the file and exit. Also C-k C-x.
.It C-k y
Yank the killring.
.It C-k \[char92]
Dump core.
.El
.Sh OTHER KEYBINDINGS
.Bl -tag -width xxxxxxxxxxxx -offset indent
.It C-l
Refresh the display.
.It C-s
Incremental find.
.It C-w
Kill the region if the mark is set.
.It C-y
Yank the killring.
.It ESC BACKSPACE
Delete the previous word.
.It ESC b
Move to the previous word.
.It ESC d
Delete the next word.
.It ESC f
Move to the next word.
.It ESC w
Save the region (if the mark is set) to the killring.
.It
.El
.Sh FIND
The find operation is an incremental search. The up or left arrow keys will
go to the previous result, while the down or right arrow keys will go to

1739
main.c

File diff suppressed because it is too large Load Diff