Further improved visual-execute

- Now also works in insert mode with <C-Space> (only current line)
- Made vim.column more robust and added col alias
This commit is contained in:
Talia 2018-03-12 09:30:49 +01:00
parent d36e470044
commit 3d427643bb
2 changed files with 15 additions and 6 deletions

View file

@ -1,4 +1,4 @@
--vim: set noexpandtab :miv-- -- vim: set noexpandtab :miv --
tree = (tab, level=0, skip="") -> tree = (tab, level=0, skip="") ->
if level==0 if level==0
print "┐" print "┐"
@ -6,7 +6,7 @@ tree = (tab, level=0, skip="") ->
pre = (lvl, skip) -> pre = (lvl, skip) ->
for i=1,lvl for i=1,lvl
if skip\sub(i,i) == "y" if skip\sub(i,i) == "y"
io.write " " io.write " "
else else
io.write "│ " io.write "│ "
@ -27,15 +27,18 @@ tree = (tab, level=0, skip="") ->
import max from math import max from math
column = (col) -> column = (col) ->
if type(col)!="table" then col = {col}
pad = (str, len) -> pad = (str, len) ->
str..string.rep(" ", len-#str) str..string.rep(" ", len-#str)
width = 0 width = 0
for box in *col for box in *col
if type(box)!="table" then box = {box}
for elem in *box for elem in *box
width = max(width, #elem) width = max(width, #elem)
print "┌─"..string.rep("─",width).."─┐" print "┌─"..string.rep("─",width).."─┐"
for idx,box in ipairs(col) for idx,box in ipairs(col)
if type(box)!="table" then box={box}
last = idx==#col last = idx==#col
for elem in *box for elem in *box
io.write "│ " io.write "│ "
@ -58,4 +61,8 @@ draw = ->
print table.concat(line, " ") print table.concat(line, " ")
{:tree, :column, :box, :draw} {
:tree, :column, :box, :draw
-- Aliases
col: column
}

8
vimrc
View file

@ -409,14 +409,16 @@ noremap gk k
nnoremap Y y$ nnoremap Y y$
" --- VISUAL EXECUTE --- " --- VISUAL EXECUTE ---
vnoremap <C-CR> ""y<CR>
\ :call setreg("\"", substitute(getreg("\""), "\n", "", ""), "v")<CR>
\ :<C-r>"<CR>`<
let $LUA_PATH = $LUA_PATH.";".expand("<sfile>:p:h")."/lua/?.lua" let $LUA_PATH = $LUA_PATH.";".expand("<sfile>:p:h")."/lua/?.lua"
let g:mooncompile = "!moonc ".expand("<sfile>:p:h")."/lua" let g:mooncompile = "!moonc ".expand("<sfile>:p:h")."/lua"
command! Mooncompile silent exec g:mooncompile command! Mooncompile silent exec g:mooncompile
let g:exe_prg = "moonc -- | lua -l vim -" let g:exe_prg = "moonc -- | lua -l vim -"
vnoremap <CR> :<C-U>exec "'<,'>!".g:exe_prg<CR> vnoremap <CR> :<C-U>exec "'<,'>!".g:exe_prg<CR>
vnoremap <C-CR> ""y<CR> inoremap <C-Space> <C-[>0v$:<C-U>exec "'<,'>!".g:exe_prg<CR>
\ :call setreg("\"", substitute(getreg("\""), "\n", "", ""), "v")<CR>
\ :<C-r>"<CR>`<
" --- OTHER --- " --- OTHER ---
" Don't exit visual mode when "shifting" " Don't exit visual mode when "shifting"