1
我想在term-mode中使用缩写词或类似的东西,而不是创建shell别名。原因在于ssh在某处存在别名并具有别名是很好的。带自动扩展的Emacs缩写模式(不带空格)
令人烦恼的是,我需要点击缩略图以扩展空间。例如,如果我有一个经常使用的名为l5
的简短别名,我不希望每次都为两个char事物命中空格。
如何让它在没有空间的情况下展开?也许在打入?
我想在term-mode中使用缩写词或类似的东西,而不是创建shell别名。原因在于ssh在某处存在别名并具有别名是很好的。带自动扩展的Emacs缩写模式(不带空格)
令人烦恼的是,我需要点击缩略图以扩展空间。例如,如果我有一个经常使用的名为l5
的简短别名,我不希望每次都为两个char事物命中空格。
如何让它在没有空间的情况下展开?也许在打入?
函数expand-abbrev
将在点处扩大缩写。在self-insert-command
的内部功能中处于缩写模式下的扩展级别较低,因此您不能只指定新的密钥。
然而,您可以在发送shell输入之前找到运行expand-abbrev
的方法。
无论您使用的是shell还是term,它都可能非常棘手。在发送文本之前,您可能分别建议comint-send-input
或term-send-raw
确定性地运行expand-abbrev
。
这里是支持空间和返回缩写扩张term
一个例子。
(defadvice term-send-raw (before maybe-expand-in-term activate)
(when (called-interactively-p)
(let ((keys (this-command-keys)))
;; if key was enter or space, expand abbrev at point
(when (or (equal keys (string 13))
(equal keys " "))
(expand-abbrev)))))