aboutsummaryrefslogtreecommitdiff
path: root/vis-cmds.c
AgeCommit message (Collapse)AuthorFilesLines
2016-05-04vis: clean up interaction between vis and uiMarc André Tanner1-2/+1
A concrete user interface implementation should not have to depend on libtermkey. Therefore the vis core now uses an independent instance to parse keys.
2016-04-29vis: do not crash when processing :-commands and no window is activeMarc André Tanner1-19/+40
This is needed to make the vis.event.start Lua callback useful, setting global options should be possible even if no windows exist yet. The :set command options should probably be cleaned up further, some of them apply only to the currently active window while others have a global effect.
2016-04-28vis: unmap all mapped prefixes if a new mapping is forcedMarc André Tanner1-36/+27
Close #271
2016-04-23vis: display lua search paths in :help outputMarc André Tanner1-0/+15
2016-04-21vis: also show user registered :-commands in :help outputMarc André Tanner1-4/+6
2016-04-21vis: list usable symbolic keys in :help outputMarc André Tanner1-1/+76
2016-04-21vis: add infrastructure to register custom :-commandsMarc André Tanner1-0/+44
2016-04-19vis: add :set horizon optionDavid B. Lamkins1-0/+5
Can be used to specify the number of bytes before the visible area to consider for syntax highlighting. Defaults to 32K for now, whereas before it was 16K.
2016-04-19vis: add an unsigned option type for :set commandMarc André Tanner1-1/+3
2016-04-15vis: fix wrong usage message for :unmap commandMarc André Tanner1-1/+1
2016-04-15vis: improve handling of ~ and environment variables when opening filesMarc André Tanner1-1/+5
2016-04-14vis: allow mapping of <Space>Marc André Tanner1-4/+3
One should generally use <Space> in mappings: :map! normal <Space> h except for insert/replace mode where a literal space has to be used: :map! insert " " foo
2016-04-14vis: add #defines to ease overriding of utility namesMarc André Tanner1-1/+5
This should ease packaging for systems with an existing vis(1) binary.
2016-04-08vis: let :e recreate a window at the same location as the old oneMarc André Tanner1-1/+5
Close #224
2016-04-08vis: make ZZ work for unnamed but unmodified bufferMarc André Tanner1-1/+3
Close #236
2016-04-07Make explicit the space keybinding on help.Joshua Haase1-1/+1
2016-04-03vis: reimplement file open dialogMarc André Tanner1-38/+29
2016-04-03sam: unify vi(m) and sam command lineMarc André Tanner1-761/+59
The following vi commands have been dropped: - saveas - xit - ! The following commands are only recognized in their short form: - e (edit) - q (quit) - s (substitute) - w (write) - r (read)
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.