diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index 069b4427d..662d7694a 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -468,6 +468,8 @@ ;;; i --- insert (:prefix-map ("i" . "insert") + :desc "Current file name" "f" #'+default/insert-file-path + :desc "Current file path" "F" (λ!! #'+default/insert-file-path t) :desc "Evil ex path" "p" (λ! (evil-ex "R!echo ")) :desc "From evil register" "r" #'evil-ex-registers :desc "Snippet" "s" #'yas-insert-snippet diff --git a/modules/config/default/autoload/default.el b/modules/config/default/autoload/default.el index a85f299e2..a558f2ef7 100644 --- a/modules/config/default/autoload/default.el +++ b/modules/config/default/autoload/default.el @@ -333,3 +333,14 @@ ARG is set, prompt for a known project to search from." (while (server-running-p) (sit-for 1)) (server-start)) + +;;;###autoload +(defun +default/insert-file-path (arg) + "Insert the file name (absolute path if prefix ARG). +If `buffer-file-name' isn't set, uses `default-directory'." + (interactive "P") + (let ((path (or buffer-file-name default-directory))) + (insert + (if arg + (abbreviate-file-name path) + (file-name-nondirectory path)))))