The only right text editor for BIG files.

 

OS supported

MacOs

Linux

 

Features

Low memory footprint

Text and Hex mode​

Cursor jumps shortcuts​

Regex search​

Deep undo/redo stack​

Handy cheat sheet​

UTF-8 support​

Lightweight save​

Breakpoints​

Multi color regex text highlight​

Interactive mode​

Hex search​

 

​​

Design

 

Feather design is simple, it has 3 sections:

File name section

Always displays the currently opened file.

Main section

Displays currently edited content

Hint section

Dynamic section that displays what the user can do next or which options are available.

Usage

Open any file with providing file name as argument: `feather <file_name> options`.

options:  

    --mode

        Defines if the file will be interpreted as UTF-8 text or hex bytes. Hex mode comes with HEX search. Available options: text/hex

    --force

        Sometimes when using the --sessionId option it can turn out that file content has changed over the time and displayed file can have different content than expected, this gauge is used to force stashed changes injection. If the file was modified it is not guaranteed that changes will display properly.

    --relax

        Internal feather buffers size. By default this value is 1M and cannot be less than 1Kb.

    --storage

        Folder where the user would like to keep stashed changes. By default: /tmp

    --tab

        How many spaces represent tabulator

    --sessionId

        Id of stashed session.

 

File open modes

When opening a file you can specify how to view that file with the --mode option.

 

Text mode

Default mode or explicitly specified wth '--mode=text' option. In text mode Feather tries to read each character as UTF-8 encoded. If for some reason the character cannot be interpreted correctly gray UTF-8 hex value is displayed instead.

Hex mode

Open file in hex mode with '--mode=hex' option. This mode comes with two windows and treats files as sequences of bytes. You can view bytes HEX values in the left window and ASCI values on the right window. Hex mode comes with hex search where you can search for bytes sequences.

 

Opened file modes

READ mode

The default mode that allows user to enter "write/search/action" modes. If you don't know what to do use

<control> + k to display all available shortcuts.

Main shortcuts.

/ - enter search mode

\ - enter hex search mode, this option is only available in Hex file open mode

: - enter action mode

i - enter write mode

u - undo last change

<control> + r - redo last change

<control> + k - show all shortcuts. This window also reveals sessionId which can be used as a parameter for --sessionId argument.

<control> + x - exit feather

Start edit shortcuts

O - enter edit mode with new line above

o - enter edit mode with new line below

A - enter edit mode at line end

 

Cursor move shortcuts

g - goto file first character

G - goto file last character

0 - goto line beginning

$ - goto line end

w - goto next word

b - goto previous word

<control> + u - goto half page up

<control> + d - goto half page down

 

Remove shortcuts

x - character under cursor

dw - new word or empty characters

<control> + x - previous word or empty characters

dd - current line

d + <number 1-9> - lines between 1 to 9

D - everything from current cursor position until line end

dg - everything from current cursor position until file beginning

dG - everything from current cursor position until file end

d + <"[" + or "{" + or "(" or "<"> - everything between selected brackets

ds - everything between white characters

 

Other

<control> + b - add breakpoint at current cursor position

<control> + n - jump to next breakpoint

<control> + p - jump to previous breakpoint

8 - go to previous window

9 - go to next window

p - paste

v - start selecting text

hh - color current line with random color

h + <"[" + or "{" + or "(" or "<" - color everything between selected brackets with random color

zz - put the cursor in the middle of the screen

. - repeat last command

"["/"]" or "{"/"}" or "("/")" or "<"/">" - jump to opening/closing bracket

 

WRITE mode

Enter Write mode from Read mode by pressing i key.

In write mode user can edit the text. User can still jump between breakpoints the same way as in read mode.

Exit read mode by pressing ESC key.

 

ACTION mode

Enter Action mode when in Read mode by pressing : key.

Action mode allows text manipulation by performing additional actions. Below is the list of available actions with description:

 

 :color

Description

User can set specific text in the form of regular expression to be coloured. User can specify as many colors as he wants and if colors overlap the last one will be on the top.

 

Usage:

:color red error - will color each word error on red

:color red '[Ee]rror' - will color each word starting from upper E letter or smaller e letter on red

User can combine colors with | token for example:

:color red|yellow|white '(Matt|Diana)' - will color words Matt and Diana with mixed color

 

:uncolor

Description

Uncolour previously specified text.

Usage:

:uncolor error - will remove all colors from error text

:uncolor 'error when sending' - will uncolor consecutive words

 

:<number>

Description

Goto to specific line number.

Usage:

:100 - will move cursor to line number 100

 

:jump <number>

Description:

Jump to the specific Byte number. If the specified byte number is in the middle of valid UTF-8 character and in text mode, the cursor will be aligned to proper byte number.

Usage:

:jump 1024 - will jump to Byte number 1024.

 

:w <file_name>

Description:

Save current changes. If no file_name will be specified, the file will be overridden.

Usage:

:w ~/my_file - will save changes to users home directory

 

:stash

Description:

Stash current changes on the side. Feather will use current sessionId to create folder with sessionId name in storage folder and save only diff on the side without modifying original file.

The changes can be restored with the --sessionId argument when opening the same file: feather my_file --sessionId=851c2a30b12a6d202c6b55a5bc4d0692. Sometimes changes are stashed in different directory, in this case storage argument also has to be specified: feather my_file --sessionId=851c2a30b12a6d202c6b55a5bc4d0692 --storage=~/my_storage

 

:drop

Description:

Remove all set breakpoints. This action cannot be undone.

 

:e <file_name>

Description:

Open another file in the same window. All current changes will remain if the same file will be opened with :e option again.

Usage:

:e ~/some_file - will open some_file from users home directory

 

:copyuntil

Description:

Copy all characters from current cursor position until specified character.

Usage:

:copyuntil % - will copy everything from current cursor position until '%' character, not including '%' character.

The condition can be reversed

:copyuntil !% - will copy everything from current cursor position until first character that is not '%', not including '%' character

 

:removeuntil

Description:

Removes all characters from current cursor position until specified character.

Usage:

:removeuntil % - will remove everything from the current cursor position until '%' character, not including '%' character.

The condition can be reversed

:removeuntil !% - will remove everything from current cursor position until first character that is not '%', not including '%' character

 

:reload

Description:

Forces reload of file content. Some files change its content and feather tries to catch up but user can also force this action.

 

<ESC>

Back to read mode.

 

SEARCH mode

/

Description

Regex search for string pattern.

Usage:

/(error|timestamp) - will search for error or timestamp substrings

\

Description:

If the file is opened in HEX mode, user can also search for hex patterns. Patterns can be specified with or without 0x prefix

Usage:

\0xDEADBEEF - will match all bytes in that order

\DEADBEEF- will match all bytes in that order

 

<ESC>

Back to read mode.

Opening Feather for the first time on MacOs

Apple by default doesn't allow third party software:

 
 
 
 
MacOsNotification_CantOpen.jpg
  1. Open 'System Preferences'

  2. Go to 'Security & Privacy' and tap on 'General' tab

  3. Click on the 'Lock' icon which you can find on the bottom left screen and type your administrator password.

  4. Choose 'Anywhere' under 'Allow apps downloaded from:' and then again click on the 'Lock' icon. On newer MacOs versions click Open Anyway next to application name.