1 " Vim filetype plugin file
4 " Plugin : bash-support.vim
5 " Maintainer : Fritz Mehner <mehner@fh-swf.de>
7 " Last Change: 11.11.2005
9 " -----------------------------------------------------------------
11 " Only do this when not done yet for this buffer
13 if exists("b:did_BASH_ftplugin")
16 let b:did_BASH_ftplugin = 1
18 " ---------- BASH dictionary -----------------------------------
20 " This will enable keyword completion for bash
21 " using Vim's dictionary feature |i_CTRL-X_CTRL-K|.
23 if exists("g:BASH_Dictionary_File")
24 silent! exec 'setlocal dictionary+='.g:BASH_Dictionary_File
27 " ---------- hot keys ------------------------------------------
29 " Alt-F9 run syntax check
30 " Ctrl-F9 update file and run script
31 " Shift-F9 command line arguments
33 map <buffer> <silent> <A-F9> <Esc>:call BASH_SyntaxCheck()<CR><CR>
34 imap <buffer> <silent> <A-F9> <Esc>:call BASH_SyntaxCheck()<CR><CR>
36 " <C-C> seems to be essential here:
38 vmap <buffer> <silent> <C-F9> <C-C>:call BASH_Run("v")<CR>
39 nmap <buffer> <silent> <C-F9> <C-C>:call BASH_Run("n")<CR>
40 imap <buffer> <silent> <C-F9> <C-C><C-C>:call BASH_Run("n")<CR>
42 map <buffer> <silent> <S-F9> :call BASH_CmdLineArguments()<CR>
43 imap <buffer> <silent> <S-F9> <Esc>:call BASH_CmdLineArguments()<CR>
45 map <buffer> <silent> <F9> <C-C>:call BASH_Debugger()<CR>
46 imap <buffer> <silent> <F9> <C-C><C-C>:call BASH_Debugger()<CR>
49 map <buffer> <silent> <S-F1> :call BASH_help()<CR>
50 imap <buffer> <silent> <S-F1> <Esc>:call BASH_help()<CR>
52 " ---------- Key mappings -------------------------------------
54 map <buffer> <silent> <Leader>h <Esc>:call BASH_help()<CR>
56 nmap <buffer> <silent> <Leader>cl <Tab><Tab><Tab>#<Space>
57 vmap <buffer> <silent> <Leader>cl <Esc><Esc>:call BASH_MultiLineEndComments()<CR>
58 nmap <buffer> <silent> <Leader>cf :call BASH_CommentTemplates('frame')<CR>
59 nmap <buffer> <silent> <Leader>cu :call BASH_CommentTemplates('function')<CR>
60 vmap <buffer> <silent> <Leader>co <Esc><Esc>:'<,'>s/^#//<CR><Esc>:nohlsearch<CR>
62 nmap <buffer> <silent> <Leader>cc <Esc><Esc>:s/^/\#/<CR><Esc>:nohlsearch<CR>"
63 vmap <buffer> <silent> <Leader>cc <Esc><Esc>:'<,'>s/^/\#/<CR><Esc>:nohlsearch<CR>"
64 nmap <buffer> <silent> <Leader>co <Esc><Esc>:s/^\\(\\s*\\)#/\\1/<CR><Esc>:nohlsearch<CR>"
65 nmap <buffer> <silent> <Leader>co <Esc><Esc>:'<,'>s/^\\(\\s*\\)#/\\1/<CR><Esc>:nohlsearch<CR>"
67 nmap <buffer> <silent> <Leader>cd i<C-R>=strftime("%x")<CR>
68 nmap <buffer> <silent> <Leader>ct i<C-R>=strftime("%x %X %Z")<CR>
69 nmap <buffer> <silent> <Leader>ckb $<Esc>:call BASH_CommentClassified("BUG") <CR>kJA
70 nmap <buffer> <silent> <Leader>ckt $<Esc>:call BASH_CommentClassified("TODO") <CR>kJA
71 nmap <buffer> <silent> <Leader>ckr $<Esc>:call BASH_CommentClassified("TRICKY") <CR>kJA
72 nmap <buffer> <silent> <Leader>ckw $<Esc>:call BASH_CommentClassified("WARNING") <CR>kJA
73 nmap <buffer> <silent> <Leader>ckn $<Esc>:call BASH_CommentClassified("") <CR>kJf:a
74 nmap <buffer> <silent> <Leader>ce <Esc><Esc>^iecho<Space>"<Esc>$a"<Esc>j'
75 nmap <buffer> <silent> <Leader>cr <Esc><Esc>0:s/^\s*echo\s\+\"// \| s/\s*\"\s*$// \| :normal ==<CR><Esc>j'
76 nmap <buffer> <silent> <Leader>cv :call BASH_CommentVimModeline()<CR>
78 nmap <buffer> <silent> <Leader>ac ocase in<CR>)<CR>;;<CR><CR>)<CR>;;<CR><CR>*)<CR>;;<CR><CR>esac # --- end of case ---<CR><Esc>11kf<Space>a
79 nmap <buffer> <silent> <Leader>ae oif <CR>then<CR>else<CR>fi<Esc>3kA
80 nmap <buffer> <silent> <Leader>af ofor in <CR>do<CR>done<Esc>2k^f<Space>a
81 nmap <buffer> <silent> <Leader>ai oif <CR>then<CR>fi<Esc>2k^A
82 nmap <buffer> <silent> <Leader>al oelif <CR>then<Esc>1kA
83 nmap <buffer> <silent> <Leader>as oselect in <CR>do<CR>done<Esc>2kf a
84 nmap <buffer> <silent> <Leader>at ountil <CR>do<CR>done<Esc>2kA
85 nmap <buffer> <silent> <Leader>aw owhile <CR>do<CR>done<Esc>2kA
87 vmap <buffer> <silent> <Leader>ae DOif <CR>then<CR>else<CR>fi<Esc>kP<Esc>:exe "normal =".(line("'>")-line(".")-1)."+"<CR>2kA
88 vmap <buffer> <silent> <Leader>af DOfor in <CR>do<CR>done<Esc>P2k^<Esc>:exe "normal =".(line("'>")-line(".")-1)."+"<CR>f<Space>a
89 vmap <buffer> <silent> <Leader>ai DOif <CR>then<CR>fi<Esc>P2k<Esc>:exe "normal =".(line("'>")-line(".")-1)."+"<CR>A
90 vmap <buffer> <silent> <Leader>as DOselect in <CR>do<CR>done<Esc>P2k^<Esc>:exe "normal =".(line("'>")-line(".")-1)."+"<CR>f<Space>a
91 vmap <buffer> <silent> <Leader>at DOuntil <CR>do<CR>done<Esc>P2k<Esc>:exe "normal =".(line("'>")-line(".")-1)."+"<CR>A
92 vmap <buffer> <silent> <Leader>aw DOwhile <CR>do<CR>done<Esc>P2k<Esc>:exe "normal =".(line("'>")-line(".")-1)."+"<CR>A
94 nmap <buffer> <silent> <Leader>ao ^iecho<Space>-e<Space>"\n"<Esc>2hi
95 vmap <buffer> <silent> <Leader>ao secho<Space>-e<Space>"\n"<Esc>2hP
98 nmap <buffer> <silent> <Leader>re <Esc>:call BASH_MakeScriptExecutable()<CR>
100 map <buffer> <silent> <Leader>rr <Esc>:call BASH_Run("n")<CR>
101 vmap <buffer> <silent> <Leader>rr <Esc>:call BASH_Run("v")<CR>
102 map <buffer> <silent> <Leader>rc <Esc>:call BASH_SyntaxCheck()<CR>
103 map <buffer> <silent> <Leader>ra <Esc>:call BASH_CmdLineArguments()<CR>
104 map <buffer> <silent> <Leader>rd <Esc>:call BASH_Debugger()<CR>
105 map <buffer> <silent> <Leader>rs <Esc>:call BASH_Settings()<CR>
106 if has("gui_running") && has("unix")
107 map <buffer> <silent> <Leader>rt <Esc>:call BASH_XtermSize()<CR>
109 map <buffer> <silent> <Leader>ro <Esc>:call BASH_Toggle_Gvim_Xterm()<CR>
111 map <buffer> <silent> <Leader>rh <Esc>:call BASH_Hardcopy("n")<CR>
112 vmap <buffer> <silent> <Leader>rh <Esc>:call BASH_Hardcopy("v")<CR>