;;; -*- lexical-binding: t -*- ;; ;; -------------------------------------------------------------------------------- (require 'luki-lisp) ;; -------------------------------------------------------------------------------- (-> 'll-dired) (-> 'll-window) ;; -------------------------------------------------------------------------------- (defun kill-line-number () (i) (kill-new (@f "%s" (line-number-at-pos (point) 'absolute)))) (defun kill-name () (i) (kill-new (file-name-nondirectory buffer-file-name))) (defun kill-path () (i) (let* ((path (if (eq major-mode 'dired-mode) (dired-kill-path-dwim) buffer-file-name)) (no-tilde-path (abbreviate-file-name path))) (kill-new (1st (last (split-string no-tilde-path ":")))))) ;; -------------------------------------------------------------------------------- (defun kill-line-number-other-window () (i) (apply-in-other-window #'kill-line-number)) (defun kill-name-other-window () (i) (apply-in-other-window #'kill-name)) (defun kill-path-other-window () (i) (apply-in-other-window #'kill-path)) ;; -------------------------------------------------------------------------------- (defun yank-line-number () (i) (kill-line-number) (yank)) (defun yank-name () (i) (kill-name) (yank)) (defun yank-path () (i) (kill-path) (yank)) ;; -------------------------------------------------------------------------------- (defun yank-other-line-number () (i) (kill-line-number-other-window) (yank)) (defun yank-other-name () (i) (kill-name-other-window) (yank)) (defun yank-other-path () (i) (kill-path-other-window) (yank)) ;; -------------------------------------------------------------------------------- (<- 'll-kill-path)