aboutsummaryrefslogtreecommitdiff
path: root/vis-cmds.c
AgeCommit message (Collapse)AuthorFilesLines
2016-04-03Support sam's structural regular expression based command languageMarc André Tanner1-0/+10
For those not familiar with sam(1) more information can be found at http://sam.cat-v.org/ For now sam commands can be entered from the vis prompt via :sam <cmd> A command behaves differently depending on the mode in which it is issued: - in visual mode it behaves as if an implicit extract x command matching the current selection(s) would be preceding it. That is the command is executed once for each selection. - in normal mode: * if an address for the command was provided it is evaluated starting from the current cursor position(s) i.e. dot is set to the current cursor position. * if no address was supplied to the command then: + if multiple cursors exist, the command is executed once for every cursor with dot set to the current line of the cursor + otherwise if there is only 1 cursor then the command is executed with dot set to the whole file The command syntax was slightly tweaked to accpet more terse commands. - When specifiying text or regular expressions the trailing delimiter can be elided if the meaning is unambigious. - If only an address is provided the print command will be executed. - The print command creates a selection matching its range. - In text entry \t inserts a literal tab character (sam only recognizes \n). Hence the sam command ,x/pattern/ can be abbreviated to x/pattern If a command is successful vis switches to normal mode (and hence removes any selections), otherwise the editor is kept in visual mode. The print command "fails" by definition.
2016-04-01vis: cleanup vis_pipe APIMarc André Tanner1-5/+5
2016-03-25vis: remove __DATE__ and __TIME__ references to aid with reproducible buildsMarc André Tanner1-1/+1
2016-03-25vis: do not crash when using vis:command without active windowMarc André Tanner1-1/+8
2016-03-15vis: do not segfault when given a NULL command to processMarc André Tanner1-0/+2
2016-03-12vis: overhaul search related code, support "/ registerMarc André Tanner1-5/+2
2016-02-20vis: list layout specifc key mappings in <F1> help outputMarc André Tanner1-0/+10
2016-02-20vis: implement :langmap command to set keyboard mappingsMarc André Tanner1-0/+34
The mappings affect all non-input (i.e. insert/replace) modes. They are useful for non-latin keyboard layouts, example usage: :langmap ролд hjkl Based on a patch by Dmitriy. Close #161
2016-02-12Mark some tables as constMarc André Tanner1-8/+8
This allows them to be placed into the read only ELF section.
2016-02-10vis: tweak <F1> help text list all available key actionsMarc André Tanner1-3/+12
2016-02-07vis: export vis_window_closableMarc André Tanner1-8/+2
2016-02-07vis: mark output of pipe command as savedMarc André Tanner1-0/+3
2016-02-01Improve cursor position after :substitute commandMarc André Tanner1-5/+5
2016-01-31Rename stderr field to errMarkus Teich1-10/+10
The name `stderr` was confused by the compiler with the following defines: $ grep -r "define stderr" ./dependency/install/usr/include/stdio.h:#define stderr (stderr) ./dependency/sources/musl-1.1.12/include/stdio.h:#define stderr (stderr)
2016-01-29vis: implement new pipe/write out command :| or :w !Marc André Tanner1-1/+52
2016-01-29vis: factor out filter command implementationMarc André Tanner1-50/+92
2016-01-19vis: improve :-command argument tokenizingMarc André Tanner1-3/+11
Should now handle trailing white spaces.
2016-01-18vis: fix segfault upon :qallMarc André Tanner1-4/+6
2016-01-17vis: make :e an alias for :editMarc André Tanner1-1/+1
2016-01-16vis: move selected prompt entry to end of the fileMarc André Tanner1-1/+1
Close #70
2016-01-14vis: s/VIS_MODE_LAST/VIS_MODE_INVALID/gMarc André Tanner1-3/+3
2016-01-14vis-cmds: resolve conflict with BSD getmode(3)Marc André Tanner1-3/+3
Closes #147
2016-01-13Implement command/search prompt history as a regular fileMarc André Tanner1-3/+13
2016-01-13vis: reindent :-command definitionsMarc André Tanner1-26/+26
2016-01-13vis: implement :map-window and :unmap-windowMarc André Tanner1-5/+24
They allow per window run time configurable key bindings.
2016-01-13vis: allow :-commands containing a hyphenMarc André Tanner1-1/+1
2016-01-13vis: implement :map and :unmapMarc André Tanner1-0/+77
Remember that vis' bindings are always recursive. Hence if you do stupid things you will get yourself into an endless loop.
2016-01-13vis: cleanup key binding definitionsMarc André Tanner1-17/+7
This removes the tree based mode structures and instead merges all keybindings in flat modes which uses some more memory but will allow (per mode) run-time configurable key bindings. Make sure to update/remove config.h.
2016-01-13Add -pedantic to debug CFLAGS and fix resulting warningsMarc André Tanner1-1/+1
2015-12-26vis: refactor Lua integrationMarc André Tanner1-0/+2
Lua support can now be disabled at compile time using: $ make CONFIG_LUA=0 This commit also adds an initial Lua API and provides a few default hooks. We now also require Lua >= 5.2 due to the uservalue constructs. In principle the same functionality could be implemented using function environments from Lua 5.1.
2015-11-28vis: add namespace prefix for MARK_SELECTION_{START,END}Marc André Tanner1-4/+4
2015-11-28view: remove ViewEvent infrastructureMarc André Tanner1-1/+1
The only used event handler was used to update the '< and '> marks which is now taken care of by the leave handler of the visual modes.
2015-11-27vis: close correct file descriptor upon failure in filter commandMarc André Tanner1-2/+2
2015-11-23vis: use file open dialog for all directoriesMarc André Tanner1-2/+6
2015-11-08Remove trailing white space from source filesMarc André Tanner1-5/+5
2015-11-08vis: implement :set colorcolumnMarc André Tanner1-0/+5
2015-11-08vis: implement :set themeMarc André Tanner1-0/+9
2015-11-08vis: implement :set cursorlineMarc André Tanner1-0/+11
2015-11-08vis: experimental support for lua/lpeg based syntax highlightingMarc André Tanner1-1/+1
The lua based lexers are searched in the following order: $VIS_PATH/lexers $HOME/.vis/lexers /usr/share/vis/lexers followed by the standard lua package.path
2015-11-08vis: remove regex based syntax highlightingMarc André Tanner1-11/+6
2015-11-07vis: move :-commands into their own fileMarc André Tanner1-0/+1064