Here is the patch pasted into the body of an email: From 8e69b33a53ea30389a5e3946dd711320a77e0d23 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Fri, 5 Aug 2016 12:19:20 -0700 Subject: [PATCH] Don't strip space from python completions The returned completion deliberately includes a space after a word like 'import', which is always followed by more words. * lisp/progmodes/python.el (python-shell-completion-native-get-completions): Remove space from regular expression character class --- lisp/progmodes/python.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index ad69f87..8616279 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -3551,7 +3551,7 @@ completion." (split-string (buffer-substring-no-properties (line-beginning-position) (point-min)) - "[ \f\t\n\r\v()]+" t) + "[\f\t\n\r\v()]+" t) :test #'string=)))) (set-process-filter process original-filter-fn))))) -- 2.3.2 (Apple Git-55) On Sat, 27 Aug 2016 at 14:21 Dan Davison wrote: > 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)) >> >>