Change the display style of the text on the STACKLINE.
hongy...@gmail.com
hongyi.zhao at gmail.com
Fri Sep 10 19:43:30 EDT 2021
On Friday, September 10, 2021 at 2:12:31 PM UTC+8, Roland Mueller wrote:
> pe 10. syysk. 2021 klo 8.53 hongy... at gmail.com (hongy... at 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... at gmail.com (hongy... at 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
> >
More information about the Python-list
mailing list