Bearbeiten : Ich habe gerade das Plugin vim-textobject-latex entdeckt , das genau die Funktionalität hinzufügt, nach der Sie suchen (neben ein paar anderen Dingen). Aus der README des Plugins:
Derzeit unterstützte Textobjekte sind:
a i Description
a\\ i\\ Inline math surrounded by ``\\(`` and ``\\)``.
a$ i$ Inline math surrounded by dollar signs.
aq iq Single-quoted text ``\`like this'``.
aQ iQ Double-quoted text ``\``like this''``.
ae ie Environment ``\begin{...}–\end{...}``
So können Sie caq
und dergleichen verwenden, wie Sie wollten. Ich habe es getestet und es funktioniert wie angekündigt, beachte aber, dass es vom vim-textobject-user- Plugin abhängt . Beachten Sie auch, dass Sie sicherstellen müssen, dass das textobject-user
Plugin zuerst geladen wird, sonst funktionieren die Dinge nicht.
Wenn Sie sich jedoch nicht mit Plugins herumschlagen möchten, bleibt meine ursprüngliche Antwort nützlich:
Wenn Sie diese beiden Zeilen hinzufügen, .vimrc
wird das meiste abgedeckt, was Sie möchten.
onoremap aq :<c-u>normal! F`vf'<cr>
onoremap iq :<c-u>normal! T`vt'<cr>
Diese erstellen neue Textobjekte ( aq
und iq
), die zum vorherigen zurückkehren `
, in den visuellen Auswahlmodus wechseln und dann zum nächsten wechseln '
.
Dies funktioniert für ciq
, caq
, yiq
, und diq
. Allerdings yaq
und daq
nicht yank / die äußeren Anführungszeichen löschen, so dass ich einen anderen Textobjekt erstellt, a"
, dass behandeln ( i"
nicht benötigt wird, aber ich hinzugefügt Dinge konsistent zu halten:
onoremap a" :<c-u>normal! 2F`v2f'<cr>
onoremap i" :<c-u>normal! 2T`v2t'<cr>
Der Hauptnachteil hier ist, dass dies den normalen ca"
Gebrauch usw. stört. Wenn Sie sie mit einem Vorwort versehen au FileType tex
, haben Sie nur dieses Problem in den .tex
Dateien, aber es kann gelegentlich dennoch ärgerlich sein. Sie könnten das Objekt auch so benennen wie ad
/ id
('d' für 'double' quote), aber das erschien mir weniger intuitiv (ich habe den geringsten Unterschied zum normalen Betrieb angestrebt).
Die einzige Möglichkeit, diese in nur zwei Textobjekte zu packen, besteht darin, eine Funktion zu schreiben, die nach einem anderen Anführungszeichen außerhalb des ersten Satzes sucht und die aq
Textobjekte so einstellt, dass sie das aufrufen.
Hinweis : Es gibt einige kleinere Probleme mit diesen:
- Durch Ruckeln kann der Cursor an einer unerwarteten Stelle stehen (dies kann durch Hinzufügen einer Markierung in den Befehlen behoben werden. Verwenden Sie nur keine Markierung, die
ma2F`v2f'<cr>`a
Sie häufig manuell verwenden.)
- Der Cursor muss sich innerhalb der Anführungszeichen befinden. seltsame Dinge passieren, wenn es in Anführungszeichen steht.
Um das alles zusammenzufassen, ist dies, was ich persönlich zu meinem .vimrc
für diese Ausgabe hinzufügen würde :
augroup filetype_latex
au!
au FileType tex,plaintex onoremap a' :<c-u>normal! muF`vf'<cr>`u
au FileType tex,plaintex onoremap i' :<c-u>normal! muT`vt'<cr>`u
au FileType tex,plaintex onoremap a" :<c-u>normal! mu2F`v2f'<cr>`u
au FileType tex,plaintex onoremap i" :<c-u>normal! mu2T`v2t'<cr>`u
end augroup
Wie Sie sehen, habe ich mich dafür entschieden, die normale ca'
/ ya"
/ etc-Funktionalität zu unterbrechen, damit ich keine neuen Befehle für sie lernen muss, da ich die normale Funktionalität in LaTeX sowieso nicht so oft verwenden würde. Das ist nur eine persönliche Präferenz. nicht schwer, die Objektnamen zu wechseln. Ich habe auch in der Dateityperkennung und Marken hinzugefügt.
iq
, scheint aber nicht damit zu funktionierendaq
.