Readline:使用vi keymap时,在插入模式下向后翻译一个单词

时间:2012-08-16 09:40:31

标签: vim vi readline

在以大写字母输入单词时,我总是忘记打开CapsLock。我更喜欢键入一个单词,然后使用Vim或readline面向程序中的绑定来对其进行翻译。它很容易在Vim中完成,但不是在readline中完成。

我使用vi keymap并进入.inputrc

的下一行
set keymap vi-insert
"\C-a":upcase-word
"\C-z":vi-bword
"\C-l":"\C-z\C-a"

所以Ctrl-L在插入模式下向后翻译一个单词。但是当有不受欢迎的时候就会破裂。例如,lc_time变为LC_time。我可以按下Ctrl-A来强调下划线后的下一部分,但这很乏味。

那么有没有办法让它通过不受欢迎的人?我找不到readline命令来解决这个问题。

1 个答案:

答案 0 :(得分:1)

C-aC-z已经非常有用,我认为很多人都不想重新映射它们。 "\eu"已经映射到相当无用(自己)upcase-word,它要求您键入一个单词,将光标移回其开头,然后键入M-uupcase-word确实会引发争论,如果你需要夸大几个单词,这可能会很好。试试这个:

# upper case word (default after cursor). alt-(number) for N words
"\eU": upcase-word
# upper case word before cursor.
"\eu": "\e-1\eU"

使得M-u向后翻转一个单词,同时仍然可以选择使用alt-shift-u给出一个参数,当一个人真正记住存在时。好消息是它几乎不会更改默认映射,也不会踩到任何其他映射。

e.g。 do not do that again M-- 5 M-U将生成DO NOT DO THAT AGAIN