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.