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