Update config and add plugins
This commit is contained in:
parent
7458d6e56b
commit
f068aec334
6 changed files with 19 additions and 203 deletions
12
.gitmodules
vendored
12
.gitmodules
vendored
|
@ -16,3 +16,15 @@
|
|||
[submodule "zsh/Plugins/zsh-history-substring-search"]
|
||||
path = zsh/Plugins/zsh-history-substring-search
|
||||
url = https://github.com/zsh-users/zsh-history-substring-search.git
|
||||
[submodule "vis/tomorrownight/plugins/vis-shebang"]
|
||||
path = vis/tomorrownight/plugins/vis-shebang
|
||||
url = https://github.com/e-zk/vis-shebang
|
||||
[submodule "vis/tomorrownight/plugins/vis-dvorak"]
|
||||
path = vis/tomorrownight/plugins/vis-dvorak
|
||||
url = https://git.disroot.org/oink/vis-dvorak
|
||||
[submodule "vis/tomorrownight/plugins/vis-smart-numbers"]
|
||||
path = vis/tomorrownight/plugins/vis-smart-numbers
|
||||
url = https://git.disroot.org/oink/vis-smart-numbers
|
||||
[submodule "vis/tomorrownight/plugins/vis-title"]
|
||||
path = vis/tomorrownight/plugins/vis-title
|
||||
url = https://github.com/erf/vis-title
|
||||
|
|
1
vis/tomorrownight/plugins/vis-dvorak
Submodule
1
vis/tomorrownight/plugins/vis-dvorak
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 8b49611a2a02e696758389516f82588b316f613d
|
1
vis/tomorrownight/plugins/vis-shebang
Submodule
1
vis/tomorrownight/plugins/vis-shebang
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit fd7aa548f3d5ea7678f1bf81739745587f075f6d
|
1
vis/tomorrownight/plugins/vis-smart-numbers
Submodule
1
vis/tomorrownight/plugins/vis-smart-numbers
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit d5120a239858d5e498603476093bd5a8253cd65f
|
1
vis/tomorrownight/plugins/vis-title
Submodule
1
vis/tomorrownight/plugins/vis-title
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 9c808f7e71b43aca31dee8553dcfce2214d7fc40
|
|
@ -2,217 +2,17 @@
|
|||
require('vis')
|
||||
require('plugins/vis-title')
|
||||
require('plugins/vis-shebang')
|
||||
require('plugins/vis-dvorak')
|
||||
require('plugins/vis-smart-numbers')
|
||||
|
||||
vis.events.subscribe(vis.events.INIT, function()
|
||||
-- Your global configuration options
|
||||
|
||||
-- Dvorak-friendly Remappings
|
||||
|
||||
-- key unmapppings
|
||||
vis:unmap(vis.modes.NORMAL, "<M-C-j>")
|
||||
vis:unmap(vis.modes.NORMAL, "<M-C-k")
|
||||
vis:unmap(vis.modes.NORMAL, "<C-w>j")
|
||||
vis:unmap(vis.modes.NORMAL, "gj")
|
||||
vis:unmap(vis.modes.NORMAL, "gJ")
|
||||
|
||||
vis:unmap(vis.modes.OPERATOR_PENDING, "j")
|
||||
vis:unmap(vis.modes.OPERATOR_PENDING, "il")
|
||||
vis:unmap(vis.modes.OPERATOR_PENDING, "al")
|
||||
vis:unmap(vis.modes.OPERATOR_PENDING, "gj")
|
||||
|
||||
vis:unmap(vis.modes.VISUAL, "<C-j>")
|
||||
vis:unmap(vis.modes.VISUAL, "il")
|
||||
vis:unmap(vis.modes.VISUAL, "al")
|
||||
vis:unmap(vis.modes.VISUAL, "gj")
|
||||
vis:unmap(vis.modes.NORMAL, "gJ")
|
||||
|
||||
-- key mappings -- followed by bind it replaces
|
||||
vis:map(vis.modes.NORMAL, "d", "<vis-motion-char-prev>") -- h
|
||||
vis:map(vis.modes.NORMAL, "h", "<vis-motion-line-down>") -- j
|
||||
vis:map(vis.modes.NORMAL, "t", "<vis-motion-line-up>") -- k
|
||||
vis:map(vis.modes.NORMAL, "n", "<vis-motion-char-next>") -- l
|
||||
vis:map(vis.modes.NORMAL, "D", "<vis-motion-window-line-top>") -- H
|
||||
vis:map(vis.modes.NORMAL, "H", "<vis-join-lines>") -- J
|
||||
vis:map(vis.modes.NORMAL, "N", "<vis-motion-window-line-bottom>") -- L
|
||||
vis:map(vis.modes.NORMAL, "l", "<vis-motion-search-repeat>") -- n
|
||||
vis:map(vis.modes.NORMAL, "L", "<vis-motion-search-repeat-backward>") -- N
|
||||
vis:map(vis.modes.NORMAL, "k", "<vis-operator-delete>") -- d
|
||||
vis:map(vis.modes.NORMAL, "K", "k$") -- D, d$
|
||||
vis:map(vis.modes.NORMAL, "<M-C-h>", "<vis-new-selection-lines-below-last>") -- <M-C-j>
|
||||
vis:map(vis.modes.NORMAL, "<M-C-t>", "<vis-new-selection-lines-above-first>") -- <M-C-k>
|
||||
vis:map(vis.modes.NORMAL, "<C-w>d", "<C-w>t") -- <C-w>h, <C-w>k
|
||||
vis:map(vis.modes.NORMAL, "<C-w>h", "<vis-window-next>") -- <C-w>j
|
||||
vis:map(vis.modes.NORMAL, "<C-w>t", "<vis-window-prev>") -- <C-w>k
|
||||
vis:map(vis.modes.NORMAL, "<C-w>n", "<C-w>h") -- <C-w>l, <C-w>j
|
||||
vis:map(vis.modes.NORMAL, "<C-w>l", ":open<Enter>") -- <C-w>n
|
||||
vis:map(vis.modes.NORMAL, "<C-h>", "<new-selection-lines-below>") -- <C-j>
|
||||
vis:map(vis.modes.NORMAL, "<C-t>", "<new-selection-lines-above>") -- <C-k>
|
||||
vis:map(vis.modes.NORMAL, "<C-n>", "<vis-selections-remove-column-except>") -- <C-l>
|
||||
vis:map(vis.modes.NORMAL, "<C-k>", "<vis-selection-next>") -- <C-d>
|
||||
vis:map(vis.modes.NORMAL, "<C-l>", "viw") -- <C-n>
|
||||
vis:map(vis.modes.NORMAL, "+", "h^") -- +, j^
|
||||
vis:map(vis.modes.NORMAL, "-", "t^") -- -, k^
|
||||
vis:map(vis.modes.NORMAL, "X", "kd") -- X, dh
|
||||
vis:map(vis.modes.NORMAL, "s", "cn") -- s, cl
|
||||
vis:map(vis.modes.NORMAL, "gD", "<vis-motion-byte-left>") -- gH
|
||||
vis:map(vis.modes.NORMAL, "gH", "<vis-join-lines-trim>") -- gJ
|
||||
vis:map(vis.modes.NORMAL, "gN", "<vis-motion-byte-right>") -- gL
|
||||
vis:map(vis.modes.NORMAL, "gL", "vgL") -- gN, vgN
|
||||
vis:map(vis.modes.NORMAL, "gd", "<vis-motion-codepoint-prev>") -- gh
|
||||
vis:map(vis.modes.NORMAL, "gh", "<vis-motion-screenline-down>") -- gj
|
||||
vis:map(vis.modes.NORMAL, "gt", "<vis-motion-screenline-up>") -- gk
|
||||
vis:map(vis.modes.NORMAL, "gn", "<vis-motion-codepoint-next>") -- gl
|
||||
vis:map(vis.modes.NORMAL, "gl", "vgl") -- gn, vgn
|
||||
vis:map(vis.modes.NORMAL, "j", "vis-motion-till-line-right") -- t
|
||||
vis:map(vis.modes.NORMAL, "J", "vis-motion-till-line-left") -- T
|
||||
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "k", "<vis-operator-delete>") -- d
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "d", "<vis-motion-char-prev>") -- h
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "h", "<vis-motion-line-down>") -- j
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "t", "<vis-motion-line-up>") -- k
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "n", "<vis-motion-char-next>") -- l
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "D", "<vis-motion-window-line-top>") -- H
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "N", "<vis-motion-window-line-bottom>") -- L
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "l", "<vis-motion-search-repeat>") -- n
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "L", "<vis-motion-search-repeat-backward>") -- N
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "in", "<vis-textobject-line-inner>") -- il
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "an", "<vis-textobject-line-outer>") -- al
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "+", "h^") -- +, j^
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "-", "t^") -- -, k^
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gD", "<vis-motion-byte-left>") -- gH
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gN", "<vis-motion-byte-right>") -- gL
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gL", "<vis-textobject-search-backward>") -- gN
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gd", "<vis-motion-codepoint-prev>") -- gh
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gh", "<vis-motion-screenline-down>") -- gj
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gt", "<vis-motion-screenline-up>") -- gk
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gn", "<vis-motion-codepoint-next>") -- gl
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "gl", "<vis-textobject-search-forward>") -- gn
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "j", "vis-motion-till-line-right") -- t
|
||||
vis:map(vis.modes.OPERATOR_PENDING, "J", "vis-motion-till-line-left") -- T
|
||||
|
||||
vis:map(vis.modes.VISUAL, "d", "<vis-motion-char-prev>") -- h
|
||||
vis:map(vis.modes.VISUAL, "h", "<vis-motion-line-down>") -- j
|
||||
vis:map(vis.modes.VISUAL, "t", "<vis-motion-line-up>") -- k
|
||||
vis:map(vis.modes.VISUAL, "n", "<vis-motion-char-next>") -- l
|
||||
vis:map(vis.modes.VISUAL, "D", "<vis-motion-window-line-top>") -- H
|
||||
vis:map(vis.modes.VISUAL, "H", "<vis-join-lines>") -- J
|
||||
vis:map(vis.modes.VISUAL, "N", "<vis-motion-window-line-bottom>") -- L
|
||||
vis:map(vis.modes.VISUAL, "l", "<vis-motion-search-repeat>") -- n
|
||||
vis:map(vis.modes.VISUAL, "L", "<vis-motion-search-repeat-backward>") -- N
|
||||
vis:map(vis.modes.VISUAL, "k", "<vis-operator-delete>") -- d
|
||||
vis:map(vis.modes.VISUAL, "<C-h>", "<C-k>") -- <C-j>, <C-d>
|
||||
vis:map(vis.modes.VISUAL, "<C-t>", "<C-u>") -- <C-k>
|
||||
vis:map(vis.modes.VISUAL, "<C-n>", "<vis-selections-remove-column-except>") -- <C-l>
|
||||
vis:map(vis.modes.VISUAL, "<C-l>", "<vis-selection-new-match-next>") -- <C-n>
|
||||
vis:map(vis.modes.VISUAL, "<C-k>", "<vis-selection-next>") -- <C-d>
|
||||
vis:map(vis.modes.VISUAL, "in", "<vis-textobject-line-inner>") -- il
|
||||
vis:map(vis.modes.VISUAL, "an", "<vis-textobject-line-outer>") -- al
|
||||
vis:map(vis.modes.VISUAL, "x", "k") -- x, d
|
||||
vis:map(vis.modes.VISUAL, "gD", "<vis-motion-byte-left>") -- gH
|
||||
vis:map(vis.modes.VISUAL, "gH", "<vis-join-lines-trim>") -- gJ
|
||||
vis:map(vis.modes.VISUAL, "gN", "<vis-motion-byte-right>") -- gL
|
||||
vis:map(vis.modes.VISUAL, "gL", "<vis-textobject-search-backward>") -- gN
|
||||
vis:map(vis.modes.VISUAL, "gd", "<vis-motion-codepoint-prev>") -- gh
|
||||
vis:map(vis.modes.VISUAL, "gh", "<vis-motion-screenline-down>") -- gj
|
||||
vis:map(vis.modes.VISUAL, "gt", "<vis-motion-screenline-up>") -- gk
|
||||
vis:map(vis.modes.VISUAL, "gn", "<vis-motion-codepoint-next>") -- gl
|
||||
vis:map(vis.modes.VISUAL, "gl", "<vis-textobject-search-forward>") -- gn
|
||||
vis:map(vis.modes.VISUAL, "j", "vis-motion-till-line-right") -- t
|
||||
vis:map(vis.modes.VISUAL, "J", "vis-motion-till-line-left") -- T
|
||||
|
||||
vis:map(vis.modes.INSERT, "<C-d>", "<Backspace>") -- <C-h>
|
||||
vis:map(vis.modes.INSERT, "<C-h>", "<vis-insert-verbatim>u000a") -- <C-j>
|
||||
vis:map(vis.modes.INSERT, "<C-t>", function(keys)
|
||||
if #keys < 2 then
|
||||
return -1 -- need more input
|
||||
end
|
||||
local file = io.popen(string.format("vis-digraph '%s' 2>&1", keys:gsub("'", "'\\''")))
|
||||
local output = file:read('*all')
|
||||
local success, msg, status = file:close()
|
||||
if success then
|
||||
if vis.mode == vis.modes.INSERT then
|
||||
vis:insert(output)
|
||||
elseif vis.mode == vis.modes.REPLACE then
|
||||
vis:replace(output)
|
||||
end
|
||||
elseif msg == 'exit' then
|
||||
if status == 2 then
|
||||
return -1 -- prefix need more input
|
||||
end
|
||||
vis:info(output)
|
||||
end
|
||||
return #keys
|
||||
end, "Insert digraph") -- <C-k>
|
||||
vis:map(vis.modes.INSERT, "<C-k>", "<vis-operator-shift-left><vis-operator-shift-left>") -- <C-d>
|
||||
vis:map(vis.modes.INSERT, "<C-l>", function()
|
||||
local win = vis.win
|
||||
local file = win.file
|
||||
local pos = win.selection.pos
|
||||
if not pos then return end
|
||||
|
||||
local range = file:text_object_word(pos > 0 and pos-1 or pos);
|
||||
if not range then return end
|
||||
if range.finish > pos then range.finish = pos end
|
||||
if range.start == range.finish then return end
|
||||
local prefix = file:content(range)
|
||||
if not prefix then return end
|
||||
|
||||
vis:feedkeys("<vis-selections-save><Escape><Escape>")
|
||||
-- collect words starting with prefix
|
||||
vis:command("x/\\b" .. prefix .. "\\w+/")
|
||||
local candidates = {}
|
||||
for sel in win:selections_iterator() do
|
||||
table.insert(candidates, file:content(sel.range))
|
||||
end
|
||||
vis:feedkeys("<Escape><Escape><vis-selections-restore>")
|
||||
if #candidates == 1 and candidates[1] == "\n" then return end
|
||||
candidates = table.concat(candidates, "\n")
|
||||
|
||||
local cmd = "printf '" .. candidates .. "' | sort -u | vis-menu"
|
||||
local status, out, err = vis:pipe(cmd)
|
||||
if status ~= 0 or not out then
|
||||
if err then vis:info(err) end
|
||||
return
|
||||
end
|
||||
out = out:sub(#prefix + 1, #out - 1)
|
||||
file:insert(pos, out)
|
||||
win.selection.pos = pos + #out
|
||||
-- restore mode to what it was on entry
|
||||
vis.mode = vis.modes.INSERT
|
||||
end, "Complete word in file") -- <C-n>
|
||||
vis:map(vis.modes.INSERT, "<C-j>", "<vis-operator-shift-right><vis-operator-shift-right>") -- <C-t>
|
||||
|
||||
-- Binds to remap
|
||||
-- <M-C-j> -- Done
|
||||
-- <M-C-k> -- Done
|
||||
-- <C-w>h -- Done
|
||||
-- <C-w>j -- Done
|
||||
-- <C-w>k -- Done
|
||||
-- <C-w>l -- Done
|
||||
-- <C-w>n -- Done
|
||||
-- <C-h> -- Done
|
||||
-- <C-j> -- Done
|
||||
-- <C-k> -- Done
|
||||
-- <C-l> -- Done
|
||||
-- <C-n> -- Done
|
||||
-- <C-d> -- Done
|
||||
-- gH gJ gK gL gh gj gk gl gN gn gD gd all modes -- Done
|
||||
-- il -- all modes -- Done
|
||||
-- al -- all modes -- Done
|
||||
-- Operator Pending binds for n -- Done
|
||||
-- Capitol letters for HJKLDN in all modes -- Done
|
||||
-- All binds involving t -- Done
|
||||
|
||||
-- Unmap old binds -- Done
|
||||
-- Add propor descpiptions
|
||||
-- Comment and check
|
||||
-- Replace arrows with actual <vis-motion*> -- Done
|
||||
end)
|
||||
|
||||
vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- luacheck: no unused args
|
||||
-- Your per window configuration options
|
||||
vis:command('set theme base16-tomorrow-night')
|
||||
vis:command('set number')
|
||||
--vis:command('set number')
|
||||
vis:command('set cursorline')
|
||||
end)
|
||||
|
||||
|
|
Loading…
Reference in a new issue