Skip to content

Instantly share code, notes, and snippets.

@heikkil
Created January 29, 2016 07:24
Show Gist options
  • Save heikkil/177ff4c4b8a02d574958 to your computer and use it in GitHub Desktop.
Save heikkil/177ff4c4b8a02d574958 to your computer and use it in GitHub Desktop.
Search fish history using ivy mode
;; mod from http://blog.binchen.org/posts/use-ivy-mode-to-search-bash-history.html
(require 'dash)
(defun counsel-yank-fish-history ()
"Yank the fish history"
(interactive)
(let (hist-cmd collection val)
(shell-command "history -r") ; reload history
(setq collection
(nreverse
(split-string (with-temp-buffer (insert-file-contents (file-truename "~/.config/fish/fish_history"))
(buffer-string))
"\n"
t)))
(setq collection
(--keep (replace-regexp-in-string "- cmd: " "" it)
(--filter (string-match "^- cmd:" it) collection)))
(when (and collection (> (length collection) 0)
(setq val (if (= 1 (length collection)) (car collection)
(ivy-read (format "Fish history:") collection))))
(kill-new val)
(message "%s => kill-ring" val))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment