Você pode criar um mapeamento para fazer isso
xnoremap : :<c-u><c-r>=line("'<")<cr>,<c-r>=line("'>")<cr>
Quando você atingir :
no modo visual, excluirá o '<,'>
que normalmente é colocado com <c-u>
. Em seguida, ele inserirá o número da linha para as marcas '<
e '>
separadas por uma vírgula. Ele faz isso com
<c-r>=line("'<")<cr>
onde <c-r>=
abre o registrador de expressões que permite digitar uma expressão arbitrária e inserir o resultado.
Eu não recomendo usar isso, pois torna quase impossível repetir o comando de seleção visual em uma nova região, uma vez que o histórico agora terá números de linha em vez das marcas. Os números de linha não podem mudar entre invocações, mas as marcas podem.