Command Reference
About
Print information about the editor, including where some files are expected to be located such as:
- The configuration directory
- The settings file, and if it was loaded on startup
- The style configuration file, and if it was loaded on startup
- The SSH key directory, and a list of cached SSH connections
- The plumbing configuration file
- The API listener port, and a list of active API sessions
Acq
Acq 'acquires' it's argument. It performs the same function as ALT+Right-Click performs on a text object.
Acquire means the following. First, if the word or selection matches a plumbing rule, execute that plumbing rule. If there is no matching plumbing rule, then if the word or selection is a file or directory path and there is already a window open with that path as the filename portion of it's tag, change focus to that window and make it visible. If there is not already a window open for that path, open one. Finally, if a plumbing rule is not executed and the path ends in :N, #C or !X then go to line N, character C or regex X in the file.
Ansi
Ansi is used to control whether Ansi terminal color escape sequences cause coloring or not. With no argument or the 'on' it enables coloring. With the argument 'off' it disables coloring.
Clr
Clear (delete) the contents of the window body
Cmds
List the most recent external commands executed.
Cmds*
List the most recent external commands executed along with the directory they were executed in.
Cols
Cols lists all the columns, including whether they are visible or not.
Cols*
Cols* lists all the columns verbosely (including the files in each column).
Cut
Cut deletes the last selected text and writes it to the clipboard.
Dbg
Dbg is used to run commands to help debug the internals of Anvil. Its first argument is a subcommand. The various subcommands are documented in the subsections below.
Dbg ProfCpu
Dbg ProfCpu starts writing profiling information to disk until it is executed a second time at which point it stops profiling.
Dbg ProfHeap
Dbg ProfHeap istarts writing profiling information to disk until it is executed a second time at which point it stops profiling.
Dbg Goroutines
Dbg Goroutines writes all goroutine stacks to the errors window.
Dbg Logs
Dbg Logs displays internal debug logs to the +Errors window. With no arguments it writes logs from all categories. With one or more arguments only those categories are printed. The available categories are:
- Application
- UI
- Editable
- Syntax
- API
- Filesystem
- Completion
- Plumbing
- Window
- Commands
- Column
- Config
- Editor
- Packing
- SSH
- Expressions
Dbg Pid
Print the process ID of Anvil
Dbg Psrv
This command starts the Go pprof debug http server on localhost port 6060. This server can be used to debug Anvil performance. Once started, some useful URLs to browse are:
go tool pprof http://localhost:6060/debug/pprof/heap
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30
go tool pprof http://localhost:6060/debug/pprof/block
go tool pprof http://localhost:6060/debug/pprof/mutex
Dbg Psrv off
This command stops the pprof debug server started by Dbg Psrv
Del
Del closes the current window.
Del!
Del! closes the current window. If there are unsaved changes, the user is not prompted to save them.
Delcol
Delcol deletes the column in which it is executed.
Do
Do executes it's arguments as a command; i.e. as if the arguments were selceted and executed alone. This is useful to execute commands from one window in the directory of another window.
Dump
Dump saves the editor's state to disk: the size of the open windows and the current value of their tags. With an argument the state is written to the file named by the argument. With no argument state is written to the file anvil.dump. The state can be loaded using Load.
Exit
Exit exits the editor. If there are unsaved changes the user is prompted to save them. If it is executed a second time, the user is not prompted.
Font
Change to the next font defined in the styles. If the last font is active, change back to the first.
With the default style there are two fonts. The first is a variable-width font, and the second is a fixed-width font.
Fuzz
Fuzz performs a fuzzy search through the lines in the window body. The terms for the search are the arguments to the Fuzz command. The lines which match the search are written to a new window for the current directory with the suffix '+Live'.
The Fuzz command is special in that it can be executed dynamically as you type the search terms. If you add the string '◊Fuzz ' to the tag, then as you type the arguments after the command the search is re-executed and the results updated in the +Live window. You can delimit the end of the search arguments using another ◊
Get
Get reads the contents of the path that is the leftmost text in the window tag and replaces the window body contents with it.
Goto
Goto sets the current cursor position in the window body to the named bookmark, created by Mark. If no argument is given it jumps to the bookmark 'def'.
Help
Help shows a bit of help for the editor. With no argument it lists the main commands and a brief description. With an argument displays information about that topic. The argument may be a command, which displays more detail about the command, or it may be another selected topic.
Hidecol
Hidecol hides the current column.
Id
Id prints the window ID to the +Errors window. Useful when using the API.
Kill
Kill kills all the jobs that are currently running that have names matching the argument to the Kill command. If no argument is provided the first job is killed.
Load
Load loads the editor's state from disk as written by the Dump command. With an argument the state is read from the file named by the argument. With no argument state is read from the file anvil.dump
LoadStyle
LoadStyle loads the editor style information from a file: the current font and size, colors, etc. With one argument the style is loaded from the file named by the argument. With no argument it is loaded from the file style.js in the Anvil config directory, which is also the style file loaded when the editor is started.
Look
Look searches for the next string in the window body that exactly matches the argument to Look.
Mark
Mark saves the current cursor position in the window body with the name specified by the argument. If no argument is given it is saved with the name 'def'.
Marks
Marks displays the currently set bookmarks to the Errors window.
Marks-
Marks- clears all the currently set bookmarks.
New
New makes a new unnamed window, or with an argument opens a path. When executed with an argument, if a window for that file is already open, a new window for that file is not created. Otherwise, a new window is created in the column in which the command is executed, and the file or directory with the name of the argument is loaded into the window.
Newcol
Newcol creates a new column.
On
Run expects two or more arguments. The first is a remote path, and the remaining arguments are the command and arguments to run.
Only
When executed in a window or its tag, close the other windows in this column leaving only this window.
Keypass
Keypass is used to specify the password used to decrypt an ssh private key file. It takes two arguments: the first is the ssh filename and the second is the password. This is needed when an ssh private key file is encrypted and ssh-agent is not being used.
Paste
Paste writes the text from the clipboard to the window.
Pic
Pic sets the background picture for the window body. The first argument should be the name of a .png, .gif or .jpeg image. The second argument, if specified, specifies how to scale the image. If the second argument is the word 'fit', without quotes, the image is scaled to the size of the window width. If the second argument is a number followed by the % character (such as 50%) the image is scaled by that percentage.
PrintCfg
Print a sample config file to +Errors. The argument specifies the file to generate. For example, ◊PrintCfg settings.toml◊ generates a settings.toml file.
Put
Put writes the contents of the window body to the path that is the leftmost text in the window tag.
Putall
Putall executes a Put on all open windows, saving all windows.
Recent
Recent writes the list of the paths of the most recently closed windows to the +Errors window.
Redo
Redo the last change
Rot
Rot rotates the selections when there are multiple selections. The primary selection moves to the next selection, that one to the next and so on, with the last moving to the primary.
SaveStyle
SaveStyle saves the editor style information to a file: the current font and size, colors, etc. With one argument the style is saved to the file named by the argument. With no argument it is saved to the file style.js in the Anvil config directory, which is also the style file loaded when the editor is started.
Settag
Settag sets the tag of the current window when executed from a window body or tag, the tag of the current column when executed from a column tag, or the editor when executed from the editor tag. When executed for a window, only the user-editable area is set. This is meant to be used by programs using the API.
The argument may be quoted with single-quotes.
Showcol
Showcol makes the column with the name that matches the first argument visible. If no argument is passed, the first hidden column is made visible.
Shstr
When executed with one or more arguments, set the 'Shell String' for the current window: the template string that is used to build the command run on a remote system. It may contain these substitutions within braces:
Dir: The window directory Cmd: The name of the command to be executed Args: Arguments to the command
The default Shell String (assuming the current shell is sh) is: sh -c $'cd "{Dir}" && {Cmd} {Args}'
When executed with no arguments, set the Shell String for the current window back to the default.
Snarf
Snarf copies the last selected text to the clipboard.
Syn
Syn is used to control syntax highlighting for the current window. With the argument 'off' it disables syntax highlighting, and with the argument 'list' it lists the valid supported languages. With any other argument it enables syntax highlighting and highlights the body using the language named by the argument. With no argument it attempts to analyze the text to autodetect the language.
Tint
Tint is used to color selections of text. When executed with the argument 'list' it shows the pre-defined tint colors. When executed with one argument that is not 'list', it changes the text in all current selections to that color. The argument must be a hex color code in the form #rrggbb or a color name. When executed with no argument and selections present, it removes the coloring for text that overlap the selections. When run with no arguments and no selections it clears all tinting.
The tinting of text is saved to dumpfiles created by the Dump command.
Title
Title sets the title of the editor to it's combined arguments. The title is usually displayed by the OS window manager in the title bar.
Undo
Undo the last change.
Wins
List the filenames of the open windows.
Zerox
Zerox opens a new window which is a copy of the current window.
◊
If there are no selections, insert a ◊ rune at the cursor. If there are selections, insert a ◊ before and after each selection.