Vim surround: crea un nuovo tag ma non rientro / nuova linea
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>
. 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/ )