向后转大写
2023-02-18 16:29:04 时间
输入大写字母的方式主要有以下两种:
- 1. 按住
Shift
的同时,依次输入字母是一种, - 2. 当字母比较多时,可以先按下
CapsLock
,然后键入字母
但相信对大多数人来说,大写字母的单词更难读,有相关相关研究[1]做证明:
Lowercase letters have a more distinctive shape than capital letters, therefore they can be perceived more quickly than uppercase letters. Because readers are frequently exposed to a word, they no longer have to "read" the word, but instantly recognize the meaning by the familiar shape of the group of letters.
因此很多人采用下面的方式输入大写字母的方式:
- • 先输入小写字母,之后选中改成大写
这样的好处是便于识别是否有拼写错误,对于 Emacs 来说就是 M-u(upcase-word)
,但是有一点麻烦的地方在于:在转化前,需要先 M-b
向后移动到字母开始处,然后再按 M-u
一次,如果有连字符,那么向后移动、转大写都需要按多次,显得有些麻烦。
(upcase-word ARG)
支持传入负数向前移动,但是遇到字母中有连字符时只会转化最后一个单词,而且光标不会移动,如果想继续转化,还是需要 M-b
,因此无法胜任,只能自己写代码解决:
(defun my/upcase-backwards ()
"Upcase word in reverse direction, back until the first space char or beginning-of-line"
(interactive)
(save-excursion
;; move to first non-space char
(skip-syntax-backward " " (line-beginning-position))
(push-mark)
(let ((beginning (or (re-search-backward "[[:space:]]" (line-beginning-position) t)
(line-beginning-position)))
(end (mark)))
(unless (= beginning end)
(upcase-region beginning end)))))
(global-set-key (kbd "M-o") 'my/upcase-backwards)
上面的函数用空格作为单词的边界,这样就能一次性处理 a-b-c
这种用连字符串起来的单词了。此外,还处理了以下几个 corner case:
- 1. 只在同一行内操作
- 2. 当光标所在处为空格时,向前回溯,直到找到非空格字母
示例演示
|
为光标,处理前
abc |abc
abc-abc|
处理后
ABC |abc
ABC-ABC|
引用链接
[1]
相关研究: https://ux.stackexchange.com/a/72624
相关文章
- 异步编程解决方案 Promise
- uniapp 中的交互反馈 API【提示框】
- Acrobat DC软件安装教程方法,PDF编辑器全版本软件下载
- uniapp 中的生命周期函数
- 玩转 CSS Flexbox 弹性布局
- GET 和 POST 请求方式的区别
- Acrobat 9 Pro软件安装教程PDF编辑器全版本软件下载
- 初识 yarn 包管理工具
- 一张图解析 FastAdmin 中的表格列表
- fastadmin 动态下拉组件 SelectPage
- MyISAM 和 InnoDB 的区别
- cookie 和 session 的区别
- Adobe Acrobat Pro DC 2019.021.20061免激活中文特别版pdfb编辑器下载
- async + await 的理解和用法(Promise)
- 运营商三要素实名认证接口(姓名、身份证号、手机号)
- 2022-12-16:给你一个长度为n的数组,并询问q次 每次询问区间[l,r]之间是否存在小于等于k个数的和大于等于x 每条查询返回true或者false。
- Metaverse、Web3 和 NFT 的必然性
- STM32使用硬件I2C读取SHTC3温湿度传感器并显示在0.96寸OLED屏上
- STM32单片机读取AHT10温湿度传感器数据
- 大数据Kudu(四):Kudu集群搭建