@Remonn l'ha già detto nei commenti, ma non era molto chiaro per me. Questo è come sono riuscito a vedere i risultati:
function! F()
normal! gv
throw mode()
endfunction
vnoremap <F9> <ESC>:call F()<CR>
andare in diverse modalità visive e poi ha colpito F9
a vedere.
Ho bisogno di un lancio perché la riga -- VISUAL --
copre qualsiasi messaggio di eco. Qualcuno può echeggiare in modalità VISUAL?
In generale, penso che la cosa migliore da fare quando si avrebbe bisogno mode()
è quello di fare due mappature differenti, e poi o due funzioni diverse che fanno cose completamente diverse:
function! Fnorm()
endfunction
function! Fvis()
endfunction
nnoremap <F9> :call Fnorm()<CR>
nnoremap <F9> <ESC>:call Fvis()<CR>gv
o una singola funzione e dare diversi parametri ad esso a seconda della mappatura:
function! F(param)
endfunction
nnoremap <F9> :call F(1)<CR>
nnoremap <F9> <ESC>:call F(2)<CR>gv
Un altro trucco correlato è che cosa fare se si vuole fare qualcosa mentre si è in modalità visiva, come spostare il cursore. Il meglio che posso fare è:
function! Fvis()
normal! gv
cursor(1, 1)
endfunction
nnoremap <F9> <ESC>:call Fvis()<CR>gv
fonte
2013-11-10 13:09:23
Che cosa vuoi fare se la modalità di blocco visivo è attiva? –
'@Pavan, se la modalità di blocco visivo è attiva, voglio calcolare l'inizio alla fine del blocco (riga + colonne). Se la modalità visiva è attiva, voglio calcolare solo la riga iniziale e finale della selezione visiva, ma non le colonne. – Reman
Controlla ': aiuto visualmode()'. – Raimondi