This weekend, I finnaly did something  that I should have done long ago:
       I implemented text search for my gopher- and gemini-client ncgopher [1].
       
       I've had  this on my TODO  list for ages, but  in my head it  was not so
       easy to implement. Turned out that I was totally wrong, and that it only
       took a  couple of hours.  Most of the time,  I spent scratching  my head
       over some Rust compiler errors. It's been a while that I've been written
       any Rust code...
       
       My aim was to provide a vim-like search where you just type '/' followed
       by your search  query.  So pressing '/' switches the  status line at the
       bottom  of the  screen into  an input  field. You  can type  your search
       term. If you  delete the term or  press ESC, the input  field will close
       and vanish. To trigger a search  you press enter. (No incremental search
       for now,  but that would be  trivial to implement, just  call the search
       function on every update).
       
       Once the search is executed, all  occurrences of the search term will be
       highlighted and the current row is  moved to the first occurrence of the
       search term. If no occurrences are below the current position, the first
       occurrence in  the document will  be highlighted instead  (wrapping). If
       the search  term is not  found nothing  happens (Should probably  show a
       message).
       
       For navigation between search result I  settled for the vim-keys n (goto
       next result) and N (goto previous result).  It would also be easy to add
       backward  search, but  the '?'-shortcut  is already  taken for  the help
       function.  The  'n' key was  originally used for  jump-to-next-link (and
       'p' for the opposite). I changed these to 'l' and 'L'.
       
       There are several ways to improve this search function: 
       
       - Incremental search, maybe configurable.
       - Backward search.
       - Case-insensitive search
       - Highlighting of search terms is not optimal, because it's invisible
         on the currently selected line.
       - Search term history. Press '/' and arrow up to see previous search
         terms.
       
       The new editfield  opens a lot of doors. Vim-like  commands are possible
       now, like ':help'.  Maybe ':bn' and ':bp' for  switching between buffers
       ("tabs") would be cool.
       
       
       [1] http://github.com/jansc/ncgopher
       
 (DIR) Back
       ______________________________________________________________________________
                                 Gophered by Gophernicus/3.0.1 on FreeBSD/amd64 12.3