Crea un comando Vim per aggiungere un'istruzione debug php


2

Sto cercando di creare un comando vim per inserire facilmente un'istruzione di debug sul nome della variabile sotto il cursore. Vorrei almeno gestire alcuni casi comuni, quindi non deve essere perfetto, ma dovrebbero funzionare tutti i seguenti:

$test_var = array($test->get_test_var()) || $test->get_test_var() || $test_var;

Avere il cursore su uno di questi nomi di variabili ed eseguire il comando dovrebbe inserire una riga sopra la chiamata con il valore dell'espressione all'interno. Ad esempio, posiziona il cursore su qualsiasi cosa in '$ test-> get_test_var ()' e quindi quanto segue viene inserito sopra in una nuova riga:

print_r($test->get_test_var());

Posizionando il cursore su 'array ( $ test-> get_test_var () )' si dovrebbe inserire la stessa cosa e non includere l'array. Posizionandolo sull'array si dovrebbe fare questo:

print_r(array($test->get_test_var()));

E infine, posizionandolo su "$ test_var;" inserire quanto segue (escluso il punto e virgola):

print_r($test_var);

Ovviamente ci sto lavorando da solo, ma alcuni di voi potrebbero avere un'idea di come farlo facilmente che mi mancherà come un utente relativamente nuovo di VIM.


È abbastanza facile da fare se sei disposto a selezionare visivamente il testo che vuoi inserire (vedi ": aiuto 04.4" e ": aiuto modalità visiva") o il testo è qualcosa che Vim riconosce come oggetto di testo (vedi ": help 04.8 "e": help text-object "), ma Vim non capisce le espressioni PHP, quindi non conosco un modo semplice (a parte scrivere un parser PHP nello script Vim) per selezionare una variabile o un'espressione PHP dopo aver inserito il cursore come desiderato.
garyjohn,

Risposte:


0

Se metti qualcosa di simile nel tuo vimrc, dovrai spostare% DATE% con il formato:

    iab %DATE% <c-r>=strftime("%a %d %b %Y")

Per cose più semplici, inserisci:

    iab br best regards,<CR><CR>Your Name

Questo sostituirà "br" con i migliori saluti, ecc.

Quindi potresti provare qualcosa del tipo:

    iab debugr ...

Non sono sicuro se è necessario premere Invio per sostituire, ma provalo.


Ho già trovato un comando del genere per inserire la data (mappa <silente> <F9>: r! Date "+ \% m - \% d - \% Y" <CR> mappa <silente> <s-F9 >: r! date "+ \% m - \% d - \% Y \% H: \% M: \% S" <CR>) ma penso che tu l'abbia erroneamente pubblicato qui.
chris.ritsen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.