• windowsxp下binmode中encoding的问题

    下面两个脚本 b1.pl 和 b2.pl 都是用 utf8 编码保存的,内容如下:

    #b1.pl

    use strict;

    use utf8;

    $_="中文";

    sub p{

    my $_=shift;

    binmode STDOUT, ":encoding(gbk)";

    print "$_\n";

    }

    p($_);

    p($_);

    __END__

    #b2.pl

    use strict;

    use utf8;

    $_="中文";

    binmode STDOUT, ":encoding(gbk)";

    print "$_\n";

    binmode STDOUT, ":encodinig(gbk)";

    print "$_\n";

    __END__

    运行后的输出如下:

    Microsoft Windows XP [版本 5.1.2600]

    (C) 版权所有 1985-2001 Microsoft Corp.

    e:\home\pl>perl b1.pl

    perl b1.pl

    中文

    "\x{0590}" does not map to cp936.

    "\x{0384}" does not map to cp936.

    \x{0590}\x{0384}

    e:\home\pl>perl b2.pl

    perl b2.pl

    中文

    中文

    e:\home\pl>

    我的问题是,它们的输出为什么不一样呢?

    2011-03-10
  • 三国时是几进位

    看到某个段话说周文王的时候是七进位,当时的百日换算过来应该是四十九天。那么三国的时候是几进位的?

    2011-02-15
  • Re: 怎样自动对齐?

    align

    【 在 gird (xxx) 的大作中提到: 】

    : 用latex制表时,把每行所有的对应位置的"&"对齐会对以后copy paste 数据很方便。

    : emacs中怎样把 “&”对齐啊,有没有简便快捷的方法?  谢谢!

    2011-02-10
  • Re: 如何实现在buffer里在文件名上按回车,自动打开文件?

    find-file-at-point

    【 在 cckk (think different) 的大作中提到: 】

    :   自己写了一段elisp,把想要打开的文件名搜集到了一个buffer,

    : 现在如何实现在buffer里按回车,直接打开当前光标下的文件啊?

    2011-02-10
  • Re: 新的emacs-snapshot的debian源

    这个应该置底或m或g

    【 在 portis21 (Enjoy the silence) 的大作中提到: 】

    : emacs-snapshot is now maintained by Julien Danjou, please see emacs.naquadah.org for more information.

    : http://emacs.naquadah.org/

    : emacs-snapshot Debian packages

    : ...................

    2011-01-21
  • Re: 从google scholar中扒bib数据

    赞核实。

    我态度不端正,想偷懒,平时的文献又没有注意记录,只好这样了

    【 在 snoopyzhao (好大的雨……) 的大作中提到: 】

    : 都搞这么智能啊,我还停留在看中了哪篇,手工下载或直接手工输入,核实的地步 :-(

    2010-09-29
  • 从google scholar中扒bib数据
    getbib.pl (2.6 K)

    当在google scholar中设置"显示导入BibTeX的链接"后,搜索结果中就

    有bib数据下载的链接。附件中的perl脚本就是利用这一点从google里

    下载相关的bib数据。

    使用方法:

      perl getbib.pl 有限元 变分

      perl getbib.pl --pages 2 --encode gbk 有限元 变分

    上面两行效果相同,其中的参数说明如下:

      --pages n

        下载搜索结果的前n页,默认值为2

      --encode coding

        输入参数的编码,默认值为gbk(windows系统),

        其余的locale需要设置为perl中对应的locale,如utf-8设为utf8

    问题:

    当使用过于频繁时,十分有可能会被google判为机器人,从而被封上几个

    小时。因此我在每下载一个记录后就停止2秒(也许没有效果)。尽管这

    样,还是可以在浏览器里继续搜索,因为可以填写CAPTCHA证明你是human,

    而不是机器。但是要想继续使用这个脚本来扒东西,就要等到刑满出狱那

    一刻了。

    节日快乐 -:)

    2010-09-29
  • 有没有能生成函数调用关系图的模块

    rt

    2010-09-23
  • Re: 请教个perl/tk同鼠标交互的问题

    我比较习惯于 cad 软件中的对象选择方式

    【 在 init (没昵称) 的大作中提到: 】

    : 有些需求需要一个图形化的perl tk程序,对这个不太熟,目前没什么思路。

    : 希望牛人能给指点个方向,需要啃啃哪部分的内容,或者有类似的参考scripts。

    : 大概想法是:

    : ...................

    2010-09-10
  • 正则中的“变宽”后瞻

    mastering perl 里“使用否定后瞻的正则表达式给数字加逗号分隔符”的例子:

    $_ = '$1234.5678';

    s/(?<!\.\d)(?<=\d)(?=(?:\d\d\d)+\b)/,/g;  # $1,234.5678

    结果作者说这个答案是错误的,于是引出了一个更牛的答案:

    use 5.010;

    $_ = '$1234567890.123456789';

    s/(?<!\.)(?:\b|\G)\d+?\K(?=(?:\d\d\d)+\b)/,/g;

    say;  # $1,234,567,890.123456789

    那些期盼变宽后瞻的,可以欣赏一下 \K 的用法:

    provides a way of faking variable-width positive look-behind

    详细内容:

    http://stackoverflow.com/questions/2330453/can-you-salvage-my-negative-lookbehind-example-for-commifying-numbers

    2010-09-10
  • Re: encoding和threads有冲突?

    perldoc encoding:

    Thread safety

    "use encoding ..." is not thread-safe (i.e., do not use in threaded

    applications).

    陷阱就是给像我这样的人准备的......

    【 在 enroute (途中) 的大作中提到: 】

    : 下面三行运行后会出现 windows 的发送错误报告对话框:

    : use threads;

    : use encoding 'utf-8';  # 注释掉这一行则没有问题

    : ...................

    2010-09-06
  • encoding和threads有冲突?

    下面三行运行后会出现 windows 的发送错误报告对话框:

    use threads;

    use encoding 'utf-8';  # 注释掉这一行则没有问题

    my $worker=threads->create(sub{1});

    google 没见着相关的内容,是不是只是我的系统的问题?

    2010-09-06
  • Re: 有人在windows下用emacs写matlab么?

    某些版本(非最新版,可能是2009 R14?)的 matlab 自带 matlab-mode 及可以

    在 emacs 里直接运行的 matlab-shell,十分方便。

    【 在 xiaoyu48 (珍爱生命 远离电脑) 的大作中提到: 】

    : 要下载matlab-mode,版内搜matlab或者数学软件,里面应该有介绍怎么下载

    : mlint检查一下语法就好了,补全的功能从来没用过,我也不知道怎么弄

    2010-08-31
  • 刚用wxperl没几天就碰到头疼问题

    不知是霉还是幸运,难道是让老老实实用 Tk?

    问题:在 HtmlWindow 下面的 TextCtrl 不能复制和剪切。

    哪个牛人空闲时帮忙解决一下?

    #!/usr/bin/perl -w

    use strict;

    use warnings;

    use Wx qw/:everything/;

    package MyApp;

    use base 'Wx::App';

    use Wx::Html;

    sub OnInit {

    my $frame = Wx::Frame->new( undef,-1,'TextCtrl in HtmlWindow');

    my $html=Wx::HtmlWindow->new($frame,-1);

    $html->GetParser->AddTagHandler(MyHtmlTagHandler->new);

    $html->SetPage('<html><body><wxperledit /></body></html>');

    $frame->Show( 1 );

    }

    package MyHtmlTagHandler;

    use base 'Wx::PlHtmlTagHandler';

    sub new {

    my $class = shift;

    my $this = $class->SUPER::new;

    return $this;

    }

    sub GetSupportedTags {

    return 'WXPERLEDIT';

    }

    sub HandleTag {

    my( $this, $htmltag ) = @_;

    my $parser = $this->GetParser;

    my $htmlwin = $parser->GetWindow;

    my $entry=Wx::TextCtrl->new($htmlwin,-1,'text');

    my $cell=Wx::HtmlWidgetCell->new($entry);

    my $cnt = $parser->GetContainer;

    $cnt->InsertCell( $cell ) if $cell;

    return 1;

    }

    package main;

    MyApp->new->MainLoop;

    2010-08-24
  • Re: 问个编码相关的简单问题

    第一个贴子的图里的那个函数:

    (defun perl-eval (arg)

    (interactive "*P")

    (if (and mark-active transient-mark-mode)

    (shell-command-on-region (region-beginning) (region-end) "perl -w")

    (save-excursion

    (shell-command-on-region (point-min-marker) (point-max-marker) "perl -w"))))

    不知道是不是 emacs 在 shell-command-xxx 里做了手脚?

    shell-command-on-region is an interactive compiled Lisp function in

    `simple.el'.

    It is bound to M-|, <menu-bar> <tools> <shell-on-region>.

    (shell-command-on-region start end command &optional output-buffer

    replace error-buffer display-error-buffer)

    Execute string command in inferior shell with region as input.

    Normally display output (if any) in temp buffer `*Shell Command Output*';

    Prefix arg means replace the region with it.  Return the exit code of

    command.

    To specify a coding system for converting non-ASCII characters

    in the input and output to the shell command, use C-x RET c

    before this command.  By default, the input (from the current buffer)

    is encoded in the same coding system that will be used to save the file,

    `buffer-file-coding-system'.  If the output is going to replace the region,

    then it is decoded from that same coding system.

    The noninteractive arguments are start, end, command,

    output-buffer, replace, error-buffer, and display-error-buffer.

    Noninteractive callers can specify coding systems by binding

    `coding-system-for-read' and `coding-system-for-write'.

    If the command generates output, the output may be displayed

    in the echo area or in a buffer.

    If the output is short enough to display in the echo area

    (determined by the variable `max-mini-window-height' if

    `resize-mini-windows' is non-nil), it is shown there.  Otherwise

    it is displayed in the buffer `*Shell Command Output*'.  The output

    is available in that buffer in both cases.

    If there is output and an error, a message about the error

    appears at the end of the output.

    If there is no output, or if output is inserted in the current buffer,

    then `*Shell Command Output*' is deleted.

    If the optional fourth argument output-buffer is non-nil,

    that says to put the output in some other buffer.

    If output-buffer is a buffer or buffer name, put the output there.

    If output-buffer is not a buffer and not nil,

    insert output in the current buffer.

    In either case, the output is inserted after point (leaving mark after it).

    If replace, the optional fifth argument, is non-nil, that means insert

    the output in place of text from start to end, putting point and mark

    around it.

    If optional sixth argument error-buffer is non-nil, it is a buffer

    or buffer name to which to direct the command's standard error output.

    If it is nil, error output is mingled with regular output.

    If display-error-buffer is non-nil, display the error buffer if there

    were any errors.  (This is always t, interactively.)

    In an interactive call, the variable `shell-command-default-error-buffer'

    specifies the value of error-buffer.

    This function is advised.

    Before-advice `shell-command-on-region-with-completion':

    Defined in shell-command.el, to enable tab-completion of commands

    and dir/filenames within the input context.  This advice also makes

    `shell-command-on-region' to use this current buffer as its input when

    a region is visible and inactive.

    Its prompt string is kept by `shell-command-on-region-prompt' and

    `shell-command-on-region-prompt-if-region-inactive'.

    [back]

    【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】

    : perl-eval 是啥?

    : $ perl -Mencoding=utf-8 -e 'my %hash = (中国 => 1); print $hash{中国}, "\n"'

    : Unrecognized character \xE4 in column 13 at -e line 1.

    : ...................

    2010-08-11
  • Re: 问个编码相关的简单问题

    再问:为什么用 perl-eval 运行却可以?

    【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】

    : perldoc encoding

    :        ·   Internally converts all literals ("q//,qq//,qr//,qw///, qx//") from the encoding specified to utf8.  In Perl 5.8.1 and later, literals in "tr///" and "DATA" pseudo-

    :            filehandle are also converted.

    : ...................

    2010-08-10
  • 问个编码相关的简单问题
    loading ...

    use encoding 'utf-8';

    my %hash=(北京=>'bj');

    print $hash{北京};

    在 emacs 里用 perl-eval(见图) 运行没问题,但是在 shell 下运行却出现错误:

    Unrecognized character \xE5 in column 11 at u.pl line 2.

    为什么呢?

    2010-08-10
  • Re: 如何实现中文英文夹杂输入的时候自动加入空格呢?

    我也经常有这种需求诶,于是粗制滥造了一下,主要是通过

    advice self-insert-command 来实现,功能有限,比如

    a+b 这种就不能自动变成 a + b。

    ;; self-insert-command can NOT be adviced, make a wrapper

    (defun my-self-insert-command-wrapper (n)

    "Wrapper of `self-insert-command'."

    (interactive "p")

    (self-insert-command n))

    (defvar my-symbols-never-space (split-string ",。“”、~" "" t)

    "Symbols that should never be separated by space.")

    (defun my-char-type (c)

    "Return 0 if C is in `my-symbols-never-space', 1 if C is in \\cc,

    -1 otherwise."

    (cond ((member c my-symbols-never-space) 0)

    ((string-match "\\cc" c) 1)

    (t -1)))

    ;; Advise the wrapper

    (defadvice my-self-insert-command-wrapper (before insert-space)

    (my-insert-space))

    ;; $, _ and ^ are not mapped to `self-insert-command' in LaTeX-mode,

    ;; but something like `TeX-insert-something'.

    (defadvice TeX-insert-dollar (before insert-space)

    "$ in LaTeX mode."

    (my-insert-space))

    (defadvice TeX-insert-sub-or-superscript (before insert-space)

    "_, ^ in LaTeX mode."

    (my-insert-space))

    (defun my-insert-space ()

    "Insert leading space when necessary."

    (unless (or (= (point) (point-min))

    (= (point) (point-at-bol))

    (not (char-before)))

    (let* ((btype (my-char-type (char-to-string (preceding-char))))

    (ctype (my-char-type (char-to-string last-input-event)))

    (produ (* btype ctype)))

    (if (= -1 produ)

    (insert " ")))))

    (ad-activate 'my-self-insert-command-wrapper)

    (add-hook 'LaTeX-mode-hook (lambda ()

    ;; Remap local keymap

    (local-set-key [remap self-insert-command] 'my-self-insert-command-wrapper)))

    【 在 skjwh (刷卡机) 的大作中提到: 】

    : 比如:

    : 你可以在CS里杀人,你可以在Tomb Raider里探险,你甚至可以在Tony Hawk's Pro Skaters里滑板……但是It's not real!

    : 可以在输入的时候自动变成:

    : ...................

    2010-07-02
  • Re: 不好意思,又是中文问题

    版面搜索 unicad,自动识别编码

    【 在 crazyvibes (@@) 的大作中提到: 】

    : 用 eim-wb 输入中文,编码为 UTF-8, 中文正常显示,没问题。但存盘后再次打开,中文部分用拉丁字母显示比如 &#213;&#226;&#202;&#199; ,此时打开 eim-wb 仍然可以输入中文并显示中文字体,而以前输入存盘的内容仍显示为拉丁字母。

    : 请教一下是我哪里没设置正确吗?emacs 24.0.50.1

    2010-07-01
  • Re: 怎么在一个tex文件里面指定default pdf-mode?

    TeX-PDF-mode or mode in local variables:

    %%% Local Variables:

    %%% mode: tex-pdf  %% or

    %%% TeX-PDF-mode: t

    %%% TeX-master: "master"

    %%% coding: utf-8

    %%% End:

    【 在 lars (蓝天白云) 的大作中提到: 】

    : 希望打开它后auctex bydefault被设为pdf mode,需要在tex文件里面写上啥?

    2010-06-30