No TextMate, como posicionar o cursor dentro de uma tag HTML gerada recentemente?

3

Eu vim do clone do Windows TextMate e-texteditor. E nesse aplicativo, e definido como Ruby on Rails bundle enquanto em um documento .html.erb , se eu fosse digitar Ctrl - Alt - W (equivalente a Ctrl - Deslocamento - W no TextMate), então eu obtenho

<p></p> 

com a letra "p" nos primeiros pontos destacados onde eu posso digitar qualquer texto e os outros colchetes de fechamento "p" serão alterados de acordo. Tudo está bem no TextMate e no e-texteditor até agora. Mas no e-texteditor, se eu, então, pressionar Tab , o cursor será movido para o conteúdo dessas tags HTML assim:

<p>|</p> 

onde | representa o cursor. Agora eu sei que o Ctrl - Shift - W deve envolver o texto selecionado no TextMate, e o e-texteditor também faz isso! Mas eu acho que ser capaz de fazer um par de tags HTML e abas dentro em vez de seta-chave me de volta em muito conveniente.

Talvez haja outro atalho para isso?

Apenas para o caso de eu não estar muito claro: Ctrl - Deslocamento - W (ou outro atalho), quando pressionado, primeiro gera

<p></p> 

com o primeiro 'p' em destaque pronto para ser alterado. Alterado ou não, quando a tecla Tab é pressionada, o cursor deve ficar entre essas tags HTML de abertura e fechamento.

    
por Nik So 30.12.2011 / 11:23

2 respostas

2

EDITAR

Algo estava me incomodando com a sua pergunta: eu não me lembrava de ter esse problema, mas de alguma forma eu esqueci a maior parte do que eu sabia sobre TextMate (troquei para o Vim um ano atrás). Eu apenas re-licitei o TextMate para brincar com o TM2, então aqui está sua resposta:

Você está usando o atalho "errado".

Ctrl Deslocamento W é para agrupar o texto atualmente selecionado com as tags de abertura e fechamento .

Como você bateu neste atalho sem uma seleção, você acaba com uma tag vazia. Como foi projetado para trabalhar com algum conteúdo pré-existente, é bastante lógico que ele não forneça a capacidade de editar o conteúdo ainda mais.

O caso de uso típico é quando você cola um texto bruto de um breve e passa por ele para adicionar formatação HTML adequada.

Esse atalho que insere um par de tags HTML vazio é uma espécie de miragem. Claro que faz isso, mas é um efeito colateral de não usá-lo corretamente.

O atalho correto é Ctrl < que é para inserir tags de abertura e fechamento, opcionalmente usando a palavra atual.

Você pode usá-lo de duas maneiras:

  1. Se você tiver espaços em branco à esquerda do cursor, pressione Ctrl e para inserir <p></p> com o primeiro p selecionado. Você pode alterar p para algo como h1 e espelhar para a tag de fechamento ou pressionar a tecla Tab para mover o cursor entre as tags, assim: <p>|</p> .

    Qual, eu acho, é exatamente o que você quer e, na verdade, o que eu sempre fiz. Daí o meu desconforto com a sua pergunta.

  2. Se o seu cursor estiver posicionado logo após uma palavra, digamos span , pressione Ctrl < para substituir span por <span></span> com o primeiro span selecionado. Agora você tem exatamente as mesmas possibilidades do primeiro método.

END EDIT

Meus dias do TextMate acabaram, portanto, essa solução provavelmente não é a melhor, mas é muito fácil colocá-la em prática.

Basta criar um snippet com a letra t como acionador e

<${1:tag}>$0</$1>

como conteúdo.

Quando estiver pronto, você só precisará digitar t<Tab>p<Tab> e, em seguida, seu conteúdo.

Obviamente, como existe uma desvantagem bastante importante: se você adicionar atributos, eles serão espelhados na tag final.

Isso pode ser atenuado adicionando uma parada de tabulação extra:

<${1:tag}${2: }>$0</$1>
    
por 01.01.2012 / 11:22
3

Você pode alterar apenas o snippet "Marcar seleção na tag" de

<${1:p}>$TM_SELECTED_TEXT</${1/\s.*//}>

para

<${1:p}>${0:$TM_SELECTED_TEXT}</${1/\s.*//}>
    
por 01.01.2012 / 11:20