Question

L'une des grandes forces de vim -select objet , offre manipulation rapide de contenu à l'intérieur des mots, paragraphes et délimiteurs assortis.

Par exemple,

vi{

sélectionnera tout à l'intérieur d'une paire de {} accolades.

Y at-il une fonctionnalité équivalente pour sélectionner un ou heredoc:

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

Sur la base La réponse de ErichBSchulz je suis venu avec ce qui suit pour une heredoc intérieure sélectionnez:

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
Était-ce utile?

La solution

La réflexion sur les postes précédents et d'essayer de les prendre un pas de plus. Cette fiabilité ne sera pas en 100% (c.-à-cassera si la balise de début se produit dans le heredoc, mais quelque chose comme:

?<<< "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

Edit: Ken a amélioré la séquence ci-dessus, alors je vous suggère d'utiliser sa meilleure cartographie clé pour une heredoc « intérieure » select:

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

(ceci est basé sur heredocs de style php)

Autres conseils

Pour sélectionner je place habituellement de heredoc le curseur à la première ligne, sur la identifiant heredoc et appuyez sur V *

V démarre une sélection de ligne et * va commencer une recherche, d'aller au prochain match de l'identifiant, la fin de la heredoc ...

A heredoc de <<'' terminée par une ligne vide est facile, si vous êtes déjà au début (?<<^M^M). v} sélectionne ici jusqu'à ce que la ligne vide

Dans le cas contraire, dans votre exemple, le mieux que je peux penser est v/^HTML.

Il y a ce plugin qui vous permet de définir vos propres objets texte.

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

J'imagine que ce serait bien de définir un pour que vous puissiez dire « yih » (coup sec dans heredoc) de sorte que vous ne pas aller explicitement au début.

Notez que je ne l'ai pas dupé autour avec moi-même.

Si vous voulez juste un

sélectionnez visuelle que vous pourriez.
 nnoremap <leader>ih ?HTML<cr>V/HTML<cr>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top