add fzf to neovim
change
commit 1e04d57734187703c933d9ed2bb08d7f5a1ce29f
author Alpha Chen <alpha@kejadlen.dev>
date
parent ae3f6275
diff --git a/.config/nvim/fnl/init.fnl b/.config/nvim/fnl/init.fnl
index ea5314da..5414d395 100644
--- a/.config/nvim/fnl/init.fnl
+++ b/.config/nvim/fnl/init.fnl
@@ -1,15 +1,35 @@
 (vim.cmd "colorscheme paramount")
 
 (set vim.opt.list true)
-(set vim.opt.listchars "tab:\\u21e5 ,trail:\\u2423,extends:\\u21c9,precedes:\\u21c7,nbsp:\\u00b7")
+(set vim.opt.listchars {:tab "\\u21e5 "
+                        :trail "\\u2423"
+                        :extends "\\u21c9"
+                        :precedes "\\u21c7"
+                        :nbsp "\\u00b7"})
+
 (set vim.opt.number true)
 
 (set vim.g.mapleader " ")
 
+; (let [{: keymap} vim
+;       nnoremap #(keymap.set :n $1 $2 {:noremap true})
+;       inoremap #(keymap.set :i $1 $2 {:noremap true})]
+
+;   ; clear hl
+;   (nnoremap :<leader>/ ":nohlsearch<cr>")
+
+;   ; quick save
+;   (nnoremap "\\\\" ":write<cr>")
+;   (inoremap "\\\\" "<esc>:write<cr>")
+
+;   ; fzf
+;   (nnoremap :<leader>b ":Buffers<cr>")
+;   (nnoremap :<leader>f ":Files<cr>")
+;   (nnoremap :<leader>t ":Tags<cr>"))
 (vim.keymap.set :n "\\\\" ":write<cr>" {:noremap true})
 (vim.keymap.set :i "\\\\" "<esc>:write<cr>" {:noremap true})
 
-(vim.keymap.set :n :<leader>/ ":nohlsearch<cr>" opts)
+(vim.keymap.set :n :<leader>/ ":nohlsearch<cr>" {:noremap true})
 
 ;; restore cursor location
 ;;
@@ -17,11 +37,10 @@
 (let [{: nvim_command : nvim_create_autocmd : nvim_create_augroup} vim.api
       au-group (nvim_create_augroup :nvim-startup {})
       cb (fn []
-           (when (and
-                   (>= (vim.fn.line "'\"") 1)
-                   (<= (vim.fn.line "'\"") (vim.fn.line "$"))
-                   (not (string.find vim.bo.filetype "commit")))
-                 (nvim_command "normal! g`\"")))]
+           (when (and (>= (vim.fn.line "'\"") 1)
+                      (<= (vim.fn.line "'\"") (vim.fn.line "$"))
+                      (not (string.find vim.bo.filetype :commit)))
+             (nvim_command "normal! g`\"")))]
   ;; when restoring the cursor, we want to ignore commit filetypes, so
   ;; we need to manually enable filetype detection to set up those
   ;; autocommands before creating the autocommand to restore the cursor
@@ -43,6 +62,26 @@
 (set vim.g.ale_fix_on_save 1)
 (set vim.g.ale_floating_preview 1)
 
+;; fzf
+
+(when (vim.fn.executable :fzf)
+  (when (vim.fn.isdirectory :/opt/homebrew/opt/fzf/plugin)
+    (vim.opt.rtp:append :/opt/homebrew/opt/fzf))
+  (vim.keymap.set :n :<leader>b ":Buffers<cr>" {:noremap true})
+  (vim.keymap.set :n :<leader>f ":Files<cr>" {:noremap true})
+  (vim.keymap.set :n :<leader>t ":Tags<cr>" {:noremap true})
+
+  ; https://coreyja.com/vim-spelling-suggestions-fzf/
+  (let [{: nvim_command : nvim_create_user_command} vim.api
+        {: expand : spellsuggest} vim.fn
+        fzf-run (. vim.fn "fzf#run")
+        sink #(nvim_command (.. "normal! \"_ciw" $1))
+        fzf-spell #(fzf-run {:source (spellsuggest (expand :<cword>))
+                             : sink
+                             :window {:width 0.9 :height 0.6}})]
+    (nvim_create_user_command :FzfSpell fzf-spell {})
+    (vim.keymap.set :n :z= ":FzfSpell<cr>")))
+
 ;; lspconfig
 ; (let [opts {:noremap true :silent true}]
 ;   (vim.keymap.set :n :<leader>e vim.diagnostic.open_float opts)
diff --git a/.gitmodules b/.gitmodules
index ba122698..a944819c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -168,3 +168,6 @@
 [submodule ".local/share/nvim/site/pack/kejadlen/start/ale"]
 	path = .local/share/nvim/site/pack/kejadlen/start/ale
 	url = https://github.com/dense-analysis/ale.git
+[submodule ".local/share/nvim/site/pack/kejadlen/start/fzf"]
+	path = .local/share/nvim/site/pack/kejadlen/start/fzf
+	url = https://github.com/junegunn/fzf.vim.git
diff --git a/.local/share/nvim/site/pack/kejadlen/start/fzf b/.local/share/nvim/site/pack/kejadlen/start/fzf
new file mode 160000
index 00000000..c311c0a9
--- /dev/null
+++ b/.local/share/nvim/site/pack/kejadlen/start/fzf
@@ -0,0 +1 @@
+Subproject commit c311c0a95fc2529c26ab36a8f530e9dd4426304c