Tentukan objek teks yang tergantung pada operator saat ini

8

Saya ingin tahu apakah mungkin untuk membuat objek teks menyadari operatornya. Secara khusus, saya menulis objek teks untuk lingkungan LaTeX, di mana saya ingin perilaku yang berbeda tergantung pada operator. Misalnya, pertimbangkan cuplikan LaTeX berikut:

\begin{example}
  Hello world
\end{example}

Di sini paling nyaman diemenghapus konten secara linier, sedangkan ciemenghapus "Halo dunia", tetapi mempertahankan lekukan, yaitu memberi

\begin{example}
  |
\end{example}

dimana |kursornya.

Karl Yngve Lervåg
sumber
1
Ini biasanya dikontrol bukan oleh operator mana yang digunakan, tetapi dengan mendefinisikan gerakan sebagai garis atau tidak. Anda ingin menghindari menulis ke operator tertentu sehingga objek teks Anda dapat dengan baik dengan operator kustom juga.
tommcdo
Seluruh poinnya adalah bahwa saya ingin gerak pada beberapa kasus, tetapi tidak dalam kasus lain, tergantung operator mana yang digunakan. Saya mengerti bahwa ini mungkin tampak tidak konsisten, tetapi dalam kasus khusus ini, saya pikir perbedaan seperti itu wajar.
Karl Yngve Lervåg

Jawaban:

5

Contoh berikut mendekati apa yang Anda minta:

onoremap <expr> w '<esc>' . v:operator . v:count1 . (v:operator ==# 'd' ? 'aw' : 'iw')

Itu menciptakan objek teks wyang baik aw, jika digunakan oleh operator hapus, yaitu, dw= daw, atau iwsebaliknya, misalnya cw= ciw.

Enno
sumber
Terima kasih! The v:operatorvariabel hanya apa yang saya cari!
Karl Yngve Lervåg