Frage

Einer von Vims großen Stärken ist objekt wählen , Angebot schnelle Manipulation von Inhalten innerhalb von Worten, Ziffern und verschiedenen Trennzeichen.

Beispiel:

vi{

wird alles wählen innerhalb eines Paares von {} Klammern.

Gibt es eine gleichwertige Funktionalität zur Auswahl eines hier dokumentieren oder heredoc:

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

Basierend auf ErichBSchulz Antwort kam ich mit dem Follow-up für einen heredoc Innen wählen:

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
War es hilfreich?

Lösung

Das Nachdenken über die früheren Beiträge und versuchen, sie einen Schritt näher zu nehmen. Dies würde nicht zu 100% zuverlässig (dh brechen wird, wenn der Start-Tag innerhalb des heredoc aber etwas geschieht wie:

?<<< "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 hat die Sequenz, wie oben verbessert, so dass ich schlage vor, Sie verwenden, um sein besseres Keymapping für einen ‚inneren‘ heredoc wählen:

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

(dies basiert auf PHP-Stil Heredocs)

Andere Tipps

Für die Auswahl heredoc ist stelle ich in der Regel um den Cursor in der ersten Zeile, über die heredoc Kennung und V *

V eine Zeile Auswahl starten und * wird eine Suche starten, um das nächste Spiel der Kennung gehen, das Ende des heredoc ...

Ein <<'' heredoc durch eine Leerzeile beendet ist einfach, wenn Sie bereits am Start sind (?<<^M^M). v} wählen von hier bis der leeren Zeile

Ansonsten in Ihrem Beispiel das Beste, was ich denken kann, ist v/^HTML.

Es ist das Plugin, das läßt Sie Ihre eigenen Text-Objekte definieren.

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

Ich stelle mir vor, es wäre schön, einen zu definieren, so könnte man sagen ‚yih‘ (yank in heredoc), so dass Sie nicht explizit an den Start gehen.

Hinweis: Ich habe nicht mit diesem selbst täuschen herum.

Wenn Sie nur ein visuelles wählen Sie könnten.

 nnoremap <leader>ih ?HTML<cr>V/HTML<cr>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top