vi / vim alternativa a “Expand selection to scope” do sublimetext

9

O texto sublime tem um recurso interessante chamado " Expandir seleção para o escopo " SHIFT + CMD + ESPAÇO , que seleciona tudo no escopo.

Ele seleciona tudo no escopo, funciona perfeitamente () ou [] ou {} a repetição expande o escopo para o pai.

Estou procurando alcançar o mesmo com o vim.

    
por palaniraja 22.04.2013 / 15:10

2 respostas

15

Se você quis dizer vim , pode fazer isso com o modo visual ( :help visual-mode ) e objetos de texto ( :help text-objects ).

Para selecionar um bloco de contraventamento, faça: v + a + {, para selecionar a repetição do bloco delimitador a + {. Note que você pode escolher apenas selecionar o conteúdo das chaves usando i ao invés de a .

Esses comandos, como muitos outros no vim, são construídos por uma ação seguida por um objeto de texto, em que o objeto de texto pode ser precedido por um número para incluir mais objetos afetados pela ação. Então você também pode deletar o objeto substituindo v por d ou corrigindo-o com c , etc.

Existem objetos de texto para muitas outras coisas além de () , {} e [] , por exemplo:

  • a + w significa uma palavra.
  • a + s significa uma sentença.
  • a + p significa um parágrafo.
  • a + < significa um bloco <> .
  • a + ' significa uma cadeia entre aspas simples.
  • a + " significa uma cadeia de aspas duplas.

Você também pode estar interessado no plug-in surround que permite adicionar / substituir / exclua os personagens próximos ou até tags.

    
por 22.04.2013 / 15:15
3

O plug-in vim-expand-region permite ampliar / reduzir a região visualmente selecionada para um (configurável) conjunto de objetos de texto. Ou seja você pode começar selecionando uma variável, depois uma atribuição, depois um bloco, depois uma função, etc.

    
por 22.04.2013 / 15:36