Düzenleme : Ben sadece aradığınız tam işlevselliği ekleyen vim-textobject-lateks eklentisini keşfettim (bir kaç şeye ek olarak). Eklentinin README'sinden:
Şu anda desteklenen metin nesneleri:
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{...}``
Böylece istediğiniz gibi kullanabilirsiniz caq
. Test ettim ve reklamı yapıldığı gibi çalışıyor, ancak vim-textobject-user eklentisine bağlı olduğuna dikkat edin . Ayrıca , textobject-user
eklentinin önce yüklendiğinden emin olmalısınız , aksi halde işler işe yaramaz.
Bununla birlikte, eklentilerle uğraşmak istemiyorsanız, orijinal cevabım faydalı olmaya devam ediyor:
Bu iki çizgiyi size eklemek , istediklerinizin çoğunu.vimrc
kapsayacaktır .
onoremap aq :<c-u>normal! F`vf'<cr>
onoremap iq :<c-u>normal! T`vt'<cr>
Bunlar öncekine geri dönen yeni metin nesneleri ( aq
ve iq
) yaratır `
, görsel seçim moduna girip bir sonrakini seçer '
.
Bu için çalışacak ciq
, caq
, yiq
, ve diq
. Ancak yaq
ve daq
yank / dış tırnak silmez, ben başka bir metin nesnesi oluşturulur, böylece a"
, (yani işlemek için i"
gerekli değildir, ancak tutarlı tutmak eklendi:
onoremap a" :<c-u>normal! 2F`v2f'<cr>
onoremap i" :<c-u>normal! 2T`v2t'<cr>
Buradaki en büyük dezavantajı bunun normal ca"
vb. Kullanımı bozmasıdır. Bunları ön planda au FileType tex
tutarsanız, bu sorunu yalnızca .tex
dosyalarda görürsünüz , ancak yine de sıkıntı olabilir. Ayrıca nesneyi ad
/ id
('çifte' fiyat teklifi için 'd') gibi bir adla da isimlendirebilirsiniz , ancak bu bana daha az sezgisel göründü (normal operasyondan en az farkı hedefliyordum).
Bunları sadece iki metin nesnesine sarmayı düşünebilmemin tek yolu, ilk kümenin dışındaki başka bir alıntıyı kontrol eden ve aq
onu çağırmak için metin nesnelerini ayarlayan bir işlev yazmak olacaktır .
Not : Bunlarla ilgili birkaç küçük sorun daha var:
- Yanking, imlecinizi beklenmeyen bir yerde bırakabilir (bu, komutlara bir işaret kullanılarak eklenebilir (örn.
ma2F`v2f'<cr>`a
, Yalnızca sık kullandığınızdan emin olun).
- İmleç tırnak içinde olmalıdır; tırnak üzerinde ise garip şeyler olur.
Hepsini sarmak .vimrc
için, bu sorun için şahsen ekleyeceğim şey bu:
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
Gördüğünüz gibi, normal ca'
/ ya"
/ etc işlevlerini kırmayı seçtim, bu yüzden onlar için yeni komutlar öğrenmek zorunda kalmamıştım, çünkü normal işlevi zaten LaTeX içinde bu kadar fazla kullanmayacağım. Bu sadece kişisel bir tercih; Nesne adlarını değiştirmek zor değil. Ayrıca dosya tespiti ve işaretlerini de ekledim.
iq
, ancak örneğin, bununla iş görünmüyordaq
.