Patch attached. This patch is also available as a pull request at at https://github.com/dandavison/emacs/pull/1 The commit hash is 8e69b33a53ea30389a5e3946dd711320a77e0d23. I have only tested this on macOS. As far as I am aware, when the space character is present, it is present deliberately and it is appropriate to retain it, but I would appreciate feedback from python.el experts. On Sat, 27 Aug 2016 at 14:10 Dan Davison wrote: > From emacs -Q: > > (setq python-shell-interpreter "ipython" > python-shell-interpreter-args "-i") > > M-x run-python > > In the python comint buffer insert "from itertools imp" and hit tab. > > You will see "imp" completed as "import" (no trailing space). > > However, if you do this in ipython itself, you will see "imp" completed > as "import ". This (i.e. what ipython does) is the desired behavior > (because import is always followed by another word). > > In GNU Emacs 25.1.50.1 (x86_64-apple-darwin14.5.0, NS appkit-1348.17 > Version 10.10.5 (Build 14F27)) > of 2016-04-16 built on hemiprocne > Repository revision: 934549e23d6bda5231375dbfed7b42a966c85d14 > Windowing system distributor 'Apple', version 10.3.1348 > Configured using: > 'configure --prefix=/usr/local/Cellar/emacs/HEAD > --enable-locallisppath=/usr/local/share/emacs/site-lisp > --infodir=/usr/local/Cellar/emacs/HEAD/share/info/emacs --with-xml2 > --without-dbus --without-gnutls --with-ns --disable-ns-self-contained' > > Configured features: > JPEG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS > > Important settings: > value of $LANG: en_US.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: Lisp Interaction > > Minor modes in effect: > tooltip-mode: t > global-eldoc-mode: t > electric-indent-mode: t > mouse-wheel-mode: t > tool-bar-mode: t > menu-bar-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > blink-cursor-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > line-number-mode: t > transient-mark-mode: t > > Recent messages: > For information about GNU Emacs and the GNU system, type C-h C-a. > > Load-path shadows: > None found. > > Features: > (shadow sort mail-extr emacsbug message dired dired-loaddefs format-spec > rfc822 mml easymenu mml-sec password-cache epa derived epg epg-config > gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse > rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 > ietf-drums mm-util mail-prsvr mail-utils time-date mule-util tooltip > eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel > term/ns-win ns-win ucs-normalize term/common-win tool-bar dnd fontset > image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode > prog-mode register page menu-bar rfn-eshadow timer select scroll-bar > mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame > cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai > tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian > slovak czech european ethiopic indian cyrillic chinese charscript > case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer > cl-preloaded nadvice loaddefs button faces cus-face macroexp files > text-properties overlay sha1 md5 base64 format env code-pages mule > custom widget hashtable-print-readable backquote kqueue cocoa ns > multi-tty make-network-process emacs) > > Memory information: > ((conses 16 195970 9329) > (symbols 48 19431 0) > (miscs 40 43 170) > (strings 32 14792 5110) > (string-bytes 1 431078) > (vectors 16 32763) > (vector-slots 8 640839 4764) > (floats 8 156 54) > (intervals 56 194 0) > (buffers 976 11)) > >