diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim
new file mode 100644
index 0000000..48ee7ab
--- /dev/null
+++ b/runtime/macros/less.vim
@@ -0,0 +1,244 @@
+" Vim script to work like "less"
+" Maintainer:	Bram Moolenaar <Bram@vim.org>
+" Last Change:	2004 Feb 19
+
+" Avoid loading this file twice, allow the user to define his own script.
+if exists("loaded_less")
+  finish
+endif
+let loaded_less = 1
+
+" If not reading from stdin, skip files that can't be read.
+" Exit if there is no file at all.
+if argc() > 0
+  let s:i = 0
+  while 1
+    if filereadable(argv(s:i))
+      if s:i != 0
+	sleep 3
+      endif
+      break
+    endif
+    if isdirectory(argv(s:i))
+      echomsg "Skipping directory " . argv(s:i)
+    elseif getftime(argv(s:i)) < 0
+      echomsg "Skipping non-existing file " . argv(s:i)
+    else
+      echomsg "Skipping unreadable file " . argv(s:i)
+    endif
+    echo "\n"
+    let s:i = s:i + 1
+    if s:i == argc()
+      quit
+    endif
+    next
+  endwhile
+endif
+
+set nocp
+syntax on
+set so=0
+set hlsearch
+set incsearch
+nohlsearch
+" Don't remember file names and positions
+set viminfo=
+set nows
+" Inhibit screen updates while searching
+let s:lz = &lz
+set lz
+
+" Used after each command: put cursor at end and display position
+if &wrap
+  noremap <SID>L L0:redraw<CR>:file<CR>
+  au VimEnter * normal! L0
+else
+  noremap <SID>L Lg0:redraw<CR>:file<CR>
+  au VimEnter * normal! Lg0
+endif
+
+" When reading from stdin don't consider the file modified.
+au VimEnter * set nomod
+
+" Can't modify the text
+set noma
+
+" Give help
+noremap h :call <SID>Help()<CR>
+map 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"
+  echo "<Enter>   One line forward          k         One line backward"
+  echo "G         End of file               g         Start of file"
+  echo "N%        percentage in file"
+  echo "\n"
+  echo "/pattern  Search for pattern        ?pattern  Search backward for pattern"
+  echo "n         next pattern match        N         Previous pattern match"
+  echo "\n"
+  echo ":n<Enter> Next file                 :p<Enter> Previous file"
+  echo "\n"
+  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 z <Space>
+map <Esc><Space> <Space>
+fun! s:NextPage()
+  if line(".") == line("$")
+    if argidx() + 1 >= argc()
+      quit
+    endif
+    next
+    1
+  else
+    exe "normal! \<C-F>"
+  endif
+endfun
+
+" Re-read file and page forward "tail -f"
+map 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
+
+" 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>
+
+" Scroll one page backward
+noremap <script> b <C-B><SID>L
+map <C-B> b
+map w b
+map <Esc>v b
+
+" Scroll half a page backward
+noremap <script> u <C-U><SID>L
+noremap <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
+
+" Redraw
+noremap <script> r <C-L><SID>L
+noremap <script> <C-R> <C-L><SID>L
+noremap <script> R <C-L><SID>L
+
+" Start of file
+noremap <script> g gg<SID>L
+map < g
+map <Esc>< g
+
+" End of file
+noremap <script> G G<SID>L
+map > G
+map <Esc>> G
+
+" Go to percentage
+noremap <script> % %<SID>L
+map p %
+
+" Search
+noremap <script> / H$:call <SID>Forward()<CR>/
+if &wrap
+  noremap <script> ? H0:call <SID>Backward()<CR>?
+else
+  noremap <script> ? Hg0:call <SID>Backward()<CR>?
+endif
+
+fun! s:Forward()
+  " Searching forward
+  noremap <script> n H$nzt<SID>L
+  if &wrap
+    noremap <script> N H0Nzt<SID>L
+  else
+    noremap <script> N Hg0Nzt<SID>L
+  endif
+  cnoremap <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
+endfun
+
+fun! s:Backward()
+  " Searching backward
+  if &wrap
+    noremap <script> n H0nzt<SID>L
+  else
+    noremap <script> n Hg0nzt<SID>L
+  endif
+  noremap <script> N H$Nzt<SID>L
+  cnoremap <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
+endfun
+
+call s:Forward()
+
+" Quitting
+noremap q :q<CR>
+
+" Switch to editing (switch off less mode)
+map v :silent call <SID>End()<CR>
+fun! s:End()
+  set ma
+  if exists(s:lz)
+    let &lz = s:lz
+  endif
+  unmap h
+  unmap H
+  unmap <Space>
+  unmap <C-V>
+  unmap f
+  unmap <C-F>
+  unmap z
+  unmap <Esc><Space>
+  unmap F
+  unmap d
+  unmap <C-D>
+  unmap <CR>
+  unmap <C-N>
+  unmap e
+  unmap <C-E>
+  unmap j
+  unmap <C-J>
+  unmap b
+  unmap <C-B>
+  unmap w
+  unmap <Esc>v
+  unmap u
+  unmap <C-U>
+  unmap k
+  unmap y
+  unmap <C-Y>
+  unmap <C-P>
+  unmap <C-K>
+  unmap r
+  unmap <C-R>
+  unmap R
+  unmap g
+  unmap <
+  unmap <Esc><
+  unmap G
+  unmap >
+  unmap <Esc>>
+  unmap %
+  unmap p
+  unmap n
+  unmap N
+  unmap q
+  unmap v
+  unmap /
+  unmap ?
+endfun
+
+" vim: sw=2
