@Remonn już powiedział to w komentarzach, ale nie było dla mnie jasne. W ten sposób udało mi się zobaczyć wyniki:
function! F()
normal! gv
throw mode()
endfunction
vnoremap <F9> <ESC>:call F()<CR>
przejść do różnych trybach wizualnych, a następnie uderzył F9
zobaczyć.
Potrzebuję rzut, ponieważ linia -- VISUAL --
obejmuje wiadomość echo. Czy ktoś może wyświetlać echo w trybie VISUAL?
Ogólnie myślę, że najlepszą rzeczą do zrobienia, gdy będzie trzeba mode()
jest, aby dwa różne odwzorowania, a następnie albo dwie różne funkcje, które robią zupełnie różne rzeczy:
function! Fnorm()
endfunction
function! Fvis()
endfunction
nnoremap <F9> :call Fnorm()<CR>
nnoremap <F9> <ESC>:call Fvis()<CR>gv
lub jeden funkcję i dać do niego różne parametry w zależności od odwzorowania:
function! F(param)
endfunction
nnoremap <F9> :call F(1)<CR>
nnoremap <F9> <ESC>:call F(2)<CR>gv
Inną sztuczką jest powiązany co zrobić, jeśli chcesz coś zrobić, gdy jesteś w trybie wizualnym, jak przesunąć kursor. Najlepsze co mogę zrobić to:
function! Fvis()
normal! gv
cursor(1, 1)
endfunction
nnoremap <F9> <ESC>:call Fvis()<CR>gv
Co chcesz zrobić, jeśli aktywny jest tryb blokowania wizualnego? –
'@Pavan, jeśli aktywny jest tryb wizualnego bloku, chcę obliczyć początek początku końca bloku (linia + kolumny). Jeśli aktywny jest tryb wizualny, chcę obliczyć tylko początkową i końcową linię wizualnego wyboru, ale nie kolumny. – Reman
Sprawdź ': help visualmode()'. – Raimondi