summaryrefslogtreecommitdiff
path: root/vis-cmds.c
AgeCommit message (Collapse)Author
2016-05-22vis: consider :set horizon setting when syntax highlightingMarc André Tanner
2016-05-22vis: move syntax highlighting to pure Lua codeMarc André Tanner
2016-05-18vis: add #define for VIS_MENUMarc André Tanner
2016-05-18vis: add an interactive mode to vis_pipe{,_collect}(...)Marc André Tanner
Previously the interactive mode was implicitly enabled by passing an invalid range. However for some use cases (e.g. completion) we need to be able to pipe a given text range to an external process without also redirecting stderr (which is used to draw the slmenu interface on top of vis).
2016-05-13vis: clean up key mapping implementationMarc André Tanner
2016-05-10Revert "vis: clean up interaction between vis and ui"Marc André Tanner
This caused issues on OpenBSD where it crashed the terminal. Also on Mac OS X suspend via ^Z (Ctrl-Z) was missing a \r i.e. the shell prompt was not properly redrawn. While in principle user interfaces should not have to depend on libtermkey, in practice this won't be an issue unless we are adding a non-terminal based UI (which won't happen anytime soon). This reverts commit 8f92b98848f9366e78c7aa824615bade83971513. Close #311
2016-05-04vis: clean up interaction between vis and uiMarc André Tanner
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é Tanner
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é Tanner
Close #271
2016-04-23vis: display lua search paths in :help outputMarc André Tanner
2016-04-21vis: also show user registered :-commands in :help outputMarc André Tanner
2016-04-21vis: list usable symbolic keys in :help outputMarc André Tanner
2016-04-21vis: add infrastructure to register custom :-commandsMarc André Tanner
2016-04-19vis: add :set horizon optionDavid B. Lamkins
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é Tanner
2016-04-15vis: fix wrong usage message for :unmap commandMarc André Tanner
2016-04-15vis: improve handling of ~ and environment variables when opening filesMarc André Tanner
2016-04-14vis: allow mapping of <Space>Marc André Tanner
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é Tanner
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é Tanner
Close #224
2016-04-08vis: make ZZ work for unnamed but unmodified bufferMarc André Tanner
Close #236
2016-04-07Make explicit the space keybinding on help.Joshua Haase
2016-04-03vis: reimplement file open dialogMarc André Tanner
2016-04-03sam: unify vi(m) and sam command lineMarc André Tanner
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é Tanner
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é Tanner
2016-03-25vis: remove __DATE__ and __TIME__ references to aid with reproducible buildsMarc André Tanner
2016-03-25vis: do not crash when using vis:command without active windowMarc André Tanner
2016-03-15vis: do not segfault when given a NULL command to processMarc André Tanner
2016-03-12vis: overhaul search related code, support "/ registerMarc André Tanner
2016-02-20vis: list layout specifc key mappings in <F1> help outputMarc André Tanner
2016-02-20vis: implement :langmap command to set keyboard mappingsMarc André Tanner
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é Tanner
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é Tanner
2016-02-07vis: export vis_window_closableMarc André Tanner
2016-02-07vis: mark output of pipe command as savedMarc André Tanner
2016-02-01Improve cursor position after :substitute commandMarc André Tanner
2016-01-31Rename stderr field to errMarkus Teich
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é Tanner
2016-01-29vis: factor out filter command implementationMarc André Tanner
2016-01-19vis: improve :-command argument tokenizingMarc André Tanner
Should now handle trailing white spaces.
2016-01-18vis: fix segfault upon :qallMarc André Tanner
2016-01-17vis: make :e an alias for :editMarc André Tanner
2016-01-16vis: move selected prompt entry to end of the fileMarc André Tanner
Close #70
2016-01-14vis: s/VIS_MODE_LAST/VIS_MODE_INVALID/gMarc André Tanner
2016-01-14vis-cmds: resolve conflict with BSD getmode(3)Marc André Tanner
Closes #147
2016-01-13Implement command/search prompt history as a regular fileMarc André Tanner
2016-01-13vis: reindent :-command definitionsMarc André Tanner
2016-01-13vis: implement :map-window and :unmap-windowMarc André Tanner
They allow per window run time configurable key bindings.
2016-01-13vis: allow :-commands containing a hyphenMarc André Tanner