From 9b587025d39d98ee5a0545e85d3315d3cb232385 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 1 Mar 2022 12:40:43 +0300 Subject: [PATCH] :Align --- .../pack/stargrave/start/align/autoload/align.vim | 13 +++++++++++++ .../pack/stargrave/start/align/plugin/align.vim | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 vim/.vim/pack/stargrave/start/align/autoload/align.vim create mode 100644 vim/.vim/pack/stargrave/start/align/plugin/align.vim diff --git a/vim/.vim/pack/stargrave/start/align/autoload/align.vim b/vim/.vim/pack/stargrave/start/align/autoload/align.vim new file mode 100644 index 0000000..869fd50 --- /dev/null +++ b/vim/.vim/pack/stargrave/start/align/autoload/align.vim @@ -0,0 +1,13 @@ +" something that won't be met anywhere +let s:sep = "₀◎○ë" + +function! align#do(first, last, sep) abort + let in = [] + for n in range(a:first, a:last) + let in = add(in, substitute(getline(n), a:sep, "\t" . s:sep, "g")) + endfor + let out = systemlist("column -t -s \"\t\"", add(in, "")) + for n in range(a:first, a:last) + call setline(n, substitute(out[n - a:first], " " . s:sep, a:sep, "g")) + endfor +endfunction diff --git a/vim/.vim/pack/stargrave/start/align/plugin/align.vim b/vim/.vim/pack/stargrave/start/align/plugin/align.vim new file mode 100644 index 0000000..5d95b11 --- /dev/null +++ b/vim/.vim/pack/stargrave/start/align/plugin/align.vim @@ -0,0 +1,2 @@ +if exists("*align#do") | finish | endif +command! -nargs=1 -range Align call align#do(, , ) -- 2.44.0