Ye Wenbin

Hi, I’m Ye Wenbin. (叶文彬) I like Emacs, because it makes me creative. I never spent so much time on something like Emacs, except Perl, another magical language. I started to use Emacs in 2004. Now, I used it every day.

I write some elisp. Maybe you have never heart of it. I hope that more and more people will like my elisp. And I have a dream that someday Emacs will be distributed with my code.

A list of my elisp:

I provide an extension Lisp:dot-emacs-help.el to manage my .emacs. It will be very easy to modify or search a piece of configuration. I upload my configuration to YwbEmacsConf. You maybe have to rename the file with extension `.tar.gz’ to uncompress it correctly after download the file,

Please let me known if you have any comments about or problems with my code. My homepage: My blog: You may get or update code from there.

My favorite programming language is Perl. I wish that someday there will be a wonderful Perl IDE in Emacs; maybe I will create one :)

I think pcomplete does more completion in shell.

I don’t known how to set up pcomplete for shell. shell-completion can do this:

  1. complete commands after “sudo”
  2. complete command options when provided
  3. complete commands or command options in an interactive program, such as lftp, mysql, cpan and so on.

I like incr.el, but removed all the han stuff. Maybe you could use a require without error message and just fail gracefully if I try to increase a Chinese number without hannum.el? – AlexSchroeder

Sorry. I have fixed it. I removed the (require ‘hannum) from eval-when-compile. Now it will work without hannum.el. Thank you!

Thanks! For the kind of keyboard macros I often use, ‘incr-dwim’ is much more useful than the macro counter feature that usually forget how to use by the time I need it again. – AlexSchroeder

Very minor coding tip: You can test the value returned by ‘require’. So, for instance:

    (require 'dot-emacs-helper nil t)
    (when (not (featurep 'dot-emacs-helper))
      (defmacro deh-require-maybe (feature &rest forms)
        (declare (indent 1))
           (require ,feature nil t)
           (when (featurep ,feature)

can become just:

    (unless (require 'dot-emacs-helper nil t)
      (defmacro deh-require-maybe (feature &rest forms)
        (declare (indent 1))
        `(when (require ,feature nil t) ,@forms)))

HTH – DrewAdams

Thanks. I update it in the elisp too.

First thanks for all your work on emacs. I am a long-term user of your type-test extension and I recently switched to emacs23. Unfortunately, in that version of emacs, type-test does not behave as expected at end of lines in the \*type test\* buffer. To correct this misbehavior, I had to turn off line-move-visual. Putting the following in the type-test-mode definition in type-test.el solves the problem:

  (when (> emacs-major-version 22)
           (make-local-variable 'line-move-visual)
           (setq line-move-visual nil))


I’m a beginner as far as elisp is concerned, so check whether I overlooked something here :) I think the compiler warnings in help-dwim.el can be fixed by changing:

  (defun help-dwim-build-woman-obarray (&optional re-cache)
    (require 'woman)


  (defun help-dwim-build-woman-obarray (&optional re-cache)
    (eval-and-compile (require 'woman))

the elisp manual claims that ‘require’ is automatically ‘eval-and-compile’d, but apparently that’s only true for toplevel ‘require’s?


Hello Ye, In Emacs 23.1.1, i think there’s a bug with Bibus. When a try to load it, i get the following error:

    mysql-cell: Wrong type argument: integerp, nil

Maybe you can help me or fix the bug, thanks.