首先在TotalCommander.ahk中,增加如下代码。
<TC_RunEmacs>:
TC_RunEmacs("")
return
<TC_EmacsEdit>:
Clipboard :=
SendPos(2018)
ClipWait
TC_RunEmacs(Clipboard)
return
TC_RunEmacs(filename)
{
;; 如果不存在emacs,则删除Server文件后再运行
IfWinNotExist, ahk_class Emacs
{
FileDelete, d:\emacs\.emacs.d\server\server
Run, D:\emacs\bin\emacsclientw.exe -n -a d:\emacs\bin\runemacs.exe --server-file d:\emacs\.emacs.d\server\server "%filename%",, Max
}
Else
{
;; 如果传入文件,则打开
if StrLen(filename) > 1
{
Run, D:\emacs\bin\emacsclientw.exe -n -a d:\emacs\bin\runemacs.exe --server-file d:\emacs\.emacs.d\server\server "%filename%",, Max
}
;; 否则在最大、最小化间切换
else
{
IfWinNotActive
{
WinMaximize
WinActivate
}
else
{
WinGet, TcWinState, MinMax, A
If (TcWinState = 1)
WinMinimize
Else
WinMaximize
}
}
}
}
并将e键的定义改过来。
vim.map("e", "<TC_EmacsEdit>", "TTOTAL_CMD")
然后在vimd.ini中,增加启动emacs的热键,我用Win+’
<w-'>=<TC_RunEmacs>