Welcome to the Power Users community on Codidact!
Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.
How to enable Alt + . in bash with Vim bindings
Want
I want Alt-. get the last argument to the last command, as it does in a
default bash terminal, when Vim bindings are enabled.
Similar to this SO post, but with a bash terminal, not zsh.
MWE
$ mv file1 dir
$ cd dir # "dir" input by hitting `Alt-.`
Have
Using this in my ~/.inputrc to enable Vim bindings:
set editing-mode vi
set keymap vi
Notes
I am okay with this functionality being bound to something other than Alt-..
If it is already bound in vi-mode, please tell me the binding.
1 answer
The following users marked this post as Works for me:
| User | Comment | Date |
|---|---|---|
| mcp | (no comment) | Aug 19, 2024 at 08:39 |
You just need to add
"\e.":yank-last-arg
to $HOME/.inputrc.
From man 3 readline:
yank-last-arg (M-., M-_)
Insert the last argument to the previous command (the last word
of the previous history entry).
To determine the escape sequence you need to map, in this case \e., type Ctrl-V followed by the desired sequence in the terminal. That outputs ^[. (where ^[ is the representation for the ESC character, 0x1B).

1 comment thread