2 个赞
突然发现我的标题起得不大好_(:3」∠)_
标题可以改呀
这我知道,只是刚刚我的ego出了点问题,没法改了_(:зゝ∠)_
和你的方法类似,不过我是修改了vimd中的autohotkey脚本,这样更方便。
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
}
}
}
}
1 个赞
我使用了你的方法,没有效果啊,不知道是什么原因,没有报错,只是重新打开了一次Emacs,把文件打开了。 好像是没有使用server file,可能的原因是什么啊?
可否告知一下要把这段代码放在哪个文件里,怎么传递文件名到Emacs啊?
你可以试一下在命令行里面打开cmd文件,然后看看有什么错误信息。如果直接双击打开的话,即使报错也是看不到的。
然后你要确定一下 server-file 的那个位置有没有server文件。如果emacs找不到的话会重新打开emacs的
有server文件,我用的spacemacs,它是自动启用server的
"(ºДº*)神秘啊
如果路径没有错的话我就不知道怎么回事了_(:3」∠)_
我这段脚本是修改了vimd中tc的编辑命令,参数是由tc传递过来的。 否则就只能单独写一个autohotkey脚本,绑定在某个热键上,但是那样就没办法传递参数了。
我也用vimd,很长时间了,但是对它的代码没有研究过,这个功能要怎么实现啊?
说到autohotkey 突然想到之前写的一段代码, 给你们参考。
你用totalcmd吗?我的代码是配合这个软件来使用的。
首先在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>
2 个赞
运行良好,谢谢,非常感谢!