Domanda

Uno di Vim grandi punti di forza è oggetto-selezionare, offre una rapida manipolazione del contenuto all'interno di parole, paragrafi e assortiti delimitatori.

Per esempio,

vi{

seleziona all'interno di una coppia di parentesi graffe {} parentesi.

C'è qualche funzionalità equivalenti per la selezione di un qui il documento o heredoc:

<<<HTML
    ....
    ....
HTML;

Basato su ErichBSchulz la risposta mi è venuta un'idea per un heredoc interiore selezionare:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j

?<<<<CR>w    " find beginning tag (after <<<)
*k           " find matching end tag and go up 1 line
V            " enter visual mode
?<<<<CR>j    " find beginning tag and go down 1 line
È stato utile?

Soluzione

Pensando i post precedenti e cercando di portarli un passo più vicino. Questo essere abitudine affidabile al 100% (vale a dire si romperà se il tag di partenza avviene all'interno del heredoc ma qualcosa di simile:

?<<< "find begining
w    " go to starting tag
*    " find starting tag
v    " enter visual mode (could use Upper V to do an 'ambientish' object select 
n    " find end tag
e    " optional include end tag

Modifica: Ken ha migliorato la sequenza di cui sopra, quindi vi suggerisco di utilizzare il suo migliore mappatura dei tasti per un heredoc 'interna' selezionare:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j

(questo si basa su heredocs stile php)

Altri suggerimenti

Per la selezione di heredoc solito posizionare il cursore nella prima riga, il identificatore heredoc e premere V *

V avvierà una selezione della linea, e * inizierà una ricerca, andare alla prossima partita dell'identificativo, alla fine del heredoc ...

Un <<'' heredoc terminato da una riga vuota è facile, se sei già in partenza (?<<^M^M): v} seleziona da qui fino a quando la riga vuota.

Altrimenti, nel tuo esempio migliore che posso pensare è v/^HTML.

C'è questo plugin che consentono di definire i propri oggetti di testo.

http://www.vim.org/scripts/script.php ? script_id = 2100

Immagino che sarebbe stato bello per definire uno così si potrebbe dire 'Yih' (Yank in heredoc) in modo da non andare in modo esplicito al punto di partenza.

Si noti che non ho ingannato in giro con questo me stesso.

Se si desidera solo una visuale si potrebbe selezionare.

 nnoremap <leader>ih ?HTML<cr>V/HTML<cr>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top