Skip to content

gnuzd/atom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

261 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

      █████╗ ████████╗ ██████╗ ███╗   ███╗
     ██╔══██╗╚══██╔══╝██╔═══██╗████╗ ████║
     ███████║   ██║   ██║   ██║██╔████╔██║
     ██╔══██║   ██║   ██║   ██║██║╚██╔╝██║
     ██║  ██║   ██║   ╚██████╔╝██║ ╚═╝ ██║
     ╚═╝  ╚═╝   ╚═╝    ╚═════╝ ╚═╝     ╚═╝

Atom

A lightning-fast, modal terminal editor written in Rust.

GitHub release License GitHub Actions


Atom is a modern, Vim-inspired terminal editor designed for speed and productivity. It combines the best of traditional modal editing with contemporary features like LSP, Tree-sitter, and a built-in package manager.

📚 Documentation Site | 🚀 Installation Guide | 📋 Prerequisites

✨ Features

  • ⌨️ Vim-inspired Modal Editing: Powerful motions and operators including Visual Block mode (Ctrl+V).
  • 🛠️ Nucleus Package Manager: Manage LSPs, DAPs, linters, and formatters with an intuitive UI (previously Mason).
  • 🔭 Telescope-like Fuzzy Finder: Quickly find files, search text, and navigate your project.
  • 🌳 Tree-sitter Integration: High-performance, language-aware syntax highlighting and indentation.
  • 🚀 Native LSP Support: Auto-completion, diagnostics, go-to-definition, and refactoring out of the box.
  • 📁 Integrated File Explorer: Navigate project structure with file previews (Shift+P), splits, and vertical guides.
  • ⌨️ Command Wildmenu: Vim-style command-line completion with Tab and Shift+Tab.
  • ⚙️ Lua Configuration: Customize Atom using a familiar init.lua with vim.opt and vim.keymap.set.
  • 🌿 Git Integration: Real-time branch status and file changes in the status line.
  • 🎨 Beautiful UI: Modern aesthetics with rounded borders, icons, and customizable themes.

🚀 Installation

Using Homebrew (Recommended)

brew tap gnuzd/tap
brew install atom

From Source

Ensure you have Rust installed.

git clone https://github.com/gnuzd/atom.git
cd atom
cargo build --release

The binary will be available at target/release/atom.

🛠️ Getting Started

Simply run atom in your terminal:

atom [file or directory]

Basic Keybindings

  • i - Insert mode
  • v - Visual mode
  • Ctrl+v - Visual Block mode
  • Esc - Back to Normal mode
  • :w - Save file
  • :q - Quit
  • <Space>ff - Find files (Telescope)
  • \ - Toggle File Explorer
  • <Space>tt - Toggle Trouble List
  • <Space>m - Open Nucleus (Package Manager)
  • gg / G - Jump to start/end (Editor or Explorer)
  • PageUp / PageDown - Page scrolling (Editor or Explorer)

⚙️ Customization

Atom is highly configurable via Lua. Create your configuration at ~/.config/atom/init.lua:

-- ~/.config/atom/init.lua

-- Options
vim.opt.colorscheme = "gruvbox-material"
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4

-- Keymaps: vim.keymap.set(mode, lhs, rhs)
vim.keymap.set("i", "jk", "ExitMode")
vim.keymap.set("n", "<C-s>", "Save")

Additional configuration files:

  • colorscheme.toml: Customize your editor's look.
  • config.json: Legacy JSON configuration (optional).

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.


Made with ❤️ by gnuzd

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors