我想为有时需要执行的这项任务设置一个热键:
%> cp file.txt.1 file.txt.1.bak
我重复了文件名,但末尾带有 .bak。我想直接输入:
%> cp file.txt.1
按快捷键并添加带有 .bak 扩展名的文件名。这会将第二个代码片段变成第一个代码片段。
这可能吗?如果是这样,我怎样才能让 readline 添加第二个参数? (我认为这是我必须在这里编程的阅读线)。
答案1
对于这种情况,在 bash 或 zsh 中,您可以输入以下命令
cp file.txt.1{,.bak}
这是大括号扩展。
对于大括号扩展不方便的情况,因为您想对第二个参数进行更多编辑,在 zsh 中,有一个命令copy-prev-word
这必然是Ctrl+ Alt+盒子外面。它会在光标前面插入单词的副本。确保在Ctrl+ Alt+之前输入一个空格。您可能更喜欢绑定copy-prev-shell-word
这通常更有用。
bindkey '^[^_' copy-prev-shell-word
在 bash 或 zsh 中,要从行尾开始复制命令行上的最后一个单词,请确保该行以空格结尾,然后按Alt+ B Ctrl+ K Ctrl+ Y Ctrl+ Y。这会将最后一个单词加上尾随空格剪切并粘贴两次。或者,如果该行不以空格结尾,请按Alt+ B Left Ctrl+ K Ctrl+ Y Ctrl+ Y。仅当最后一个参数不包含空格时才有效;如果是的话,你需要再往前走一点。如果适合您的设置,您可以将Alt+替换B为Ctrl+ 。Left