summaryrefslogtreecommitdiff
path: root/mut
diff options
context:
space:
mode:
authorMike Vink <mike@pionative.com>2024-06-09 13:32:11 +0200
committerMike Vink <mike@pionative.com>2024-06-09 13:32:11 +0200
commit4b187aad773f4f8e7f1e649953bcc17fe425b0bc (patch)
tree29e26782df2ae35da2fb5392ec7a3f45ffb91c47 /mut
parent5013daa0e8b7e2db35d30f3c73b552b4f96b58c4 (diff)
vgrep
Diffstat (limited to 'mut')
-rw-r--r--mut/neovim/fnl/conf/init.fnl45
1 files changed, 22 insertions, 23 deletions
diff --git a/mut/neovim/fnl/conf/init.fnl b/mut/neovim/fnl/conf/init.fnl
index da78287..df5412e 100644
--- a/mut/neovim/fnl/conf/init.fnl
+++ b/mut/neovim/fnl/conf/init.fnl
@@ -42,6 +42,12 @@
(vim.keymap.del "n" "L")
(vim.keymap.del "n" "H")))))
+(fn i-grep [word file]
+ (vim.api.nvim_feedkeys
+ (vim.api.nvim_replace_termcodes
+ (.. ":silent grep " (if (not= "" word) (.. word " ") "") (file:gsub "oil://" "") "<c-f>B<left>i<space>") true false true)
+ :n false))
+
(local cope #(vim.cmd (.. ":botright copen " (math.floor (/ vim.o.lines 2.1)))))
(local oil (require :oil.actions))
(let [map vim.keymap.set]
@@ -78,35 +84,17 @@
:n false)
(vim.schedule #(do
(vim.cmd "let v:searchforward = 0")
- (map :n :/ "/Compile.*" {:buffer true})
+ (map :n :/ "/Compile.*" {:buffer truwe})
(map :n :? "?Compile.*" {:buffer true})))))
(map :n "[q" ":cprevious<cr>")
(map :n "]q" ":cnext<cr>")
(map :n "[x" ":lprevious<cr>")
(map :n "]x" ":lnext<cr>")
(map :n :<leader>xp #(fzf.files))
- (map :n "<leader>:" #(do
- (var keys "")
- (if (not= (vim.opt_local.filetype:get) "oil")
- (set keys (.. ":silent grep <c-r><c-w> " (vim.fn.bufname "%") "<c-f>B<left>i<space>"))
- (do
- (local f (vim.fn.bufname "%"))
- (set keys (.. ":silent grep " (f:gsub "oil://" "") "<c-f>B<left>i<space>"))))
- (vim.api.nvim_feedkeys
- (vim.api.nvim_replace_termcodes
- keys true false true)
- :n false)))
- (map :n "<leader>;" #(do
- (var keys "")
- (if (not= (vim.opt_local.filetype:get) "oil")
- (set keys (.. ":silent grep " (vim.fn.fnamemodify (vim.fn.bufname "%") ":h") "<c-f>B<left>i<space>"))
- (do
- (local f (vim.fn.bufname "%"))
- (set keys (.. ":silent grep " (f:gsub "oil://" "") "<c-f>B<left>i<space>"))))
- (vim.api.nvim_feedkeys
- (vim.api.nvim_replace_termcodes
- keys true false true)
- :n false)))
+ (map :n "<leader>:" #(i-grep "<c-r><c-w>" (vim.fn.bufname "%")))
+ (map :v "<leader>:" ":Vgrep!<cr>")
+ (map :n "<leader>;" #(i-grep "" (vim.fn.fnamemodify (vim.fn.bufname "%") ":h")))
+ (map :v "<leader>;" ":Vgrep<cr>")
(map :n "<leader>'" ":silent args `fd `<left>")
(map :n :<leader>xa #(fzf.args))
(map :n "<leader>x;" #(fzf.quickfix))
@@ -133,6 +121,17 @@
((. fzf "register_ui_select")))
(vim.api.nvim_create_user_command
+ :Vgrep
+ (fn [{: bang}]
+ (local [buf <row <col] (vim.fn.getpos "'<"))
+ (local [buf >row >col] (vim.fn.getpos "'>"))
+ (local [line & rest] (vim.api.nvim_buf_get_text 0 (- <row 1) (- <col 1) (- >row 1) >col {}))
+ (if bang
+ (i-grep line (vim.fn.bufname "%"))
+ (i-grep line (vim.fn.fnamemodify (vim.fn.bufname "%") ":h"))))
+ {:range 1 :bang true})
+
+(vim.api.nvim_create_user_command
:NixEdit
(fn [{: args}]
(local f (io.popen (.. "nix eval --raw " vim.env.HOME "/flake#nixosConfigurations." (vim.fn.hostname) ".pkgs." args)))