aboutsummaryrefslogtreecommitdiff
path: root/main.c
AgeCommit message (Collapse)AuthorFilesLines
2016-11-09vis: handle cancelation of `r` commandMarc André Tanner1-0/+3
Do not alter the text if <Escape> is pressed instead of a regular replacement character.
2016-11-09vis: improve `r` in normal and replace modeMarc André Tanner1-3/+20
In normal mode `r<key>` was previously implemented as `R<key><Escape>`. However this does not work when the replacement key is `<Enter>` to insert a new line, because in replace mode new lines are not overwritten. The count is now also respected. Also properly support `r` in visual mode where before it was aliased to `c`. Fix #190
2016-11-09vis: unify VIS_OP_{INSERT,REPLACE} implementationMarc André Tanner1-3/+3
They both perform a motion before changing mode.
2016-10-12Only complete up to cursor positionMarc André Tanner1-2/+4
2016-10-11File completion updatesRichard Burke1-4/+4
2016-10-03vis: improve cursor positioning after scrollingMarc André Tanner1-15/+23
Make cursor placement after scrolling (half) pages up/down less arbitrary. Close #390, fix #391
2016-10-02vis: make <C-w> delete word instead of WORDMarc André Tanner1-1/+1
Close #392
2016-09-25vis: disable language map for replacement character of `r` commandMarc André Tanner1-1/+3
The character following the `r` command in normal mode should be treated as regular input given in insert/replace mode, that is no tranformation should be applied. Temporarily disable the language map for this reason. Close #382
2016-09-25vis: move file name and word completion logic to a shell scriptMarc André Tanner1-4/+2
The shell script should be reviewed for quoting issues, currently it allows command injections as in: $ vis-complete "'; rm -f some-file; echo " However it is intended for interactive usage and from within vis it is only ever called with a valid completion prefix. The file name completion logic now supports nested directories. Close #347
2016-08-24vis: implement gJ like behaviorMarc André Tanner1-12/+15
The behavior is not exactly the same because vim preserves any existing white spaces wihle we remove existing ones but do not insert additional ones. The vim behavior (essentially only deleating new lines) can be achived using something like: :x/\n/d Close #374
2016-08-07vis: use vis-open for gf implementationMarc André Tanner1-27/+8
This has the effect that ~ and $HOME will be expanded by the shell. However it also opens files which do not yet exist. Fixes #346
2016-05-22vis: refactor status line handlingMarc André Tanner1-0/+1
Make window status bar content configurable via Lua.
2016-05-22vis: move syntax highlighting to pure Lua codeMarc André Tanner1-0/+2
2016-05-22vis: always start vis-menu with -b flagMarc André Tanner1-4/+4
2016-05-19vis: tweak completion commandsMarc André Tanner1-4/+4
Change tr command to split words, this won't properly work with Unicode but should at least avoid unwanted non-word symbols and be POSIX conformant. A possible alternative would be to use grep -o -E '\w+' while the -o option is not part of POSIX it seems to be mostly supported. However the \w regex syntax might not be supported. Force ls(1) output to be linewise and surpress the same prefix. Change sed invocation to only replace proper prefixes.
2016-05-19vis: fix behavior of complete-word on BSDMichel Martens1-2/+2
2016-05-18vis: add completion for file names in current directory via <C-x><C-f>Silvan Jegen1-0/+22
2016-05-18vis: add #define for VIS_MENUMarc André Tanner1-1/+1
2016-05-18vis: add completion for current file contents via <C-n> in insert modeMarc André Tanner1-0/+56
Based on a patch by Silvan Jegen. Close #128, close #277
2016-05-13vis: clean up key mapping implementationMarc André Tanner1-1/+1
2016-05-10Revert "vis: clean up interaction between vis and ui"Marc André Tanner1-1/+0
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-08Fix autoindent when using ORichard Burke1-1/+5
2016-05-06Fix typo `cursor-sceenline-up` -> `cursor-screenline-up`Josh Wainwright1-1/+1
2016-05-04vis: clean up interaction between vis and uiMarc André Tanner1-0/+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-05-01vis: further cleanup input handling, introduce vis_keys_feed APIMarc André Tanner1-4/+4
2016-05-01vis: cleanup input handling, improve macro replayMarc André Tanner1-8/+4
2016-04-27vis: do not advance cursor to next line when appending with `a`Marc André Tanner1-1/+1
Close #295
2016-04-20vis-lua: trigger start event after ui has been initializedMarc André Tanner1-0/+1
2016-04-19vis: add actions for prev/next character motions within the same lineMarc André Tanner1-0/+12
For now they are not mapped to any key by default, but can be enabled with: :map! normal l <cursor-line-char-next> :map! normal h <cursor-line-char-prev>
2016-04-12Add "[(" and "])" motions for jumping to a parenthese pair's start/endRob Pilling1-0/+12
2016-04-12Add "[{" and "]}" motions to jump to a block's start/endRob Pilling1-0/+12
2016-04-11main.c: correct name of function, cursor>windowJosh Wainwright1-1/+1
"open-file-under-cursor-new-cursor" should be "open-file-under-cursor-new-window"
2016-04-05vis: fix coverity scan warningsMarc André Tanner1-1/+1
2016-04-05vis: let <C-l> remove all but the count cursor columnMarc André Tanner1-0/+33
2016-04-04vis: let <C-c> remove the count cursor columnMarc André Tanner1-0/+28
2016-04-04vis: fix selection column rotationMarc André Tanner1-5/+8
2016-04-04vis: in visual mode allow navigation among cursors using <C-j> and <C-k>Marc André Tanner1-2/+6
2016-04-03sam: unify vi(m) and sam command lineMarc André Tanner1-7/+1
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-03vis: in visual mode let \ trim selectionsMarc André Tanner1-0/+31
2016-03-30vis: implement selection rotationMarc André Tanner1-0/+79
In visual mode + and - will rotate the selection count times to the right or left respectively. If there exists a line containing multiple selections then the rotation happens within each line. Otherwise if each line contains at most one selection the rotation is performed among all existing selections.
2016-03-28vis: Ctrl-{j,k} do not create duplicate cursors, instead advance primary oneMarc André Tanner1-1/+8
2016-03-28vis: support right alignment of selections in visual mode with <S-Tab>Marc André Tanner1-8/+25
2016-03-28vis: support count for {Meta-Ctrl,Ctrl}-{j,k}Marc André Tanner1-23/+26
Create count new cursors on the lines above/below.
2016-03-28vis: fix changing of primary cursor via Ctrl-{u,d}Marc André Tanner1-1/+1
2016-03-28vis: let Meta-Ctrl-{j,k} create new cursorMarc André Tanner1-1/+28
on the line above/below the first/last existing cursor.
2016-03-28vis: align selections with <Tab> in visual modeMarc André Tanner1-2/+5
2016-03-28vis: support column based alignmentMarc André Tanner1-22/+27
That is when multiple cursors are on the same line, the first cursor on every line is aligned, then the second one and so on.
2016-03-28view: change cursor creation API to take an initial positionMarc André Tanner1-11/+11
2016-03-15vis: add support for command register ":Marc André Tanner1-0/+2
2016-03-12vis: overhaul search related code, support "/ registerMarc André Tanner1-0/+2