 (global-set-key [escape] 'meain/keyboard-quit)
 
 ;; Quick replace
-(define-key evil-normal-state-map (kbd "<SPC> ;")
-  (lambda () (interactive) (evil-ex "%s/")))
-(define-key evil-visual-state-map (kbd "<SPC> ;")
-  (lambda () (interactive) (evil-ex "'<,'>s/")))
+(define-key evil-normal-state-map (kbd "<SPC> ;") (cons "replace in buffer" (meain/ilambda evil-ex "%s/")))
+(define-key evil-visual-state-map (kbd "<SPC> ;") (cons "replace in buffer"(meain/ilambda evil-ex "'<,'>s/")))
 
 ;; Highlight yanked region
 (defun meain/evil-yank-advice (orig-fn beg end &rest args)

  (define-key evil-outer-text-objects-map "a" (cons "evil-outer-parameter" (evil-textobj-tree-sitter-get-textobj "parameter.outer")))

  (advice-add 'evil-textobj-tree-sitter-goto-textobj :around #'meain/recenter-top-advice)
  (define-key evil-normal-state-map (kbd "]a") (cons "goto-parameter-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "parameter.inner"))))
  (define-key evil-normal-state-map (kbd "[a") (cons "goto-parameter-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "parameter.inner" t))))
  (define-key evil-normal-state-map (kbd "]A") (cons "goto-parameter-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "parameter.inner" nil t))))
  (define-key evil-normal-state-map (kbd "[A") (cons "goto-parameter-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "parameter.inner" t t))))
  (define-key evil-normal-state-map (kbd "]v") (cons "goto-conditional-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "conditional.outer"))))
  (define-key evil-normal-state-map (kbd "[v") (cons "goto-conditional-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "conditional.outer" t))))
  (define-key evil-normal-state-map (kbd "]V") (cons "goto-conditional-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "conditional.outer" nil t))))
  (define-key evil-normal-state-map (kbd "[V") (cons "goto-conditional-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "conditional.outer" t t))))
  (define-key evil-normal-state-map (kbd "]c") (cons "goto-class-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "class.outer"))))
  (define-key evil-normal-state-map (kbd "[c") (cons "goto-class-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "class.outer" t))))
  (define-key evil-normal-state-map (kbd "]C") (cons "goto-class-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "class.outer" nil t))))
  (define-key evil-normal-state-map (kbd "[C") (cons "goto-class-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "class.outer" t t))))
  (define-key evil-normal-state-map (kbd "]f") (cons "goto-function-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "function.outer"))))
  (define-key evil-normal-state-map (kbd "[f") (cons "goto-function-start" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "function.outer" t))))
  (define-key evil-normal-state-map (kbd "]F") (cons "goto-function-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "function.outer" nil t))))
  (define-key evil-normal-state-map (kbd "[F") (cons "goto-function-end" (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "function.outer" t t)))))

(use-package ts-fold
  :defer t

  (setq browse-url-browser-function 'browse-url-default-browser)
  (setq browse-url-generic-program "open")
  (setq browse-url-generic-args nil)
  (evil-define-key 'normal elfeed-search-mode-map (kbd "o") (meain/inlambda elfeed-search-browse-url t))
  (evil-define-key 'visual elfeed-search-mode-map (kbd "o") 'elfeed-search-browse-url)
  (evil-define-key 'normal elfeed-search-mode-map (kbd "d") 'meain/elfeed-search-filter)
  (evil-define-key 'normal elfeed-search-mode-map (kbd "f") 'meain/elfeed-search-filter-by-name)
