Questão como bloquear selecionar, mover, copiar, colar no vi?


Eu estou tentando migrar do Notepad ++ para o vi. Em N ++, eu confio constantemente em edição de bloco (ou "modo de coluna"), pois é um grande aumento na produtividade: eu posso selecionar uma área retangular de texto pressionando ALT antes de marcar com o mouse e copiar, mover, colar área retangular em qualquer lugar. Além disso, é possível arrastar o cursor verticalmente para que eu possa digitar simulatenously em várias linhas subseqüentes ao mesmo tempo.

Existe alguma funcionalidade semelhante para o vi? Se sim, como posso fazer isso?


4


origem


Oi Paul, não é realmente um duplicado. Admito que estou fazendo duas perguntas ao mesmo tempo, mas minha pergunta também era sobre edição de várias linhas. - gojira
Sim. É só que isso não é mencionado nesse outro segmento que você vinculou, portanto, eu não diria que este segmento é uma duplicata. Eu mencionei preventivamente isso antes que este tópico seja encerrado. - gojira
Sim, mas todos nós precisamos nos esforçar para reduzir o número de duplicatas ou quase duplicatas do site. Para zero, sempre que possível. Se você tivesse pesquisado primeiro, você teria encontrado a resposta para a pergunta do bloco, então você poderia ter apenas perguntado apenas a questão da edição multilinha (mas você provavelmente teria descoberto isso em exploração). Você poderia apenas editar sua pergunta para torná-la menos dupey. - Paul
techie007: a resposta nesse outro tópico é uma merda comparada com a que Jacob deu abaixo. Não vejo por que devo votar em outra resposta, que é muito pior do que a dada aqui. - gojira
@ Paul - Não, nós não. O que precisamos é tentar melhorar a qualidade das informações disponíveis neste site. As duplicatas não estão relacionadas à qualidade. Muitas vezes, uma resposta melhor é fechada porque já havia alguma resposta (de baixa qualidade) que respondia à pergunta semelhante. - Rook


Respostas:


Realmente, vi? Tem certeza que você não quis dizer, vim ou gVim?

Vou dar um pontapé aqui e assumir o teu último. O gVim tem várias maneiras de selecionar o texto, o mais semelhante ao bloco de edição no Notepad ++, também é convenientemente chamado de edição de bloco no gVim. Você começa com Ctrlv e depois selecione.

Se você quiser "passar por cima dos espaços em branco", coloque isso

:set virtualedit=block

em seguida, repita a parte com Ctrlv. x corta a seleção, y puxa-o (outra palavra para cópia), p cola-lo Todos estes têm algumas variações sobre o tema. O Vim realmente tem uma infinidade de recursos de manipulação de texto - ouso dizer, não conheço nenhum outro editor que se aproxime a esse respeito.

Ups, só vi a outra pergunta lá também. Digitando em várias linhas, isto é. Vai assim (um método): selecione a coluna vertical com Ctrlv, pressione Eu, digita alguma coisa, aperte escape ... deve copie-se para todas as outras linhas também.

Observe que, se você estiver usando o GVim no Windows, Ctrlv tentará colocar o buffer da área de transferência do sistema por padrão. Ctrlq é um atalho alternativo para executar a mesma ação no Windows.


5



Bem, eu quis dizer vi, obviamente, incluindo derivados e versões modernas; Eu pensei que isso é entendido quando apenas dizendo "vi". Obrigado pela sua resposta. Isso funciona muito bem! Mas uma pergunta de seguimento: se eu selecionar um bloco de texto como descrito, e então mover o cursor para o início de uma linha e pressionar "p", o bloco não será inserido na primeira posição da linha, mas a partir de a segunda posição. Este é o comportamento padrão? Ou o que eu preciso fazer para inserir o bloco no início da linha? - gojira
@gojira: Você não acreditaria em quantas pessoas dizem "vi", mas significa o "vim" moderno e espera ter cores, suporte ao mouse e tudo no vi. - grawity
@gojira - Tente "P". Sim, esse é o comportamento correto. - Rook
@grawity, suporte ao mouse, PAH. Eu uso meu minúsculo netbook com um minúsculo trackpad. Estou feliz por não usar um mouse. - Rob
@Rob: Ok, isso é apenas ... me desculpe, mas como diabos o seu desprezo por mouses de computador é relevante para essa discussão? - grawity