Каманда для ўстаўкі на-заява шкілета

Як бы адзін напісаць функцыю, якая адна можа звязвацца, скажам, SUPER-е, які ўстаўляе код:

for() {
}

у буферы з маім курсорам перамяшчаюцца ў() круглыя ​​дужкі для запаўнення ахоўніка контуру?

2
Што вы спрабавалі?
дададзена аўтар EndangeredMassa, крыніца
@eof: калі yasnippet вырашыць вашу праблему, калі ласка, напішыце адказ на сваё пытанне, што дэталізуе рашэнне, і прыняць яго.
дададзена аўтар Scott Cowan, крыніца
Вы ўжо чулі пра yasnippet ?
дададзена аўтар Peter Burns, крыніца
Не спрабаваў шмат чаго-небудзь, таму што маё веданне гэтага рэдактара абмежавана, што убудаваныя. Тым не менш, я ніколі не чуў пра yasnippet і, здаецца, зрабіць трук.
дададзена аўтар Josh Belmont, крыніца

1 адказы

Я думаю, што я хацеў бы зрабіць гэта наступным чынам:

(define-skeleton my-for-statement
  "Insert a for() {...} skeleton."
  nil
  \n "for() {" \n > _ "}" \n)

The \n are for "newlines" (and the ones at beg/end are only added if needed). The _ basically says that if you have selected a region before running the command, then this region will end up right where _ is (IOW, the region will be wrapped by the "for" statement). And the > in front causes this region (if any) to be re-indented.

Пасля гэтага вы можаце зрабіць M-х MY-для-заява і будзе ўстаўляць заяву.

2
дададзена