1

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

我使用 vi 键盘映射并进入了我的下一行.inputrc

set keymap vi-insert
"\C-a":upcase-word
"\C-z":vi-bword
"\C-l":"\C-z\C-a"

所以Ctrl-L在插入模式下大写一个单词。但是,当有 undescores 时它会中断。例如lc_time变成LC_time. 我可以Ctrl-A在下划线后按大写单词的下一部分,但这很乏味。

那么有没有办法让它通过 undescores 呢?我找不到解决此问题的 readline 命令。

4

1 回答 1

1

C-a并且C-z已经非常有用了,我不认为很多人会想要重新映射它们。"\eu"已经映射到相当无用的(单独)upcase-word,它希望您键入一个单词,将光标移回其开头,然后键入M-u. upcase-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 给出参数。好消息是它几乎不会改变默认映射并且不会踩到任何其他映射。

例如do not do that again M-- 5 M-U将产生DO NOT DO THAT AGAIN

于 2013-04-30T20:10:48.350 回答