堆栈溢出!在过去的几天里,我试图稍微定制我的emacs,我遇到了一个我不知道如何处理的问题.
我要做的是定义一个全局键绑定和一个ido模式键绑定,它将使用相同的键来做不同的事情.
Ido-mode键绑定以这种方式定义:
(defun ido-my-keys ()
"Add my keybindings for ido."
(define-key ido-completion-map (kbd "M-<return>")
'ido-invoke-in-vertical-split)
)
(add-hook 'ido-setup-hook 'ido-my-keys)
Run Code Online (Sandbox Code Playgroud)
它工作正常,直到我将以下行放在我的.emacs文件中:
(global-set-key (kbd "M-<return>") 'insert-newline-and-indent)
Run Code Online (Sandbox Code Playgroud)
使用此行,M-return甚至从ido-switch-buffer调用insert-newline-and-indent.有趣的是,当我以交互方式使用global-set-key时(即不是来自init-file而是来自Mx调用),一切都按预期工作.
谢谢你的帮助.对不起我的英语不好.
问题原来是我打开的ergoemacs模式.此模式定义了导致此效果的global-set-key的建议.
我通过在ergoemacs初始化之上移动global-set-key调用来解决问题.不是最好的解决方案,而是简单的解决方案.
当与Starman一起运行时,我无法找到在Dancer应用程序中使用包变量(或任何类型)的方法.我想它与Starman的preforking有某种关系,但这应该是一个特征,而不是一个bug.
这是舞者应用程序的示例:
package nafig;
use Dancer;
my $a = 0;
$b = 0;
$nafig::c = 0;
any '/' => sub {
warn join " ", $a++, $b++, $nafig::c++;
};
start;
Run Code Online (Sandbox Code Playgroud)
然后我连续3次调用该应用程序.首先,我用plack引用服务器运行它,一切都按预期工作:
$ plackup app.pl
HTTP::Server::PSGI: Accepting connections at http://0:5000/
0 0 0 at ... blah-blah-blah
1 1 1 at ... blah-blah-blah
2 2 2 at ... blah-blah-blah
Run Code Online (Sandbox Code Playgroud)
但是当我和Starman做同样的事情时,我得到了以下内容.
$ plackup -s Starman app.pl
2013/11/17-23:33:35 Starman::Server (type Net::Server::PreFork) starting! pid(527)
Resolved [*]:5000 to [::]:5000, IPv6
Not including resolved host [0.0.0.0] IPv4 …
Run Code Online (Sandbox Code Playgroud)