On Mo, 27 Mär 2017, L. A. Walsh wrote:

> Ken Takata wrote:
> >Hi,
> >
> >2017/3/28 Tue 6:19:19 UTC+9 L A Walsh wrote:
> >>If I have a file with folds in it (fdm=marker), and I try to
> >>display it with the vim 'less.sh' script, there doesn't seem to be
> >>a way to get rid of all the folds (no 'zR').  I can use the cursor
> >>keys to move to each fold and open it, but that really defeats
> >>the idea of using 'less' to scroll through the source by pressing
> >>'space' (for example).
> >>
> >>Maybe folds should be disabled for the less.sh script?
> >
> >I'm not sure it should be disabled. However, you can use the following
> >command as a workaround to open all folds:
> >
> >    :norm! zR
> ----
>    Thanks for the workaround, but where do I put that to
> make it default, in the the less.vim file?

You can also use zi or :set nofoldenable or something like this.

>    Why would you think it shouldn't be disabled?  I.e.
> how does it help emulate the file-pagers 'less' or 'more' while
> providing syntax-coloring?

Because less.vim does what Vim would do.

>    From a different perspective, how would a non-vim user
> know what to do to use 'less.sh' if it is supposed to be a pager
> like 'less' or 'more' to page through file or program text without
> having various portions of files possibly hidden.

How likely is it, that a non-vim user gets into contact with less.vim?

>    It seems that if anyone was using less.sh to display files,
> as they would 'less' or 'more' (but w/syntax highlighting), then
> having text being hidden would seem to be a potential security
> risk, no?

Where do you see a security risk? It is pretty obvious, that a fold is 
there, so it should be easy to disable it and then you see what is 
hidden behind a fold.

How about the attached patch?

@Bram,
please see the attached patch. It improves less.vim in several ways:

- Makes 'F' toggle folds to make it easier to disable folds and also
  displays it in the help overview
- Display 'r' key in the help overview
- Add <nowait> to the mappings, because when trying out less.vim
  I found quite a few of the keys where not working as expected, since 
  many plugins map the same keys (or the same prefix, which make Vim 
  wait until the timeout triggers)

On a related note, I see that less.bat and less.sh set 'no_plugin_maps'
However only 11 of over 200 filetype plugins actually check that 
variable. I suggest to at least add a help tag *no_plugin_maps* to 
encourage filetype plugin writers to respect that variable.

Best,
Christian
-- 
Das Glück ist eine leichtfertige Person, die sich stark schminkt und
von ferne schön ist.
                -- Johann Nepomuk Nestroy

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_use+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim
index 72b53f269..347c2b457 100644
--- a/runtime/macros/less.vim
+++ b/runtime/macros/less.vim
@@ -70,8 +70,8 @@ au VimEnter * set nomod
 set noma
 
 " Give help
-noremap h :call <SID>Help()<CR>
-map H h
+noremap <nowait> h :call <SID>Help()<CR>
+map  <nowait> H h
 fun! s:Help()
   echo "<Space>   One page forward          b         One page backward"
   echo "d         Half a page forward       u         Half a page backward"
@@ -84,20 +84,21 @@ fun! s:Help()
   echo "\n"
   echo ":n<Enter> Next file                 :p<Enter> Previous file"
   echo "\n"
+  echo "F         Toggle Folds              r         Redraw"
   echo "q         Quit                      v         Edit file"
   let i = input("Hit Enter to continue")
 endfun
 
 " Scroll one page forward
-noremap <script> <Space> :call <SID>NextPage()<CR><SID>L
-map <C-V> <Space>
-map f <Space>
-map <C-F> <Space>
-map <PageDown> <Space>
-map <kPageDown> <Space>
-map <S-Down> <Space>
-map z <Space>
-map <Esc><Space> <Space>
+noremap <nowait><script> <Space> :call <SID>NextPage()<CR><SID>L
+map <nowait> <C-V> <Space>
+map <nowait> f <Space>
+map <nowait> <C-F> <Space>
+map <nowait> <PageDown> <Space>
+map <nowait> <kPageDown> <Space>
+map <nowait> <S-Down> <Space>
+map <nowait> z <Space>
+map <nowait> <Esc><Space> <Space>
 fun! s:NextPage()
   if line(".") == line("$")
     if argidx() + 1 >= argc()
@@ -112,103 +113,106 @@ fun! s:NextPage()
 endfun
 
 " Re-read file and page forward "tail -f"
-map F :e<CR>G<SID>L:sleep 1<CR>F
+map <nowait> F :e<CR>G<SID>L:sleep 1<CR>F
 
 " Scroll half a page forward
-noremap <script> d <C-D><SID>L
-map <C-D> d
+noremap <nowait><script> d <C-D><SID>L
+map <nowait> <C-D> d
 
 " Scroll one line forward
-noremap <script> <CR> <C-E><SID>L
-map <C-N> <CR>
-map e <CR>
-map <C-E> <CR>
-map j <CR>
-map <C-J> <CR>
-map <Down> <CR>
+noremap <nowait><script> <CR> <C-E><SID>L
+map <nowait> <C-N> <CR>
+map <nowait> e <CR>
+map <nowait> <C-E> <CR>
+map <nowait> j <CR>
+map <nowait> <C-J> <CR>
+map <nowait> <Down> <CR>
 
 " Scroll one page backward
-noremap <script> b <C-B><SID>L
-map <C-B> b
-map <PageUp> b
-map <kPageUp> b
-map <S-Up> b
-map w b
-map <Esc>v b
+noremap <nowait><script> b <C-B><SID>L
+map <nowait> <C-B> b
+map <nowait> <PageUp> b
+map <nowait> <kPageUp> b
+map <nowait> <S-Up> b
+map <nowait> w b
+map <nowait> <Esc>v b
 
 " Scroll half a page backward
-noremap <script> u <C-U><SID>L
-noremap <script> <C-U> <C-U><SID>L
+noremap <nowait><script> u <C-U><SID>L
+noremap <nowait><script> <C-U> <C-U><SID>L
 
 " Scroll one line backward
-noremap <script> k <C-Y><SID>L
-map y k
-map <C-Y> k
-map <C-P> k
-map <C-K> k
-map <Up> k
+noremap <nowait><script> k <C-Y><SID>L
+map <nowait> y k
+map <nowait> <C-Y> k
+map <nowait> <C-P> k
+map <nowait> <C-K> k
+map <nowait> <Up> k
 
 " Redraw
-noremap <script> r <C-L><SID>L
-noremap <script> <C-R> <C-L><SID>L
-noremap <script> R <C-L><SID>L
+noremap <nowait><script> r <C-L><SID>L
+noremap <nowait><script> <C-R> <C-L><SID>L
+noremap <nowait><script> R <C-L><SID>L
 
 " Start of file
-noremap <script> g gg<SID>L
-map < g
-map <Esc>< g
-map <Home> g
-map <kHome> g
+noremap <nowait><script> g gg<SID>L
+map <nowait> < g
+map <nowait> <Esc>< g
+map <nowait> <Home> g
+map <nowait> <kHome> g
 
 " End of file
-noremap <script> G G<SID>L
-map > G
-map <Esc>> G
-map <End> G
-map <kEnd> G
+noremap <nowait><script> G G<SID>L
+map <nowait> > G
+map <nowait> <Esc>> G
+map <nowait> <End> G
+map <nowait> <kEnd> G
 
 " Go to percentage
-noremap <script> % %<SID>L
-map p %
+noremap <nowait><script> % %<SID>L
+map <nowait> p %
 
 " Search
-noremap <script> / H$:call <SID>Forward()<CR>/
+noremap <nowait><script> / H$:call <SID>Forward()<CR>/
 if &wrap
-  noremap <script> ? H0:call <SID>Backward()<CR>?
+  noremap <nowait><script> ? H0:call <SID>Backward()<CR>?
 else
-  noremap <script> ? Hg0:call <SID>Backward()<CR>?
+  noremap <nowait><script> ? Hg0:call <SID>Backward()<CR>?
 endif
 
 fun! s:Forward()
   " Searching forward
-  noremap <script> n H$nzt<SID>L
+  noremap <nowait><script> n H$nzt<SID>L
   if &wrap
-    noremap <script> N H0Nzt<SID>L
+    noremap <nowait><script> N H0Nzt<SID>L
   else
-    noremap <script> N Hg0Nzt<SID>L
+    noremap <nowait><script> N Hg0Nzt<SID>L
   endif
-  cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
+  cnoremap <nowait><silent><script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
 endfun
 
 fun! s:Backward()
   " Searching backward
   if &wrap
-    noremap <script> n H0nzt<SID>L
+    noremap <nowait><script> n H0nzt<SID>L
   else
-    noremap <script> n Hg0nzt<SID>L
+    noremap <nowait><script> n Hg0nzt<SID>L
   endif
-  noremap <script> N H$Nzt<SID>L
-  cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
+  noremap <nowait><script> N H$Nzt<SID>L
+  cnoremap <nowait><silent><script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
 endfun
 
 call s:Forward()
-cunmap <CR>
+cunmap <nowait> <CR>
 
 " Quitting
-noremap q :q<CR>
+noremap <nowait> q :q<CR>
+
+" Toggle folding
+noremap <script><nowait> F zi<SID>L
 
 " Switch to editing (switch off less mode)
-map v :silent call <SID>End()<CR>
+map <nowait><silent> v :silent call <SID>End()<CR>
 fun! s:End()
   set ma
   if exists('s:lz')

Reply via email to