Com o cursor no N de NAME , eu simplesmente faria o seguinte sem muito cuidado com o golfe:
<C-v>}hhhhhhhh
Mas o plug-in de coluna de texto faz exatamente o que você deseja. Magicamente.
Considerando que temos os dados atuais:
ID NAME AGE
1 Joan 29
2 Peterson 16
3 Hunt 47
4 Wenche 12
5 Kennedy 29
6 Lottie 31
E o cursor é o N in NAME , como eu selecionaria o texto para que, se | fosse os delimitadores do bloco visual, a seleção deveria ser assim
ID |NAME | AGE
1 |Joan | 29
2 |Peterson| 16
3 |Hunt | 47
4 |Wenche | 12
5 |Kennedy | 29
6 |Lottie | 31
O espaço em branco à direita após cada elemento para corresponder à largura de Peterson não é necessário, mas eu preciso de uma maneira rápida de destacar o bloco atual, se existir.
Com o cursor no N de NAME , eu simplesmente faria o seguinte sem muito cuidado com o golfe:
<C-v>}hhhhhhhh
Mas o plug-in de coluna de texto faz exatamente o que você deseja. Magicamente.
Existem scripts para tornar isso mais fácil, mas supondo que você queira usar vim bruto, aqui está meu método mais conhecido para fazer isso:
a. Verifique se sua última linha do arquivo está cheia de espaços em branco, algo assim:
"______________________________________" .
depois, vá para a primeira letra N em "Nome". Bata ctrl-v, w, 999999j e a coluna será escolhida.
Você precisa que a última linha esteja cheia de espaços, caso seu arquivo termine em uma nova linha, porque o modo visual não pode selecionar partes do arquivo que não foram criadas. Se a última linha for um conteúdo viável, você não precisa disso. ctrl-v+w seleciona uma palavra, então 999999j simples leva o cursor "para baixo" 99999 linhas (ou menos se o arquivo for menor).
Nota: Você verá que esta é uma seleção de coluna inteira e os espaços em branco são um pouco diferentes do que você declarou (mas você disse que isso não era importante). No que diz respeito ao meu conhecimento, se você quiser que a coluna seja alinhada ao final da maior palavra e não ao início da próxima, será necessário encontrar manualmente o maior tamanho de palavra, selecionar visual desse tamanho e, em seguida, fazer algo como 99999j .
Aqui está uma maneira de fazer isso:
control-v para entrar no modo de bloqueio visual 2j para descer duas linhas até a entrada Peterson e para mover a seleção de bloco para o final da palavra Peterson
4j para mover a seleção pelas quatro linhas finais Edit: Se você realmente insistir em evitar "números mágicos", você pode fazer algo como descrito aqui: link
:set nosol (para que o comando G não seja recolocado na primeira linha na seleção de bloco visual) control-v /P (você não disse números mágicos, mas não proibiu a busca por letras - se o espaço em branco não é crucial, você pode ignorar isso) e (ir para o final da palavra) G (move a seleção de bloco para o final) Outras dicas:
gv
v é usado para modo visual de caracteres e V para linha, enquanto control-v como acima é para modo visual de bloco Referências úteis (além da Internet):
Practical Vim de Drew Neil é realmente bem escrito O mesmo que a resposta do ygoncho, mas sem "números mágicos"
ctrl-v, w, G
G vai direto para a última linha de um arquivo sem ter que quebrar '9' algumas vezes