Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ko-editor

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ko-editor

an editor for macOS

  • 0.9.8
  • unpublished
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

ko readme

main features

fast

  • loads large files
  • keyboard centric
    • nothing you can do with the mouse only
    • includes lots of fancy shortcuts

commandline

  • a single, non-intrusive input field to ...
    • open files quickly
    • find in text and search in files
    • input terminal-, coffee-script- and macro-commands
    • goto lines or class/method/function-definitions

terminal

  • alias
  • history
  • echos commands as ascii-headers
  • output of commands editable/searchable

file search

  • search for strings/regexp in project files
  • automatic determination of project files
  • search results are editable
    • edits can be saved back to files
    • more powerful than conventional search and replace

multicursors

  • not all cursors are equal:
    • main cursor is always distuingishable
    • main cursor can be moved independently from other cursors
  • powerful set of keyboard shortcuts for modification of cursors

minimap

  • shows cursors, highlights and selections
  • also for terminal-, search- and coffe-script-results!
  • can be used to select large portions of text
  • sets cursor by default when dragging/clicking
  • includes a special mode to insert or edit ascii-headers that show up nicely in the minimap

autocomplete

  • completes words from visited files and project files
  • automatic determination of project files:
    • indexes files below directory containing .git or package.json
    • ignores node_modules, .git, etc.

syntax highlighting

  • for coffee, cpp, h, html, js, json, md, noon, pug, py, sh, styl
  • ansi-colors in terminal view

optimized for coffee-script

  • completes function/method names from required files
  • terminal commands to list classes, files or functions/methods
  • autoconverts 'simple' strings when "#{}" is inserted
  • removes 'then' when breaking single-line 'when' or 'if' statements
  • deletes whitespace after function names when surrounding selected arguments with ()
  • includes a few nifty macros:
    • dbg insert log line which outputs class.method + variables under cursors
    • req insert require statement for word at cursor
    • class creates a new file with simple class skeleton
    • inv toggle display of line-breaks

command-line

  • operates in different modes:
    • open new window
    • search Search /search/ /Search/
    • find Find /find/ /Find/ fiZd f*nd
    • goto selecto
    • term Term
    • coffee
    • macro
  • each mode keeps it's own history
  • clicking on the command name lists all modes and their shortcuts:

commandline

terminal

  • ⌘T to activate input

special commands

  • alias
    • without argument: list aliases
    • with one argument: clear alias
    • with two arguments: set alias
  • history
    • without argument: list command history
    • !! to repeat last command
    • !n to repeat command with id n
    • !~n to remove command with id n
  • classes
    • list coffee-script classes and their methods
    • click on result jumps to definition
  • funcs
    • list coffee-script functions and methods
    • click on result jumps to definition
  • files
    • list indexed project files
    • click on result opens file
  • words
    • list indexed words
    • click on word starts search command

classes, funcs, files and words results can be filtered by adding arguments

all other commands are passed to a child process running bash

  • only works for commands that terminate!

terminal

find

search in current file

  • ⌘F case insensitive
  • ^F case sensitive
  • ⌥F regexp insensitive
  • ^⌥F regexp sensitive
  • ⌘⌥F fuzzy search
  • ⌘^F glob search

search in project files

  • ⌘⇧F case insensitive
  • ^⇧F case sensitive
  • ⌥⇧F regexp insensitive
  • ^⌥⇧F regexp sensitive

editing search result lines will ...

  • mark them for saving
  • changes are propagated immediately to all open files
  • ⌘S (while the search-results view has focus) will save all pending changes in open and closed files
  • deleting lines from the search results will not remove them from their original files
  • changes from the editor are not yet propagated to old search results
    • this means: only edit and save fresh search results!
  • this is a very powerful feature but not tested thoroughly yet and probably not working correctly in all cases!
  • use at your own risk! backup your files!

search

multicursors

  • ⌘click add or remove single cursor
  • ⌘up|down grow all vertical cursor lines up or down
  • ^⇧up|down grow only main cursor line up or down
  • ^up|down|left|right move main cursor independently (clears other cursors when moving over them)
  • ^⌥up|down|left|right align all cursors vertically with up|down|left|right-most cursor
  • ^⇧right align all cursors vertically with right-most cursor while moving text to the right
  • ⌘delete delete backwards over line boundaries

cursors can be positioned after the end of line

  • cursors after the end of line have two representations: blue and orange/yellow
  • the orange/yellow position shows where text will be inserted
  • missing spaces are added automatically in multicursor mode

cursors

open

opens files quickly via fuzzy matching

  • ⌘P open file quickly
  • ⌘⇧P open file quickly in new window

on activation, it ...

  • lists recent files on top
  • the most recent file is selected by default

while list is open:

  • . list current directory without previous files
  • .. navigate directory up

the list content depends on the file currently opened in the editor

  • files in surrounding project directories are included
  • switching projects is simple: just open a file in the new project

open

goto

  • ⌘; activates goto command
  • text jump to function, class or file
  • positive number jump to line
  • negative number jump to line relative to end of file

in editor:

  • ⌥enter goto word under main cursor
  • ⌥click goto clicked word

coffee

evaluates coffee-script code in the main process and prints results in terminal

  • since the code is evaluated in the main process ...

    • indexer internals and windows are accessible (via global main object)
    • results are
      • persistent for the lifetime of the app
      • shared between windows
  • the commandline input is nice to do quick math calculations or other single line tasks

  • you can evaluate complex code too, just press ^enter in the editor to evaluate its whole text

cursors

windows

  • ⌘⌥A switch between tiled and stacked windows
  • ⌘W close active window
  • ⌘⇧W close all windows except active window
  • ⌘` activate next window
  • ⌘⇧` activate previous window
  • ⌥` open window list
  • ⌥[1-9] activate window with id
  • ⌘⇧N clone current file in new window
  • ⌘⌥Q close all windows (they won't restore on next start) and quit

ascii-headers

the ascii-header mode lets you insert or edit ascii-headers

  • ⌘3 activates the ascii-header mode
  • typing #> will create a header for the following word and switch to header mode as well

if the cursor is not in a header already, one will be generated for the word at the main cursor.

in ascii-header mode ...

  • cursors are green
  • backspace deletes the header character at the cursors
  • most characters will be inserted automatically just by typing them

the mode will deactivate itself automatically in most circumstances. you can also force deactivate it with esc

minimap

  • while dragging to turn off cursor placement
  • while dragging/clicking to select lines

misc

  • F2 global shortcut to activate ko
  • ⌘L select more lines ⌘⇧L select less lines
  • ⌥up|down move selected|cursor lines up|down
  • ⌥/ toggle comment on selected|cursor lines
  • ⌘I inverted line selection: select lines without a cursor or a selection
  • ⌘return evaluate current buffer with coffee in main process and print the result in terminal view
  • ⌘⌥up jump to counterpart file (coffee <-> js, cpp <-> h, pug <-> html, etc)

while command input has focus:

  • ^up|down move command input up|down
  • ⌘up|down move command input to top|bottom of window
  • ⌥up|down move command input a quarter of window up|down

to use ko from a terminal

either install the npm package

npm install -g ko-editor
ko

or download the release dmg from github and create a symlink:

ln -s /Applications/ko.app/Contents/Resources/app/bin/ko /usr/local/bin

settings (windows, command histories and other stuff) are saved to

~/Library/Application\ Support/ko/ko.noon

terminal aliases are stored in

~/Library/Application\ Support/ko/alias.noon

missing features

  • plugin system
  • customization
  • git integration
  • bracket matching
  • regression tests
  • correct highlighting of complex strings

final note

this is a pre-release in active development! use at your own risk!

Keywords

FAQs

Package last updated on 27 Jul 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc