27 lines
1.2 KiB
VimL
27 lines
1.2 KiB
VimL
" Taken from https://github.com/danidiaz/miscellany/blob/master/linux/.vim/ftplugin/haskell/movements.vim
|
|
" Next top-level type signature
|
|
nnoremap <script> <silent> ]f /^\w[^:=$]*\(::\\|\n\s*::\)<CR>
|
|
" Previous top-level type signature
|
|
nnoremap <script> <silent> [f ?^\w[^:=$]*::\(::\\|\n\s*::\)<CR>
|
|
" Next type signature
|
|
nnoremap <script> <silent> ]l /^\s*\w[^:=$]*\(::\\|\n\s*::\)<CR>
|
|
" Previous type signature
|
|
nnoremap <script> <silent> [l ?^\s*\w[^:=$]*\(::\\|\n\s*::\)<CR>
|
|
" Next data declaration
|
|
nnoremap <script> <silent> ]t /^\(data \\|newtype \\|type \\|class\)<CR>
|
|
" Previous data declaration
|
|
nnoremap <script> <silent> [t ?^\(data \\|newtype \\|type \\|class\)<CR>
|
|
" Beginning of imports
|
|
nnoremap <script> <silent> [i gg/^import <CR>z<CR>
|
|
" End of imports
|
|
nnoremap <script> <silent> [I G?^import <CR>zb
|
|
" Beginning of module exports
|
|
nnoremap <script> <silent> [m gg/^module <CR>z<CR>
|
|
" End of module exports (wonky)
|
|
nnoremap <script> <silent> [M gg/^\s*)\s*where\s*$<CR>zb<CR>
|
|
" Next named chunk of documentation
|
|
" https://www.haskell.org/haddock/doc/html/ch03s05.html
|
|
nnoremap <script> <silent> ]n /^-- \$\w\+<CR>z<CR>
|
|
" Previous named chunk of documentation
|
|
nnoremap <script> <silent> [n ?^-- \$\w\+<CR>z<CR>
|