On Friday, September 10, 2021 at 2:12:31 PM UTC+8, Roland Mueller wrote: > pe 10. syysk. 2021 klo 8.53 hongy...@gmail.com (hongy...@gmail.com) > kirjoitti: > > On Thursday, September 9, 2021 at 8:57:37 PM UTC+8, Roland Mueller wrote: > > > Hello > > > > > > to 9. syysk. 2021 klo 6.53 hongy...@gmail.com (hongy...@gmail.com) > > > kirjoitti: > > > > I'm using the following code in my forked project [1]: > > > > > > > > percol.view.STACKLINE = 'Fold:F1,F2,F3 Push:C-p Pop:M-p Script:M-s > > Dir:M-d > > > > Dircmd:M-b' > > > > > > > > I would like to change the display style of the text mentioned above, > > for > > > > example, to underline some characters in it, as shown below: > > > > > > > > _D_ir:M-d > > > > > > > > > > > You can use e.g. str.replace() or re.sub() > > > > > > >>> percol.view.STACKLINE = percol.view.STACKLINE.replace('D', '_D_') > > > Result: 'Fold:F1,F2,F3 Push:C-p Pop:M-p Script:M-s _D_ir:M-d > > _D_ircmd:M-b' > > > > > > >>> import re > > > > > > Replace D with _D_ > > > >>> percol.view.STACKLINE = re.sub(r'([D])', > > > r'_\1_', percol.view.STACKLINE) > > > Result: 'Fold:F1,F2,F3 Push:C-p Pop:M-p Script:M-s _D_ir:M-d > > _D_ircmd:M-b' > > > > > > Replace D and M with _D_, _M_ > > > >>> percol.view.STACKLINE = re.sub(r'([DM])', r'_\1_', > > > percol.view.STACKLINE) > > > 'Fold:F1,F2,F3 Push:C-p Pop:_M_-p Script:_M_-s _D_ir:_M_-d > > _D_ircmd:_M_-b' > > > > > > Regards, > > > Roland > > > > I tried with the following, but failed to achieve the expected effect: > > > > class Term: > > HEADER = '\033[95m' > > OKBLUE = '\033[94m' > > OKGREEN = '\033[92m' > > WARNING = '\033[93m' > > FAIL = '\033[91m' > > ENDC = '\033[0m' > > LIGHTCYAN = '\033[1;36m' > > LIGHTGRAY = '\033[0;37m' > > YELLOW = '\033[0;33m' > > BOLD = '\033[1m' > > UNDERLINE = '\033[4m' > > > > [...] > > > > percol.view.STACKLINE = percol.view.STACKLINE.replace('D', Term.UNDERLINE > > + 'D' + Term.ENDC) > > > > The result will look like this: > > > > Fold:F1,F2,F3 Push:C-p Pop:M-p Script:M-s ?[4mD?[0mir:M-d > > ?[4mD?[0mircmd:M-b > > > > I cannot repeat that. Are you sure that the '?' shown in your output are > not due to your terminal settings that influence how strings printed by > Python or inside used terminal are shown? > > Python 3.9.6 (default, Jul 16 2021, 00:00:00) > [GCC 11.1.1 20210531 (Red Hat 11.1.1-3)] on linux > Type "help", "copyright", "credits" or "license" for more information. > >>> UL = '\033[4m' > >>> UL > '\x1b[4m' > >>> ENDC = '\033[0m' > >>> ENDC > '\x1b[0m' > > >>> s = UL + 'D' + ENDC > >>> s > '\x1b[4mD\x1b[0m' > > >>> s = 'ABCDE' > >>> s = s.replace('D', UL + 'D' + ENDC) > >>> s > 'ABC\x1b[4mD\x1b[0mE' > > When I call print(s) it even shows ABCD and D is underscored.
If I test the code snippet above with ipython/ptpython/python, I got the same result as you described. But the problem I reported here is triggered by running the command line wrapper of the project by `Ctrl-r`, which is worked with curses library. And I also noticed the following file [1] used by the project, which may be pertinent to the problem discussed here. But till now I still can't think of a solution. [1] https://github.com/hongyi-zhao/ariadne/blob/master/percol/ansi.py > But copying > the output to mail looses the underscore ... > [image: image.png] > > BR, > Roland > > Regards, > > HY > > > > > > > > > > > > How to achieve this purpose? > > > > > > > > [1] > > > > > > https://github.com/hongyi-zhao/ariadne/blob/838179bb4275ac85f5342d9e7d086d6ade3be1de/rc.py#L55 > > > > > > > > > > Regards, > > > > HY > > > > -- > > > > https://mail.python.org/mailman/listinfo/python-list > > > > > > -- > > https://mail.python.org/mailman/listinfo/python-list > > -- https://mail.python.org/mailman/listinfo/python-list