Domanda

vorrei mimare i compagni di testo Ctrl + Alt + W, che crea una nuova coppia di tag HTML di apertura e chiusura sulla stessa riga.

In Vim Surround Sto usando Ctrl + ST in modalità Modifica per questo, ma rientrò sempre e crea una nuova riga dopo aver impostato il tag, in modo che sia simile a questo (*= posizione del cursore):

<p>
  *
</p>
.

C'è un modo per raggiungere questo obiettivo?:

<p>*</p>
.

È stato utile?

Soluzione

Immagino che il tuo problema sia che l'area selezionata sia "linea saggia". Ad esempio, se si seleziona alcune vite con V e lo circondano con i tag, i tag verranno posizionati una riga sopra e una sotto le linee selezionate.

Probabilmente si desidera creare una selezione "carattere saggio", con v prima di ciò che lo circonda.

Comunque, pubblica la mappa che hai creato, quindi possiamo aiutare a debug di questo.


.

Aggiornamento

Dopo alcuni chiarimenti nei commenti, ti direi che il plugin surround non è l'opzione migliore. Come il suo nome descrive, è stato creato per affrontare i contenuti circondati. Quindi potresti aver bisogno di contenuti da surround.

Nel tuo caso, consiglio di dare un'occhiata a html autoclosetag . Questo plug-in chiude il tag HTML dopo aver digitato il >. È certamente più appropriato e utilizza meno sequenze di tasti che surround.

<p         <--- Now when you type ">", if becomes:
<p>|</p>   <--- Where "|" is the cursor.
.

Ovviamente, otterrai questo comportamento ad ogni tag. Ma potrebbe essere utile se ti piace.

Altri suggerimenti

Dalla modalità normale, digitare vstp> per immettere la modalità visiva e inuscitare un tag <p> di apertura e chiusura sulla stessa linea nella posizione corrente del cursore.Utilizzare un capitale s per mantenere il livello di rientro corrente.

Questo non posiziona il cursore tra i tag come descrivi, ma non è né il problema di TextMate Ctrl w scorciatoia (penso che intendesse ctrl + shift + w,non ctrl + alt + w, come quest'ultimo emette solo un segno di diamante.)

La mia risposta è probabilmente arrivata fino a tardi, ma cercherò di aiutare. Ho avuto problemi simili con il plugin di Vimsurround.Ogni volta che seleziò la frase (una riga) usando Ctrl + V e prova a circondarlo con qualcosa che ottengo questo:

{
var myVar
}
.

Invece di questo:

{ var myVar } // what I wanted
.

Ho trovato una soluzione facile: da una modalità normale, scelgo una linea con comando vis e quindi digito il capitale c (la mia mappatura surround Vim) e scegli parentesi per surround. Quindi ottengo una linea piacevole.circondato.

Il titolo della domanda è tecnicamente erroneamente sbagliato in base a ciò che l'autore stava effettivamente cercando, ma dal momento che in realtà stavo cercando la risposta alla domanda posta nel titolo, immagino che dovrei fornire una risposta anche ad esso.

.

Per creare un nuovo tag che circonda un elemento senza l'indentazione automatica VIM Bround Uso quando si utilizza una selezione di blocco saggio (cioè: VYSS ), puoi invece fare qualcosa come:

^ ys $

Questo comando sposta il cursore sul primo carattere non vuoto della riga, emetterà il comando che si desidera utilizzare surround, e passare alla fine della riga.Quindi, basta iniziare ad entrare nel tuo tag.

Il risultato è questo:

<input type="email" name="email">
.

potrebbe diventare qualcosa del genere:

<li><input type="email" name="email"></li>
.

Il comando è ripetibile anche con . e tutta la normale altra bontà vim.

inciampato su questa domanda perché mi stavo chiedendo anche questo - credo che il modo più semplice per farlo sia solo:

yss<p>
.

(yss circonda una linea con qualcosa senza indentazione - Vedi qui: http://www.catonmat.net/blog/vim-plugins-surround-vim/ )

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top