Skip to content

Commit

Permalink
[guide] add a macros guide
Browse files Browse the repository at this point in the history
  • Loading branch information
anjakefala committed Nov 23, 2023
1 parent 5ec1ba5 commit ab0d438
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions visidata/macros.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from visidata.cmdlog import CommandLog, CommandLogJsonl
from visidata import vd, UNLOADED, asyncthread
from visidata import IndexSheet, VisiData, Sheet, Path, VisiDataMetaSheet, Column, ItemColumn, BaseSheet
from visidata import IndexSheet, VisiData, Sheet, Path, VisiDataMetaSheet, Column, ItemColumn, BaseSheet, TextSheet

vd.macroMode = None
vd.macrobindings = {}
Expand Down Expand Up @@ -125,15 +125,38 @@ def startMacro(cmdlog):
vd.status("recording macro; stop recording with `m`")
vd.macroMode = CommandLogJsonl('current_macro', rows=[])


@VisiData.before
def run(vd, *args, **kwargs):
vd.macrosheet

class MacrosGuide(TextSheet):
pass


Sheet.addCommand('m', 'macro-record', 'vd.cmdlog.startMacro()', 'record macro')
Sheet.addCommand('gm', 'macro-sheet', 'vd.push(vd.macrosheet)', 'open macros sheet')

vd.addMenuItems('''
System > Macros sheet > macro-sheet
''')

vd.addGuide('MacrosSheet', MacrosGuide(source = '''# Macros
Macros allow you to bind a series of commands to a key and then replay those commands within a session by using that keystroke.
The basic usage is:
1. Press `m` (macro-record) to begin recording the macro.
2. Go through the commands you wish to record.
3. Then type `m` again to complete the recording, and prompt for the keystroke or longname to bind it to.
The macro will then be executed everytime the provided keystroke is used. Note: the Alt+keys and the function keys are left unbound; overridding other keys may conflict with existing bindings, now or in the future.
Executing a macro will the series of commands starting on the current row and column on the current sheet.
# The Macros Sheet
Use `gm` (`open-macros-or-whatever`) to open an index existing macros.
Macros can be marked for deletion (with `d`). Changes can then be committed with `z Ctrl+S`.
`Enter` will open the macro in the current row, and you can view the series of commands composing it.'''.splitlines()
) )

0 comments on commit ab0d438

Please # to comment.