Ku jira tifaftirayaasha qoraalka
Kaliya tiro xaddidan oo xulasho ah ayaa lagu rakibi karaa iyada oo loo marayo modeline. Haddii tibaaxaha lagu qeexo sida qiimaha ikhtiyaarka ah, waxaa lagu fuliyay qaabka sandbox, kaas oo u oggolaanaya kaliya hawlgallada badbaadada ee ugu fudud. Xaaladdan oo kale, amarka ansax ah waxaa ka mid ah amarka ": source", kaas oo aad isticmaali karto "!" modifier. si aad amarro aan sabab lahayn uga socodsiiso faylka la cayimay. Markaa, si loo fuliyo koodka, waa ku filan tahay in lagu muujiyo xariiqda moodeelka dhisme sida βset foldexpr=execute('\:source! some_file'):β. Gudaha Neovim, wacitaanka fulinta waa mamnuuc, laakiin assert_fails waa la isticmaali karaa beddelkeeda.
Tusaale ahaan, si aad u socodsiiso amarka "uname -a", si fudud u fur fayl gudaha Vim ama Neovim kaas oo xariiqiisa koowaad ama ugu dambeeya uu leeyahay:
:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\%"):fdl=0:fdt="
Shirkadda "source! %" wuxuu akhrin doonaa amarrada faylka hadda jira oo si waafaqsan fulin doona ":! uname -a". Isku xigxiga baxsadka waxaa loo isticmaali karaa in lagu qariyo xariiq la siiyay wax soo saarka bisadaha. Tusaale ahaan, tan
Waxaad ku hubin kartaa dhaqdhaqaaqa qaabka modeline amarka ": set modeline?". Si aad u joojiso, waxaad ku dari kartaa khadka "set nomodeline" vimrc. Qaybinta dhibaatadu waxay ku xidhan tahay gudaha
Source: opennet.ru