ido-mode with eshell, shell, sql and more...
ido-mode doesn't provide completion for eshell, shell or sql-mode out of the box, and I wasn't been able to find any package with this option that is lightweight enough (Helm, I'm looking at you). So, after few attempts, here is the code for that:
(defun ido-eshell-comint-history ()
"eshell & comint history with ido."
(interactive)
(if (or (member major-mode '(eshell-mode sql-interactive-mode))
(derived-mode-p 'comint-mode))
(let ((ring (if (eq major-mode 'eshell-mode)
eshell-history-ring
comint-input-ring)))
(insert
(ido-completing-read "History: "
(delete-dups
(ring-elements ring)))))
(message "Unsupported mode")))
After evaluating the code, in eshell simply execute M-x ido-eshell-comint-history
and magic will happen - you will get full eshell history managed by ido-mode. To make it more authentic, map it to C-c C-l
, which is default sequence for completion in eshell.
Embedding version string from Leiningen project
Frequently, inside my Clojure applications, I would put project version string picked from Leiningen project.clj
file. This way, it would solve me these problems:
- User can easily report what application version was affected with some issue.
- Version number is updated only once.
- Leiningen
lein change version leiningen.release/bump-version
(automatic version number increase) works as well.
In the past, used this code:
Continue reading →When I'm dealing with SSH connections using key pairs, usually I put this in my ~/.ssh/config
:
Host <easy-to-remember-host>
Hostname <ip-address>
User <user>
IdentityFile ~/.ssh/id_rsa_host_key
Running:
Continue reading →