Gostaria de saber se existe uma maneira de contar símbolos destacados vim
(incluindo espaços em branco)?
ATUALIZAR
Ele mostra a contagem de linhas se minha seleção estiver em várias linhas. Eu preciso da contagem de símbolos.
A menos que eu esteja perdendo alguma coisa, o Vim já faz isso. Se destacar algum texto usando o mouse ou digitando v
e movendo o cursor, vejo na parte inferior da tela
- VISUAL - 12
onde o número à direita é o número de caracteres destacados. Isso funciona apenas se a seleção estiver em uma única linha, caso contrário, mostra a contagem de linhas.
Você também pode selecionar visualmente alguma região de texto e tipo g Ctrl-Gque mostrará o número de linhas, palavras e bytes selecionados.
set showcmd
ao seuvimrc
para habilitá-lo.O Vim alterna entre exibir a contagem de caracteres e a contagem de linhas para o texto visualizado, dependendo do que e como você visualiza (vim 7.4 corrigido para setembro de 2015)
Se você visualizar mais de uma linha, ele exibirá apenas a contagem de linhas
fonte
v
muda de contagem de caracteres para contagem de linhas se a seleção abranger várias linhas. No entanto,g CTRL-G
faz o trabalho bem.Primeiro você puxa a seleção atual (no buffer x)
Em seguida, você exibe o comprimento desse buffer:
strlen(@x)
(O VISUAL - exibido na linha de status oculta isso, então precisamos adicionar uma nova linha)
Destaque o intervalo visual anterior:
gv
Isso não leva em consideração se o modo visual era modo de linha, caractere ou bloco, mas é suficiente para a maioria dos casos.
fonte
Vejo na sua captura de tela que você está executando no Windows, portanto, esta resposta pode não ajudá-lo tanto. Mas para outros ...
Um recurso subutilizado (IMO) do Vim é permitir que comandos externos façam o trabalho pesado.
Nesse caso, se você estiver em um sistema semelhante ao UNIX, poderá usar o
wc
comando para fazer isso.A maneira mais simples é substituir o texto selecionado pela saída do comando, digitando (com o texto selecionado):
(depois pressione enter).
Isso será exibido na sua linha de comando como:
Depois de ler as informações, você pode desfazer
u
para voltar para onde começou.Nota: Esse processamento é feito apenas em linhas inteiras . Se você quer linhas parciais, acho que a @ garyjohn's
g_CTRL-G
é sua melhor aposta.Você pode evitar a necessidade de desfazer executando:
Isso "grava" as linhas selecionadas na entrada padrão do comando e a saída do comando será exibida em um novo buffer temporário, deixando o original intocado. Veja
:help :write_c
para mais informações.Nota: Eu obtive as
:write_c
informações em: /programming/1237780/vim-execute-shell-command-without-filteringAgora, de maneira mais geral:
Este exemplo com
wc
é bastante simplista, mas você pode imaginar como essa é uma abordagem poderosa. O UNIX já possui muitos comandos de processamento de texto, e você pode usá-los no Vim com bastante facilidade, sem precisar tocar no Vimscript (yech).Além disso, qualquer programa de linha de comando que você escreva que lide com stdin / stdout agora pode não apenas beneficiar você no seu terminal, mas também dentro do Vim.
Eu me pego, por exemplo, executando
tidy
ejson-format
de dentro do vim para tornar os arquivos que estou vendo mais legíveis.Você pode fazer o mesmo no Windows, mas o Windows não possui um conjunto de comandos tão rico incorporado. Você sempre pode instalar o GNUWin32 ou similar para obter esses benefícios.
fonte
Para uma maneira programática no vimscript, isso funcionou para mim quando a seleção é limitada a uma linha:
(Usando em
virtcol(..)
vez decol(..)
, para que funcione conforme o esperado quando:set ve=all
estiver ativo.)fonte