From 4b187aad773f4f8e7f1e649953bcc17fe425b0bc Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Sun, 9 Jun 2024 13:32:11 +0200 Subject: vgrep --- flake.nix | 1 + mut/neovim/fnl/conf/init.fnl | 45 ++++++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/flake.nix b/flake.nix index 65d4e0b..731dd66 100644 --- a/flake.nix +++ b/flake.nix @@ -50,6 +50,7 @@ (composeManyExtensions [ (import ./overlays/vimPlugins.nix {inherit pkgs;}) (import ./overlays/openpomodoro-cli.nix {inherit pkgs lib;}) + (import ./overlays/fzf.nix {inherit pkgs lib;}) inputs.neovim-nightly-overlay.overlay ]) ]; 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://" "") "Bi") 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") (map :n "]q" ":cnext") (map :n "[x" ":lprevious") (map :n "]x" ":lnext") (map :n :xp #(fzf.files)) - (map :n ":" #(do - (var keys "") - (if (not= (vim.opt_local.filetype:get) "oil") - (set keys (.. ":silent grep " (vim.fn.bufname "%") "Bi")) - (do - (local f (vim.fn.bufname "%")) - (set keys (.. ":silent grep " (f:gsub "oil://" "") "Bi")))) - (vim.api.nvim_feedkeys - (vim.api.nvim_replace_termcodes - keys true false true) - :n false))) - (map :n ";" #(do - (var keys "") - (if (not= (vim.opt_local.filetype:get) "oil") - (set keys (.. ":silent grep " (vim.fn.fnamemodify (vim.fn.bufname "%") ":h") "Bi")) - (do - (local f (vim.fn.bufname "%")) - (set keys (.. ":silent grep " (f:gsub "oil://" "") "Bi")))) - (vim.api.nvim_feedkeys - (vim.api.nvim_replace_termcodes - keys true false true) - :n false))) + (map :n ":" #(i-grep "" (vim.fn.bufname "%"))) + (map :v ":" ":Vgrep!") + (map :n ";" #(i-grep "" (vim.fn.fnamemodify (vim.fn.bufname "%") ":h"))) + (map :v ";" ":Vgrep") (map :n "'" ":silent args `fd `") (map :n :xa #(fzf.args)) (map :n "x;" #(fzf.quickfix)) @@ -132,6 +120,17 @@ (local fzf (require "fzf-lua")) ((. fzf "register_ui_select"))) +(vim.api.nvim_create_user_command + :Vgrep + (fn [{: bang}] + (local [buf row >col] (vim.fn.getpos "'>")) + (local [line & rest] (vim.api.nvim_buf_get_text 0 (- 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}] -- cgit v1.2.3