gpt4 book ai didi

emacs - 像 Sublime Text 中那样调换两个单词

转载 作者:行者123 更新时间:2023-12-01 19:26:57 25 4
gpt4 key购买 nike

我正在观看 Django 在线类(class),老师在 Sublime Text 中用列表的两个值做了一个很好的技巧,它将每个值转置为另一个值的位置,例如:

list = ("foo", "bar", "hello")

用鼠标标记foobar,然后进行转置,得到以下结果:

list = ("bar", "foo", "hello")

如何在 Emacs 中实现这一点?

最佳答案

正如@artscan所说,您正在寻找的命令是transpose-words 。它绑定(bind)到M-t默认情况下。它无需区域即可工作(即,您不必“标记”任何内容即可工作)。转置foobar , 点可以位于以下任意字符上:

oo", "b

在它们之前放置点将转置 listfoo ;将其放在之后将转置 barhello .

用于转置其他文本单元的相关命令及其默认键绑定(bind)(如果有):

  • transpose-chars (C-t)

  • transpose-lines (C-x C-t)

  • transpose-paragraphs

  • transpose-sentences

  • transpose-sexps (C-M-t)

超越内置函数

如果您想通过一次按键来调换不相邻的单词(例如 foohello ),您可以定义 keyboard macro或自定义命令并将其绑定(bind)到按键:

(defun hop-one-transpose ()
"Transpose words that are separated by a single word."
(interactive)
(transpose-words 2)
(backward-word 3)
(forward-char)
(transpose-words 1))

(global-set-key (kbd "C-x M-t") 'hop-one-transpose)
<小时/>

附录:让 Emacs 帮助您发现 Emacs

如果您想知道 Emacs 是否有用于某种类型操作的命令,请尝试使用 command-apropos找到它:

C-h a <action> RET

关于emacs - 像 Sublime Text 中那样调换两个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23669155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com