From f268273a37896b776f1faaeb4d7d099a1f164238 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Mon, 28 Jan 2019 17:16:52 +0100 Subject: [vis] backspace removes all spaces inserted by expandtab --- config/vis/visrc.lua | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'config') diff --git a/config/vis/visrc.lua b/config/vis/visrc.lua index a4a2a14..4bf1239 100644 --- a/config/vis/visrc.lua +++ b/config/vis/visrc.lua @@ -21,7 +21,8 @@ end) vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- Default settings - vis:command('set tabwidth 4') + tabwidth = 4 + vis:command('set tabwidth '..tabwidth) vis:command('set autoindent') vis:command('set number') vis:command('set colorcolumn 80') @@ -34,11 +35,23 @@ vis.events.subscribe(vis.events.WIN_OPEN, function(win) end if win.syntax == "python" then - vis:command("set expand") + vis:command('set expandtab') + vis:map(vis.modes.INSERT, '', function() + local found_tab = true + for selection in vis.win:selections_iterator() do + local pos = selection.pos + if not pos or pos < tabwidth or vis.win.file:content(pos - tabwidth, tabwidth) ~= string.rep(' ', tabwidth) then + found_tab = false + break + end + end + vis:feedkeys(string.rep('', found_tab and tabwidth or 1)) + end) end end end) + -- load plugins that hook WIN_OPEN to change settings after hook with default settings require('plugins/vis-editorconfig/editorconfig') -- cgit v1.2.3