1
1
" FILE: autoload/conque_term.vim {{{
2
2
" AUTHOR: Nico Raffo <nicoraffo@gmail.com>
3
3
" WEBSITE: http://conque.googlecode.com
4
- " MODIFIED: 2011-04-04
5
- " VERSION: 2.1 , for Vim 7.0
4
+ " MODIFIED: 2011-08-12
5
+ " VERSION: 2.2 , for Vim 7.0
6
6
" LICENSE:
7
7
" Conque - Vim terminal/console emulator
8
- " Copyright (C) 2009-2011 Nico Raffo
8
+ " Copyright (C) 2009-__YEAR__ Nico Raffo
9
9
"
10
10
" MIT License
11
11
"
@@ -235,7 +235,9 @@ function! conque_term#dependency_check() " {{{
235
235
if line = ~ ' ^ ' || line = ~ ' ^--' || line = ~ ' matchparen'
236
236
continue
237
237
endif
238
- echohl WarningMsg | echomsg " Warning: Global CursorHoldI and CursorMovedI autocommands may cause ConqueTerm to run slowly." | echohl None
238
+ if g: ConqueTerm_StartMessages
239
+ echohl WarningMsg | echomsg " Warning: Global CursorHoldI and CursorMovedI autocommands may cause ConqueTerm to run slowly." | echohl None
240
+ endif
239
241
endfor
240
242
241
243
" check for compatible mode
@@ -264,40 +266,40 @@ endfunction " }}}
264
266
" **********************************************************************************************************
265
267
266
268
" {{{
267
- if g: ConqueTerm_StartMessages
268
- let msg_file = s: scriptdirpy . ' version.vim'
269
- let msg_show = 1
270
- let msg_ct = 1
271
-
272
- " we can write to conque_term directory
273
- if filewritable (s: scriptdirpy ) == 2
274
-
275
- if filewritable (msg_file)
276
-
277
- " read current message file
278
- try
279
- silent execute " source " . msg_file
280
- if exists (' g:ConqueTerm_MsgCt' ) && exists (' g:ConqueTerm_MsgVer' )
281
- if g: ConqueTerm_MsgVer == g: ConqueTerm_Version && g: ConqueTerm_MsgCt > 2
282
- let msg_show = 0
283
- else
284
- let msg_ct = g: ConqueTerm_MsgCt + 1
285
- endif
286
- endif
287
- catch
288
- endtry
289
- endif
290
-
291
- " update message file
292
- if msg_show
293
- let file_contents = [' let g:ConqueTerm_MsgCt = ' . msg_ct, ' let g:ConqueTerm_MsgVer = ' . g: ConqueTerm_Version ]
294
- call writefile (file_contents, msg_file)
295
- endif
296
- endif
297
-
298
- " save our final decision
299
- let g: ConqueTerm_StartMessages = msg_show
300
- endif
269
+ " if g:ConqueTerm_StartMessages
270
+ " let msg_file = s:scriptdirpy . 'version.vim'
271
+ " let msg_show = 1
272
+ " let msg_ct = 1
273
+ "
274
+ " " we can write to conque_term directory
275
+ " if filewritable(s:scriptdirpy) == 2
276
+ "
277
+ " if filewritable(msg_file)
278
+ "
279
+ " " read current message file
280
+ " try
281
+ " silent execute "source " . msg_file
282
+ " if exists('g:ConqueTerm_MsgCt') && exists('g:ConqueTerm_MsgVer')
283
+ " if g:ConqueTerm_MsgVer == g:ConqueTerm_Version && g:ConqueTerm_MsgCt > 2
284
+ " let msg_show = 0
285
+ " else
286
+ " let msg_ct = g:ConqueTerm_MsgCt + 1
287
+ " endif
288
+ " endif
289
+ " catch
290
+ " endtry
291
+ " endif
292
+ "
293
+ " " update message file
294
+ " if msg_show
295
+ " let file_contents = ['let g:ConqueTerm_MsgCt = ' . msg_ct, 'let g:ConqueTerm_MsgVer = ' . g:ConqueTerm_Version]
296
+ " call writefile(file_contents, msg_file)
297
+ " endif
298
+ " endif
299
+ "
300
+ " " save our final decision
301
+ " let g:ConqueTerm_StartMessages = msg_show
302
+ " endif
301
303
" }}}
302
304
303
305
" **********************************************************************************************************
@@ -495,7 +497,7 @@ function! conque_term#open(...) "{{{
495
497
let options [" TERM" ] = g: ConqueTerm_TERM
496
498
let options [" CODE_PAGE" ] = g: ConqueTerm_CodePage
497
499
let options [" color" ] = g: ConqueTerm_Color
498
- let options [" offset" ] = g: ConqueTerm_StartMessages * 10
500
+ let options [" offset" ] = 0 " g:ConqueTerm_StartMessages * 10
499
501
500
502
if s: platform == ' unix'
501
503
execute s: py . ' ' . g: ConqueTerm_Var . ' = Conque()'
@@ -578,6 +580,9 @@ function! conque_term#set_buffer_settings(command, vim_startup_commands) "{{{
578
580
setlocal conceallevel= 3
579
581
setlocal concealcursor= nic
580
582
endif
583
+ if g: ConqueTerm_ReadUnfocused
584
+ set cpoptions += I " Don't remove autoindent when moving cursor up and down
585
+ endif
581
586
setfiletype conque_term " useful
582
587
sil exe " setlocal syntax=" . g: ConqueTerm_Syntax
583
588
@@ -588,7 +593,7 @@ endfunction " }}}
588
593
589
594
" send normal character key press to terminal
590
595
function ! conque_term#key_press () " {{{
591
- sil exe s: py . ' ' . b: ConqueTerm_Var . " .write_ord (" . char2nr (v: char ) . " )"
596
+ sil exe s: py . ' ' . b: ConqueTerm_Var . " .write_buffered_ord (" . char2nr (v: char ) . " )"
592
597
sil let v: char = ' '
593
598
endfunction " }}}
594
599
@@ -683,21 +688,12 @@ function! conque_term#set_mappings(action) "{{{
683
688
684
689
" Map <C-w> in insert mode
685
690
if exists (' g:ConqueTerm_CWInsert' ) && g: ConqueTerm_CWInsert == 1
686
- inoremap <silent> <buffer> <C-w> j <Esc><C-w> j
687
- inoremap <silent> <buffer> <C-w> k <Esc><C-w> k
688
- inoremap <silent> <buffer> <C-w> h <Esc><C-w> h
689
- inoremap <silent> <buffer> <C-w> l <Esc><C-w> l
690
- inoremap <silent> <buffer> <C-w><Up> <Esc><C-w><Up>
691
- inoremap <silent> <buffer> <C-w><Down> <Esc><C-w><Down>
692
- inoremap <silent> <buffer> <C-w><Right> <Esc><C-w><Right>
693
- inoremap <silent> <buffer> <C-w><Left> <Esc><C-w><Left>
694
- inoremap <silent> <buffer> <C-w><C-w> <Esc><C-w><C-w>
695
- inoremap <silent> <buffer> <C-w> w <Esc><C-w> w
691
+ inoremap <silent> <buffer> <C-w> <Esc><C-w>
696
692
endif
697
693
" }}}
698
694
699
695
" map 33 and beyond {{{
700
- if exists (' ##InsertCharPre' )
696
+ if exists (' ##InsertCharPre' ) && g: ConqueTerm_InsertCharPre == 1
701
697
if l: action == ' start'
702
698
autocmd InsertCharPre <buffer> call conque_term#key_press ()
703
699
else
@@ -728,6 +724,8 @@ function! conque_term#set_mappings(action) "{{{
728
724
if s: platform == ' unix'
729
725
sil exe ' i' . map_modifier . ' map <silent> <buffer> <BS> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u("\x08"))<CR>'
730
726
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Space> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u(" "))<CR>'
727
+ sil exe ' i' . map_modifier . ' map <silent> <buffer> <S-BS> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u("\x08"))<CR>'
728
+ sil exe ' i' . map_modifier . ' map <silent> <buffer> <S-Space> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u(" "))<CR>'
731
729
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Up> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u("\x1b[A"))<CR>'
732
730
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Down> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u("\x1b[B"))<CR>'
733
731
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Right> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u("\x1b[C"))<CR>'
@@ -738,6 +736,9 @@ function! conque_term#set_mappings(action) "{{{
738
736
sil exe ' i' . map_modifier . ' map <silent> <buffer> <BS> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u("\x08"))<CR>'
739
737
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Space> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u(" "))<CR>'
740
738
739
+ sil exe ' i' . map_modifier . ' map <silent> <buffer> <S-BS> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u("\x08"))<CR>'
740
+ sil exe ' i' . map_modifier . ' map <silent> <buffer> <S-Space> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write(u(" "))<CR>'
741
+
741
742
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Up> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write_vk(' . s: windows_vk .VK_UP . ' )<CR>'
742
743
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Down> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write_vk(' . s: windows_vk .VK_DOWN . ' )<CR>'
743
744
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Right> <C-o>:' . s: py . ' ' . b: ConqueTerm_Var . ' .write_vk(' . s: windows_vk .VK_RIGHT . ' )<CR>'
@@ -755,6 +756,8 @@ function! conque_term#set_mappings(action) "{{{
755
756
else
756
757
sil exe ' i' . map_modifier . ' map <silent> <buffer> <BS>'
757
758
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Space>'
759
+ sil exe ' i' . map_modifier . ' map <silent> <buffer> <S-BS>'
760
+ sil exe ' i' . map_modifier . ' map <silent> <buffer> <S-Space>'
758
761
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Up>'
759
762
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Down>'
760
763
sil exe ' i' . map_modifier . ' map <silent> <buffer> <Right>'
@@ -927,7 +930,14 @@ function! conque_term#read_all(insert_mode) "{{{
927
930
928
931
" restart updatetime
929
932
if a: insert_mode
930
- call feedkeys (" \<C-o> f\e " , " n" )
933
+ " call feedkeys("\<C-o>f\e", "n")
934
+ let p = getpos (' .' )
935
+ if p [1 ] == 1
936
+ sil exe ' call feedkeys("\<Down>\<Up>", "n")'
937
+ else
938
+ sil exe ' call feedkeys("\<Up>\<Down>", "n")'
939
+ endif
940
+ call setpos (' .' , p )
931
941
else
932
942
call feedkeys (" f\e " , " n" )
933
943
endif
0 commit comments