Emacs 将两个单词转置为崇高的文本

Emacs 将两个单词转置为崇高的文本,emacs,sublimetext2,emacs24,Emacs,Sublimetext2,Emacs24,我在看Django的在线课程,老师用两个列表值在崇高的文本中做了一个很好的技巧,它将每个值转换到另一个值的位置,例如: list = ("foo", "bar", "hello") 用鼠标标记foo和bar,然后进行转置,得到以下结果: list = ("bar", "foo", "hello") 如何在Emacs中实现这一点?正如@artscan所说,您正在寻找的命令是转置单词。默认情况下,它绑定到M-t。它在没有区域的情况下工作(也就是说,你不必“标记”任何东西,它就可以工作)。要转换f

我在看Django的在线课程,老师用两个列表值在崇高的文本中做了一个很好的技巧,它将每个值转换到另一个值的位置,例如:

list = ("foo", "bar", "hello")
用鼠标标记
foo
bar
,然后进行转置,得到以下结果:

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

如何在Emacs中实现这一点?

正如@artscan所说,您正在寻找的命令是
转置单词。默认情况下,它绑定到
M-t
。它在没有区域的情况下工作(也就是说,你不必“标记”任何东西,它就可以工作)。要转换
foo
bar
,点可以位于以下任意字符上:

oo”,“b

将点放在它们前面将转换
列表
foo
;把它放在它们后面将使
你好
互换


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

  • 转置字符
    (C-t)

  • 转置行
    (C-x C-t)

  • 转置段落

  • 转换句子

  • 转置sexps
    (C-M-t)

超越内置 如果要用一次击键转换不相邻的单词(例如,
foo
hello
),可以定义一个或一个自定义命令,并将其绑定到一个键:

(取消跳一转置()
“转置由单个单词分隔的单词。”
(互动)
(转置单词2)
(倒转词3)
(向前字符)
(转置单词1)
(全局设置键(kbd“C-x M-t”)“跳一转置)

附录:让Emacs帮助您发现Emacs 如果您想知道Emacs是否有用于某种类型操作的命令,请尝试使用
command apropos
来查找它:


C-ha
RET

我想你在寻找
转置sexp
(而不是
转置单词
),绑定到
M-C-t
。在某些模式下,它对语法的理解足以将
(foo(1,2),a+b)
转换为(
a+b,foo(1,2))
。不幸的是,在C模式下,它会导致
(fooa,(1,2)+b)
,这几乎没有那么有用。

将光标放在
foo
上,并调用
M-x转置词
<默认情况下,代码>转置单词
绑定到
M-t
。它在没有区域的情况下工作(也就是说,你不必“标记”任何东西,它就可以工作)。要转换
foo
bar
,点可以位于以下任意字符上:
oo”,“b
。将它放在它们前面将转换
list
foo
;将其放在它们后面将转置
你好
。用于转置其他文本单位的相关命令,以及它们的默认键绑定(如果有):
转置字符(
C-t
),
转置行
C-x C-t
),
转置段落
转置句子
转置sexps
C-M-t
)。哦,哇,太棒了!谢谢(这个问题需要有答案,有志愿者吗?)如果我想只用一次按键就转置
foo
hello
,我该怎么办?@JorgeArayaNavarro您可以定义一个或一个自定义函数,并将其绑定到一个键。我将在我的答案中添加一个示例。如果双引号中的一个单词包含非单词字符,如点,例如
“foo.baz”,“bar”