Kakoune

Last updated

Kakoune
Original author(s) Maxime Coste
Initial release2 September 2011;12 years ago (2 September 2011)
Stable release
2024.05.18 [1]   OOjs UI icon edit-ltr-progressive.svg / 18 May 2024;36 days ago (18 May 2024)
Repository github.com/mawww/kakoune
Written in C++, KakouneScript
Operating system Unix-like, macOS
Type Text editor
License Unlicense
Website kakoune.org

Kakoune[ needs IPA ] is a modal screen-based text editor program created in 2011 by French programmer Maxime Coste. The editor is heavily inspired by the classic vi by Bill Joy, as well as its successor Vim by Bram Moolenaar. [2] [3]

The primary focus of the Kakoune editor is efficiency, which it achieves by making heavy use of a multi-cursor workflows. By default a user always has one selection, which can be widened or shortened through the use of commands and regular expressions. This allows Kakoune to behave like a structured editor despite having no knowledge of the semantics of the underlying programming language. [4] The editor also features a modal workflow with a insert and a normal mode reminiscent of other editors based on vi. [3] The insert mode allows for the insertion of text into the document, whereas in the normal text input is interpreted as commands. [2] [5] A digital assistant represented as an ASCII art of a paper clip is also integrated into the editor which helps guide users through the keybindings, features and workflows provided by the editor. [5]

The editor is primarily written in C++ and makes heavy use of templates and classes which results in a discrepancy in the number of lines of code and the instructions generated for the project using LLVM. [6]

Related Research Articles

ed (software) Line-oriented text editor for Unix

ed is a line editor for Unix and Unix-like operating systems. It was one of the first parts of the Unix operating system that was developed, in August 1969. It remains part of the POSIX and Open Group standards for Unix-based operating systems, alongside the more sophisticated full-screen editor vi.

The editor war is the rivalry between users of the Emacs and vi text editors. The rivalry has become an enduring part of hacker culture and the free software community.

<span class="mw-page-title-main">Text editor</span> Computer software used to edit plain text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

<span class="mw-page-title-main">Vim (text editor)</span> Improved version of the Vi keyboard-oriented text editor

Vim is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy's vi. Vim's author, Bram Moolenaar, derived Vim from a port of the Stevie editor for Amiga and released a version to the public in 1991. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface. Since its release for the Amiga, cross-platform development has made it available on many other systems. In 2018, it was voted the most popular editor amongst Linux Journal readers; in 2015 the Stack Overflow developer survey found it to be the third most popular text editor, and in 2019 the fifth most popular development environment.

vi (text editor) Keyboard-oriented text editor

vi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by the Single Unix Specification and POSIX.

Cut, copy, and paste are essential commands of modern human–computer interaction and user interface design. They offer an interprocess communication technique for transferring data through a computer's user interface. The cut command removes the selected data from its original position, and the copy command creates a duplicate; in both cases the selected data is kept in temporary storage called the clipboard. Clipboard data is later inserted wherever a paste command is issued. The data remains available to any application supporting the feature, thus allowing easy data transfer between applications.

<span class="mw-page-title-main">GNU TeXmacs</span> Open-source word processor

GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as a variant of GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by Joris van der Hoeven and a group of developers. The program produces structured documents with a WYSIWYG user interface. New document styles can be created by the user. The editor provides high-quality typesetting algorithms and TeX and other fonts for publishing professional looking documents.

In user interface design for computer applications, a modal window is a graphical control element subordinate to an application's main window.

<span class="mw-page-title-main">Computer terminal</span> Computer input/output device for users

A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to input or display bits and had to be connected to a terminal to print or input text through a keyboard. Teleprinters were used as early-day hard-copy terminals and predated the use of a computer screen by decades. The computer would typically transmit a line of data which would be printed on paper, and accept a line of data from a keyboard over a serial or other interface. Starting in the mid-1970s with microcomputers such as the Sphere 1, Sol-20, and Apple I, display circuitry and keyboards began to be integrated into personal and workstation computer systems, with the computer handling character generation and outputting to a CRT display such as a computer monitor or, sometimes, a consumer TV, but most larger computers continued to require terminals.

<span class="mw-page-title-main">Text-based user interface</span> Type of interface based on outputting to or controlling a text display

In computing, text-based user interfaces (TUI), is a retronym describing a type of user interface (UI) common as an early form of human–computer interaction, before the advent of bitmapped displays and modern conventional graphical user interfaces (GUIs). Like modern GUIs, they can use the entire screen area and may accept mouse and other inputs. They may also use color and often structure the display using box-drawing characters such as ┌ and ╣. The modern context of use is usually a terminal emulator.

<span class="mw-page-title-main">Kate (text editor)</span> Text editor

The KDE Advanced Text Editor, or Kate, is a source code editor developed by the KDE free software community. It has been a part of KDE Software Compilation since version 2.2, which was first released in 2001. Intended for software developers, it features syntax highlighting, code folding, customizable layouts, multiple cursors and selections, regular expression support, and extensibility via plugins. The text editor's mascot is Kate the Cyber Woodpecker.

<span class="mw-page-title-main">Source-code editor</span> Text editor specializing in software code

A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE).

In user interface design, a mode is a distinct setting within a computer program or any physical machine interface, in which the same user input will produce perceived results different from those that it would in other settings. Modal interface components include the Caps lock and Insert keys on the standard computer keyboard, both of which typically put the user's typing into a different mode after being pressed, then return it to the regular mode after being re-pressed.

<span class="mw-page-title-main">Simons' BASIC</span>

Simons' BASIC is an extension to BASIC 2.0 for the Commodore 64 home computer. Written by British programmer David Simons in 1983, who was 16 years old at the time, it was distributed by Commodore as a cartridge.

<span class="mw-page-title-main">TextMate</span> GUI text editor for macOS

TextMate is a free and open-source general-purpose GUI text editor for macOS created by Allan Odgaard. TextMate features declarative customizations, tabs for open documents, recordable macros, folding sections, snippets, shell integration, and an extensible bundle system.

<span class="mw-page-title-main">Snippet (programming)</span> Small region of re-usable source code, machine code, or text

Snippet is a programming term for a small region of re-usable source code, machine code, or text. Ordinarily, these are formally defined operative units to incorporate into larger programming modules. Snippet management is a feature of some text editors, program source code editors, IDEs, and related software. It allows the user to avoid repetitive typing in the course of routine edit operations.

ne (text editor) Text editor for POSIX operating systems

ne is a console text editor for POSIX computer operating systems such as Linux or Mac OS X. It uses the terminfo library, but it can also be compiled using a bundled copy of the GNU termcap implementation. There is also a Cygwin version. It was developed by Sebastiano Vigna of the University of Milan.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on GNU Emacs, directly descended from the original, is ongoing; its latest version is 29.3, released March 2024.

Bracketed paste, is a mode of some terminal emulators which allows programs running in the terminal to treat pasted text differently from text typed normally.

References

  1. "Release Kakoune 2024.05.18 · mawww/kakoune" . Retrieved 8 June 2024.
  2. 1 2 "kakoune/README.asciidoc at master · mawww/kakoune". GitHub. Archived from the original on 17 June 2024. Retrieved 17 June 2024.
  3. 1 2 Rougier, Nicolas P. (3 September 2020). "On the design of text editors". arXiv: 2008.06030 [cs.HC].
  4. Voinov, Philippe; Rigger, Manuel; Su, Zhendong (1 December 2022). "Forest: Structural Code Editing with Multiple Cursors". Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. Onward! 2022. New York, NY, USA: Association for Computing Machinery. p. 148. doi:10.1145/3563835.3567663. ISBN   978-1-4503-9909-8.
  5. 1 2 Kenlon, Seth (7 February 2022). "Try Kakoune for a modern Vi". RedHat . Archived from the original on 17 June 2024. Retrieved 17 June 2024.
  6. Barbar, Mohamad (2022). Data Structures for Points-To Analysis (PhD thesis). University of Technology Sydney (Australia). Archived from the original on 17 June 2024. Retrieved 17 June 2024.