kilo
dotfiles
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kilo
-
A nano like text editor built with pure C
Most of that is probably attributable to being based on Kilo: https://github.com/antirez/kilo (kinda strange they didn't link directly in their readme) - a tiny text editor written by antirez who notably also created Redis. Antirez has a bunch of really interesting side projects if you dig into their github repo.
-
Micro – A Modern Alternative to Nano
Yeah, "micro" for an editor would be 11 kilo bytes. I bet it's possible to do a half-decent editor in C in 11KB. Antirez's "kilo" (~1000 lines of C) is 36KB when compiled with standard gcc (https://github.com/antirez/kilo).
That said, for many server-type use cases these days, 11MB isn't a huge deal. Still, I wonder if micro could be compiled on / ported to TinyGo and end up a few hundred KB? It looks like TinyGo can produce some pretty small binaries: https://tinygo.org/docs/guides/optimizing-binaries/
- Ask HN: Does this exist? Courses explaining well written codebases?
-
What happens when you press a key in your terminal?
Anyone interested in the machinations of all of this terminal stuff should look at antirez’ kilo, a terminal text editor in under 1000 lines of code: https://github.com/antirez/kilo
There is a nice tutorial that walks through how one might write it from scratch: https://viewsourcecode.org/snaptoken/kilo/
-
Vim sucks
kilo 1k of C
-
A simple terminal game
I always wondered how people get stuff animated on the terminal but I never had the time to look into it up until a few years ago when someone on the internet released an awesome guide on how to create a text editor in less than 1000 lines of C. What caught my attention about this was that it was based on Antirez' kilo - which is a terminal based editor.
-
Ask HN: How to learn about text editor architectures and implementations?
You could start by looking at something super simple like Kilo:
https://github.com/antirez/kilo
Even I could understand this one pretty well and that's no small matter.
-
Ginkgo: A WIP small text editor built entirely in Rust with cursor control and select Vim features
I just started learning Rust 2 weeks ago, and I wanted to apply my learning towards a project.Ginkgo is a small text editor built entirely in Rust. It takes inspiration from the famous tiny C-based text editor, Kilo. It also includes many Vim inspired keybindings and features such as normal/insert modes. For convenience, it also has added mouse cursor support!
- What would one need to know in order to develop an in-shell VIM like code editor?
-
Any interesting project ideas in c language
Write your own editor. As an example: kilo
dotfiles
-
Less Miserable Bindings for QWERTZ?
I bit the bullet and moved my mappings around. This is wholey unrelated, but do you know if stumpwm allows you to set the split size in dynamic groups? Like in dwm you can set the master window to be 50% of the screen with clients being the other 50%. So far in stumpwm I cannot find how and it seems hardcoded to 55%.
-
Does StumpWM Have Smart Borders Or A Way to Disable Borders All Together?
I am trying to get stumpwm feeling a little bit more like an integrated environment visually. Currently I am attempting to fix two problems that would create that integrated feeling. The first one is adding smart border functionality. Basically smart borders are is when only one window is open no border is shown, but if more than one window is open a border is drawn. I tried researching this, but I can not find anything. I am also wanting to try disabling borders all together. I have never done this before so I have no idea if I would like it. I made the proper changes to my configuration to remove any border and ignore size hints, but I still have that stupid padding around terminals. Does anyone know how to disable those?
-
Turning Linux Into a Usable Lispy Machine?
I have been doing research trying to figure out what software in my current toolchain has a Lisp, specifically Common Lisp, alternative. Having looked around I have been able to find a few thing.
-
How Do You Setup Workspaces Properly?
I am trying to setup my workspaces for stumpwm, but am running into a wall due to not being able to find much documentation, is there is even support, for a few things I want to do. For some background, I am coming from dwm which I have used for a few years and even forked a few times. In dwm I had a rather simple, but extremely useful, setup where I would store specific types of programs on specific tags. I was able to figure out getting this done in stumpwm and it working just fine. The main issue with this portion of my workspace setup is that the Default workspace still exists. I have tried to figure out how to delete it, but cannot. I know how to rename it, so I could just do that and use it for my terminals, but the issue arises where I have no idea how to change it from the default stacking layout to the dynamic one. Any advice? Additionally, is there a way to get something like dwm's fakefullscreen?
-
How Do I Unbind all Default Bindings and Bind Keys With Shift?
My brain hurts, I did this and now it just works.
-
Terminal Emulators Written in Common Lisp?
I am working on rebuilding my software toolchain around Common Lisp, because it is amazing. I have already started moving to sbcl from zsh, thanks to help from this subreddit and a friend, as well as moving away from my dwm fork to stumpwm. I am looking at what programs I have left to find replacements for and I know I am moving to either lem or gnu emacs, hopefully lem, from nvim and nyxt from firefox, but there are three programs I cannot find CL replacements for, my terminal, screen locker, and dynamic menu. The last two will be a pain, I know, but with the terminal I was shocked to see little to nothing online. I was able to find CLIM implementations of terminal emulators, but the one I found which I lost the link to is built into a desktop environment; I also don't know if it would run under X11 or Wayland. I was curious if there was someone here who would know of a terminal emulator that was written in CL? It doesn't need to be fancy, in fact the less fancy the better. I am just trying to figure out if I refork st or if there is a CL terminal I can use.
-
How Would One Bind Prefix + Key + Key?
I am unsure if you have interest, but is the final working product :D Thank you again! https://gitlab.com/FOSSilized_Daemon/dotfiles/-/blob/main/src/dotfiles/home/.library/generic/common-lisp/stumpwm/common-lisp/key-binding.lisp
-
How to Build a Proper Loading Order From ASDF?
I am unsure if this would have any impact, but I am making some changes (as well as this) to sbcl; none that should cause this though.
-
Is There Any Method For Checking If REPL Is Running As a Login Shell?
An update to my other comment. I can confirm that the issues I am having are due to cl-repl. I took my exact configuration, commented out the first line of my replrc.lisp, hardcoded a require for asdf, using find-package always returns nil for some reason with asdf I don't know why, and then symlinked the file to ~/.sbclrc and everything loaded fine and ran fine. I am unsure what is up with cl-repl. I think I would rather use sbcl anyway, but I just need to figure out tab-completion, sytan highlighting if possible, and then determine how to check if asdf is installed to load it (I know I can always require it, but I want to proof this configuration in case I use it on a repl that does not autoload asdf).
-
Trying to Understand Strings in Common Lisp
Porting my shell configuration to cl-repl in order to help me learn common lisp. So I have my asdf system being loaded in my .replrc and I know things are being loaded there just not this code for some reason. If it helps the code is here.
What are some alternatives?
wasm3 - 🚀 A fast WebAssembly interpreter and the most universal WASM runtime
tmux-resurrect - Persists tmux environment across system restarts.
luastatic - Build a standalone executable from a Lua program.
zen-mode.nvim - 🧘 Distraction-free coding for Neovim
luar - Script Kakoune using Lua
spacemacs - A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
wac - WebAssembly interpreter in C
zsh-autosuggestions - Fish-like autosuggestions for zsh
visidata - A terminal spreadsheet multitool for discovering and arranging data
vis - A vi-like editor based on Plan 9's structural regular expressions
sn - Simple Notes using fzf
firefox-csshacks - Collection of userstyles affecting the browser