แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„ Vim แžŠแŸ‚แž›แž“แžถแŸ†แž‘แŸ…แžŠแž›แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžผแžŠแž“แŸ…แž–แŸแž›แž”แžพแž€แžฏแž€แžŸแžถแžšแž–แŸ’แž™แžถแž”แžถแž‘

แž“แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž“แžทแž–แž“แŸ’แž’แžขแžแŸ’แžแž”แž‘ Vim ะธ แžŽแžธแžœแžธแž˜ แž”แžถแž“แžšแž€แžƒแžพแž‰ แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡ (CVE-2019-12735) แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžผแžŠแž”แŸ†แž–แžถแž“แž“แŸ…แž–แŸแž›แž”แžพแž€แžฏแž€แžŸแžถแžšแžŠแŸ‚แž›แž”แžถแž“แžšแž…แž“แžถแž™แŸ‰แžถแž„แž–แžทแžŸแŸแžŸแŸ” แž”แž‰แŸ’แž แžถแž€แžพแžแžกแžพแž„แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แž‘แž˜แŸ’แžšแž„แŸ‹แž‚แŸ†แžšแžผแž›แŸ†แž“แžถแŸ†แžŠแžพแž˜ (โ€œ:แž€แŸ†แžŽแžแŸ‹แž‚แŸ†แžšแžผโ€) แžŸแž€แž˜แŸ’แž˜ แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž€แŸ†แžŽแžแŸ‹แž‡แž˜แŸ’แžšแžพแžŸแž€แŸ‚แžŸแž˜แŸ’แžšแžฝแž›แž“แŸ…แž€แŸ’แž“แžปแž„แžฏแž€แžŸแžถแžšแžŠแŸ‚แž›แž”แžถแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ” แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž‡แžฝแžŸแž‡แžปแž›แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™
Vim 8.1.1365 ะธ Neovim 0.3.6.

แž˜แžถแž“แžแŸ‚แž‡แž˜แŸ’แžšแžพแžŸแž˜แžฝแž™แž…แŸ†แž“แžฝแž“แžŠแŸ‚แž›แž˜แžถแž“แž€แŸ†แžŽแžแŸ‹แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แžŠแŸ†แžกแžพแž„แžแžถแž˜แžšแž™แŸˆ modelineแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž€แž“แŸ’แžŸแŸ„แž˜แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž‡แžถแžแž˜แŸ’แž›แŸƒแž‡แž˜แŸ’แžšแžพแžŸ แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แŸ’แž“แžปแž„แžšแž”แŸ€แž” sandbox แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžแŸ‚แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แžŸแžถแž˜แž‰แŸ’แž‰แž”แŸ†แž•แžปแžแŸ” แž€แŸ’แž“แžปแž„โ€‹แž€แžšแžŽแžธโ€‹แž“แŸแŸ‡ แž–แžถแž€แŸ’แž™โ€‹แž”แž‰แŸ’แž‡แžถโ€‹แžŠแŸ‚แž›โ€‹แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœโ€‹แžšแžฝแž˜โ€‹แž”แž‰แŸ’แž…แžผแž›โ€‹แž–แžถแž€แŸ’แž™โ€‹แž”แž‰แŸ’แž‡แžถ โ€œ:sourceโ€ แžŠแŸ‚แž›โ€‹แžขแŸ’แž“แž€โ€‹แžขแžถแž…โ€‹แž”แŸ’แžšแžพโ€‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธโ€‹แž€แŸ‚แž”แŸ’แžšแŸ‚ โ€œ!โ€แŸ” แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแž”แŸ†แž–แžถแž“แž–แžธแžฏแž€แžŸแžถแžšแžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แŸ” แžŠแžผแž…แŸ’แž“แŸแŸ‡ แžŠแžพแž˜แŸ’แž”แžธโ€‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทโ€‹แž€แžผแžŠ แžœแžถโ€‹แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแžถแž“แŸ‹โ€‹แžŠแžพแž˜แŸ’แž”แžธโ€‹แž”แž„แŸ’แž แžถแž‰โ€‹แž€แŸ’แž“แžปแž„โ€‹แž”แž“แŸ’แž‘แžถแžแŸ‹โ€‹แž‚แŸ†แžšแžผโ€‹แžŸแŸ†แžŽแž„แŸ‹โ€‹แž˜แžฝแž™โ€‹แžŠแžผแž…แž‡แžถ โ€œset foldexpr=execute('\:source! some_file'):โ€แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„ Neovim แž€แžถแžšแž แŸ… execute แžแŸ’แžšแžผแžœแž”แžถแž“แž แžถแž˜แžƒแžถแžแŸ‹ แž”แŸ‰แžปแž“แŸ’แžแŸ‚ assert_fails แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž‡แŸ†แž“แžฝแžŸแžœแžทแž‰แŸ”

แžงแž‘แžถแž แžšแžŽแŸ แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ โ€œuname -aโ€ แž‚แŸ’แžšแžถแž“แŸ‹แžแŸ‚แž”แžพแž€แžฏแž€แžŸแžถแžšแž˜แžฝแž™แž€แŸ’แž“แžปแž„ Vim แžฌ Neovim แžŠแŸ‚แž›แž”แž“แŸ’แž‘แžถแžแŸ‹แž‘แžธแž˜แžฝแž™ แžฌแž…แžปแž„แž€แŸ’แžšแŸ„แž™แž“แžทแž™แžถแž™แžแžถแŸ–

:!uname -a||ยป vi:fen:fdm=expr:fde=asssert_fails("แž”แŸ’แžšแž—แž–\!\ %"): fdl=0:fdt=โ€

แž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“ โ€œแž”แŸ’แžšแž—แž–! %" แž“แžนแž„แžขแžถแž“แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแž–แžธแžฏแž€แžŸแžถแžšแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“ แž แžพแž™แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžแžถแž˜ ":!uname -a" แŸ” แž›แŸ†แžŠแžถแž”แŸ‹ Escape แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแž›แžถแž€แŸ‹แž”แž“แŸ’แž‘แžถแžแŸ‹แžŠแŸ‚แž›แž”แžถแž“แž•แŸ’แžแž›แŸ‹แžฑแŸ’แž™แž–แžธแž›แž‘แŸ’แž’แž•แž›แžŠแŸ„แž™แžงแž”แž€แžšแžŽแŸแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž†แŸ’แž˜แžถแŸ” แžงแž‘แžถแž แžšแžŽแŸแž“แŸ…แž€แŸ’แž“แžปแž„แž“แŸแŸ‡แŸ” แž’แŸ’แžœแžพแžขแžถแž‡แžธแžœแž€แž˜แŸ’แž˜แž‚แŸ†แžšแžผ แž“แŸ…แž–แŸแž›แž”แžพแž€แžฏแž€แžŸแžถแžšแž“แŸ…แž€แŸ’แž“แžปแž„ vim แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹แž”แžŽแŸ’แžแžถแž‰แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž…แžผแž›แž”แŸ’แžšแžพแžŸแŸ‚แž›แž‘แŸ…แž€แžถแž“แŸ‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžšแž”แžŸแŸ‹แž‡แž“แžšแž„แž‚แŸ’แžšแŸ„แŸ‡ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžฏแž€แžŸแžถแžšแž“แŸแŸ‡แž“แžนแž„แž˜แžทแž“แž’แŸ’แžœแžพแžฑแŸ’แž™แž˜แžถแž“แž€แžถแžšแžŸแž„แŸ’แžŸแŸแž™แž“แŸ…แž–แŸแž›แž”แž‰แŸ’แž…แŸแž‰แž‘แŸ…แž€แžถแž“แŸ‹แžŸแŸ’แžแžถแž“แžธแž™แžŠแŸ„แž™แž”แŸ’แžšแžพแžงแž”แž€แžšแžŽแŸแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž†แŸ’แž˜แžถแž“แŸ„แŸ‡แž‘แŸแŸ”

แžขแŸ’แž“แž€แžขแžถแž…แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แž“แŸƒแž‘แž˜แŸ’แžšแž„แŸ‹ modeline แžŠแŸ„แž™แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ โ€œ:set modeline?โ€แŸ” แžŠแžพแž˜แŸ’แž”แžธแž”แžทแž‘แžœแžถ แžขแŸ’แž“แž€แžขแžถแž…แž”แž“แŸ’แžแŸ‚แž˜แž”แž“แŸ’แž‘แžถแžแŸ‹ "แž€แŸ†แžŽแžแŸ‹ nomodeline" แž‘แŸ… vimrc แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แž”แž‰แŸ’แž แžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‡แžฝแžŸแž‡แžปแž› แžขแžš, SUSE/openSUSE, Fedora, FreeBSD, แž‚แžผแž”แŸŠแžปแž“แž‘แžผ, Arch แž›แžธแž“แžปแž… ะธ ALT. แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แž“แŸ…แžแŸ‚แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž‡แžฝแžŸแž‡แžปแž›แž“แŸ…แž€แŸ’แž“แžปแž„ แžŠแŸแž”แŸ€แž“ (แž“แŸ…แž€แŸ’แž“แžปแž„ Debian modeline แžแŸ’แžšแžผแžœแž”แžถแž“แž”แžทแž‘แžแžถแž˜แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แž˜แžทแž“แž”แž„แŸ’แž แžถแž‰แž€แŸ’แž“แžปแž„แžŸแŸ’แžแžถแž“แž—แžถแž–แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜แž‘แŸ)แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹