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')