No description
Find a file
2025-12-15 13:47:06 +05:30
src I am gonna end it here for siege(This commit adds pwd and version commands not much and I wanted to finish wrapping and stuff but ig I wont be doing it right now) 2025-12-15 00:15:48 +05:30
.gitignore Was working on adding a minimap but then realized the render procedure is getting too big so gonna split it up 2025-12-11 18:19:42 +05:30
LICENSE Initial commit 2025-12-03 18:10:04 +05:30
Makefile Made absolute paths from src/ possible for imports by having a nim.cfg and edited all the scripts to use absolute paths like that 2025-12-14 19:51:14 +05:30
nim.cfg Made absolute paths from src/ possible for imports by having a nim.cfg and edited all the scripts to use absolute paths like that 2025-12-14 19:51:14 +05:30
README.md I am gonna end it here for siege(This commit adds pwd and version commands not much and I wanted to finish wrapping and stuff but ig I wont be doing it right now) 2025-12-15 00:15:48 +05:30
syntax.json Maybe I will add support for custom syntax highlighting and getting it from file and stuff later(was planning to do now) 2025-12-05 22:43:11 +05:30
themes.json Made it so terminal-friendly themes are used with string-colors instead of trying to make use of rgb colors(its not fully supported with illwill and it feels more natural to use string-colors) 2025-12-05 14:07:55 +05:30
tide.gif Added the updated gif 2025-12-15 13:47:06 +05:30
tide.nimble Working on switching to illwill I think that might be faster to build with that ncurses 2025-12-04 00:02:21 +05:30

Tide

Tide Demo

A Vim-like modal text editor written in Nim using the illwill terminal library.

Installation

You can install Tide using Nim's package manager, Nimble. Run the following command:

nimble install tide 

Features

  • Modal editing (Normal, Insert, Command, Diff)
  • Search functionality with forward/backward navigation
  • Syntax highlighting with language detection
  • Minimap
  • Customizable themes
  • Undo/Redo support
  • Line numbering (toggleable)
  • Vim-style commands and navigation
  • Yank/paste operations

Keybindings

Normal Mode

Navigation

  • h / - Move cursor left
  • l / - Move cursor right
  • j / - Move cursor down
  • k / - Move cursor up
  • 0 - Move to start of line
  • $ - Move to end of line
  • g - Go to first line
  • G - Go to last line
  • w - Move forward one word
  • b - Move backward one word
  • e - Move to end of word
  • Home - Move to start of line
  • End - Move to end of line
  • PageUp - Scroll up one page
  • PageDown - Scroll down one page

Editing

  • i - Enter insert mode at cursor
  • a - Enter insert mode after cursor
  • A - Enter insert mode at end of line
  • o - Open new line below and enter insert mode
  • O - Open new line above and enter insert mode
  • x - Delete character under cursor
  • X - Delete character before cursor
  • dd - Delete current line
  • yy - Yank (copy) current line
  • p - Paste below current line
  • P - Paste above current line
  • u - Undo last change
  • / - Enter search mode (search forward)
  • ? - Enter search mode (search backward)
  • n - Repeat search in the same direction
  • N - Repeat search in the opposite direction

Other

  • L - Toggle line numbers
  • : - Enter command mode
  • Esc - Cancel pending operation
  • q - Quit editor

Count Prefix

Many commands support a count prefix:

  • 5j - Move down 5 lines
  • 3w - Move forward 3 words
  • 10k - Move up 10 lines

Search Mode

Search mode is entered by pressing / in normal mode or ? for backward search.

  • Type your search pattern
  • Enter - Execute search and jump to first match
  • Backspace - Delete character in search buffer
  • Esc - Cancel search and return to normal mode

After executing a search:

  • n - Find next occurrence (wraps around to beginning)
  • N - Find previous occurrence (wraps around to end)

The status bar will display the position of found matches (e.g., "Pattern found at 42:15").

Insert Mode

  • Esc - Return to normal mode
  • Enter - Insert new line
  • Backspace - Delete character before cursor
  • Delete - Delete character under cursor
  • Arrow keys, Home, End, PageUp, PageDown - Navigate while in insert mode
  • Any printable character (space through ~) - Insert character

Command Mode

Commands are entered after pressing : in normal mode.

File Operations

  • :w - Write (save) file
  • :q - Quit editor
  • :q! - Force quit without saving
  • :wq or :x - Write and quit

Diff Mode

  • :diff <file1> <file2> - Open two files in diff mode

Display Options

  • :set number or :set nu - Show line numbers
  • :set nonumber or :set nonu - Hide line numbers

Syntax Highlighting

  • :syntax on - Enable syntax highlighting (auto-detects language)
  • :syntax off - Disable syntax highlighting

Minimap

  • :minimap on - Enable minimap
  • :minimap off - Disable minimap

Themes

  • :theme <name> - Switch to specified theme
  • :themes - Menu to list and select themes with preview

Others

  • :pwd - Print working directory
  • :version - Show Tide version information

Navigation

  • Arrow keys, Home, End, PageUp, PageDown work in command mode
  • Backspace - Delete character in command buffer
  • Esc - Cancel and return to normal mode
  • Enter - Execute command

Themes

Tide supports customizable color themes. Use :themes to list available themes and :theme <name> to switch themes.

Syntax Highlighting

Syntax highlighting is automatically detected based on the file extension when you enable it with :syntax on. Supported languages depend on your configuration.