Como modificar bloco visualmente selecionado com comando externo?


9

Eu tenho um arquivo que é composto de duas partes verticais. No lado esquerdo, os dados já estão formatados e não quero alterá-los. Eu só quero formatar os dados no lado direito. Digamos que eu tenha um arquivo com linhas como

foo=bar baz     # Neato       Junk
quux=xyzzy      # Bilbo Baggins Ring

com muito mais linhas como essa. Eu só quero modificar o texto à direita do caractere '#'. Selecionei o texto que desejo com as seguintes expressões:

gg
/#
ctrl-v
G
$

mas se eu tentar modificá-lo (digamos, com :'<,'>!column -t), ele realmente modificará a totalidade de cada linha. Qual é a expressão correta a ser usada para modificar apenas as partes visualmente selecionadas?


2
Você pode tentar o plugin vis do Dr. Chip ou meu plugin NrrwRgn . Ambos devem lidar com isso muito bem.
Christian Brabandt

Respostas:


6

Você também pode tentar:

gg
^V
G
t#
d
:%!column -t
gg
P

De :h :visual_example:

Atualmente, o comando ":" funciona apenas em linhas inteiras. Quando você seleciona parte de uma linha, fazer algo como ":! Date" substituirá a linha inteira. Se você deseja que apenas parte da linha seja substituída, será necessário fazer um mapeamento para ela. Em uma versão futura ":" pode funcionar em linhas parciais.

Veja também :h visual-operatorspara detalhes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.