##// END OF EJS Templates
load inputrc after IPython readline config...
MinRK -
Show More
@@ -393,8 +393,15 b' class InteractiveShell(SingletonConfigurable):'
393 393 '"\e[B": history-search-forward',
394 394 '"\C-k": kill-line',
395 395 '"\C-u": unix-line-discard',
396 ], allow_none=False, config=True)
397
396 ], config=True)
397
398 _custom_readline_config = False
399
400 def _readline_parse_and_bind_changed(self, name, old, new):
401 # notice that readline config is customized
402 # indicates that it should have higher priority than inputrc
403 self._custom_readline_config = True
404
398 405 ast_node_interactivity = Enum(['all', 'last', 'last_expr', 'none'],
399 406 default_value='last_expr', config=True,
400 407 help="""
@@ -1877,6 +1884,17 b' class InteractiveShell(SingletonConfigurable):'
1877 1884 else:
1878 1885 self.readline_startup_hook = readline.set_startup_hook
1879 1886
1887 # Readline config order:
1888 # - IPython config (default value)
1889 # - custom inputrc
1890 # - IPython config (user customized)
1891
1892 # load IPython config before inputrc if default
1893 # skip if libedit because parse_and_bind syntax is different
1894 if not self._custom_readline_config and not readline.uses_libedit:
1895 for rlcommand in self.readline_parse_and_bind:
1896 readline.parse_and_bind(rlcommand)
1897
1880 1898 # Load user's initrc file (readline config)
1881 1899 # Or if libedit is used, load editrc.
1882 1900 inputrc_name = os.environ.get('INPUTRC')
@@ -1891,14 +1909,10 b' class InteractiveShell(SingletonConfigurable):'
1891 1909 except:
1892 1910 warn('Problems reading readline initialization file <%s>'
1893 1911 % inputrc_name)
1894
1895 # Configure readline according to user's prefs
1896 # This is only done if GNU readline is being used. If libedit
1897 # is being used (as on Leopard) the readline config is
1898 # not run as the syntax for libedit is different.
1899 if not readline.uses_libedit:
1912
1913 # load IPython config after inputrc if user has customized
1914 if self._custom_readline_config:
1900 1915 for rlcommand in self.readline_parse_and_bind:
1901 #print "loading rl:",rlcommand # dbg
1902 1916 readline.parse_and_bind(rlcommand)
1903 1917
1904 1918 # Remove some chars from the delimiters list. If we encounter
General Comments 0
You need to be logged in to leave comments. Login now