aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-02-25vis: use standard registers for macro recordingsMarc André Tanner5-69/+52
Also support upper case register to append to an existing macro.
2016-02-23Make f, F, t, T motion work when replaying a macroMarc André Tanner1-6/+9
2016-02-23Merge branch 'line-motions' of https://github.com/rgburke/visMarc André Tanner1-0/+2
2016-02-22Added + and - motionsRichard Burke1-0/+2
2016-02-22initized variablesChristian Hesse1-2/+2
2016-02-22remove unused function cmd()Christian Hesse1-7/+0
2016-02-21vis: only move to start of yanked range if it is not line wiseMarc André Tanner1-1/+1
Otherwise this completely breaks the common case of yanking a whole line with yy. This also means that the beavior in visual line mode is different than in vim. Partially reverts ff57c0b8598a60617983ebe25d34c79a9c6bc511.
2016-02-21vis: insert missing new line when putting at the end of fileMarc André Tanner1-0/+3
Something like ifoo<Escape>yyp should produce foo foo not foofoo as was the case before.
2016-02-21Cleanup new line insertion codeMarc André Tanner3-20/+15
2016-02-20vis: move cursor to next char after ~ in normal modeMarc André Tanner1-1/+1
This will not work as expected when given a count. Close #181
2016-02-20vis: reject obviously recursive key bindingsMarc André Tanner1-0/+3
This does only detect the simplest cases.
2016-02-20recursive ib fixErlend Fagerheim1-1/+1
2016-02-20vis: list layout specifc key mappings in <F1> help outputMarc André Tanner1-0/+10
2016-02-20Description for langmap commandxomachine1-0/+18
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-20colorcolumn enhancementRichard Burke1-3/+19
Allow colorcolumn to be greater than the view width. Lines that wrap now have the colorcolumn highlighted.
2016-02-19update lexer for Arch Linux PKGBUILDChristian Hesse2-6/+38
2016-02-18vis: make put commands p, P, gp, gP available in visual modesMarc André Tanner1-4/+4
Close #167
2016-02-18vis: move cursor to start of yanked rangeMarc André Tanner1-1/+1
Close #176
2016-02-18Update README to reflect changes to Lua APIMarc André Tanner1-5/+14
2016-02-18vis-lua: add text object ii to match based on syntax item/tokenMarc André Tanner1-0/+31
Roughly speaking this should match whatever is colored the same way as the cursor.
2016-02-18vis-lua: add helper functions to implement motions/text objects in luaMarc André Tanner1-0/+27
2016-02-18vis-lua: add file:content(pos, len) functionMarc André Tanner1-0/+19
2016-02-18vis-lua: expose vis:textobject_registerMarc André Tanner1-0/+24
2016-02-18Add infrastructure to register custom text object functionsMarc André Tanner4-7/+37
2016-02-18vis-lua: expose vis:textobject(id)Marc André Tanner3-2/+12
2016-02-18vis-lua: add vis:motion_register functionMarc André Tanner1-0/+24
It registers a lua function which will be called whenever the motion is used.
2016-02-18Add infrastructure to add custom motion functionsMarc André Tanner4-1/+40
A motion function can be registered with vis_motion_register(...) the returned id (if non negative) can then be used as an argument to vis_motion(...)
2016-02-18Add a simple dynamically growing array data structureMarc André Tanner2-0/+106
2016-02-18vis-lua: expose vis_motion to luaMarc André Tanner1-0/+9
2016-02-18vis-lua: expose mode constants to luaMarc André Tanner2-2/+30
2016-02-18vis-lua: expose win.syntaxMarc André Tanner1-0/+17
2016-02-18vis-lua: expose cursor:to(line, col)Marc André Tanner1-2/+21
2016-02-18vis-lua: promote vis to a real objectMarc André Tanner4-17/+73
That is from now on use vis:method instead of vis.method
2016-02-18vis: add possibility to bind keys to lua functionsMarc André Tanner2-1/+87
2016-02-18map: set errno to EEXIST when trying to map_put a duplicate valueMarc André Tanner1-0/+1
2016-02-18map: set errno to ENOENT if prefix for map_closest does not existMarc André Tanner1-1/+1
2016-02-18vis: fix possible undefined zero allocationMarc André Tanner1-1/+1
2016-02-18vis: enable number increment <C-a> and decrement <C-x> in normal modeMarc André Tanner1-0/+2
2016-02-18vis: use <Tab> to align multiple cursors in normal modeMarc André Tanner2-2/+2
2016-02-18vis: add insfrastructure to support global key mappingsMarc André Tanner5-0/+23
Except for insert/replace mode keys get translated before any key bindings are evaluated. This is useful for non-english/latin keyboard layouts.
2016-02-17Display NUL bytes correctlyRichard Burke2-5/+5
2016-02-16Update make standalone to use musl-1.1.13Marc André Tanner1-2/+2
2016-02-16Display ASCII-127 (DEL) character as ^?Richard Burke1-4/+5
2016-02-15Add text object to cover lines with same indentation levelMarc André Tanner6-0/+68
By default it is mapped to i<Tab> and a<Tab> however there is currently no difference between the inner and regular version.
2016-02-15vis: add <C-c> as an alias for <Escape> in normal modeMarc André Tanner1-2/+2
Based on a patch by Erlend Fagerheim.
2016-02-13vis: in insert mode <S-Tab> aligns all cursors by inserting spacesMarc André Tanner3-0/+47
2016-02-13Convert call sites of text_line_char_{get,set} to text_line_width_{get,set}Marc André Tanner3-8/+7
2016-02-13text-motion: add functions to get/set position based on display widthMarc André Tanner2-0/+81
This is inherently a tricky thing to do because we cannot rely on the current display state. The reason being that the position/cursor which is modified might not currently be in the visible area. Tabs are a particular problem because they have a variable display width. However this new code is certainly not worse than the current behaviour which relies on text_line_char_{get,set} and thus simply counts graphemes. Not yet completely convinced that this is the right approach.
2016-02-12vis: respect window local mappings for child modesMarc André Tanner3-16/+17
Since commit 197ab824206335eab7ceed774ddeccac18fafc09 visual line and replace modes are child modes, hence we also have to consider the window local key bindings of their respective parent modes. For example in replace mode the key lookup chain is now as follows: window local replace mode -> global replace mode -> window local insert mode -> global insert mode This fixes <Enter> behaviour in prompt for replace and visual line modes.