读Bash ReadLine,有个补充

读Bash ReadLine,有个补充

还不了解Bash  ReadLine的请参才下文
http://learn.tsinghua.edu.cn:8080/2001315450/readline.html

上文提到的一点我一直操作不成功

比如
在命令行中输入 echo 1 2 3 (此时不要按回车)
按键alt+shift+3
即可以#号注释该行并记入历史
此时按按下 alt + .  (即 Alt 加句号 )
即传中说的 ‘调用yank-last-arg 函数,把上一条命令的最后一个参数放在命令行上’
应该会把 '3'打在命令行上

但我操作多次(希望没错 )
被注释的命令
我一直就没利用Alt键调出来过
操作是alt+数字1,2,3,再alt+.     
或是直接alt+.


这在里想介绍一个 ctrl + y 的使用
按上文的方法,用例子说明

你想把 ~/text-browser/ 目录下的3个.tar.gz文件搬到/usr3/software/,于是你输入:
$mv ~/text-browser/*.tar.gz /usr3/software/ (此时未按回车)

刚刚输入到这里,你突然想起,应该在 /usr3/software/ 下先建立一个目录叫browsers

于是你 Ctrl-u,删掉了这行命令。唉呀,这么长的命令一下就没了。是不是有点可惜?这还不算麻烦。然后你

$ mkdir /usr3/software/browser

* * * * 注意 * * * *
该输入 ‘mv ~/text-browser/*.tar.gz /usr3/software/’来移动你的文件了
有什么方法补偿刚才Ctrl-u造成的可惜呢?
Ctrl+y就可以了,因为Ctrl+y粘贴回来由于Ctrl+w或是Ctrl+u删除的东西

利用这一点
我们可以改善一下以前执着的输入方法
比如你要执行以下命令
cp /etc/A/B/C  /media/sda10/etc/A/B/C

高效一些的输入方法应该为
输入cp /etc/A/B/C,  此时不要按回车,而是 Ctrl+w删除掉/etc/A/B/C
然后再使用Ctrl+y将/etc/A/B/C粘贴回来,不要回车,继续输入/media/sda10 (不要回车)
此时命令行上的已经是
cp /etc/A/B/C  /media/sda10
再来一次Ctrl+y粘贴一次/etc/A/B/C再回车即可      
有机会试试。      
俺现在喜欢用 vi mode 的 readline 了, 感觉命令行编辑比 emacs mode 方便些, 当然了, emacs fans 可能不会喜欢 vi mode 的       
分不清这些模式
不过我一直想学emacs      
你学了 emacs 就分清了